@hotmeshio/long-tail 0.1.0

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 (809) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +262 -0
  3. package/build/examples/external-mcp-server/server.d.ts +17 -0
  4. package/build/examples/external-mcp-server/server.js +116 -0
  5. package/build/examples/index.d.ts +2 -0
  6. package/build/examples/index.js +7 -0
  7. package/build/examples/seed.d.ts +5 -0
  8. package/build/examples/seed.js +221 -0
  9. package/build/examples/types/envelopes.d.ts +34 -0
  10. package/build/examples/types/envelopes.js +8 -0
  11. package/build/examples/types/index.d.ts +10 -0
  12. package/build/examples/types/index.js +9 -0
  13. package/build/examples/types/resolvers.d.ts +27 -0
  14. package/build/examples/types/resolvers.js +9 -0
  15. package/build/examples/workers.d.ts +10 -0
  16. package/build/examples/workers.js +49 -0
  17. package/build/examples/workflows/basic-echo/activities.d.ts +20 -0
  18. package/build/examples/workflows/basic-echo/activities.js +55 -0
  19. package/build/examples/workflows/basic-echo/index.d.ts +14 -0
  20. package/build/examples/workflows/basic-echo/index.js +66 -0
  21. package/build/examples/workflows/kitchen-sink/activities.d.ts +40 -0
  22. package/build/examples/workflows/kitchen-sink/activities.js +46 -0
  23. package/build/examples/workflows/kitchen-sink/index.d.ts +22 -0
  24. package/build/examples/workflows/kitchen-sink/index.js +123 -0
  25. package/build/examples/workflows/review-content/activities.d.ts +10 -0
  26. package/build/examples/workflows/review-content/activities.js +44 -0
  27. package/build/examples/workflows/review-content/index.d.ts +10 -0
  28. package/build/examples/workflows/review-content/index.js +95 -0
  29. package/build/examples/workflows/review-content/types.d.ts +28 -0
  30. package/build/examples/workflows/review-content/types.js +2 -0
  31. package/build/index.d.ts +37 -0
  32. package/build/index.js +151 -0
  33. package/build/modules/auth.d.ts +58 -0
  34. package/build/modules/auth.js +163 -0
  35. package/build/modules/config.d.ts +19 -0
  36. package/build/modules/config.js +26 -0
  37. package/build/modules/defaults.d.ts +58 -0
  38. package/build/modules/defaults.js +95 -0
  39. package/build/modules/ltconfig.d.ts +21 -0
  40. package/build/modules/ltconfig.js +110 -0
  41. package/build/modules/maintenance.d.ts +18 -0
  42. package/build/modules/maintenance.js +47 -0
  43. package/build/routes/auth.d.ts +2 -0
  44. package/build/routes/auth.js +48 -0
  45. package/build/routes/bot-accounts.d.ts +2 -0
  46. package/build/routes/bot-accounts.js +280 -0
  47. package/build/routes/controlplane.d.ts +2 -0
  48. package/build/routes/controlplane.js +144 -0
  49. package/build/routes/dba.d.ts +2 -0
  50. package/build/routes/dba.js +86 -0
  51. package/build/routes/delegation.d.ts +2 -0
  52. package/build/routes/delegation.js +81 -0
  53. package/build/routes/escalations/bulk.d.ts +2 -0
  54. package/build/routes/escalations/bulk.js +324 -0
  55. package/build/routes/escalations/helpers.d.ts +5 -0
  56. package/build/routes/escalations/helpers.js +48 -0
  57. package/build/routes/escalations/index.d.ts +2 -0
  58. package/build/routes/escalations/index.js +20 -0
  59. package/build/routes/escalations/list.d.ts +2 -0
  60. package/build/routes/escalations/list.js +140 -0
  61. package/build/routes/escalations/resolve.d.ts +2 -0
  62. package/build/routes/escalations/resolve.js +240 -0
  63. package/build/routes/escalations/single.d.ts +2 -0
  64. package/build/routes/escalations/single.js +195 -0
  65. package/build/routes/exports.d.ts +2 -0
  66. package/build/routes/exports.js +163 -0
  67. package/build/routes/files.d.ts +2 -0
  68. package/build/routes/files.js +47 -0
  69. package/build/routes/index.d.ts +2 -0
  70. package/build/routes/index.js +52 -0
  71. package/build/routes/insight.d.ts +2 -0
  72. package/build/routes/insight.js +58 -0
  73. package/build/routes/maintenance.d.ts +2 -0
  74. package/build/routes/maintenance.js +38 -0
  75. package/build/routes/mcp-runs.d.ts +2 -0
  76. package/build/routes/mcp-runs.js +85 -0
  77. package/build/routes/mcp.d.ts +2 -0
  78. package/build/routes/mcp.js +264 -0
  79. package/build/routes/namespaces.d.ts +2 -0
  80. package/build/routes/namespaces.js +71 -0
  81. package/build/routes/oauth.d.ts +7 -0
  82. package/build/routes/oauth.js +217 -0
  83. package/build/routes/resolve.d.ts +9 -0
  84. package/build/routes/resolve.js +19 -0
  85. package/build/routes/roles.d.ts +2 -0
  86. package/build/routes/roles.js +195 -0
  87. package/build/routes/settings.d.ts +2 -0
  88. package/build/routes/settings.js +35 -0
  89. package/build/routes/tasks.d.ts +2 -0
  90. package/build/routes/tasks.js +133 -0
  91. package/build/routes/users.d.ts +2 -0
  92. package/build/routes/users.js +206 -0
  93. package/build/routes/workflows/config.d.ts +2 -0
  94. package/build/routes/workflows/config.js +123 -0
  95. package/build/routes/workflows/discovery.d.ts +2 -0
  96. package/build/routes/workflows/discovery.js +146 -0
  97. package/build/routes/workflows/index.d.ts +2 -0
  98. package/build/routes/workflows/index.js +18 -0
  99. package/build/routes/workflows/invocation.d.ts +2 -0
  100. package/build/routes/workflows/invocation.js +162 -0
  101. package/build/routes/yaml-workflows/crud.d.ts +2 -0
  102. package/build/routes/yaml-workflows/crud.js +276 -0
  103. package/build/routes/yaml-workflows/deployment.d.ts +2 -0
  104. package/build/routes/yaml-workflows/deployment.js +179 -0
  105. package/build/routes/yaml-workflows/helpers.d.ts +2 -0
  106. package/build/routes/yaml-workflows/helpers.js +8 -0
  107. package/build/routes/yaml-workflows/index.d.ts +2 -0
  108. package/build/routes/yaml-workflows/index.js +21 -0
  109. package/build/routes/yaml-workflows/versions.d.ts +2 -0
  110. package/build/routes/yaml-workflows/versions.js +116 -0
  111. package/build/scripts/process-helpers.d.ts +11 -0
  112. package/build/scripts/process-helpers.js +59 -0
  113. package/build/scripts/process.d.ts +18 -0
  114. package/build/scripts/process.js +191 -0
  115. package/build/scripts/token.d.ts +13 -0
  116. package/build/scripts/token.js +42 -0
  117. package/build/services/auth/bot-api-key.d.ts +32 -0
  118. package/build/services/auth/bot-api-key.js +112 -0
  119. package/build/services/auth/delegation.d.ts +20 -0
  120. package/build/services/auth/delegation.js +53 -0
  121. package/build/services/auth/service-token.d.ts +23 -0
  122. package/build/services/auth/service-token.js +105 -0
  123. package/build/services/config/cache.d.ts +2 -0
  124. package/build/services/config/cache.js +24 -0
  125. package/build/services/config/index.d.ts +4 -0
  126. package/build/services/config/index.js +13 -0
  127. package/build/services/config/provider.d.ts +2 -0
  128. package/build/services/config/provider.js +30 -0
  129. package/build/services/config/read.d.ts +3 -0
  130. package/build/services/config/read.js +68 -0
  131. package/build/services/config/sql.d.ts +14 -0
  132. package/build/services/config/sql.js +58 -0
  133. package/build/services/config/write.d.ts +5 -0
  134. package/build/services/config/write.js +61 -0
  135. package/build/services/controlplane/index.d.ts +47 -0
  136. package/build/services/controlplane/index.js +124 -0
  137. package/build/services/controlplane/quorum-bridge.d.ts +15 -0
  138. package/build/services/controlplane/quorum-bridge.js +62 -0
  139. package/build/services/controlplane/sql.d.ts +21 -0
  140. package/build/services/controlplane/sql.js +70 -0
  141. package/build/services/controlplane/types.d.ts +13 -0
  142. package/build/services/controlplane/types.js +3 -0
  143. package/build/services/cron/index.d.ts +46 -0
  144. package/build/services/cron/index.js +199 -0
  145. package/build/services/db/index.d.ts +3 -0
  146. package/build/services/db/index.js +19 -0
  147. package/build/services/db/migrate.d.ts +1 -0
  148. package/build/services/db/migrate.js +78 -0
  149. package/build/services/dba.d.ts +28 -0
  150. package/build/services/dba.js +32 -0
  151. package/build/services/escalation/bulk.d.ts +27 -0
  152. package/build/services/escalation/bulk.js +57 -0
  153. package/build/services/escalation/crud.d.ts +47 -0
  154. package/build/services/escalation/crud.js +150 -0
  155. package/build/services/escalation/index.d.ts +4 -0
  156. package/build/services/escalation/index.js +20 -0
  157. package/build/services/escalation/queries.d.ts +37 -0
  158. package/build/services/escalation/queries.js +163 -0
  159. package/build/services/escalation/sql.d.ts +21 -0
  160. package/build/services/escalation/sql.js +135 -0
  161. package/build/services/escalation/types.d.ts +43 -0
  162. package/build/services/escalation/types.js +13 -0
  163. package/build/services/escalation-strategy/default.d.ts +12 -0
  164. package/build/services/escalation-strategy/default.js +17 -0
  165. package/build/services/escalation-strategy/index.d.ts +21 -0
  166. package/build/services/escalation-strategy/index.js +32 -0
  167. package/build/services/escalation-strategy/mcp.d.ts +13 -0
  168. package/build/services/escalation-strategy/mcp.js +51 -0
  169. package/build/services/events/index.d.ts +37 -0
  170. package/build/services/events/index.js +64 -0
  171. package/build/services/events/memory.d.ts +27 -0
  172. package/build/services/events/memory.js +40 -0
  173. package/build/services/events/nats.d.ts +29 -0
  174. package/build/services/events/nats.js +50 -0
  175. package/build/services/events/publish.d.ts +72 -0
  176. package/build/services/events/publish.js +106 -0
  177. package/build/services/events/socketio.d.ts +33 -0
  178. package/build/services/events/socketio.js +70 -0
  179. package/build/services/export/client.d.ts +2 -0
  180. package/build/services/export/client.js +16 -0
  181. package/build/services/export/index.d.ts +39 -0
  182. package/build/services/export/index.js +158 -0
  183. package/build/services/export/post-process.d.ts +16 -0
  184. package/build/services/export/post-process.js +133 -0
  185. package/build/services/export/types.d.ts +25 -0
  186. package/build/services/export/types.js +2 -0
  187. package/build/services/hotmesh-utils.d.ts +61 -0
  188. package/build/services/hotmesh-utils.js +204 -0
  189. package/build/services/iam/activity.d.ts +52 -0
  190. package/build/services/iam/activity.js +59 -0
  191. package/build/services/iam/bots.d.ts +83 -0
  192. package/build/services/iam/bots.js +157 -0
  193. package/build/services/iam/context.d.ts +14 -0
  194. package/build/services/iam/context.js +61 -0
  195. package/build/services/iam/credentials.d.ts +42 -0
  196. package/build/services/iam/credentials.js +86 -0
  197. package/build/services/iam/envelope.d.ts +10 -0
  198. package/build/services/iam/envelope.js +32 -0
  199. package/build/services/iam/ephemeral.d.ts +50 -0
  200. package/build/services/iam/ephemeral.js +131 -0
  201. package/build/services/iam/index.d.ts +19 -0
  202. package/build/services/iam/index.js +37 -0
  203. package/build/services/iam/principal.d.ts +12 -0
  204. package/build/services/iam/principal.js +53 -0
  205. package/build/services/iam/resolve.d.ts +48 -0
  206. package/build/services/iam/resolve.js +89 -0
  207. package/build/services/insight/index.d.ts +30 -0
  208. package/build/services/insight/index.js +81 -0
  209. package/build/services/insight/prompts.d.ts +4 -0
  210. package/build/services/insight/prompts.js +15 -0
  211. package/build/services/interceptor/activities/config.d.ts +21 -0
  212. package/build/services/interceptor/activities/config.js +26 -0
  213. package/build/services/interceptor/activities/escalation.d.ts +58 -0
  214. package/build/services/interceptor/activities/escalation.js +110 -0
  215. package/build/services/interceptor/activities/index.d.ts +4 -0
  216. package/build/services/interceptor/activities/index.js +23 -0
  217. package/build/services/interceptor/activities/task.d.ts +65 -0
  218. package/build/services/interceptor/activities/task.js +168 -0
  219. package/build/services/interceptor/activities/workflow.d.ts +26 -0
  220. package/build/services/interceptor/activities/workflow.js +41 -0
  221. package/build/services/interceptor/activity-interceptor.d.ts +32 -0
  222. package/build/services/interceptor/activity-interceptor.js +86 -0
  223. package/build/services/interceptor/completion.d.ts +16 -0
  224. package/build/services/interceptor/completion.js +149 -0
  225. package/build/services/interceptor/context.d.ts +11 -0
  226. package/build/services/interceptor/context.js +20 -0
  227. package/build/services/interceptor/escalation.d.ts +26 -0
  228. package/build/services/interceptor/escalation.js +150 -0
  229. package/build/services/interceptor/index.d.ts +45 -0
  230. package/build/services/interceptor/index.js +160 -0
  231. package/build/services/interceptor/lifecycle.d.ts +44 -0
  232. package/build/services/interceptor/lifecycle.js +174 -0
  233. package/build/services/interceptor/state.d.ts +22 -0
  234. package/build/services/interceptor/state.js +36 -0
  235. package/build/services/interceptor/types.d.ts +43 -0
  236. package/build/services/interceptor/types.js +3 -0
  237. package/build/services/llm/detect.d.ts +16 -0
  238. package/build/services/llm/detect.js +33 -0
  239. package/build/services/llm/index.d.ts +34 -0
  240. package/build/services/llm/index.js +106 -0
  241. package/build/services/llm/providers/anthropic.d.ts +11 -0
  242. package/build/services/llm/providers/anthropic.js +85 -0
  243. package/build/services/llm/providers/openai.d.ts +9 -0
  244. package/build/services/llm/providers/openai.js +46 -0
  245. package/build/services/llm/translate.d.ts +66 -0
  246. package/build/services/llm/translate.js +192 -0
  247. package/build/services/llm/types.d.ts +64 -0
  248. package/build/services/llm/types.js +8 -0
  249. package/build/services/logger/index.d.ts +32 -0
  250. package/build/services/logger/index.js +69 -0
  251. package/build/services/logger/pino.d.ts +24 -0
  252. package/build/services/logger/pino.js +59 -0
  253. package/build/services/maintenance/index.d.ts +43 -0
  254. package/build/services/maintenance/index.js +183 -0
  255. package/build/services/mcp/adapter.d.ts +23 -0
  256. package/build/services/mcp/adapter.js +119 -0
  257. package/build/services/mcp/client/connection.d.ts +46 -0
  258. package/build/services/mcp/client/connection.js +280 -0
  259. package/build/services/mcp/client/index.d.ts +2 -0
  260. package/build/services/mcp/client/index.js +16 -0
  261. package/build/services/mcp/client/tools.d.ts +22 -0
  262. package/build/services/mcp/client/tools.js +118 -0
  263. package/build/services/mcp/db-server/index.d.ts +25 -0
  264. package/build/services/mcp/db-server/index.js +49 -0
  265. package/build/services/mcp/db-server/schemas.d.ts +52 -0
  266. package/build/services/mcp/db-server/schemas.js +34 -0
  267. package/build/services/mcp/db-server/tools.d.ts +5 -0
  268. package/build/services/mcp/db-server/tools.js +224 -0
  269. package/build/services/mcp/db.d.ts +26 -0
  270. package/build/services/mcp/db.js +141 -0
  271. package/build/services/mcp/index.d.ts +25 -0
  272. package/build/services/mcp/index.js +47 -0
  273. package/build/services/mcp/playwright-server/index.d.ts +14 -0
  274. package/build/services/mcp/playwright-server/index.js +25 -0
  275. package/build/services/mcp/playwright-server/lifecycle.d.ts +7 -0
  276. package/build/services/mcp/playwright-server/lifecycle.js +63 -0
  277. package/build/services/mcp/playwright-server/schemas.d.ts +81 -0
  278. package/build/services/mcp/playwright-server/schemas.js +48 -0
  279. package/build/services/mcp/playwright-server/tools.d.ts +2 -0
  280. package/build/services/mcp/playwright-server/tools.js +224 -0
  281. package/build/services/mcp/server.d.ts +26 -0
  282. package/build/services/mcp/server.js +286 -0
  283. package/build/services/mcp/sql.d.ts +12 -0
  284. package/build/services/mcp/sql.js +59 -0
  285. package/build/services/mcp/types.d.ts +17 -0
  286. package/build/services/mcp/types.js +3 -0
  287. package/build/services/mcp/vision-server.d.ts +15 -0
  288. package/build/services/mcp/vision-server.js +214 -0
  289. package/build/services/mcp/workflow-compiler-server.d.ts +15 -0
  290. package/build/services/mcp/workflow-compiler-server.js +206 -0
  291. package/build/services/mcp/workflow-server.d.ts +24 -0
  292. package/build/services/mcp/workflow-server.js +230 -0
  293. package/build/services/mcp-runs/enrichment.d.ts +12 -0
  294. package/build/services/mcp-runs/enrichment.js +39 -0
  295. package/build/services/mcp-runs/events.d.ts +6 -0
  296. package/build/services/mcp-runs/events.js +126 -0
  297. package/build/services/mcp-runs/execution-builder.d.ts +12 -0
  298. package/build/services/mcp-runs/execution-builder.js +100 -0
  299. package/build/services/mcp-runs/index.d.ts +4 -0
  300. package/build/services/mcp-runs/index.js +8 -0
  301. package/build/services/mcp-runs/queries.d.ts +28 -0
  302. package/build/services/mcp-runs/queries.js +71 -0
  303. package/build/services/mcp-runs/sql.d.ts +4 -0
  304. package/build/services/mcp-runs/sql.js +17 -0
  305. package/build/services/mcp-runs/types.d.ts +65 -0
  306. package/build/services/mcp-runs/types.js +2 -0
  307. package/build/services/namespace/index.d.ts +17 -0
  308. package/build/services/namespace/index.js +41 -0
  309. package/build/services/namespace/sql.d.ts +4 -0
  310. package/build/services/namespace/sql.js +23 -0
  311. package/build/services/namespace/types.d.ts +11 -0
  312. package/build/services/namespace/types.js +3 -0
  313. package/build/services/oauth/crypto.d.ts +19 -0
  314. package/build/services/oauth/crypto.js +95 -0
  315. package/build/services/oauth/db.d.ts +20 -0
  316. package/build/services/oauth/db.js +140 -0
  317. package/build/services/oauth/index.d.ts +12 -0
  318. package/build/services/oauth/index.js +77 -0
  319. package/build/services/oauth/providers/anthropic.d.ts +3 -0
  320. package/build/services/oauth/providers/anthropic.js +111 -0
  321. package/build/services/oauth/providers/github.d.ts +3 -0
  322. package/build/services/oauth/providers/github.js +46 -0
  323. package/build/services/oauth/providers/google.d.ts +3 -0
  324. package/build/services/oauth/providers/google.js +44 -0
  325. package/build/services/oauth/providers/index.d.ts +2 -0
  326. package/build/services/oauth/providers/index.js +7 -0
  327. package/build/services/oauth/providers/microsoft.d.ts +3 -0
  328. package/build/services/oauth/providers/microsoft.js +46 -0
  329. package/build/services/oauth/providers/mock.d.ts +3 -0
  330. package/build/services/oauth/providers/mock.js +76 -0
  331. package/build/services/oauth/providers/registry.d.ts +8 -0
  332. package/build/services/oauth/providers/registry.js +46 -0
  333. package/build/services/oauth/providers/types.d.ts +13 -0
  334. package/build/services/oauth/providers/types.js +2 -0
  335. package/build/services/oauth/state.d.ts +30 -0
  336. package/build/services/oauth/state.js +83 -0
  337. package/build/services/orchestrator/index.d.ts +23 -0
  338. package/build/services/orchestrator/index.js +156 -0
  339. package/build/services/orchestrator/types.d.ts +15 -0
  340. package/build/services/orchestrator/types.js +3 -0
  341. package/build/services/role/index.d.ts +47 -0
  342. package/build/services/role/index.js +136 -0
  343. package/build/services/role/sql.d.ts +14 -0
  344. package/build/services/role/sql.js +80 -0
  345. package/build/services/role/types.d.ts +11 -0
  346. package/build/services/role/types.js +3 -0
  347. package/build/services/storage/index.d.ts +12 -0
  348. package/build/services/storage/index.js +31 -0
  349. package/build/services/storage/local.d.ts +26 -0
  350. package/build/services/storage/local.js +129 -0
  351. package/build/services/storage/s3.d.ts +31 -0
  352. package/build/services/storage/s3.js +180 -0
  353. package/build/services/storage/types.d.ts +41 -0
  354. package/build/services/storage/types.js +2 -0
  355. package/build/services/task/crud.d.ts +21 -0
  356. package/build/services/task/crud.js +123 -0
  357. package/build/services/task/index.d.ts +4 -0
  358. package/build/services/task/index.js +20 -0
  359. package/build/services/task/process.d.ts +14 -0
  360. package/build/services/task/process.js +98 -0
  361. package/build/services/task/resolve.d.ts +12 -0
  362. package/build/services/task/resolve.js +49 -0
  363. package/build/services/task/sql.d.ts +19 -0
  364. package/build/services/task/sql.js +92 -0
  365. package/build/services/task/types.d.ts +56 -0
  366. package/build/services/task/types.js +9 -0
  367. package/build/services/telemetry/honeycomb.d.ts +53 -0
  368. package/build/services/telemetry/honeycomb.js +79 -0
  369. package/build/services/telemetry/index.d.ts +46 -0
  370. package/build/services/telemetry/index.js +68 -0
  371. package/build/services/user/auth.d.ts +7 -0
  372. package/build/services/user/auth.js +26 -0
  373. package/build/services/user/crud.d.ts +19 -0
  374. package/build/services/user/crud.js +151 -0
  375. package/build/services/user/index.d.ts +5 -0
  376. package/build/services/user/index.js +26 -0
  377. package/build/services/user/rbac.d.ts +15 -0
  378. package/build/services/user/rbac.js +32 -0
  379. package/build/services/user/roles.d.ts +7 -0
  380. package/build/services/user/roles.js +42 -0
  381. package/build/services/user/sql.d.ts +22 -0
  382. package/build/services/user/sql.js +45 -0
  383. package/build/services/user/types.d.ts +23 -0
  384. package/build/services/user/types.js +4 -0
  385. package/build/services/workers/registry.d.ts +10 -0
  386. package/build/services/workers/registry.js +26 -0
  387. package/build/services/workflow-invocation.d.ts +46 -0
  388. package/build/services/workflow-invocation.js +184 -0
  389. package/build/services/yaml-workflow/db-utils.d.ts +25 -0
  390. package/build/services/yaml-workflow/db-utils.js +93 -0
  391. package/build/services/yaml-workflow/db.d.ts +27 -0
  392. package/build/services/yaml-workflow/db.js +196 -0
  393. package/build/services/yaml-workflow/deployer-helpers.d.ts +13 -0
  394. package/build/services/yaml-workflow/deployer-helpers.js +133 -0
  395. package/build/services/yaml-workflow/deployer.d.ts +54 -0
  396. package/build/services/yaml-workflow/deployer.js +203 -0
  397. package/build/services/yaml-workflow/generator.d.ts +21 -0
  398. package/build/services/yaml-workflow/generator.js +117 -0
  399. package/build/services/yaml-workflow/index.d.ts +4 -0
  400. package/build/services/yaml-workflow/index.js +20 -0
  401. package/build/services/yaml-workflow/input-analyzer-helpers.d.ts +48 -0
  402. package/build/services/yaml-workflow/input-analyzer-helpers.js +183 -0
  403. package/build/services/yaml-workflow/input-analyzer.d.ts +30 -0
  404. package/build/services/yaml-workflow/input-analyzer.js +109 -0
  405. package/build/services/yaml-workflow/pattern-detector/array-source.d.ts +22 -0
  406. package/build/services/yaml-workflow/pattern-detector/array-source.js +120 -0
  407. package/build/services/yaml-workflow/pattern-detector/collapse.d.ts +27 -0
  408. package/build/services/yaml-workflow/pattern-detector/collapse.js +92 -0
  409. package/build/services/yaml-workflow/pattern-detector/index.d.ts +18 -0
  410. package/build/services/yaml-workflow/pattern-detector/index.js +22 -0
  411. package/build/services/yaml-workflow/pattern-detector/run-detection.d.ts +28 -0
  412. package/build/services/yaml-workflow/pattern-detector/run-detection.js +81 -0
  413. package/build/services/yaml-workflow/pattern-detector/types.d.ts +29 -0
  414. package/build/services/yaml-workflow/pattern-detector/types.js +8 -0
  415. package/build/services/yaml-workflow/pipeline/analyze.d.ts +11 -0
  416. package/build/services/yaml-workflow/pipeline/analyze.js +64 -0
  417. package/build/services/yaml-workflow/pipeline/build/dag.d.ts +25 -0
  418. package/build/services/yaml-workflow/pipeline/build/dag.js +254 -0
  419. package/build/services/yaml-workflow/pipeline/build/index.d.ts +20 -0
  420. package/build/services/yaml-workflow/pipeline/build/index.js +115 -0
  421. package/build/services/yaml-workflow/pipeline/build/iteration.d.ts +25 -0
  422. package/build/services/yaml-workflow/pipeline/build/iteration.js +231 -0
  423. package/build/services/yaml-workflow/pipeline/build/metadata.d.ts +15 -0
  424. package/build/services/yaml-workflow/pipeline/build/metadata.js +126 -0
  425. package/build/services/yaml-workflow/pipeline/build/transform.d.ts +17 -0
  426. package/build/services/yaml-workflow/pipeline/build/transform.js +94 -0
  427. package/build/services/yaml-workflow/pipeline/build/utils.d.ts +22 -0
  428. package/build/services/yaml-workflow/pipeline/build/utils.js +129 -0
  429. package/build/services/yaml-workflow/pipeline/build/wiring.d.ts +9 -0
  430. package/build/services/yaml-workflow/pipeline/build/wiring.js +148 -0
  431. package/build/services/yaml-workflow/pipeline/compile/index.d.ts +17 -0
  432. package/build/services/yaml-workflow/pipeline/compile/index.js +64 -0
  433. package/build/services/yaml-workflow/pipeline/compile/llm-call.d.ts +14 -0
  434. package/build/services/yaml-workflow/pipeline/compile/llm-call.js +153 -0
  435. package/build/services/yaml-workflow/pipeline/compile/parse-plan.d.ts +12 -0
  436. package/build/services/yaml-workflow/pipeline/compile/parse-plan.js +88 -0
  437. package/build/services/yaml-workflow/pipeline/compile/summarize.d.ts +39 -0
  438. package/build/services/yaml-workflow/pipeline/compile/summarize.js +174 -0
  439. package/build/services/yaml-workflow/pipeline/extract-helpers.d.ts +42 -0
  440. package/build/services/yaml-workflow/pipeline/extract-helpers.js +88 -0
  441. package/build/services/yaml-workflow/pipeline/extract.d.ts +24 -0
  442. package/build/services/yaml-workflow/pipeline/extract.js +235 -0
  443. package/build/services/yaml-workflow/pipeline/prompts.d.ts +15 -0
  444. package/build/services/yaml-workflow/pipeline/prompts.js +254 -0
  445. package/build/services/yaml-workflow/pipeline/validate.d.ts +12 -0
  446. package/build/services/yaml-workflow/pipeline/validate.js +111 -0
  447. package/build/services/yaml-workflow/sql.d.ts +19 -0
  448. package/build/services/yaml-workflow/sql.js +83 -0
  449. package/build/services/yaml-workflow/types.d.ts +223 -0
  450. package/build/services/yaml-workflow/types.js +8 -0
  451. package/build/services/yaml-workflow/workers/callbacks.d.ts +17 -0
  452. package/build/services/yaml-workflow/workers/callbacks.js +194 -0
  453. package/build/services/yaml-workflow/workers/events.d.ts +7 -0
  454. package/build/services/yaml-workflow/workers/events.js +49 -0
  455. package/build/services/yaml-workflow/workers/index.d.ts +4 -0
  456. package/build/services/yaml-workflow/workers/index.js +15 -0
  457. package/build/services/yaml-workflow/workers/register.d.ts +15 -0
  458. package/build/services/yaml-workflow/workers/register.js +233 -0
  459. package/build/services/yaml-workflow/workers/scope.d.ts +13 -0
  460. package/build/services/yaml-workflow/workers/scope.js +37 -0
  461. package/build/start/adapters.d.ts +6 -0
  462. package/build/start/adapters.js +80 -0
  463. package/build/start/config.d.ts +10 -0
  464. package/build/start/config.js +88 -0
  465. package/build/start/index.d.ts +21 -0
  466. package/build/start/index.js +87 -0
  467. package/build/start/server.d.ts +6 -0
  468. package/build/start/server.js +46 -0
  469. package/build/start/workers.d.ts +32 -0
  470. package/build/start/workers.js +144 -0
  471. package/build/system/activities/claude-code.d.ts +56 -0
  472. package/build/system/activities/claude-code.js +258 -0
  473. package/build/system/activities/file-storage.d.ts +31 -0
  474. package/build/system/activities/file-storage.js +71 -0
  475. package/build/system/activities/http.d.ts +27 -0
  476. package/build/system/activities/http.js +56 -0
  477. package/build/system/activities/oauth.d.ts +39 -0
  478. package/build/system/activities/oauth.js +33 -0
  479. package/build/system/activities/triage/cache.d.ts +7 -0
  480. package/build/system/activities/triage/cache.js +10 -0
  481. package/build/system/activities/triage/context.d.ts +21 -0
  482. package/build/system/activities/triage/context.js +92 -0
  483. package/build/system/activities/triage/discovery.d.ts +25 -0
  484. package/build/system/activities/triage/discovery.js +170 -0
  485. package/build/system/activities/triage/index.d.ts +5 -0
  486. package/build/system/activities/triage/index.js +22 -0
  487. package/build/system/activities/triage/llm.d.ts +9 -0
  488. package/build/system/activities/triage/llm.js +34 -0
  489. package/build/system/activities/triage/tools.d.ts +24 -0
  490. package/build/system/activities/triage/tools.js +178 -0
  491. package/build/system/index.d.ts +16 -0
  492. package/build/system/index.js +100 -0
  493. package/build/system/mcp-servers/claude-code.d.ts +17 -0
  494. package/build/system/mcp-servers/claude-code.js +110 -0
  495. package/build/system/mcp-servers/db-query/index.d.ts +25 -0
  496. package/build/system/mcp-servers/db-query/index.js +49 -0
  497. package/build/system/mcp-servers/db-query/schemas.d.ts +52 -0
  498. package/build/system/mcp-servers/db-query/schemas.js +34 -0
  499. package/build/system/mcp-servers/db-query/tools.d.ts +5 -0
  500. package/build/system/mcp-servers/db-query/tools.js +224 -0
  501. package/build/system/mcp-servers/document-vision.d.ts +15 -0
  502. package/build/system/mcp-servers/document-vision.js +228 -0
  503. package/build/system/mcp-servers/file-storage.d.ts +4 -0
  504. package/build/system/mcp-servers/file-storage.js +101 -0
  505. package/build/system/mcp-servers/http-fetch.d.ts +4 -0
  506. package/build/system/mcp-servers/http-fetch.js +100 -0
  507. package/build/system/mcp-servers/human-queue.d.ts +26 -0
  508. package/build/system/mcp-servers/human-queue.js +287 -0
  509. package/build/system/mcp-servers/oauth.d.ts +11 -0
  510. package/build/system/mcp-servers/oauth.js +100 -0
  511. package/build/system/mcp-servers/playwright/browser-lifecycle.d.ts +26 -0
  512. package/build/system/mcp-servers/playwright/browser-lifecycle.js +125 -0
  513. package/build/system/mcp-servers/playwright/index.d.ts +25 -0
  514. package/build/system/mcp-servers/playwright/index.js +42 -0
  515. package/build/system/mcp-servers/playwright/schemas.d.ts +383 -0
  516. package/build/system/mcp-servers/playwright/schemas.js +87 -0
  517. package/build/system/mcp-servers/playwright/tools-atomic.d.ts +2 -0
  518. package/build/system/mcp-servers/playwright/tools-atomic.js +9 -0
  519. package/build/system/mcp-servers/playwright/tools-navigation.d.ts +2 -0
  520. package/build/system/mcp-servers/playwright/tools-navigation.js +140 -0
  521. package/build/system/mcp-servers/playwright/tools-page-interaction.d.ts +2 -0
  522. package/build/system/mcp-servers/playwright/tools-page-interaction.js +162 -0
  523. package/build/system/mcp-servers/playwright/tools-run-script.d.ts +2 -0
  524. package/build/system/mcp-servers/playwright/tools-run-script.js +190 -0
  525. package/build/system/mcp-servers/playwright/types.d.ts +8 -0
  526. package/build/system/mcp-servers/playwright/types.js +30 -0
  527. package/build/system/mcp-servers/playwright-cli/helpers.d.ts +11 -0
  528. package/build/system/mcp-servers/playwright-cli/helpers.js +20 -0
  529. package/build/system/mcp-servers/playwright-cli/index.d.ts +4 -0
  530. package/build/system/mcp-servers/playwright-cli/index.js +15 -0
  531. package/build/system/mcp-servers/playwright-cli/schemas.d.ts +219 -0
  532. package/build/system/mcp-servers/playwright-cli/schemas.js +75 -0
  533. package/build/system/mcp-servers/playwright-cli/tools-auth.d.ts +2 -0
  534. package/build/system/mcp-servers/playwright-cli/tools-auth.js +183 -0
  535. package/build/system/mcp-servers/playwright-cli/tools-capture.d.ts +2 -0
  536. package/build/system/mcp-servers/playwright-cli/tools-capture.js +267 -0
  537. package/build/system/mcp-servers/prompts.d.ts +4 -0
  538. package/build/system/mcp-servers/prompts.js +10 -0
  539. package/build/system/mcp-servers/workflow-compiler.d.ts +15 -0
  540. package/build/system/mcp-servers/workflow-compiler.js +230 -0
  541. package/build/system/mcp-servers/workflow.d.ts +24 -0
  542. package/build/system/mcp-servers/workflow.js +231 -0
  543. package/build/system/seed/index.d.ts +7 -0
  544. package/build/system/seed/index.js +36 -0
  545. package/build/system/seed/server-definitions.d.ts +1460 -0
  546. package/build/system/seed/server-definitions.js +160 -0
  547. package/build/system/seed/tool-manifests-browser.d.ts +577 -0
  548. package/build/system/seed/tool-manifests-browser.js +158 -0
  549. package/build/system/seed/tool-manifests-data.d.ts +322 -0
  550. package/build/system/seed/tool-manifests-data.js +173 -0
  551. package/build/system/seed/tool-manifests-escalation.d.ts +173 -0
  552. package/build/system/seed/tool-manifests-escalation.js +76 -0
  553. package/build/system/seed/tool-manifests-workflows.d.ts +211 -0
  554. package/build/system/seed/tool-manifests-workflows.js +136 -0
  555. package/build/system/workflows/mcp-deterministic/activities.d.ts +6 -0
  556. package/build/system/workflows/mcp-deterministic/activities.js +56 -0
  557. package/build/system/workflows/mcp-deterministic/index.d.ts +9 -0
  558. package/build/system/workflows/mcp-deterministic/index.js +72 -0
  559. package/build/system/workflows/mcp-query/activities/caches.d.ts +7 -0
  560. package/build/system/workflows/mcp-query/activities/caches.js +10 -0
  561. package/build/system/workflows/mcp-query/activities/discovery.d.ts +31 -0
  562. package/build/system/workflows/mcp-query/activities/discovery.js +172 -0
  563. package/build/system/workflows/mcp-query/activities/index.d.ts +4 -0
  564. package/build/system/workflows/mcp-query/activities/index.js +13 -0
  565. package/build/system/workflows/mcp-query/activities/llm.d.ts +8 -0
  566. package/build/system/workflows/mcp-query/activities/llm.js +33 -0
  567. package/build/system/workflows/mcp-query/activities/tool-executor.d.ts +5 -0
  568. package/build/system/workflows/mcp-query/activities/tool-executor.js +112 -0
  569. package/build/system/workflows/mcp-query/activities/tool-loader.d.ts +14 -0
  570. package/build/system/workflows/mcp-query/activities/tool-loader.js +93 -0
  571. package/build/system/workflows/mcp-query/index.d.ts +14 -0
  572. package/build/system/workflows/mcp-query/index.js +227 -0
  573. package/build/system/workflows/mcp-query/prompts.d.ts +4 -0
  574. package/build/system/workflows/mcp-query/prompts.js +101 -0
  575. package/build/system/workflows/mcp-query/strategy-advisors.d.ts +14 -0
  576. package/build/system/workflows/mcp-query/strategy-advisors.js +109 -0
  577. package/build/system/workflows/mcp-query/types.d.ts +10 -0
  578. package/build/system/workflows/mcp-query/types.js +3 -0
  579. package/build/system/workflows/mcp-query-router/activities.d.ts +6 -0
  580. package/build/system/workflows/mcp-query-router/activities.js +12 -0
  581. package/build/system/workflows/mcp-query-router/index.d.ts +13 -0
  582. package/build/system/workflows/mcp-query-router/index.js +107 -0
  583. package/build/system/workflows/mcp-query-router/prompts.d.ts +1 -0
  584. package/build/system/workflows/mcp-query-router/prompts.js +8 -0
  585. package/build/system/workflows/mcp-triage/index.d.ts +31 -0
  586. package/build/system/workflows/mcp-triage/index.js +222 -0
  587. package/build/system/workflows/mcp-triage/prompts.d.ts +7 -0
  588. package/build/system/workflows/mcp-triage/prompts.js +159 -0
  589. package/build/system/workflows/mcp-triage/response-builders.d.ts +17 -0
  590. package/build/system/workflows/mcp-triage/response-builders.js +96 -0
  591. package/build/system/workflows/mcp-triage/response.d.ts +8 -0
  592. package/build/system/workflows/mcp-triage/response.js +157 -0
  593. package/build/system/workflows/mcp-triage/types.d.ts +20 -0
  594. package/build/system/workflows/mcp-triage/types.js +3 -0
  595. package/build/system/workflows/mcp-triage-deterministic/activities.d.ts +4 -0
  596. package/build/system/workflows/mcp-triage-deterministic/activities.js +8 -0
  597. package/build/system/workflows/mcp-triage-deterministic/index.d.ts +12 -0
  598. package/build/system/workflows/mcp-triage-deterministic/index.js +83 -0
  599. package/build/system/workflows/mcp-triage-router/activities.d.ts +9 -0
  600. package/build/system/workflows/mcp-triage-router/activities.js +15 -0
  601. package/build/system/workflows/mcp-triage-router/index.d.ts +13 -0
  602. package/build/system/workflows/mcp-triage-router/index.js +122 -0
  603. package/build/tsconfig.tsbuildinfo +1 -0
  604. package/build/types/auth.d.ts +34 -0
  605. package/build/types/auth.js +2 -0
  606. package/build/types/config.d.ts +48 -0
  607. package/build/types/config.js +2 -0
  608. package/build/types/delegation.d.ts +41 -0
  609. package/build/types/delegation.js +2 -0
  610. package/build/types/discovery.d.ts +12 -0
  611. package/build/types/discovery.js +3 -0
  612. package/build/types/envelope.d.ts +53 -0
  613. package/build/types/envelope.js +2 -0
  614. package/build/types/escalation-strategy.d.ts +37 -0
  615. package/build/types/escalation-strategy.js +2 -0
  616. package/build/types/escalation.d.ts +39 -0
  617. package/build/types/escalation.js +21 -0
  618. package/build/types/events.d.ts +65 -0
  619. package/build/types/events.js +2 -0
  620. package/build/types/export.d.ts +78 -0
  621. package/build/types/export.js +11 -0
  622. package/build/types/index.d.ts +21 -0
  623. package/build/types/index.js +6 -0
  624. package/build/types/logger.d.ts +26 -0
  625. package/build/types/logger.js +2 -0
  626. package/build/types/maintenance.d.ts +24 -0
  627. package/build/types/maintenance.js +2 -0
  628. package/build/types/mcp.d.ts +80 -0
  629. package/build/types/mcp.js +2 -0
  630. package/build/types/oauth.d.ts +74 -0
  631. package/build/types/oauth.js +2 -0
  632. package/build/types/startup.d.ts +110 -0
  633. package/build/types/startup.js +2 -0
  634. package/build/types/task.d.ts +39 -0
  635. package/build/types/task.js +2 -0
  636. package/build/types/telemetry.d.ts +32 -0
  637. package/build/types/telemetry.js +2 -0
  638. package/build/types/tool-context.d.ts +68 -0
  639. package/build/types/tool-context.js +14 -0
  640. package/build/types/user.d.ts +18 -0
  641. package/build/types/user.js +2 -0
  642. package/build/types/workflow.d.ts +35 -0
  643. package/build/types/workflow.js +2 -0
  644. package/build/types/yaml-workflow.d.ts +101 -0
  645. package/build/types/yaml-workflow.js +5 -0
  646. package/build/vitest.config.d.ts +2 -0
  647. package/build/vitest.config.js +32 -0
  648. package/build/vitest.integration.config.d.ts +2 -0
  649. package/build/vitest.integration.config.js +25 -0
  650. package/build/workers/index.d.ts +6 -0
  651. package/build/workers/index.js +20 -0
  652. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js +2 -0
  653. package/dashboard/dist/assets/AdminDashboard-jfacvOC7.js.map +1 -0
  654. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js +2 -0
  655. package/dashboard/dist/assets/AvailableEscalationsPage-BglLDoT8.js.map +1 -0
  656. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js +2 -0
  657. package/dashboard/dist/assets/BotPicker-D6FYW1Gt.js.map +1 -0
  658. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js +2 -0
  659. package/dashboard/dist/assets/CollapsibleSection-Cxk4wvjT.js.map +1 -0
  660. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js +2 -0
  661. package/dashboard/dist/assets/ConfirmDeleteModal-FSXyKjaB.js.map +1 -0
  662. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js +2 -0
  663. package/dashboard/dist/assets/CopyableId-CBdxWfp8.js.map +1 -0
  664. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js +2 -0
  665. package/dashboard/dist/assets/CredentialsPage-Ikzsot0w.js.map +1 -0
  666. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js +2 -0
  667. package/dashboard/dist/assets/CustomDurationPicker-CAninCbl.js.map +1 -0
  668. package/dashboard/dist/assets/DataTable-BDn1WBHS.js +2 -0
  669. package/dashboard/dist/assets/DataTable-BDn1WBHS.js.map +1 -0
  670. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js +2 -0
  671. package/dashboard/dist/assets/EmptyState-2CmV-IaS.js.map +1 -0
  672. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js +2 -0
  673. package/dashboard/dist/assets/EscalationsOverview-GXYFPASS.js.map +1 -0
  674. package/dashboard/dist/assets/EventTable-B01oJf6Y.js +2 -0
  675. package/dashboard/dist/assets/EventTable-B01oJf6Y.js.map +1 -0
  676. package/dashboard/dist/assets/Field-DuFBAYhu.js +2 -0
  677. package/dashboard/dist/assets/Field-DuFBAYhu.js.map +1 -0
  678. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js +2 -0
  679. package/dashboard/dist/assets/FilterBar-Ck4K4rzu.js.map +1 -0
  680. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js +2 -0
  681. package/dashboard/dist/assets/McpOverview-JkvRcX2e.js.map +1 -0
  682. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js +2 -0
  683. package/dashboard/dist/assets/McpQueryDetailPage-CUMqhQdS.js.map +1 -0
  684. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js +2 -0
  685. package/dashboard/dist/assets/McpQueryPage-DRRhw4nN.js.map +1 -0
  686. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js +2 -0
  687. package/dashboard/dist/assets/McpRunDetailPage-CmPs5EvE.js.map +1 -0
  688. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js +2 -0
  689. package/dashboard/dist/assets/McpRunsPage-Dl5Y2u6k.js.map +1 -0
  690. package/dashboard/dist/assets/Modal-B4rbIVAn.js +2 -0
  691. package/dashboard/dist/assets/Modal-B4rbIVAn.js.map +1 -0
  692. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js +2 -0
  693. package/dashboard/dist/assets/OperatorDashboard-B56il28q.js.map +1 -0
  694. package/dashboard/dist/assets/PageHeader-CpWFly5S.js +2 -0
  695. package/dashboard/dist/assets/PageHeader-CpWFly5S.js.map +1 -0
  696. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js +2 -0
  697. package/dashboard/dist/assets/PriorityBadge-DfQY9St9.js.map +1 -0
  698. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js +2 -0
  699. package/dashboard/dist/assets/ProcessDetailPage-CMLq4M7D.js.map +1 -0
  700. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js +2 -0
  701. package/dashboard/dist/assets/ProcessesListPage-CZ_HF06v.js.map +1 -0
  702. package/dashboard/dist/assets/RolePill-BTPa8L-P.js +2 -0
  703. package/dashboard/dist/assets/RolePill-BTPa8L-P.js.map +1 -0
  704. package/dashboard/dist/assets/RolesPage-9grZW7yR.js +2 -0
  705. package/dashboard/dist/assets/RolesPage-9grZW7yR.js.map +1 -0
  706. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js +2 -0
  707. package/dashboard/dist/assets/RowActions-Dg-Fsm5O.js.map +1 -0
  708. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js +4 -0
  709. package/dashboard/dist/assets/SimpleMarkdown-CBlvaWP4.js.map +1 -0
  710. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +2 -0
  711. package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +1 -0
  712. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js +2 -0
  713. package/dashboard/dist/assets/StatusBadge-TlC4jiig.js.map +1 -0
  714. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js +2 -0
  715. package/dashboard/dist/assets/StickyPagination-F9FZsRy9.js.map +1 -0
  716. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js +2 -0
  717. package/dashboard/dist/assets/SwimlaneTimeline-7SiwATsZ.js.map +1 -0
  718. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js +2 -0
  719. package/dashboard/dist/assets/TaskDetailPage-CbPVTakt.js.map +1 -0
  720. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js +2 -0
  721. package/dashboard/dist/assets/TaskQueuePill-awmtb0qw.js.map +1 -0
  722. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js +2 -0
  723. package/dashboard/dist/assets/TasksListPage-C_QF23c1.js.map +1 -0
  724. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js +2 -0
  725. package/dashboard/dist/assets/TimeAgo-UPG6DoH8.js.map +1 -0
  726. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js +2 -0
  727. package/dashboard/dist/assets/TimestampCell-DoWMKg6w.js.map +1 -0
  728. package/dashboard/dist/assets/UserName-DaP4YAKr.js +2 -0
  729. package/dashboard/dist/assets/UserName-DaP4YAKr.js.map +1 -0
  730. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js +5 -0
  731. package/dashboard/dist/assets/VersionHistory-Bt7WBr6m.js.map +1 -0
  732. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js +2 -0
  733. package/dashboard/dist/assets/WorkflowExecutionPage-DjtAQ3hy.js.map +1 -0
  734. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js +2 -0
  735. package/dashboard/dist/assets/WorkflowPill-CCDSVaQj.js.map +1 -0
  736. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js +2 -0
  737. package/dashboard/dist/assets/WorkflowsDashboard-D8z9uBNB.js.map +1 -0
  738. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js +2 -0
  739. package/dashboard/dist/assets/WorkflowsOverview-D9OzzQqw.js.map +1 -0
  740. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js +3 -0
  741. package/dashboard/dist/assets/YamlWorkflowDetailPage-DrDvvP62.js.map +1 -0
  742. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js +2 -0
  743. package/dashboard/dist/assets/YamlWorkflowsPage-COqiNCQK.js.map +1 -0
  744. package/dashboard/dist/assets/bots-BkKVMbUW.js +2 -0
  745. package/dashboard/dist/assets/bots-BkKVMbUW.js.map +1 -0
  746. package/dashboard/dist/assets/constants-CgaZfe5d.js +2 -0
  747. package/dashboard/dist/assets/constants-CgaZfe5d.js.map +1 -0
  748. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js +2 -0
  749. package/dashboard/dist/assets/escalation-columns-D6aqStaY.js.map +1 -0
  750. package/dashboard/dist/assets/escalation-qalymbKB.js +2 -0
  751. package/dashboard/dist/assets/escalation-qalymbKB.js.map +1 -0
  752. package/dashboard/dist/assets/format-gXZXQ-HJ.js +2 -0
  753. package/dashboard/dist/assets/format-gXZXQ-HJ.js.map +1 -0
  754. package/dashboard/dist/assets/helpers-0gSleuzT.js +2 -0
  755. package/dashboard/dist/assets/helpers-0gSleuzT.js.map +1 -0
  756. package/dashboard/dist/assets/index-BWvMHed7.js +6 -0
  757. package/dashboard/dist/assets/index-BWvMHed7.js.map +1 -0
  758. package/dashboard/dist/assets/index-BaszoPO_.css +1 -0
  759. package/dashboard/dist/assets/index-Cn2jyj9A.js +2 -0
  760. package/dashboard/dist/assets/index-Cn2jyj9A.js.map +1 -0
  761. package/dashboard/dist/assets/index-D8VH6K8B.js +54 -0
  762. package/dashboard/dist/assets/index-D8VH6K8B.js.map +1 -0
  763. package/dashboard/dist/assets/index-D9SYwJsi.js +3 -0
  764. package/dashboard/dist/assets/index-D9SYwJsi.js.map +1 -0
  765. package/dashboard/dist/assets/index-DTPzZr_X.js +2 -0
  766. package/dashboard/dist/assets/index-DTPzZr_X.js.map +1 -0
  767. package/dashboard/dist/assets/index-D_6AB5BE.js +2 -0
  768. package/dashboard/dist/assets/index-D_6AB5BE.js.map +1 -0
  769. package/dashboard/dist/assets/index-S9Ks2Lj2.js +2 -0
  770. package/dashboard/dist/assets/index-S9Ks2Lj2.js.map +1 -0
  771. package/dashboard/dist/assets/index-X85K5bHC.js +17 -0
  772. package/dashboard/dist/assets/index-X85K5bHC.js.map +1 -0
  773. package/dashboard/dist/assets/index-rjmgHlSH.js +2 -0
  774. package/dashboard/dist/assets/index-rjmgHlSH.js.map +1 -0
  775. package/dashboard/dist/assets/mcp-blCW6IL7.js +2 -0
  776. package/dashboard/dist/assets/mcp-blCW6IL7.js.map +1 -0
  777. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js +2 -0
  778. package/dashboard/dist/assets/mcp-query-DoAyPbjC.js.map +1 -0
  779. package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js +2 -0
  780. package/dashboard/dist/assets/mcp-runs-ChPbpvXK.js.map +1 -0
  781. package/dashboard/dist/assets/namespaces-BgbaC3ow.js +2 -0
  782. package/dashboard/dist/assets/namespaces-BgbaC3ow.js.map +1 -0
  783. package/dashboard/dist/assets/roles-ZNrqqnQl.js +2 -0
  784. package/dashboard/dist/assets/roles-ZNrqqnQl.js.map +1 -0
  785. package/dashboard/dist/assets/settings-eBRSE0mQ.js +2 -0
  786. package/dashboard/dist/assets/settings-eBRSE0mQ.js.map +1 -0
  787. package/dashboard/dist/assets/tasks-tRqClPns.js +2 -0
  788. package/dashboard/dist/assets/tasks-tRqClPns.js.map +1 -0
  789. package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js +2 -0
  790. package/dashboard/dist/assets/useFilterParams-BaXUAkYK.js.map +1 -0
  791. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js +2 -0
  792. package/dashboard/dist/assets/useNatsEvents-Xr43X1fG.js.map +1 -0
  793. package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js +2 -0
  794. package/dashboard/dist/assets/useYamlActivityEvents-BO51u8tm.js.map +1 -0
  795. package/dashboard/dist/assets/users-tMvNyOo8.js +2 -0
  796. package/dashboard/dist/assets/users-tMvNyOo8.js.map +1 -0
  797. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js +292 -0
  798. package/dashboard/dist/assets/vendor-icons-ZTAKVwGc.js.map +1 -0
  799. package/dashboard/dist/assets/vendor-query-B2UbickB.js +18 -0
  800. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +1 -0
  801. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js +22 -0
  802. package/dashboard/dist/assets/vendor-react-Cw8Gy8NJ.js.map +1 -0
  803. package/dashboard/dist/assets/workflows-Cc4VHcrp.js +2 -0
  804. package/dashboard/dist/assets/workflows-Cc4VHcrp.js.map +1 -0
  805. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js +2 -0
  806. package/dashboard/dist/assets/yaml-workflows-BL4V5CQy.js.map +1 -0
  807. package/dashboard/dist/index.html +20 -0
  808. package/dashboard/dist/logo512.png +0 -0
  809. package/package.json +96 -0
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"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,UAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,SAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,SAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,WAAY,UAAU,EAC9B,IAAIA,EAAI,UAAY,SAAU,EAC9B,IAAIA,EAAI,UAAY,UAAU,E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","names":["push","heap","node","index","a","parentIndex","parent","compare","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","b","diff","exports","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","currentTime","timer","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","callback","continuationCallback","channel","port","ms","task","fps","eventHandler","priorityLevel","options","timeout","parentPriorityLevel","schedulerModule","require$$0","Scheduler","React","require$$1","ReactDOM","require$$2","formatProdErrorMessage","code","url","i","isValidContainer","getNearestMountedFiber","fiber","nearestMounted","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","assign","REACT_LEGACY_ELEMENT_TYPE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","REACT_MEMO_CACHE_SENTINEL","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","REACT_CLIENT_REFERENCE","getComponentNameFromType","type","innerType","isArrayImpl","ReactSharedInternals","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","defaultValue","cursor","value","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","context","JSCompiler_inline_result","popHostContext","HostTransitionContext","prefix","suffix","describeBuiltInComponentFrame","name","x","match","reentry","describeNativeComponentFrame","fn","construct","previousPrepareStackTrace","RunInRootFrame","Fake","control","x$1","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","workInProgress","info","previous","hasOwnProperty","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","root","wipLanes","rootHasPendingCommit","pendingLanes","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markRootFinished","finishedLanes","remainingLanes","spawnedLane","updatedLanes","suspendedRetryLanes","previouslyPendingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","markSpawnedDeferredLane","entangledLanes","spawnedLaneIndex","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","priority","previousPriority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","inst","getResourcesFromRoot","resources","markNodeAsHoistable","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registrationName","dependencies","registerDirectEvent","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","valueField","currentValue","descriptor","get","set","track","updateValueIfChanged","tracker","lastValue","getActiveElement","doc","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","element","lastDefaultValue","checked","defaultChecked","setDefaultValue","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","children","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","style","styleName","isCustomProperty","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","target","internalInstance","props","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","propName","event","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","DragEventInterface","SyntheticDragEvent","FocusEventInterface","SyntheticFocusEvent","AnimationEventInterface","SyntheticAnimationEvent","ClipboardEventInterface","SyntheticClipboardEvent","CompositionEventInterface","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","KeyboardEventInterface","key","SyntheticKeyboardEvent","PointerEventInterface","SyntheticPointerEvent","TouchEventInterface","SyntheticTouchEvent","TransitionEventInterface","SyntheticTransitionEvent","WheelEventInterface","SyntheticWheelEvent","ToggleEventInterface","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$286","isSupported$jscomp$inline_427","element$jscomp$inline_428","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","offset","nodeEnd","containsNode","outerNode","innerNode","getActiveElementDeep","containerInfo","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","reportGlobalError","error","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","Component","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","owner","fiberTag","isHostHoistableType","createFiberFromFragment","elements","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","source","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","providerFiber","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","contexts","forcePropagateEntireTree","list","nextFiber","dependency","propagateParentContextChanges","isInsidePropagationBailout","currentParent","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","signal","listener","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","transition","thenable","entangledListeners","requestTransitionLane","resolve","pingEngtangledActionScope","chainThenableValue","result","thenableWithOverride","prevOnStartTransitionFinish","returnValue","globalMostRecentTransitionTime","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","offscreenWorkInProgress","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledValue","fulfilledThenable","rejectedThenable","suspendedThenable","resolveLazy","lazyType","init","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","returnFiber","newChild","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","child","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","clone","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","instance$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","newState","isHiddenUpdate","workInProgressRootRenderLanes","workInProgressRootSkippedLanes","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","row","state","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","secondArg","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","usable","useMemoCache","size","memoCache","array","basicStateReducer","action","updateReducer","reducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$60","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialState","initialStateInitializer","updateOptimisticImpl","passthrough","dispatchActionState","actionQueue","setPendingState","setState","payload","isRenderPhaseUpdate","actionNode","runActionStateAction","prevState","prevTransition","currentTransition","onStartTransitionFinish","handleActionReturnValue","onActionError","error$66","nextState","onActionSuccess","notifyActionListeners","actionStateReducer","oldState","mountActionState","initialStateProp","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","stateHook","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","create","deps","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","ref","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","initialValue","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","thenableForFinishedState","dispatchSetStateInternal","requestUpdateLane","noop","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$69","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","initialArg","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","ctor","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","oldProps","newProps","nextContext","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$73","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","e$74","logCaughtError","boundary","onCaughtError","e$75","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","nextPrimaryChildren","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","digest","primaryChildren","offscreenProps","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","isBackwards","tail","lastContentRow","tailMode","renderState","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","attemptEarlyBailoutIfNoScheduledUpdate","state$102","didSuspendBefore","beginWork","$$typeof","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$106","bubbleProperties","completedWork","didBailout","newChildLanes","subtreeFlags","child$107","completeWork","nextResource","ownerDocument","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","flags","finishedWork","lastEffect","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","destroy","nearestMountedAncestor","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$140","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","nextEffect","commitBeforeMutationEffects","eventsEnabled","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","error$139","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","maybeNodes","getHydratableHoistableCache","mountHoistable","acquireResource","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","wasHidden","prevOffscreenSubtreeIsHidden","recursivelyTraverseDisappearLayoutEffects","display","hideOrUnhideDehydratedBoundary","hostParentFiber","parent$141","before$142","parent$143","before$144","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","suspendedState","accumulateSuspenseyCommitOnFiber","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","workInProgressTransitions","pendingEffectsStatus","pendingEffectsRoot","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","commitRootWhenReady","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","timeoutOffset","waitForCommitToBeReady","commitRoot","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","allEntangledLanes","index$4","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","shouldYieldForPrerendering","prevExecutionContext","unitOfWork","reason","throwAndUnwindWorkLoop","workLoopSync","thrownValue$165","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$167","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","scheduleCallback$1","flushPassiveEffects","flushMutationEffects","flushLayoutEffects","flushSpawnedWork","rootMutationHasEffect","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","rootHasLayoutEffect","releaseRootPooledCache","onRecoverableError","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","retryLane","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$170","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","prev","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","createFormDataWithSubmitter","form","submitter","temp","extractEvents$1","maybeTargetInst","i$jscomp$inline_1577","eventName$jscomp$inline_1578","domEventName$jscomp$inline_1579","capitalizedEvent$jscomp$inline_1580","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","container","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","getParent","tempB","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","targetFiber","captureName","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$184","lastProps","lastProp","propKey$201","propKey$217","propKey$222","propKey$227","propKey$232","isLikelyStaticResource","initiatorType","estimateBandwidth","count","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","currentPopstateTransitionEvent","localPromise","handleErrorInNextTick","parentInstance","hydrationInstance","depth","nextNode","node$jscomp$0","nextNode$jscomp$0","suspenseInstance","anyProps","nodeType","data","targetInstance","rootContainerInstance","preloadPropsMap","preconnectsSet","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","rel","href","crossOrigin","limitedEscapedHref","as","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","link","reject","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","styles$243","resource$244","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","styleProps","instance$249","linkInstance","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","hostContext","onUnsuspend","estimatedBytesWithinLimit","insertSuspendedStylesheets","commit","stylesheetTimer","unsuspend","imgTimer","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","onDefaultTransitionIndicator","formState","createFiberRoot","initialChildren","hydrationCallbacks","isStrictMode","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","pendingResolve","handleNavigateComplete","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_1840","componentOrElement","internals$jscomp$inline_2347","hook$jscomp$inline_2348","reactDomClient_production","checkDCE","err","clientModule","decodeJwtPayload","token","parts","getTokenExpiry","isTokenExpired","bufferSeconds","exp","BASE_URL","authToken","setToken","getToken","tryRefresh","creds","username","password","res","refreshPromise","apiFetch","path","headers","newToken","body","AuthContext","createContext","REFRESH_BUFFER_SECONDS","userFromToken","userInfo","saved","raw","AuthProvider","user","setUser","useState","refreshTimerRef","useRef","scheduleRefresh","useCallback","msUntilRefresh","login","credentials","parsed","logout","useEffect","handleUnauthorized","handleRefreshed","e","_a","isSuperAdmin","r","hasRole","role","hasRoleType","userRoleNames","jsx","useAuth","ctx","useContext","Empty","TE","TD","concat","bufs","max","out","encode","decode","digits","base","maxSeq","minInc","maxInc","totalLen","_getRandomValues","fillRandom","Nuid","__publicField","cbuf","di","nuid","Events","DebugEvents","ErrorCode","isNatsError","Messages","s","messages","NatsError","message","chainedError","m","Match","RequestStrategy","ServiceResponseType","ServiceErrorHeader","ServiceErrorCodeHeader","ServiceError","msg","scode","description","_b","createInbox","v","DEFAULT_HOST","ServiceVerb","extend","o","k","render","asyncTraces","methods","p","_resolve","delay","deferred","shuffle","j","jitter","n","backoff","policy","attempt","nanos","millis","ns","canonicalMIMEHeaderKey","upper","buf","c","MsgHdrsImpl","HEADER","mh","vv","aa","lines","h","str","idx","keys","sk","lci","ck","values","StringCodec","d","JSONCodec","reviver","isRequestError","MsgImpl","publisher","opts","subj","reply","payloadAndHeaders","validateDurableName","minValidation","validateStreamName","validateName","validName","RE","isFlowControlMsg","isHeartbeatMsg","newJsErrorMsg","subject","arg","checkJsError","checkJsErrorCode","Js409Errors","isTerminal409","ec","QueuedIteratorImpl","ingest","protocol","yields","IdleHeartbeatMonitor","interval","cb","cancelAfter","maxOut","RetentionPolicy","DiscardPolicy","StorageType","DeliverPolicy","AckPolicy","ReplayPolicy","StoreCompression","ConsumerApiAction","defaultConsumer","AdvisoryKind","JsHeaders","KvWatchInclude","DirectMsgHeaders","RepublishHeaders","kvPrefix","ConsumerOptsBuilderImpl","seq","time","stream","durable","consumerOpts","isConsumerOptsBuilder","Base64Codec","bytes","binary","bin","Base64UrlPaddedCodec","b64str","DataBuffer","t","E","S","T","N","f","u","l","w","A","g","J","parseSha256","toByteArray","isHex","isAllUpperCase","isAllLowerCase","isBase64","detectEncoding","input","hexToByteArray","base64ToByteArray","sbin","checkSha256","aBytes","bBytes","BaseRequest","mux","requestSubject","RequestMany","RequestOne","defaultPrefix","defaultJsOptions","BaseApiClient","nc","retries","bo","ne","q","names","ListerImpl","filter","jsm","_c","page","item","parseSemVer","Feature","Features","requires","ConsumerAPIImpl","cfg","cr","nci","min","newAPI","consumerName","ok","fs","ci","changable","until","checkFn","required","TypedSubscription","uh","jer","tm","sopts","transportConfig","setTransportFactory","config","defaultPort","getUrlParseFn","newTransport","getResolveFn","CR_LF","CRLF","CR","LF","protoLen","ba","extractProtocolMessage","len","IPv4LEN","ASCII0","ASCIIA","ASCIIa","ipV4","ip","isIP","parseIP","parseIPv4","parseIPv6","dtoi","ellipsis","xtoi","ip4","isIPV4OrHostname","hp","isIPV6","filterIpv6MappedToIpv4","hostPort","op","hostname","ServerImpl","gossiped","ips","proto","ss","Servers","listens","urlParseFn","cs","implicit","server","encrypted","added","deleted","discovered","toDelete","removed","MuxSubscription","isMuxPermissionError","req","Heartbeat","ph","stale","ping","AssertionError","assert","cond","MIN_READ","MAX_SIZE","copy","dst","off","DenoBuffer","ab","nread","tmp","shouldGrow","Kind","newMsgArg","ma","ASCII_0","Parser","State","cc","toCopy","avail","args","label","nacl","u64","gf","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","L32","ld32","dl64","st32","ts64","vn","xi","yi","crypto_verify_16","crypto_verify_32","core","inp","crypto_core_salsa20","crypto_core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","z","crypto_stream_salsa20","crypto_stream","crypto_stream_xor","add1305","minusp","crypto_onetimeauth","outpos","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","Z","M","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","crypto_box_afternm","crypto_box_open_afternm","crypto_box","crypto_box_open","add64","m16","shr64","xor64","R","c1","Ch","Maj","Sigma0","Sigma1","sigma0","sigma1","K","crypto_hashblocks","pos","iv","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","seeded","L","modL","carry","reduce","crypto_sign","sm","smlen","unpackneg","chk","num","den","den2","den4","den6","crypto_sign_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","checkLengths","checkBoxLengths","checkArrayTypes","cleanup","arr","nonce","box","publicKey","secretKey","signedMsg","mlen","sig","seed","crypto1","QUOTA","NKeysErrorCode","Prefix","multiAuthenticator","authenticators","auth","noAuthFn","usernamePasswordAuthenticator","pass","tokenAuthenticator","DEFAULT_PING_INTERVAL","DEFAULT_MAX_PING_OUT","DEFAULT_RECONNECT_TIME_WAIT","defaultOptions","buildAuthenticator","parseOptions","dhp","extra","checkOptions","tlsRequired","tlsAvailable","tls","FLUSH_THRESHOLD","INFO","PONG_CMD","PING_CMD","Connect","transport","SubscriptionImpl","uc","ingestion","dispatched","Subscriptions","sid","subs","sub","ProtocolHandler","servers","pongs","status","iter","pong","_err","srv","cp","alts","lastErr","lastError","wait","maxWait","mra","qm","updates","version","lang","cmd","payloads","hlen","cmds","promises","inbox","ServiceApiPrefix","ServiceMsgImpl","ServiceGroupImpl","validInternalToken","ServiceImpl","sg","metadata","validSubjectName","tokens","verb","pre","se","internal","sv","NamedEndpointStatsImpl","endpoints","kind","endpoint","jc","statsHandler","infoHandler","pingHandler","qi","qii","average_processing_time","num_errors","num_requests","processing_time","last_error","ServiceClientImpl","responses","NoopKvCodecs","defaultBucketOpts","kvOperationHdr","kvSubjectPrefix","validKeyRe","validSearchKey","validBucketRe","validateKey","validateSearchKey","hasWildcards","chunks","validateBucket","PubHeaders","Bucket","bucket","js","sc","location","mirror","sources","srcBucketName","have","discardNew","direct","mb","edit","builder","ekey","slen","KvStoredEntryImpl","jm","KvJsMsgEntryImpl","firstErr","rev","ek","ke","olderMillis","done","proms","purged","pv","cv","filter_subjects","deliver_policy","filter_subject","co","copts","expect","ignoreDeletes","cluster","bn","si","KvStatusImpl","osPrefix","digestType","objectStoreStreamName","objectStoreBucketName","ObjectStoreStatusImpl","convertStreamSourceDomain","domain","PullConsumerType","ConsumerEvents","ConsumerDebugEvents","ACK","NAK","WPI","NXT","TERM","SPACE","toJsMsg","ackTimeout","JsMsgImpl","PullConsumerMessagesImpl","refilling","max_messages","max_bytes","idle_heartbeat","threshold_bytes","threshold_messages","_d","msgsLeft","bytesLeft","batch","notFound","streamNotFound","to","de","expires","discard","minMsgs","minBytes","OrderedConsumerMessages","PullConsumerImpl","api","fopts","stream_name","cached","OrderedPullConsumerImpl","isNew","_e","serial","dseq","fromFetch","orderedReset","msgs","msgsImpl","tf","ConsumersImpl","fv","impl","StreamAPIImpl","_si","StreamImpl","asi","query","erase","validateStreamSource","old","total","limit","infos","paged","subjects","listerFilter","slr","keep","dr","StoredMsgImpl","kvStreams","objStreams","DirectStreamAPIImpl","qq","last_by_subj","dm","DirectMsgImpl","gotFirst","badServer","badRequest","JetStreamManagerImpl","smr","hd","bs","StreamsImpl","ObjectInfoImpl","oi","toServerObjectStoreMeta","meta","mhi","emptyReadableStream","ObjectStoreImpl","obj","soi","rs","jsopts","previousRevision","maxPayload","maxChunk","chunkSubj","metaSubj","db","reader","sha","pa","readableStreamFrom","controller","fromReadableStream","vs","ln","oc","osi","dest","mm","ii","ack","initialized","max_age","os","ViewsImpl","jsi","JetStreamClientImpl","checkAPI","ro","retry_delay","pullOpts","trackBytes","receivedBytes","monitor","hb","wants","received","_ingest","hideNonTerminalJsErrors","cso","ackPolicy","so","JetStreamPullSubscriptionImpl","JetStreamSubscriptionImpl","qn","rqn","msgAdapter","jsmi","autoAckJsMsg","ordered","jsub","jmi","NatsConnectionImpl","pub","stop","cancel","clearTimers","rmo","errCtx","adm","ServicesFactory","prefixLen","sseq","newDeliver","jinfo","nerr","rm","lastDelivered","iterator","iterMsgAdapter","cbMsgAdapter","parseInfo","trace","reqOpts","term","VERSION","LANG","WsTransport","connLock","socket","me","pm","evt","wsUrlParseFn","srcProto","host","search","connect","NATS_WS_URL","NATS_TOKEN","NATS_SUBJECT_PREFIX","subjectMatchesPattern","pattern","subjectTokens","patternTokens","pt","EventContext","useEventStatus","connected","useEventSubscription","handlerRef","NatsContext","NatsProvider","ncRef","subRef","setConnected","reconnectTimer","listenersRef","dispatchToListeners","handlers","connectNats","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","isView","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","toArray","TEXT_ENCODER","encodePacketToBinary","packet","encoded","chars","lookup","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","arraybuffer","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","decoded","SEPARATOR","encodePayload","packets","encodedPackets","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","payloadLength","header","view","TEXT_DECODER","totalLength","acc","chunk","concatChunks","buffer","createPacketDecoderStream","expectedLength","isBinary","headerArray","Emitter","mixin","on","nextTick","setTimeoutFn","globalThisShim","defaultBinaryType","pick","attr","NATIVE_SET_TIMEOUT","globalThis","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","BASE64_OVERHEAD","byteLength","utf8Length","randomString","qs","qry","pairs","pair","TransportError","Transport","details","onPause","schema","encodedQuery","Polling","pause","close","hasCORS","empty","BaseXHR","isSSL","xhrStatus","Request","createRequest","uri","xhr","fromError","unloadHandler","terminationEvent","hasXHR2","newRequest","XHR","forceBase64","xdomain","isReactNative","BaseWS","protocols","closeEvent","ev","lastPacket","WebSocketCtor","WS","_packet","WT","decoderStream","encoderStream","read","transports","re","parse","pathNames","queryKey","regx","$0","$1","$2","withEventListeners","OFFLINE_EVENT_LISTENERS","SocketWithoutUpgrade","parsedUri","transportName","payloadSize","hasExpired","cleanupAndClose","waitForUpgrade","SocketWithUpgrade","failed","onTransportOpen","freezeTransport","onerror","onTransportClose","onclose","onupgrade","upgrades","filteredUpgrades","DEFAULT_TRANSPORTS","loc","toString","withNativeFile","hasBinary","toJSON","deconstructPacket","buffers","packetData","_deconstructPacket","placeholder","newData","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","replacer","deconstruction","Decoder","isBinaryEvent","BinaryReconstructor","isInteger","isObject","binData","Socket","io","nsp","isTransportWritable","isConnected","arg1","arg2","responseArgs","force","self","sent","pid","subDestroy","compress","Backoff","rand","deviation","Manager","_parser","parser","Engine","openSubDestroy","onError","errorSub","nsps","sameNamespace","newConnection","SocketIOContext","SocketIOProvider","socketRef","EventTransportProvider","setTransport","cancelled","detect","SidebarContext","STORAGE_KEY","SidebarProvider","collapsed","setCollapsed","toggle","useSidebar","useEscalationStats","period","params","useQuery","useEscalationTypes","useEscalations","filters","useEscalationsByWorkflowId","workflowId","useEscalation","useClaimEscalation","queryClient","useQueryClient","useMutation","durationMinutes","useReleaseEscalation","useResolveEscalation","resolverPayload","useEscalateToRole","targetRole","useSetEscalationPriority","ids","useBulkClaimEscalations","useBulkAssignEscalations","targetUserId","useBulkEscalateToRole","useBulkTriageEscalations","hint","useMyEscalationCount","userId","qc","NatsStatus","className","onClick","jsxs","Radio","AppLogo","hideLabel","isLarge","imgClass","textClass","Header","onToggleEventFeed","pendingCount","menuOpen","setMenuOpen","menuRef","Link","Inbox","User","Collapsible","open","setRender","getLinkClass","isActive","active","inactive","getSubLinkClass","NavGroupSection","group","pathname","useLocation","isChildActive","expanded","setExpanded","Fragment","NavLink","isGroup","NavItemLink","entryPath","entrySearch","cls","SidebarNav","heading","entries","Users","Tag","Wrench","Activity","AdminSidebar","Settings","Play","UserCheck","ListChecks","EngineerSidebar","Server","Workflow","Wand2","McpSidebar","SectionLabel","TreeIcon","CodeIcon","CopyIcon","CheckIcon","CollapseIcon","ExpandIcon","JsonNode","generation","defaultCollapsed","lastGen","setLastGen","TreeNode","isLeaf","JsonViewer","variant","defaultMode","setMode","copied","setCopied","setGeneration","isGlobalCollapsed","toggleGlobalCollapse","handleCopy","iconBtn","isPanel","wrapperClass","contentClass","MAX_EVENTS","DEDUP_WINDOW_MS","counter","TYPE_COLORS","EventRow","color","EventFeed","onToggle","setEvents","scrollRef","recentRef","fingerprint","lastSeen","ts","ChevronDown","ChevronUp","Eraser","ShellLayout","feedOpen","setFeedOpen","contentRef","el","PanelLeftOpen","PanelLeftClose","Outlet","Shell","isAuthenticated","Navigate","OAuthIcon","fetchOAuthProviders","disconnectOAuthProvider","useOAuthConnections","useDisconnectOAuth","LoginPage","navigate","useNavigate","oauthToken","oauthError","returnTo","oauthHandled","setUsername","setPassword","setError","loading","setLoading","launched","setLaunched","oauthProviders","setOauthProviders","handleSubmit","ConnectAnthropicPage","setLabel","submitting","setSubmitting","isOAuthToken","isApiKey","trimmed","callbackUrl","RequireRole","roleTypes","roleNames","redirectTo","ProcessesListPage","lazy","ProcessDetailPage","McpOverview","McpRunsPage","McpRunDetailPage","McpQueryPage","McpQueryDetailPage","__vitePreload","EscalationsOverview","AvailableEscalationsPage","OperatorDashboard","EscalationDetailPage","WorkflowsOverview","StartWorkflowPage","DurableInvokePage","DurableExecutionsPage","CertifiedExecutionsPage","YamlWorkflowsPage","YamlWorkflowDetailPage","TasksListPage","TaskDetailPage","WorkflowExecutionPage","AdminDashboard","WorkersPage","WorkflowConfigsPage","WorkflowConfigDetailPage","McpServersPage","UsersPage","RolesPage","MaintenancePage","ControlPlanePage","CredentialsPage","PageLoader","Lazy","Suspense","QueryClient","failureCount","router","createBrowserRouter","App","QueryClientProvider","RouterProvider","createRoot","StrictMode"],"ignoreList":[0,1,2,3,7,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"sources":["../../node_modules/scheduler/cjs/scheduler.production.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom-client.production.js","../../node_modules/react-dom/client.js","../../src/lib/jwt.ts","../../src/api/client.ts","../../src/hooks/useAuth.tsx","../../node_modules/nats.ws/esm/nats.js","../../src/lib/nats/config.ts","../../src/lib/events/matching.ts","../../src/hooks/useEventContext.tsx","../../src/hooks/useNats.tsx","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/lib/esm/index.js","../../node_modules/engine.io-client/build/esm/globals.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/webtransport.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/hooks/useSocketIO.tsx","../../src/hooks/useEventTransport.tsx","../../src/hooks/useSidebar.tsx","../../src/api/escalations.ts","../../src/hooks/useMyEscalationCount.ts","../../src/components/common/display/NatsStatus.tsx","../../src/components/common/display/AppLogo.tsx","../../src/components/layout/Header.tsx","../../src/components/common/layout/Collapsible.tsx","../../src/components/layout/SidebarNav.tsx","../../src/components/layout/AdminSidebar.tsx","../../src/components/layout/EngineerSidebar.tsx","../../src/components/layout/McpSidebar.tsx","../../src/components/common/layout/SectionLabel.tsx","../../src/components/common/data/JsonViewerIcons.tsx","../../src/components/common/data/JsonViewer.tsx","../../src/components/layout/EventFeed.tsx","../../src/components/layout/Shell.tsx","../../src/components/common/OAuthIcon.tsx","../../src/api/oauth.ts","../../src/pages/LoginPage.tsx","../../src/pages/ConnectAnthropicPage.tsx","../../src/components/layout/RequireRole.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.4\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.4\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.4\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.4\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","export function decodeJwtPayload(token: string): Record<string, unknown> | null {\n try {\n const parts = token.split('.');\n if (parts.length !== 3) return null;\n const payload = atob(parts[1].replace(/-/g, '+').replace(/_/g, '/'));\n return JSON.parse(payload);\n } catch {\n return null;\n }\n}\n\n/**\n * Return the `exp` claim (Unix seconds) from a JWT, or null if absent/invalid.\n */\nexport function getTokenExpiry(token: string): number | null {\n const payload = decodeJwtPayload(token);\n if (!payload || typeof payload.exp !== 'number') return null;\n return payload.exp;\n}\n\n/**\n * Check whether a JWT is expired (or will expire within `bufferSeconds`).\n * Returns true if the token is expired or cannot be decoded.\n */\nexport function isTokenExpired(token: string, bufferSeconds = 0): boolean {\n const exp = getTokenExpiry(token);\n if (exp === null) return true;\n return Date.now() / 1000 >= exp - bufferSeconds;\n}\n","import { isTokenExpired } from '../lib/jwt';\n\nconst BASE_URL = '/api';\n\nlet authToken: string | null = null;\n\nexport function setToken(token: string | null) {\n authToken = token;\n}\n\nexport function getToken(): string | null {\n return authToken;\n}\n\n/**\n * Try to silently refresh the JWT using stored credentials.\n * Returns the new token on success, null on failure.\n */\nasync function tryRefresh(): Promise<string | null> {\n const creds = sessionStorage.getItem('lt_credentials');\n if (!creds) return null;\n\n try {\n const { username, password } = JSON.parse(creds);\n const res = await fetch(`${BASE_URL}/auth/login`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ username, password }),\n });\n if (!res.ok) return null;\n const data = await res.json();\n if (data.token && data.user) {\n sessionStorage.setItem('lt_user_info', JSON.stringify({\n displayName: data.user.display_name,\n username: data.user.external_id,\n }));\n }\n return data.token ?? null;\n } catch {\n return null;\n }\n}\n\n// Dedup concurrent refresh attempts\nlet refreshPromise: Promise<string | null> | null = null;\n\nexport async function apiFetch<T>(\n path: string,\n options: RequestInit = {},\n): Promise<T> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n ...(options.headers as Record<string, string>),\n };\n\n if (authToken) {\n // Proactive check: if the token is already expired client-side,\n // skip the network round-trip and go straight to refresh/logout.\n if (isTokenExpired(authToken)) {\n if (!refreshPromise) {\n refreshPromise = tryRefresh().finally(() => { refreshPromise = null; });\n }\n const newToken = await refreshPromise;\n if (newToken) {\n authToken = newToken;\n window.dispatchEvent(new CustomEvent('auth:refreshed', { detail: { token: newToken } }));\n } else {\n window.dispatchEvent(new CustomEvent('auth:unauthorized'));\n throw new Error('Session expired');\n }\n }\n headers['Authorization'] = `Bearer ${authToken}`;\n }\n\n let res = await fetch(`${BASE_URL}${path}`, {\n ...options,\n headers,\n });\n\n // On 401/403, try a silent token refresh and retry once\n if ((res.status === 401 || res.status === 403) && authToken) {\n if (!refreshPromise) {\n refreshPromise = tryRefresh().finally(() => { refreshPromise = null; });\n }\n const newToken = await refreshPromise;\n\n if (newToken) {\n // Update immediately so concurrent requests pick up the new token\n authToken = newToken;\n window.dispatchEvent(new CustomEvent('auth:refreshed', { detail: { token: newToken } }));\n headers['Authorization'] = `Bearer ${newToken}`;\n res = await fetch(`${BASE_URL}${path}`, { ...options, headers });\n }\n\n if (res.status === 401 || res.status === 403) {\n // Refresh failed or retry still unauthorized — force logout\n window.dispatchEvent(new CustomEvent('auth:unauthorized'));\n throw new Error('Session expired');\n }\n } else if (res.status === 401) {\n window.dispatchEvent(new CustomEvent('auth:unauthorized'));\n throw new Error('Session expired');\n }\n\n if (!res.ok) {\n const body = await res.json().catch(() => ({ error: res.statusText }));\n throw new Error(body.message || body.error || res.statusText);\n }\n\n return res.json();\n}\n","import {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n useRef,\n type ReactNode,\n} from 'react';\nimport { setToken } from '../api/client';\nimport { decodeJwtPayload, getTokenExpiry, isTokenExpired } from '../lib/jwt';\nimport type { LTUserRole, LTRoleType } from '../api/types';\n\ninterface AuthUser {\n userId: string;\n displayName: string | null;\n username: string | null;\n roles: LTUserRole[];\n}\n\ninterface LoginUserInfo {\n displayName?: string | null;\n username?: string | null;\n}\n\ninterface AuthContextValue {\n user: AuthUser | null;\n isAuthenticated: boolean;\n isSuperAdmin: boolean;\n login: (token: string, credentials?: { username: string; password: string }, userInfo?: LoginUserInfo) => void;\n logout: () => void;\n hasRole: (role: string) => boolean;\n hasRoleType: (type: LTRoleType) => boolean;\n userRoleNames: string[];\n}\n\nconst AuthContext = createContext<AuthContextValue | null>(null);\n\n/** Refresh the token 5 minutes before it expires. */\nconst REFRESH_BUFFER_SECONDS = 5 * 60;\n\nfunction userFromToken(token: string, userInfo?: LoginUserInfo | null): AuthUser | null {\n if (isTokenExpired(token)) return null;\n const payload = decodeJwtPayload(token);\n if (!payload) return null;\n\n // Restore saved user info from sessionStorage if not provided\n const saved = userInfo ?? (() => {\n try {\n const raw = sessionStorage.getItem('lt_user_info');\n return raw ? JSON.parse(raw) : null;\n } catch { return null; }\n })();\n\n return {\n userId: payload.userId as string,\n displayName: saved?.displayName ?? null,\n username: saved?.username ?? null,\n roles: (payload.roles as LTUserRole[]) ?? [],\n };\n}\n\nexport function AuthProvider({ children }: { children: ReactNode }) {\n const [user, setUser] = useState<AuthUser | null>(() => {\n const saved = sessionStorage.getItem('lt_token');\n if (!saved) return null;\n if (isTokenExpired(saved)) {\n sessionStorage.removeItem('lt_token');\n return null;\n }\n setToken(saved);\n return userFromToken(saved);\n });\n\n const refreshTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n const scheduleRefresh = useCallback((token: string) => {\n clearTimeout(refreshTimerRef.current);\n const exp = getTokenExpiry(token);\n if (!exp) return;\n const msUntilRefresh = (exp - REFRESH_BUFFER_SECONDS) * 1000 - Date.now();\n if (msUntilRefresh <= 0) return; // Already past buffer — apiFetch handles it\n refreshTimerRef.current = setTimeout(async () => {\n const creds = sessionStorage.getItem('lt_credentials');\n if (!creds) return;\n try {\n const { username, password } = JSON.parse(creds);\n const res = await fetch('/api/auth/login', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ username, password }),\n });\n if (!res.ok) return;\n const data = await res.json();\n if (data.token) {\n window.dispatchEvent(\n new CustomEvent('auth:refreshed', { detail: { token: data.token } }),\n );\n }\n } catch {\n // Silent — apiFetch will handle the 401 when it happens\n }\n }, msUntilRefresh);\n }, []);\n\n const login = useCallback(\n (token: string, credentials?: { username: string; password: string }, userInfo?: LoginUserInfo) => {\n const info: LoginUserInfo = {\n displayName: userInfo?.displayName ?? null,\n username: userInfo?.username ?? credentials?.username ?? null,\n };\n const parsed = userFromToken(token, info);\n if (!parsed) return;\n setToken(token);\n sessionStorage.setItem('lt_token', token);\n sessionStorage.setItem('lt_user_info', JSON.stringify(info));\n if (credentials) {\n sessionStorage.setItem('lt_credentials', JSON.stringify(credentials));\n }\n setUser(parsed);\n scheduleRefresh(token);\n },\n [scheduleRefresh],\n );\n\n const logout = useCallback(() => {\n clearTimeout(refreshTimerRef.current);\n setToken(null);\n sessionStorage.removeItem('lt_token');\n sessionStorage.removeItem('lt_credentials');\n sessionStorage.removeItem('lt_user_info');\n setUser(null);\n }, []);\n\n useEffect(() => {\n const handleUnauthorized = () => logout();\n const handleRefreshed = (e: Event) => {\n const token = (e as CustomEvent).detail?.token;\n if (!token) return;\n const parsed = userFromToken(token);\n if (!parsed) return;\n setToken(token);\n sessionStorage.setItem('lt_token', token);\n setUser(parsed);\n scheduleRefresh(token);\n };\n\n window.addEventListener('auth:unauthorized', handleUnauthorized);\n window.addEventListener('auth:refreshed', handleRefreshed);\n return () => {\n window.removeEventListener('auth:unauthorized', handleUnauthorized);\n window.removeEventListener('auth:refreshed', handleRefreshed);\n };\n }, [logout, scheduleRefresh]);\n\n // Schedule refresh for the initial token on mount\n useEffect(() => {\n const token = sessionStorage.getItem('lt_token');\n if (token && user) scheduleRefresh(token);\n return () => clearTimeout(refreshTimerRef.current);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const isSuperAdmin = user?.roles.some((r) => r.type === 'superadmin') ?? false;\n\n const hasRole = useCallback(\n (role: string) => user?.roles.some((r) => r.role === role) ?? false,\n [user],\n );\n\n const hasRoleType = useCallback(\n (type: LTRoleType) => user?.roles.some((r) => r.type === type) ?? false,\n [user],\n );\n\n const userRoleNames = user?.roles.map((r) => r.role) ?? [];\n\n return (\n <AuthContext.Provider\n value={{\n user,\n isAuthenticated: !!user,\n isSuperAdmin,\n login,\n logout,\n hasRole,\n hasRoleType,\n userRoleNames,\n }}\n >\n {children}\n </AuthContext.Provider>\n );\n}\n\nexport function useAuth(): AuthContextValue {\n const ctx = useContext(AuthContext);\n if (!ctx) throw new Error('useAuth must be used within AuthProvider');\n return ctx;\n}\n","// deno-fmt-ignore-file\n// deno-lint-ignore-file\n// This code was bundled using `deno bundle` and it's not recommended to edit it manually\n\nconst Empty = new Uint8Array(0);\nconst TE = new TextEncoder();\nconst TD = new TextDecoder();\nfunction concat(...bufs) {\n let max = 0;\n for(let i = 0; i < bufs.length; i++){\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for(let i = 0; i < bufs.length; i++){\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n}\nfunction encode(...a) {\n const bufs = [];\n for(let i = 0; i < a.length; i++){\n bufs.push(TE.encode(a[i]));\n }\n if (bufs.length === 0) {\n return Empty;\n }\n if (bufs.length === 1) {\n return bufs[0];\n }\n return concat(...bufs);\n}\nfunction decode(a) {\n if (!a || a.length === 0) {\n return \"\";\n }\n return TD.decode(a);\n}\n\"use strict\";\nconst digits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nconst base = 36;\nconst maxSeq = 3656158440062976;\nconst minInc = 33;\nconst maxInc = 333;\nconst totalLen = 12 + 10;\nfunction _getRandomValues(a) {\n for(let i = 0; i < a.length; i++){\n a[i] = Math.floor(Math.random() * 255);\n }\n}\nfunction fillRandom(a) {\n if (globalThis?.crypto?.getRandomValues) {\n globalThis.crypto.getRandomValues(a);\n } else {\n _getRandomValues(a);\n }\n}\nclass Nuid {\n buf;\n seq;\n inc;\n inited;\n constructor(){\n this.buf = new Uint8Array(totalLen);\n this.inited = false;\n }\n init() {\n this.inited = true;\n this.setPre();\n this.initSeqAndInc();\n this.fillSeq();\n }\n initSeqAndInc() {\n this.seq = Math.floor(Math.random() * maxSeq);\n this.inc = Math.floor(Math.random() * (maxInc - minInc) + minInc);\n }\n setPre() {\n const cbuf = new Uint8Array(12);\n fillRandom(cbuf);\n for(let i = 0; i < 12; i++){\n const di = cbuf[i] % 36;\n this.buf[i] = digits.charCodeAt(di);\n }\n }\n fillSeq() {\n let n = this.seq;\n for(let i = totalLen - 1; i >= 12; i--){\n this.buf[i] = digits.charCodeAt(n % base);\n n = Math.floor(n / base);\n }\n }\n next() {\n if (!this.inited) {\n this.init();\n }\n this.seq += this.inc;\n if (this.seq > 3656158440062976) {\n this.setPre();\n this.initSeqAndInc();\n }\n this.fillSeq();\n return String.fromCharCode.apply(String, this.buf);\n }\n reset() {\n this.init();\n }\n}\nconst nuid = new Nuid();\nvar Events;\n(function(Events) {\n Events[\"Disconnect\"] = \"disconnect\";\n Events[\"Reconnect\"] = \"reconnect\";\n Events[\"Update\"] = \"update\";\n Events[\"LDM\"] = \"ldm\";\n Events[\"Error\"] = \"error\";\n})(Events || (Events = {}));\nvar DebugEvents;\n(function(DebugEvents) {\n DebugEvents[\"Reconnecting\"] = \"reconnecting\";\n DebugEvents[\"PingTimer\"] = \"pingTimer\";\n DebugEvents[\"StaleConnection\"] = \"staleConnection\";\n DebugEvents[\"ClientInitiatedReconnect\"] = \"client initiated reconnect\";\n})(DebugEvents || (DebugEvents = {}));\nvar ErrorCode;\n(function(ErrorCode) {\n ErrorCode[\"ApiError\"] = \"BAD API\";\n ErrorCode[\"BadAuthentication\"] = \"BAD_AUTHENTICATION\";\n ErrorCode[\"BadCreds\"] = \"BAD_CREDS\";\n ErrorCode[\"BadHeader\"] = \"BAD_HEADER\";\n ErrorCode[\"BadJson\"] = \"BAD_JSON\";\n ErrorCode[\"BadPayload\"] = \"BAD_PAYLOAD\";\n ErrorCode[\"BadSubject\"] = \"BAD_SUBJECT\";\n ErrorCode[\"Cancelled\"] = \"CANCELLED\";\n ErrorCode[\"ConnectionClosed\"] = \"CONNECTION_CLOSED\";\n ErrorCode[\"ConnectionDraining\"] = \"CONNECTION_DRAINING\";\n ErrorCode[\"ConnectionRefused\"] = \"CONNECTION_REFUSED\";\n ErrorCode[\"ConnectionTimeout\"] = \"CONNECTION_TIMEOUT\";\n ErrorCode[\"Disconnect\"] = \"DISCONNECT\";\n ErrorCode[\"InvalidOption\"] = \"INVALID_OPTION\";\n ErrorCode[\"InvalidPayload\"] = \"INVALID_PAYLOAD\";\n ErrorCode[\"MaxPayloadExceeded\"] = \"MAX_PAYLOAD_EXCEEDED\";\n ErrorCode[\"NoResponders\"] = \"503\";\n ErrorCode[\"NotFunction\"] = \"NOT_FUNC\";\n ErrorCode[\"RequestError\"] = \"REQUEST_ERROR\";\n ErrorCode[\"ServerOptionNotAvailable\"] = \"SERVER_OPT_NA\";\n ErrorCode[\"SubClosed\"] = \"SUB_CLOSED\";\n ErrorCode[\"SubDraining\"] = \"SUB_DRAINING\";\n ErrorCode[\"Timeout\"] = \"TIMEOUT\";\n ErrorCode[\"Tls\"] = \"TLS\";\n ErrorCode[\"Unknown\"] = \"UNKNOWN_ERROR\";\n ErrorCode[\"WssRequired\"] = \"WSS_REQUIRED\";\n ErrorCode[\"JetStreamInvalidAck\"] = \"JESTREAM_INVALID_ACK\";\n ErrorCode[\"JetStream404NoMessages\"] = \"404\";\n ErrorCode[\"JetStream408RequestTimeout\"] = \"408\";\n ErrorCode[\"JetStream409MaxAckPendingExceeded\"] = \"409\";\n ErrorCode[\"JetStream409\"] = \"409\";\n ErrorCode[\"JetStreamNotEnabled\"] = \"503\";\n ErrorCode[\"JetStreamIdleHeartBeat\"] = \"IDLE_HEARTBEAT\";\n ErrorCode[\"AuthorizationViolation\"] = \"AUTHORIZATION_VIOLATION\";\n ErrorCode[\"AuthenticationExpired\"] = \"AUTHENTICATION_EXPIRED\";\n ErrorCode[\"ProtocolError\"] = \"NATS_PROTOCOL_ERR\";\n ErrorCode[\"PermissionsViolation\"] = \"PERMISSIONS_VIOLATION\";\n ErrorCode[\"AuthenticationTimeout\"] = \"AUTHENTICATION_TIMEOUT\";\n ErrorCode[\"AccountExpired\"] = \"ACCOUNT_EXPIRED\";\n})(ErrorCode || (ErrorCode = {}));\nfunction isNatsError(err) {\n return typeof err.code === \"string\";\n}\nclass Messages {\n messages;\n constructor(){\n this.messages = new Map();\n this.messages.set(ErrorCode.InvalidPayload, \"Invalid payload type - payloads can be 'binary', 'string', or 'json'\");\n this.messages.set(ErrorCode.BadJson, \"Bad JSON\");\n this.messages.set(ErrorCode.WssRequired, \"TLS is required, therefore a secure websocket connection is also required\");\n }\n static getMessage(s) {\n return messages.getMessage(s);\n }\n getMessage(s) {\n return this.messages.get(s) || s;\n }\n}\nconst messages = new Messages();\nclass NatsError extends Error {\n name;\n message;\n code;\n permissionContext;\n chainedError;\n api_error;\n constructor(message, code, chainedError){\n super(message);\n this.name = \"NatsError\";\n this.message = message;\n this.code = code;\n this.chainedError = chainedError;\n }\n static errorForCode(code, chainedError) {\n const m = Messages.getMessage(code);\n return new NatsError(m, code, chainedError);\n }\n isAuthError() {\n return this.code === ErrorCode.AuthenticationExpired || this.code === ErrorCode.AuthorizationViolation || this.code === ErrorCode.AccountExpired;\n }\n isAuthTimeout() {\n return this.code === ErrorCode.AuthenticationTimeout;\n }\n isPermissionError() {\n return this.code === ErrorCode.PermissionsViolation;\n }\n isProtocolError() {\n return this.code === ErrorCode.ProtocolError;\n }\n isJetStreamError() {\n return this.api_error !== undefined;\n }\n jsError() {\n return this.api_error ? this.api_error : null;\n }\n}\nvar Match;\n(function(Match) {\n Match[Match[\"Exact\"] = 0] = \"Exact\";\n Match[Match[\"CanonicalMIME\"] = 1] = \"CanonicalMIME\";\n Match[Match[\"IgnoreCase\"] = 2] = \"IgnoreCase\";\n})(Match || (Match = {}));\nvar RequestStrategy;\n(function(RequestStrategy) {\n RequestStrategy[\"Timer\"] = \"timer\";\n RequestStrategy[\"Count\"] = \"count\";\n RequestStrategy[\"JitterTimer\"] = \"jitterTimer\";\n RequestStrategy[\"SentinelMsg\"] = \"sentinelMsg\";\n})(RequestStrategy || (RequestStrategy = {}));\nfunction syncIterator(src) {\n const iter = src[Symbol.asyncIterator]();\n return {\n async next () {\n const m = await iter.next();\n if (m.done) {\n return Promise.resolve(null);\n }\n return Promise.resolve(m.value);\n }\n };\n}\nvar ServiceResponseType;\n(function(ServiceResponseType) {\n ServiceResponseType[\"STATS\"] = \"io.nats.micro.v1.stats_response\";\n ServiceResponseType[\"INFO\"] = \"io.nats.micro.v1.info_response\";\n ServiceResponseType[\"PING\"] = \"io.nats.micro.v1.ping_response\";\n})(ServiceResponseType || (ServiceResponseType = {}));\nconst ServiceErrorHeader = \"Nats-Service-Error\";\nconst ServiceErrorCodeHeader = \"Nats-Service-Error-Code\";\nclass ServiceError extends Error {\n code;\n constructor(code, message){\n super(message);\n this.code = code;\n }\n static isServiceError(msg) {\n return ServiceError.toServiceError(msg) !== null;\n }\n static toServiceError(msg) {\n const scode = msg?.headers?.get(ServiceErrorCodeHeader) || \"\";\n if (scode !== \"\") {\n const code = parseInt(scode) || 400;\n const description = msg?.headers?.get(ServiceErrorHeader) || \"\";\n return new ServiceError(code, description.length ? description : scode);\n }\n return null;\n }\n}\nfunction createInbox(prefix = \"\") {\n prefix = prefix || \"_INBOX\";\n if (typeof prefix !== \"string\") {\n throw new Error(\"prefix must be a string\");\n }\n prefix.split(\".\").forEach((v)=>{\n if (v === \"*\" || v === \">\") {\n throw new Error(`inbox prefixes cannot have wildcards '${prefix}'`);\n }\n });\n return `${prefix}.${nuid.next()}`;\n}\nconst DEFAULT_HOST = \"127.0.0.1\";\nvar ServiceVerb;\n(function(ServiceVerb) {\n ServiceVerb[\"PING\"] = \"PING\";\n ServiceVerb[\"STATS\"] = \"STATS\";\n ServiceVerb[\"INFO\"] = \"INFO\";\n})(ServiceVerb || (ServiceVerb = {}));\nfunction extend(a, ...b) {\n for(let i = 0; i < b.length; i++){\n const o = b[i];\n Object.keys(o).forEach(function(k) {\n a[k] = o[k];\n });\n }\n return a;\n}\nfunction render(frame) {\n const cr = \"␍\";\n const lf = \"␊\";\n return TD.decode(frame).replace(/\\n/g, lf).replace(/\\r/g, cr);\n}\nfunction timeout(ms, asyncTraces = true) {\n const err = asyncTraces ? NatsError.errorForCode(ErrorCode.Timeout) : null;\n let methods;\n let timer;\n const p = new Promise((_resolve, reject)=>{\n const cancel = ()=>{\n if (timer) {\n clearTimeout(timer);\n }\n };\n methods = {\n cancel\n };\n timer = setTimeout(()=>{\n if (err === null) {\n reject(NatsError.errorForCode(ErrorCode.Timeout));\n } else {\n reject(err);\n }\n }, ms);\n });\n return Object.assign(p, methods);\n}\nfunction delay(ms = 0) {\n let methods;\n const p = new Promise((resolve)=>{\n const timer = setTimeout(()=>{\n resolve();\n }, ms);\n const cancel = ()=>{\n if (timer) {\n clearTimeout(timer);\n }\n };\n methods = {\n cancel\n };\n });\n return Object.assign(p, methods);\n}\nfunction deadline(p, millis = 1000) {\n const err = new Error(`deadline exceeded`);\n const d = deferred();\n const timer = setTimeout(()=>d.reject(err), millis);\n return Promise.race([\n p,\n d\n ]).finally(()=>clearTimeout(timer));\n}\nfunction deferred() {\n let methods = {};\n const p = new Promise((resolve, reject)=>{\n methods = {\n resolve,\n reject\n };\n });\n return Object.assign(p, methods);\n}\nfunction shuffle(a) {\n for(let i = a.length - 1; i > 0; i--){\n const j = Math.floor(Math.random() * (i + 1));\n [a[i], a[j]] = [\n a[j],\n a[i]\n ];\n }\n return a;\n}\nclass Perf {\n timers;\n measures;\n constructor(){\n this.timers = new Map();\n this.measures = new Map();\n }\n mark(key) {\n this.timers.set(key, performance.now());\n }\n measure(key, startKey, endKey) {\n const s = this.timers.get(startKey);\n if (s === undefined) {\n throw new Error(`${startKey} is not defined`);\n }\n const e = this.timers.get(endKey);\n if (e === undefined) {\n throw new Error(`${endKey} is not defined`);\n }\n this.measures.set(key, e - s);\n }\n getEntries() {\n const values = [];\n this.measures.forEach((v, k)=>{\n values.push({\n name: k,\n duration: v\n });\n });\n return values;\n }\n}\nfunction jitter(n) {\n if (n === 0) {\n return 0;\n }\n return Math.floor(n / 2 + Math.random() * n);\n}\nfunction backoff(policy = [\n 0,\n 250,\n 250,\n 500,\n 500,\n 3000,\n 5000\n]) {\n if (!Array.isArray(policy)) {\n policy = [\n 0,\n 250,\n 250,\n 500,\n 500,\n 3000,\n 5000\n ];\n }\n const max = policy.length - 1;\n return {\n backoff (attempt) {\n return jitter(attempt > max ? policy[max] : policy[attempt]);\n }\n };\n}\nfunction nanos(millis) {\n return millis * 1000000;\n}\nfunction millis(ns) {\n return Math.floor(ns / 1000000);\n}\nfunction canonicalMIMEHeaderKey(k) {\n const dash = 45;\n const toLower = 97 - 65;\n let upper = true;\n const buf = new Array(k.length);\n for(let i = 0; i < k.length; i++){\n let c = k.charCodeAt(i);\n if (c === 58 || c < 33 || c > 126) {\n throw new NatsError(`'${k[i]}' is not a valid character for a header key`, ErrorCode.BadHeader);\n }\n if (upper && 97 <= c && c <= 122) {\n c -= toLower;\n } else if (!upper && 65 <= c && c <= 90) {\n c += toLower;\n }\n buf[i] = c;\n upper = c == dash;\n }\n return String.fromCharCode(...buf);\n}\nfunction headers(code = 0, description = \"\") {\n if (code === 0 && description !== \"\" || code > 0 && description === \"\") {\n throw new Error(\"setting status requires both code and description\");\n }\n return new MsgHdrsImpl(code, description);\n}\nconst HEADER = \"NATS/1.0\";\nclass MsgHdrsImpl {\n _code;\n headers;\n _description;\n constructor(code = 0, description = \"\"){\n this._code = code;\n this._description = description;\n this.headers = new Map();\n }\n [Symbol.iterator]() {\n return this.headers.entries();\n }\n size() {\n return this.headers.size;\n }\n equals(mh) {\n if (mh && this.headers.size === mh.headers.size && this._code === mh._code) {\n for (const [k, v] of this.headers){\n const a = mh.values(k);\n if (v.length !== a.length) {\n return false;\n }\n const vv = [\n ...v\n ].sort();\n const aa = [\n ...a\n ].sort();\n for(let i = 0; i < vv.length; i++){\n if (vv[i] !== aa[i]) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n static decode(a) {\n const mh = new MsgHdrsImpl();\n const s = TD.decode(a);\n const lines = s.split(\"\\r\\n\");\n const h = lines[0];\n if (h !== HEADER) {\n let str = h.replace(HEADER, \"\").trim();\n if (str.length > 0) {\n mh._code = parseInt(str, 10);\n if (isNaN(mh._code)) {\n mh._code = 0;\n }\n const scode = mh._code.toString();\n str = str.replace(scode, \"\");\n mh._description = str.trim();\n }\n }\n if (lines.length >= 1) {\n lines.slice(1).map((s)=>{\n if (s) {\n const idx = s.indexOf(\":\");\n if (idx > -1) {\n const k = s.slice(0, idx);\n const v = s.slice(idx + 1).trim();\n mh.append(k, v);\n }\n }\n });\n }\n return mh;\n }\n toString() {\n if (this.headers.size === 0 && this._code === 0) {\n return \"\";\n }\n let s = HEADER;\n if (this._code > 0 && this._description !== \"\") {\n s += ` ${this._code} ${this._description}`;\n }\n for (const [k, v] of this.headers){\n for(let i = 0; i < v.length; i++){\n s = `${s}\\r\\n${k}: ${v[i]}`;\n }\n }\n return `${s}\\r\\n\\r\\n`;\n }\n encode() {\n return TE.encode(this.toString());\n }\n static validHeaderValue(k) {\n const inv = /[\\r\\n]/;\n if (inv.test(k)) {\n throw new NatsError(\"invalid header value - \\\\r and \\\\n are not allowed.\", ErrorCode.BadHeader);\n }\n return k.trim();\n }\n keys() {\n const keys = [];\n for (const sk of this.headers.keys()){\n keys.push(sk);\n }\n return keys;\n }\n findKeys(k, match = Match.Exact) {\n const keys = this.keys();\n switch(match){\n case Match.Exact:\n return keys.filter((v)=>{\n return v === k;\n });\n case Match.CanonicalMIME:\n k = canonicalMIMEHeaderKey(k);\n return keys.filter((v)=>{\n return v === k;\n });\n default:\n {\n const lci = k.toLowerCase();\n return keys.filter((v)=>{\n return lci === v.toLowerCase();\n });\n }\n }\n }\n get(k, match = Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[0] : v;\n }\n }\n return \"\";\n }\n last(k, match = Match.Exact) {\n const keys = this.findKeys(k, match);\n if (keys.length) {\n const v = this.headers.get(keys[0]);\n if (v) {\n return Array.isArray(v) ? v[v.length - 1] : v;\n }\n }\n return \"\";\n }\n has(k, match = Match.Exact) {\n return this.findKeys(k, match).length > 0;\n }\n set(k, v, match = Match.Exact) {\n this.delete(k, match);\n this.append(k, v, match);\n }\n append(k, v, match = Match.Exact) {\n const ck = canonicalMIMEHeaderKey(k);\n if (match === Match.CanonicalMIME) {\n k = ck;\n }\n const keys = this.findKeys(k, match);\n k = keys.length > 0 ? keys[0] : k;\n const value = MsgHdrsImpl.validHeaderValue(v);\n let a = this.headers.get(k);\n if (!a) {\n a = [];\n this.headers.set(k, a);\n }\n a.push(value);\n }\n values(k, match = Match.Exact) {\n const buf = [];\n const keys = this.findKeys(k, match);\n keys.forEach((v)=>{\n const values = this.headers.get(v);\n if (values) {\n buf.push(...values);\n }\n });\n return buf;\n }\n delete(k, match = Match.Exact) {\n const keys = this.findKeys(k, match);\n keys.forEach((v)=>{\n this.headers.delete(v);\n });\n }\n get hasError() {\n return this._code >= 300;\n }\n get status() {\n return `${this._code} ${this._description}`.trim();\n }\n toRecord() {\n const data = {};\n this.keys().forEach((v)=>{\n data[v] = this.values(v);\n });\n return data;\n }\n get code() {\n return this._code;\n }\n get description() {\n return this._description;\n }\n static fromRecord(r) {\n const h = new MsgHdrsImpl();\n for(const k in r){\n h.headers.set(k, r[k]);\n }\n return h;\n }\n}\nfunction StringCodec() {\n return {\n encode (d) {\n return TE.encode(d);\n },\n decode (a) {\n return TD.decode(a);\n }\n };\n}\nfunction JSONCodec(reviver) {\n return {\n encode (d) {\n try {\n if (d === undefined) {\n d = null;\n }\n return TE.encode(JSON.stringify(d));\n } catch (err) {\n throw NatsError.errorForCode(ErrorCode.BadJson, err);\n }\n },\n decode (a) {\n try {\n return JSON.parse(TD.decode(a), reviver);\n } catch (err) {\n throw NatsError.errorForCode(ErrorCode.BadJson, err);\n }\n }\n };\n}\nfunction isRequestError(msg) {\n if (msg && msg.data.length === 0 && msg.headers?.code === 503) {\n return NatsError.errorForCode(ErrorCode.NoResponders);\n }\n return null;\n}\nclass MsgImpl {\n _headers;\n _msg;\n _rdata;\n _reply;\n _subject;\n publisher;\n static jc;\n constructor(msg, data, publisher){\n this._msg = msg;\n this._rdata = data;\n this.publisher = publisher;\n }\n get subject() {\n if (this._subject) {\n return this._subject;\n }\n this._subject = TD.decode(this._msg.subject);\n return this._subject;\n }\n get reply() {\n if (this._reply) {\n return this._reply;\n }\n this._reply = TD.decode(this._msg.reply);\n return this._reply;\n }\n get sid() {\n return this._msg.sid;\n }\n get headers() {\n if (this._msg.hdr > -1 && !this._headers) {\n const buf = this._rdata.subarray(0, this._msg.hdr);\n this._headers = MsgHdrsImpl.decode(buf);\n }\n return this._headers;\n }\n get data() {\n if (!this._rdata) {\n return new Uint8Array(0);\n }\n return this._msg.hdr > -1 ? this._rdata.subarray(this._msg.hdr) : this._rdata;\n }\n respond(data = Empty, opts) {\n if (this.reply) {\n this.publisher.publish(this.reply, data, opts);\n return true;\n }\n return false;\n }\n size() {\n const subj = this._msg.subject.length;\n const reply = this._msg.reply?.length || 0;\n const payloadAndHeaders = this._msg.size === -1 ? 0 : this._msg.size;\n return subj + reply + payloadAndHeaders;\n }\n json(reviver) {\n return JSONCodec(reviver).decode(this.data);\n }\n string() {\n return TD.decode(this.data);\n }\n requestInfo() {\n const v = this.headers?.get(\"Nats-Request-Info\");\n if (v) {\n return JSON.parse(v, function(key, value) {\n if ((key === \"start\" || key === \"stop\") && value !== \"\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n return null;\n }\n}\nfunction validateDurableName(name) {\n return minValidation(\"durable\", name);\n}\nfunction validateStreamName(name) {\n return minValidation(\"stream\", name);\n}\nfunction minValidation(context, name = \"\") {\n if (name === \"\") {\n throw Error(`${context} name required`);\n }\n const bad = [\n \".\",\n \"*\",\n \">\",\n \"/\",\n \"\\\\\",\n \" \",\n \"\\t\",\n \"\\n\",\n \"\\r\"\n ];\n bad.forEach((v)=>{\n if (name.indexOf(v) !== -1) {\n switch(v){\n case \"\\n\":\n v = \"\\\\n\";\n break;\n case \"\\r\":\n v = \"\\\\r\";\n break;\n case \"\\t\":\n v = \"\\\\t\";\n break;\n default:\n }\n throw Error(`invalid ${context} name - ${context} name cannot contain '${v}'`);\n }\n });\n return \"\";\n}\nfunction validateName(context, name = \"\") {\n if (name === \"\") {\n throw Error(`${context} name required`);\n }\n const m = validName(name);\n if (m.length) {\n throw new Error(`invalid ${context} name - ${context} name ${m}`);\n }\n}\nfunction validName(name = \"\") {\n if (name === \"\") {\n throw Error(`name required`);\n }\n const RE = /^[-\\w]+$/g;\n const m = name.match(RE);\n if (m === null) {\n for (const c of name.split(\"\")){\n const mm = c.match(RE);\n if (mm === null) {\n return `cannot contain '${c}'`;\n }\n }\n }\n return \"\";\n}\nfunction isFlowControlMsg(msg) {\n if (msg.data.length > 0) {\n return false;\n }\n const h = msg.headers;\n if (!h) {\n return false;\n }\n return h.code >= 100 && h.code < 200;\n}\nfunction isHeartbeatMsg(msg) {\n return isFlowControlMsg(msg) && msg.headers?.description === \"Idle Heartbeat\";\n}\nfunction newJsErrorMsg(code, description, subject) {\n const h = headers(code, description);\n const arg = {\n hdr: 1,\n sid: 0,\n size: 0\n };\n const msg = new MsgImpl(arg, Empty, {});\n msg._headers = h;\n msg._subject = subject;\n return msg;\n}\nfunction checkJsError(msg) {\n if (msg.data.length !== 0) {\n return null;\n }\n const h = msg.headers;\n if (!h) {\n return null;\n }\n return checkJsErrorCode(h.code, h.description);\n}\nvar Js409Errors;\n(function(Js409Errors) {\n Js409Errors[\"MaxBatchExceeded\"] = \"exceeded maxrequestbatch of\";\n Js409Errors[\"MaxExpiresExceeded\"] = \"exceeded maxrequestexpires of\";\n Js409Errors[\"MaxBytesExceeded\"] = \"exceeded maxrequestmaxbytes of\";\n Js409Errors[\"MaxMessageSizeExceeded\"] = \"message size exceeds maxbytes\";\n Js409Errors[\"PushConsumer\"] = \"consumer is push based\";\n Js409Errors[\"MaxWaitingExceeded\"] = \"exceeded maxwaiting\";\n Js409Errors[\"IdleHeartbeatMissed\"] = \"idle heartbeats missed\";\n Js409Errors[\"ConsumerDeleted\"] = \"consumer deleted\";\n})(Js409Errors || (Js409Errors = {}));\nlet MAX_WAITING_FAIL = false;\nfunction isTerminal409(err) {\n if (err.code !== ErrorCode.JetStream409) {\n return false;\n }\n const fatal = [\n Js409Errors.MaxBatchExceeded,\n Js409Errors.MaxExpiresExceeded,\n Js409Errors.MaxBytesExceeded,\n Js409Errors.MaxMessageSizeExceeded,\n Js409Errors.PushConsumer,\n Js409Errors.IdleHeartbeatMissed,\n Js409Errors.ConsumerDeleted\n ];\n if (MAX_WAITING_FAIL) {\n fatal.push(Js409Errors.MaxWaitingExceeded);\n }\n return fatal.find((s)=>{\n return err.message.indexOf(s) !== -1;\n }) !== undefined;\n}\nfunction checkJsErrorCode(code, description = \"\") {\n if (code < 300) {\n return null;\n }\n description = description.toLowerCase();\n switch(code){\n case 404:\n return new NatsError(description, ErrorCode.JetStream404NoMessages);\n case 408:\n return new NatsError(description, ErrorCode.JetStream408RequestTimeout);\n case 409:\n {\n const ec = description.startsWith(Js409Errors.IdleHeartbeatMissed) ? ErrorCode.JetStreamIdleHeartBeat : ErrorCode.JetStream409;\n return new NatsError(description, ec);\n }\n case 503:\n return NatsError.errorForCode(ErrorCode.JetStreamNotEnabled, new Error(description));\n default:\n if (description === \"\") {\n description = ErrorCode.Unknown;\n }\n return new NatsError(description, `${code}`);\n }\n}\nclass QueuedIteratorImpl {\n inflight;\n processed;\n received;\n noIterator;\n iterClosed;\n done;\n signal;\n yields;\n filtered;\n pendingFiltered;\n ingestionFilterFn;\n protocolFilterFn;\n dispatchedFn;\n ctx;\n _data;\n err;\n time;\n yielding;\n constructor(){\n this.inflight = 0;\n this.filtered = 0;\n this.pendingFiltered = 0;\n this.processed = 0;\n this.received = 0;\n this.noIterator = false;\n this.done = false;\n this.signal = deferred();\n this.yields = [];\n this.iterClosed = deferred();\n this.time = 0;\n this.yielding = false;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n push(v) {\n if (this.done) {\n return;\n }\n if (typeof v === \"function\") {\n this.yields.push(v);\n this.signal.resolve();\n return;\n }\n const { ingest, protocol } = this.ingestionFilterFn ? this.ingestionFilterFn(v, this.ctx || this) : {\n ingest: true,\n protocol: false\n };\n if (ingest) {\n if (protocol) {\n this.filtered++;\n this.pendingFiltered++;\n }\n this.yields.push(v);\n this.signal.resolve();\n }\n }\n async *iterate() {\n if (this.noIterator) {\n throw new NatsError(\"unsupported iterator\", ErrorCode.ApiError);\n }\n if (this.yielding) {\n throw new NatsError(\"already yielding\", ErrorCode.ApiError);\n }\n this.yielding = true;\n try {\n while(true){\n if (this.yields.length === 0) {\n await this.signal;\n }\n if (this.err) {\n throw this.err;\n }\n const yields = this.yields;\n this.inflight = yields.length;\n this.yields = [];\n for(let i = 0; i < yields.length; i++){\n if (typeof yields[i] === \"function\") {\n const fn = yields[i];\n try {\n fn();\n } catch (err) {\n throw err;\n }\n if (this.err) {\n throw this.err;\n }\n continue;\n }\n const ok = this.protocolFilterFn ? this.protocolFilterFn(yields[i]) : true;\n if (ok) {\n this.processed++;\n const start = Date.now();\n yield yields[i];\n this.time = Date.now() - start;\n if (this.dispatchedFn && yields[i]) {\n this.dispatchedFn(yields[i]);\n }\n } else {\n this.pendingFiltered--;\n }\n this.inflight--;\n }\n if (this.done) {\n break;\n } else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = deferred();\n }\n }\n } finally{\n this.stop();\n }\n }\n stop(err) {\n if (this.done) {\n return;\n }\n this.err = err;\n this.done = true;\n this.signal.resolve();\n this.iterClosed.resolve(err);\n }\n getProcessed() {\n return this.noIterator ? this.received : this.processed;\n }\n getPending() {\n return this.yields.length + this.inflight - this.pendingFiltered;\n }\n getReceived() {\n return this.received - this.filtered;\n }\n}\nclass IdleHeartbeatMonitor {\n interval;\n maxOut;\n cancelAfter;\n timer;\n autoCancelTimer;\n last;\n missed;\n count;\n callback;\n constructor(interval, cb, opts = {\n maxOut: 2\n }){\n this.interval = interval;\n this.maxOut = opts?.maxOut || 2;\n this.cancelAfter = opts?.cancelAfter || 0;\n this.last = Date.now();\n this.missed = 0;\n this.count = 0;\n this.callback = cb;\n this._schedule();\n }\n cancel() {\n if (this.autoCancelTimer) {\n clearTimeout(this.autoCancelTimer);\n }\n if (this.timer) {\n clearInterval(this.timer);\n }\n this.timer = 0;\n this.autoCancelTimer = 0;\n this.missed = 0;\n }\n work() {\n this.last = Date.now();\n this.missed = 0;\n }\n _change(interval, cancelAfter = 0, maxOut = 2) {\n this.interval = interval;\n this.maxOut = maxOut;\n this.cancelAfter = cancelAfter;\n this.restart();\n }\n restart() {\n this.cancel();\n this._schedule();\n }\n _schedule() {\n if (this.cancelAfter > 0) {\n this.autoCancelTimer = setTimeout(()=>{\n this.cancel();\n }, this.cancelAfter);\n }\n this.timer = setInterval(()=>{\n this.count++;\n if (Date.now() - this.last > this.interval) {\n this.missed++;\n }\n if (this.missed >= this.maxOut) {\n try {\n if (this.callback(this.missed) === true) {\n this.cancel();\n }\n } catch (err) {\n console.log(err);\n }\n }\n }, this.interval);\n }\n}\nvar RetentionPolicy;\n(function(RetentionPolicy) {\n RetentionPolicy[\"Limits\"] = \"limits\";\n RetentionPolicy[\"Interest\"] = \"interest\";\n RetentionPolicy[\"Workqueue\"] = \"workqueue\";\n})(RetentionPolicy || (RetentionPolicy = {}));\nvar DiscardPolicy;\n(function(DiscardPolicy) {\n DiscardPolicy[\"Old\"] = \"old\";\n DiscardPolicy[\"New\"] = \"new\";\n})(DiscardPolicy || (DiscardPolicy = {}));\nvar StorageType;\n(function(StorageType) {\n StorageType[\"File\"] = \"file\";\n StorageType[\"Memory\"] = \"memory\";\n})(StorageType || (StorageType = {}));\nvar DeliverPolicy;\n(function(DeliverPolicy) {\n DeliverPolicy[\"All\"] = \"all\";\n DeliverPolicy[\"Last\"] = \"last\";\n DeliverPolicy[\"New\"] = \"new\";\n DeliverPolicy[\"StartSequence\"] = \"by_start_sequence\";\n DeliverPolicy[\"StartTime\"] = \"by_start_time\";\n DeliverPolicy[\"LastPerSubject\"] = \"last_per_subject\";\n})(DeliverPolicy || (DeliverPolicy = {}));\nvar AckPolicy;\n(function(AckPolicy) {\n AckPolicy[\"None\"] = \"none\";\n AckPolicy[\"All\"] = \"all\";\n AckPolicy[\"Explicit\"] = \"explicit\";\n AckPolicy[\"NotSet\"] = \"\";\n})(AckPolicy || (AckPolicy = {}));\nvar ReplayPolicy;\n(function(ReplayPolicy) {\n ReplayPolicy[\"Instant\"] = \"instant\";\n ReplayPolicy[\"Original\"] = \"original\";\n})(ReplayPolicy || (ReplayPolicy = {}));\nvar StoreCompression;\n(function(StoreCompression) {\n StoreCompression[\"None\"] = \"none\";\n StoreCompression[\"S2\"] = \"s2\";\n})(StoreCompression || (StoreCompression = {}));\nvar ConsumerApiAction;\n(function(ConsumerApiAction) {\n ConsumerApiAction[\"CreateOrUpdate\"] = \"\";\n ConsumerApiAction[\"Update\"] = \"update\";\n ConsumerApiAction[\"Create\"] = \"create\";\n})(ConsumerApiAction || (ConsumerApiAction = {}));\nfunction defaultConsumer(name, opts = {}) {\n return Object.assign({\n name: name,\n deliver_policy: DeliverPolicy.All,\n ack_policy: AckPolicy.Explicit,\n ack_wait: nanos(30 * 1000),\n replay_policy: ReplayPolicy.Instant\n }, opts);\n}\nvar AdvisoryKind;\n(function(AdvisoryKind) {\n AdvisoryKind[\"API\"] = \"api_audit\";\n AdvisoryKind[\"StreamAction\"] = \"stream_action\";\n AdvisoryKind[\"ConsumerAction\"] = \"consumer_action\";\n AdvisoryKind[\"SnapshotCreate\"] = \"snapshot_create\";\n AdvisoryKind[\"SnapshotComplete\"] = \"snapshot_complete\";\n AdvisoryKind[\"RestoreCreate\"] = \"restore_create\";\n AdvisoryKind[\"RestoreComplete\"] = \"restore_complete\";\n AdvisoryKind[\"MaxDeliver\"] = \"max_deliver\";\n AdvisoryKind[\"Terminated\"] = \"terminated\";\n AdvisoryKind[\"Ack\"] = \"consumer_ack\";\n AdvisoryKind[\"StreamLeaderElected\"] = \"stream_leader_elected\";\n AdvisoryKind[\"StreamQuorumLost\"] = \"stream_quorum_lost\";\n AdvisoryKind[\"ConsumerLeaderElected\"] = \"consumer_leader_elected\";\n AdvisoryKind[\"ConsumerQuorumLost\"] = \"consumer_quorum_lost\";\n})(AdvisoryKind || (AdvisoryKind = {}));\nvar JsHeaders;\n(function(JsHeaders) {\n JsHeaders[\"StreamSourceHdr\"] = \"Nats-Stream-Source\";\n JsHeaders[\"LastConsumerSeqHdr\"] = \"Nats-Last-Consumer\";\n JsHeaders[\"LastStreamSeqHdr\"] = \"Nats-Last-Stream\";\n JsHeaders[\"ConsumerStalledHdr\"] = \"Nats-Consumer-Stalled\";\n JsHeaders[\"MessageSizeHdr\"] = \"Nats-Msg-Size\";\n JsHeaders[\"RollupHdr\"] = \"Nats-Rollup\";\n JsHeaders[\"RollupValueSubject\"] = \"sub\";\n JsHeaders[\"RollupValueAll\"] = \"all\";\n JsHeaders[\"PendingMessagesHdr\"] = \"Nats-Pending-Messages\";\n JsHeaders[\"PendingBytesHdr\"] = \"Nats-Pending-Bytes\";\n})(JsHeaders || (JsHeaders = {}));\nvar KvWatchInclude;\n(function(KvWatchInclude) {\n KvWatchInclude[\"LastValue\"] = \"\";\n KvWatchInclude[\"AllHistory\"] = \"history\";\n KvWatchInclude[\"UpdatesOnly\"] = \"updates\";\n})(KvWatchInclude || (KvWatchInclude = {}));\nvar DirectMsgHeaders;\n(function(DirectMsgHeaders) {\n DirectMsgHeaders[\"Stream\"] = \"Nats-Stream\";\n DirectMsgHeaders[\"Sequence\"] = \"Nats-Sequence\";\n DirectMsgHeaders[\"TimeStamp\"] = \"Nats-Time-Stamp\";\n DirectMsgHeaders[\"Subject\"] = \"Nats-Subject\";\n})(DirectMsgHeaders || (DirectMsgHeaders = {}));\nvar RepublishHeaders;\n(function(RepublishHeaders) {\n RepublishHeaders[\"Stream\"] = \"Nats-Stream\";\n RepublishHeaders[\"Subject\"] = \"Nats-Subject\";\n RepublishHeaders[\"Sequence\"] = \"Nats-Sequence\";\n RepublishHeaders[\"LastSequence\"] = \"Nats-Last-Sequence\";\n RepublishHeaders[\"Size\"] = \"Nats-Msg-Size\";\n})(RepublishHeaders || (RepublishHeaders = {}));\nconst kvPrefix = \"KV_\";\nclass ConsumerOptsBuilderImpl {\n config;\n ordered;\n mack;\n stream;\n callbackFn;\n max;\n qname;\n isBind;\n filters;\n constructor(opts){\n this.stream = \"\";\n this.mack = false;\n this.ordered = false;\n this.config = defaultConsumer(\"\", opts || {});\n }\n getOpts() {\n const o = {};\n o.config = Object.assign({}, this.config);\n if (o.config.filter_subject) {\n this.filterSubject(o.config.filter_subject);\n o.config.filter_subject = undefined;\n }\n if (o.config.filter_subjects) {\n o.config.filter_subjects?.forEach((v)=>{\n this.filterSubject(v);\n });\n o.config.filter_subjects = undefined;\n }\n o.mack = this.mack;\n o.stream = this.stream;\n o.callbackFn = this.callbackFn;\n o.max = this.max;\n o.queue = this.qname;\n o.ordered = this.ordered;\n o.config.ack_policy = o.ordered ? AckPolicy.None : o.config.ack_policy;\n o.isBind = o.isBind || false;\n if (this.filters) {\n switch(this.filters.length){\n case 0:\n break;\n case 1:\n o.config.filter_subject = this.filters[0];\n break;\n default:\n o.config.filter_subjects = this.filters;\n }\n }\n return o;\n }\n description(description) {\n this.config.description = description;\n return this;\n }\n deliverTo(subject) {\n this.config.deliver_subject = subject;\n return this;\n }\n durable(name) {\n validateDurableName(name);\n this.config.durable_name = name;\n return this;\n }\n startSequence(seq) {\n if (seq <= 0) {\n throw new Error(\"sequence must be greater than 0\");\n }\n this.config.deliver_policy = DeliverPolicy.StartSequence;\n this.config.opt_start_seq = seq;\n return this;\n }\n startTime(time) {\n this.config.deliver_policy = DeliverPolicy.StartTime;\n this.config.opt_start_time = time.toISOString();\n return this;\n }\n deliverAll() {\n this.config.deliver_policy = DeliverPolicy.All;\n return this;\n }\n deliverLastPerSubject() {\n this.config.deliver_policy = DeliverPolicy.LastPerSubject;\n return this;\n }\n deliverLast() {\n this.config.deliver_policy = DeliverPolicy.Last;\n return this;\n }\n deliverNew() {\n this.config.deliver_policy = DeliverPolicy.New;\n return this;\n }\n startAtTimeDelta(millis) {\n this.startTime(new Date(Date.now() - millis));\n return this;\n }\n headersOnly() {\n this.config.headers_only = true;\n return this;\n }\n ackNone() {\n this.config.ack_policy = AckPolicy.None;\n return this;\n }\n ackAll() {\n this.config.ack_policy = AckPolicy.All;\n return this;\n }\n ackExplicit() {\n this.config.ack_policy = AckPolicy.Explicit;\n return this;\n }\n ackWait(millis) {\n this.config.ack_wait = nanos(millis);\n return this;\n }\n maxDeliver(max) {\n this.config.max_deliver = max;\n return this;\n }\n filterSubject(s) {\n this.filters = this.filters || [];\n this.filters.push(s);\n return this;\n }\n replayInstantly() {\n this.config.replay_policy = ReplayPolicy.Instant;\n return this;\n }\n replayOriginal() {\n this.config.replay_policy = ReplayPolicy.Original;\n return this;\n }\n sample(n) {\n n = Math.trunc(n);\n if (n < 0 || n > 100) {\n throw new Error(`value must be between 0-100`);\n }\n this.config.sample_freq = `${n}%`;\n return this;\n }\n limit(n) {\n this.config.rate_limit_bps = n;\n return this;\n }\n maxWaiting(max) {\n this.config.max_waiting = max;\n return this;\n }\n maxAckPending(max) {\n this.config.max_ack_pending = max;\n return this;\n }\n idleHeartbeat(millis) {\n this.config.idle_heartbeat = nanos(millis);\n return this;\n }\n flowControl() {\n this.config.flow_control = true;\n return this;\n }\n deliverGroup(name) {\n this.queue(name);\n return this;\n }\n manualAck() {\n this.mack = true;\n return this;\n }\n maxMessages(max) {\n this.max = max;\n return this;\n }\n callback(fn) {\n this.callbackFn = fn;\n return this;\n }\n queue(n) {\n this.qname = n;\n this.config.deliver_group = n;\n return this;\n }\n orderedConsumer() {\n this.ordered = true;\n return this;\n }\n bind(stream, durable) {\n this.stream = stream;\n this.config.durable_name = durable;\n this.isBind = true;\n return this;\n }\n bindStream(stream) {\n this.stream = stream;\n return this;\n }\n inactiveEphemeralThreshold(millis) {\n this.config.inactive_threshold = nanos(millis);\n return this;\n }\n maxPullBatch(n) {\n this.config.max_batch = n;\n return this;\n }\n maxPullRequestExpires(millis) {\n this.config.max_expires = nanos(millis);\n return this;\n }\n memory() {\n this.config.mem_storage = true;\n return this;\n }\n numReplicas(n) {\n this.config.num_replicas = n;\n return this;\n }\n consumerName(n) {\n this.config.name = n;\n return this;\n }\n}\nfunction consumerOpts(opts) {\n return new ConsumerOptsBuilderImpl(opts);\n}\nfunction isConsumerOptsBuilder(o) {\n return typeof o.getOpts === \"function\";\n}\nclass Base64Codec {\n static encode(bytes) {\n if (typeof bytes === \"string\") {\n return btoa(bytes);\n }\n const a = Array.from(bytes);\n return btoa(String.fromCharCode(...a));\n }\n static decode(s, binary = false) {\n const bin = atob(s);\n if (!binary) {\n return bin;\n }\n return Uint8Array.from(bin, (c)=>c.charCodeAt(0));\n }\n}\nclass Base64UrlPaddedCodec {\n static encode(bytes) {\n return Base64UrlPaddedCodec.toB64URLEncoding(Base64Codec.encode(bytes));\n }\n static decode(s, binary = false) {\n return Base64UrlPaddedCodec.decode(Base64UrlPaddedCodec.fromB64URLEncoding(s), binary);\n }\n static toB64URLEncoding(b64str) {\n return b64str.replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n }\n static fromB64URLEncoding(b64str) {\n return b64str.replace(/_/g, \"/\").replace(/-/g, \"+\");\n }\n}\nclass DataBuffer {\n buffers;\n byteLength;\n constructor(){\n this.buffers = [];\n this.byteLength = 0;\n }\n static concat(...bufs) {\n let max = 0;\n for(let i = 0; i < bufs.length; i++){\n max += bufs[i].length;\n }\n const out = new Uint8Array(max);\n let index = 0;\n for(let i = 0; i < bufs.length; i++){\n out.set(bufs[i], index);\n index += bufs[i].length;\n }\n return out;\n }\n static fromAscii(m) {\n if (!m) {\n m = \"\";\n }\n return TE.encode(m);\n }\n static toAscii(a) {\n return TD.decode(a);\n }\n reset() {\n this.buffers.length = 0;\n this.byteLength = 0;\n }\n pack() {\n if (this.buffers.length > 1) {\n const v = new Uint8Array(this.byteLength);\n let index = 0;\n for(let i = 0; i < this.buffers.length; i++){\n v.set(this.buffers[i], index);\n index += this.buffers[i].length;\n }\n this.buffers.length = 0;\n this.buffers.push(v);\n }\n }\n shift() {\n if (this.buffers.length) {\n const a = this.buffers.shift();\n if (a) {\n this.byteLength -= a.length;\n return a;\n }\n }\n return new Uint8Array(0);\n }\n drain(n) {\n if (this.buffers.length) {\n this.pack();\n const v = this.buffers.pop();\n if (v) {\n const max = this.byteLength;\n if (n === undefined || n > max) {\n n = max;\n }\n const d = v.subarray(0, n);\n if (max > n) {\n this.buffers.push(v.subarray(n));\n }\n this.byteLength = max - n;\n return d;\n }\n }\n return new Uint8Array(0);\n }\n fill(a, ...bufs) {\n if (a) {\n this.buffers.push(a);\n this.byteLength += a.length;\n }\n for(let i = 0; i < bufs.length; i++){\n if (bufs[i] && bufs[i].length) {\n this.buffers.push(bufs[i]);\n this.byteLength += bufs[i].length;\n }\n }\n }\n peek() {\n if (this.buffers.length) {\n this.pack();\n return this.buffers[0];\n }\n return new Uint8Array(0);\n }\n size() {\n return this.byteLength;\n }\n length() {\n return this.buffers.length;\n }\n}\nfunction t(t, e) {\n return e.forEach(function(e) {\n e && \"string\" != typeof e && !Array.isArray(e) && Object.keys(e).forEach(function(r) {\n if (\"default\" !== r && !(r in t)) {\n var i = Object.getOwnPropertyDescriptor(e, r);\n Object.defineProperty(t, r, i.get ? i : {\n enumerable: !0,\n get: function() {\n return e[r];\n }\n });\n }\n });\n }), Object.freeze(t);\n}\nvar e = \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : \"undefined\" != typeof window ? window : {};\nfunction r() {\n throw new Error(\"setTimeout has not been defined\");\n}\nfunction i() {\n throw new Error(\"clearTimeout has not been defined\");\n}\nvar h = r, s = i;\nfunction n(t) {\n if (h === setTimeout) return setTimeout(t, 0);\n if ((h === r || !h) && setTimeout) return h = setTimeout, setTimeout(t, 0);\n try {\n return h(t, 0);\n } catch (e) {\n try {\n return h.call(null, t, 0);\n } catch (e) {\n return h.call(this, t, 0);\n }\n }\n}\n\"function\" == typeof e.setTimeout && (h = setTimeout), \"function\" == typeof e.clearTimeout && (s = clearTimeout);\nvar o, a = [], f = !1, u = -1;\nfunction c() {\n f && o && (f = !1, o.length ? a = o.concat(a) : u = -1, a.length && l());\n}\nfunction l() {\n if (!f) {\n var t = n(c);\n f = !0;\n for(var e = a.length; e;){\n for(o = a, a = []; ++u < e;)o && o[u].run();\n u = -1, e = a.length;\n }\n o = null, f = !1, function(t) {\n if (s === clearTimeout) return clearTimeout(t);\n if ((s === i || !s) && clearTimeout) return s = clearTimeout, clearTimeout(t);\n try {\n return s(t);\n } catch (e) {\n try {\n return s.call(null, t);\n } catch (e) {\n return s.call(this, t);\n }\n }\n }(t);\n }\n}\nfunction y(t, e) {\n this.fun = t, this.array = e;\n}\ny.prototype.run = function() {\n this.fun.apply(null, this.array);\n};\nfunction p() {}\nvar d = p, w = p, b = p, v = p, A = p, g = p, _ = p;\nvar m = e.performance || {}, O = m.now || m.mozNow || m.msNow || m.oNow || m.webkitNow || function() {\n return (new Date).getTime();\n};\nvar B = new Date;\nvar E = {\n nextTick: function(t) {\n var e = new Array(arguments.length - 1);\n if (arguments.length > 1) for(var r = 1; r < arguments.length; r++)e[r - 1] = arguments[r];\n a.push(new y(t, e)), 1 !== a.length || f || n(l);\n },\n title: \"browser\",\n browser: !0,\n env: {},\n argv: [],\n version: \"\",\n versions: {},\n on: d,\n addListener: w,\n once: b,\n off: v,\n removeListener: A,\n removeAllListeners: g,\n emit: _,\n binding: function(t) {\n throw new Error(\"process.binding is not supported\");\n },\n cwd: function() {\n return \"/\";\n },\n chdir: function(t) {\n throw new Error(\"process.chdir is not supported\");\n },\n umask: function() {\n return 0;\n },\n hrtime: function(t) {\n var e = .001 * O.call(m), r = Math.floor(e), i = Math.floor(e % 1 * 1e9);\n return t && (r -= t[0], (i -= t[1]) < 0 && (r--, i += 1e9)), [\n r,\n i\n ];\n },\n platform: \"browser\",\n release: {},\n config: {},\n uptime: function() {\n return (new Date - B) / 1e3;\n }\n}, S = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\nfunction T(t) {\n if (t.__esModule) return t;\n var e = Object.defineProperty({}, \"__esModule\", {\n value: !0\n });\n return Object.keys(t).forEach(function(r) {\n var i = Object.getOwnPropertyDescriptor(t, r);\n Object.defineProperty(e, r, i.get ? i : {\n enumerable: !0,\n get: function() {\n return t[r];\n }\n });\n }), e;\n}\nvar k, x = {\n exports: {}\n}, j = {}, N = T(t({\n __proto__: null,\n default: j\n}, [\n j\n]));\nk = x, function() {\n var t = \"input is invalid type\", e = \"object\" == typeof window, r = e ? window : {};\n r.JS_SHA256_NO_WINDOW && (e = !1);\n var i = !e && \"object\" == typeof self, h = !r.JS_SHA256_NO_NODE_JS && E.versions && E.versions.node;\n h ? r = S : i && (r = self);\n var s = !r.JS_SHA256_NO_COMMON_JS && k.exports, n = !r.JS_SHA256_NO_ARRAY_BUFFER && \"undefined\" != typeof ArrayBuffer, o = \"0123456789abcdef\".split(\"\"), a = [\n -2147483648,\n 8388608,\n 32768,\n 128\n ], f = [\n 24,\n 16,\n 8,\n 0\n ], u = [\n 1116352408,\n 1899447441,\n 3049323471,\n 3921009573,\n 961987163,\n 1508970993,\n 2453635748,\n 2870763221,\n 3624381080,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n 2162078206,\n 2614888103,\n 3248222580,\n 3835390401,\n 4022224774,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n 2554220882,\n 2821834349,\n 2952996808,\n 3210313671,\n 3336571891,\n 3584528711,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n 2177026350,\n 2456956037,\n 2730485921,\n 2820302411,\n 3259730800,\n 3345764771,\n 3516065817,\n 3600352804,\n 4094571909,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n 2227730452,\n 2361852424,\n 2428436474,\n 2756734187,\n 3204031479,\n 3329325298\n ], c = [\n \"hex\",\n \"array\",\n \"digest\",\n \"arrayBuffer\"\n ], l = [];\n !r.JS_SHA256_NO_NODE_JS && Array.isArray || (Array.isArray = function(t) {\n return \"[object Array]\" === Object.prototype.toString.call(t);\n }), !n || !r.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(t) {\n return \"object\" == typeof t && t.buffer && t.buffer.constructor === ArrayBuffer;\n });\n var y = function(t, e) {\n return function(r) {\n return new v(e, !0).update(r)[t]();\n };\n }, p = function(t) {\n var e = y(\"hex\", t);\n h && (e = d(e, t)), e.create = function() {\n return new v(t);\n }, e.update = function(t) {\n return e.create().update(t);\n };\n for(var r = 0; r < c.length; ++r){\n var i = c[r];\n e[i] = y(i, t);\n }\n return e;\n }, d = function(e, i) {\n var h, s = N, n = N.Buffer, o = i ? \"sha224\" : \"sha256\";\n return h = n.from && !r.JS_SHA256_NO_BUFFER_FROM ? n.from : function(t) {\n return new n(t);\n }, function(r) {\n if (\"string\" == typeof r) return s.createHash(o).update(r, \"utf8\").digest(\"hex\");\n if (null == r) throw new Error(t);\n return r.constructor === ArrayBuffer && (r = new Uint8Array(r)), Array.isArray(r) || ArrayBuffer.isView(r) || r.constructor === n ? s.createHash(o).update(h(r)).digest(\"hex\") : e(r);\n };\n }, w = function(t, e) {\n return function(r, i) {\n return new A(r, e, !0).update(i)[t]();\n };\n }, b = function(t) {\n var e = w(\"hex\", t);\n e.create = function(e) {\n return new A(e, t);\n }, e.update = function(t, r) {\n return e.create(t).update(r);\n };\n for(var r = 0; r < c.length; ++r){\n var i = c[r];\n e[i] = w(i, t);\n }\n return e;\n };\n function v(t, e) {\n e ? (l[0] = l[16] = l[1] = l[2] = l[3] = l[4] = l[5] = l[6] = l[7] = l[8] = l[9] = l[10] = l[11] = l[12] = l[13] = l[14] = l[15] = 0, this.blocks = l) : this.blocks = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], t ? (this.h0 = 3238371032, this.h1 = 914150663, this.h2 = 812702999, this.h3 = 4144912697, this.h4 = 4290775857, this.h5 = 1750603025, this.h6 = 1694076839, this.h7 = 3204075428) : (this.h0 = 1779033703, this.h1 = 3144134277, this.h2 = 1013904242, this.h3 = 2773480762, this.h4 = 1359893119, this.h5 = 2600822924, this.h6 = 528734635, this.h7 = 1541459225), this.block = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0, this.is224 = t;\n }\n function A(e, r, i) {\n var h, s = typeof e;\n if (\"string\" === s) {\n var o, a = [], f = e.length, u = 0;\n for(h = 0; h < f; ++h)(o = e.charCodeAt(h)) < 128 ? a[u++] = o : o < 2048 ? (a[u++] = 192 | o >>> 6, a[u++] = 128 | 63 & o) : o < 55296 || o >= 57344 ? (a[u++] = 224 | o >>> 12, a[u++] = 128 | o >>> 6 & 63, a[u++] = 128 | 63 & o) : (o = 65536 + ((1023 & o) << 10 | 1023 & e.charCodeAt(++h)), a[u++] = 240 | o >>> 18, a[u++] = 128 | o >>> 12 & 63, a[u++] = 128 | o >>> 6 & 63, a[u++] = 128 | 63 & o);\n e = a;\n } else {\n if (\"object\" !== s) throw new Error(t);\n if (null === e) throw new Error(t);\n if (n && e.constructor === ArrayBuffer) e = new Uint8Array(e);\n else if (!(Array.isArray(e) || n && ArrayBuffer.isView(e))) throw new Error(t);\n }\n e.length > 64 && (e = new v(r, !0).update(e).array());\n var c = [], l = [];\n for(h = 0; h < 64; ++h){\n var y = e[h] || 0;\n c[h] = 92 ^ y, l[h] = 54 ^ y;\n }\n v.call(this, r, i), this.update(l), this.oKeyPad = c, this.inner = !0, this.sharedMemory = i;\n }\n v.prototype.update = function(e) {\n if (!this.finalized) {\n var r, i = typeof e;\n if (\"string\" !== i) {\n if (\"object\" !== i) throw new Error(t);\n if (null === e) throw new Error(t);\n if (n && e.constructor === ArrayBuffer) e = new Uint8Array(e);\n else if (!(Array.isArray(e) || n && ArrayBuffer.isView(e))) throw new Error(t);\n r = !0;\n }\n for(var h, s, o = 0, a = e.length, u = this.blocks; o < a;){\n if (this.hashed && (this.hashed = !1, u[0] = this.block, this.block = u[16] = u[1] = u[2] = u[3] = u[4] = u[5] = u[6] = u[7] = u[8] = u[9] = u[10] = u[11] = u[12] = u[13] = u[14] = u[15] = 0), r) for(s = this.start; o < a && s < 64; ++o)u[s >>> 2] |= e[o] << f[3 & s++];\n else for(s = this.start; o < a && s < 64; ++o)(h = e.charCodeAt(o)) < 128 ? u[s >>> 2] |= h << f[3 & s++] : h < 2048 ? (u[s >>> 2] |= (192 | h >>> 6) << f[3 & s++], u[s >>> 2] |= (128 | 63 & h) << f[3 & s++]) : h < 55296 || h >= 57344 ? (u[s >>> 2] |= (224 | h >>> 12) << f[3 & s++], u[s >>> 2] |= (128 | h >>> 6 & 63) << f[3 & s++], u[s >>> 2] |= (128 | 63 & h) << f[3 & s++]) : (h = 65536 + ((1023 & h) << 10 | 1023 & e.charCodeAt(++o)), u[s >>> 2] |= (240 | h >>> 18) << f[3 & s++], u[s >>> 2] |= (128 | h >>> 12 & 63) << f[3 & s++], u[s >>> 2] |= (128 | h >>> 6 & 63) << f[3 & s++], u[s >>> 2] |= (128 | 63 & h) << f[3 & s++]);\n this.lastByteIndex = s, this.bytes += s - this.start, s >= 64 ? (this.block = u[16], this.start = s - 64, this.hash(), this.hashed = !0) : this.start = s;\n }\n return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 | 0, this.bytes = this.bytes % 4294967296), this;\n }\n }, v.prototype.finalize = function() {\n if (!this.finalized) {\n this.finalized = !0;\n var t = this.blocks, e = this.lastByteIndex;\n t[16] = this.block, t[e >>> 2] |= a[3 & e], this.block = t[16], e >= 56 && (this.hashed || this.hash(), t[0] = this.block, t[16] = t[1] = t[2] = t[3] = t[4] = t[5] = t[6] = t[7] = t[8] = t[9] = t[10] = t[11] = t[12] = t[13] = t[14] = t[15] = 0), t[14] = this.hBytes << 3 | this.bytes >>> 29, t[15] = this.bytes << 3, this.hash();\n }\n }, v.prototype.hash = function() {\n var t, e, r, i, h, s, n, o, a, f = this.h0, c = this.h1, l = this.h2, y = this.h3, p = this.h4, d = this.h5, w = this.h6, b = this.h7, v = this.blocks;\n for(t = 16; t < 64; ++t)e = ((h = v[t - 15]) >>> 7 | h << 25) ^ (h >>> 18 | h << 14) ^ h >>> 3, r = ((h = v[t - 2]) >>> 17 | h << 15) ^ (h >>> 19 | h << 13) ^ h >>> 10, v[t] = v[t - 16] + e + v[t - 7] + r | 0;\n for(a = c & l, t = 0; t < 64; t += 4)this.first ? (this.is224 ? (s = 300032, b = (h = v[0] - 1413257819) - 150054599 | 0, y = h + 24177077 | 0) : (s = 704751109, b = (h = v[0] - 210244248) - 1521486534 | 0, y = h + 143694565 | 0), this.first = !1) : (e = (f >>> 2 | f << 30) ^ (f >>> 13 | f << 19) ^ (f >>> 22 | f << 10), i = (s = f & c) ^ f & l ^ a, b = y + (h = b + (r = (p >>> 6 | p << 26) ^ (p >>> 11 | p << 21) ^ (p >>> 25 | p << 7)) + (p & d ^ ~p & w) + u[t] + v[t]) | 0, y = h + (e + i) | 0), e = (y >>> 2 | y << 30) ^ (y >>> 13 | y << 19) ^ (y >>> 22 | y << 10), i = (n = y & f) ^ y & c ^ s, w = l + (h = w + (r = (b >>> 6 | b << 26) ^ (b >>> 11 | b << 21) ^ (b >>> 25 | b << 7)) + (b & p ^ ~b & d) + u[t + 1] + v[t + 1]) | 0, e = ((l = h + (e + i) | 0) >>> 2 | l << 30) ^ (l >>> 13 | l << 19) ^ (l >>> 22 | l << 10), i = (o = l & y) ^ l & f ^ n, d = c + (h = d + (r = (w >>> 6 | w << 26) ^ (w >>> 11 | w << 21) ^ (w >>> 25 | w << 7)) + (w & b ^ ~w & p) + u[t + 2] + v[t + 2]) | 0, e = ((c = h + (e + i) | 0) >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10), i = (a = c & l) ^ c & y ^ o, p = f + (h = p + (r = (d >>> 6 | d << 26) ^ (d >>> 11 | d << 21) ^ (d >>> 25 | d << 7)) + (d & w ^ ~d & b) + u[t + 3] + v[t + 3]) | 0, f = h + (e + i) | 0, this.chromeBugWorkAround = !0;\n this.h0 = this.h0 + f | 0, this.h1 = this.h1 + c | 0, this.h2 = this.h2 + l | 0, this.h3 = this.h3 + y | 0, this.h4 = this.h4 + p | 0, this.h5 = this.h5 + d | 0, this.h6 = this.h6 + w | 0, this.h7 = this.h7 + b | 0;\n }, v.prototype.hex = function() {\n this.finalize();\n var t = this.h0, e = this.h1, r = this.h2, i = this.h3, h = this.h4, s = this.h5, n = this.h6, a = this.h7, f = o[t >>> 28 & 15] + o[t >>> 24 & 15] + o[t >>> 20 & 15] + o[t >>> 16 & 15] + o[t >>> 12 & 15] + o[t >>> 8 & 15] + o[t >>> 4 & 15] + o[15 & t] + o[e >>> 28 & 15] + o[e >>> 24 & 15] + o[e >>> 20 & 15] + o[e >>> 16 & 15] + o[e >>> 12 & 15] + o[e >>> 8 & 15] + o[e >>> 4 & 15] + o[15 & e] + o[r >>> 28 & 15] + o[r >>> 24 & 15] + o[r >>> 20 & 15] + o[r >>> 16 & 15] + o[r >>> 12 & 15] + o[r >>> 8 & 15] + o[r >>> 4 & 15] + o[15 & r] + o[i >>> 28 & 15] + o[i >>> 24 & 15] + o[i >>> 20 & 15] + o[i >>> 16 & 15] + o[i >>> 12 & 15] + o[i >>> 8 & 15] + o[i >>> 4 & 15] + o[15 & i] + o[h >>> 28 & 15] + o[h >>> 24 & 15] + o[h >>> 20 & 15] + o[h >>> 16 & 15] + o[h >>> 12 & 15] + o[h >>> 8 & 15] + o[h >>> 4 & 15] + o[15 & h] + o[s >>> 28 & 15] + o[s >>> 24 & 15] + o[s >>> 20 & 15] + o[s >>> 16 & 15] + o[s >>> 12 & 15] + o[s >>> 8 & 15] + o[s >>> 4 & 15] + o[15 & s] + o[n >>> 28 & 15] + o[n >>> 24 & 15] + o[n >>> 20 & 15] + o[n >>> 16 & 15] + o[n >>> 12 & 15] + o[n >>> 8 & 15] + o[n >>> 4 & 15] + o[15 & n];\n return this.is224 || (f += o[a >>> 28 & 15] + o[a >>> 24 & 15] + o[a >>> 20 & 15] + o[a >>> 16 & 15] + o[a >>> 12 & 15] + o[a >>> 8 & 15] + o[a >>> 4 & 15] + o[15 & a]), f;\n }, v.prototype.toString = v.prototype.hex, v.prototype.digest = function() {\n this.finalize();\n var t = this.h0, e = this.h1, r = this.h2, i = this.h3, h = this.h4, s = this.h5, n = this.h6, o = this.h7, a = [\n t >>> 24 & 255,\n t >>> 16 & 255,\n t >>> 8 & 255,\n 255 & t,\n e >>> 24 & 255,\n e >>> 16 & 255,\n e >>> 8 & 255,\n 255 & e,\n r >>> 24 & 255,\n r >>> 16 & 255,\n r >>> 8 & 255,\n 255 & r,\n i >>> 24 & 255,\n i >>> 16 & 255,\n i >>> 8 & 255,\n 255 & i,\n h >>> 24 & 255,\n h >>> 16 & 255,\n h >>> 8 & 255,\n 255 & h,\n s >>> 24 & 255,\n s >>> 16 & 255,\n s >>> 8 & 255,\n 255 & s,\n n >>> 24 & 255,\n n >>> 16 & 255,\n n >>> 8 & 255,\n 255 & n\n ];\n return this.is224 || a.push(o >>> 24 & 255, o >>> 16 & 255, o >>> 8 & 255, 255 & o), a;\n }, v.prototype.array = v.prototype.digest, v.prototype.arrayBuffer = function() {\n this.finalize();\n var t = new ArrayBuffer(this.is224 ? 28 : 32), e = new DataView(t);\n return e.setUint32(0, this.h0), e.setUint32(4, this.h1), e.setUint32(8, this.h2), e.setUint32(12, this.h3), e.setUint32(16, this.h4), e.setUint32(20, this.h5), e.setUint32(24, this.h6), this.is224 || e.setUint32(28, this.h7), t;\n }, A.prototype = new v, A.prototype.finalize = function() {\n if (v.prototype.finalize.call(this), this.inner) {\n this.inner = !1;\n var t = this.array();\n v.call(this, this.is224, this.sharedMemory), this.update(this.oKeyPad), this.update(t), v.prototype.finalize.call(this);\n }\n };\n var g = p();\n g.sha256 = g, g.sha224 = p(!0), g.sha256.hmac = b(), g.sha224.hmac = b(!0), s ? k.exports = g : (r.sha256 = g.sha256, r.sha224 = g.sha224);\n}();\nvar U = x.exports, z = x.exports.sha224, J = x.exports.sha256;\nfunction parseSha256(s) {\n return toByteArray(s);\n}\nfunction isHex(s) {\n const hexRegex = /^[0-9A-Fa-f]+$/;\n if (!hexRegex.test(s)) {\n return false;\n }\n const isAllUpperCase = /^[0-9A-F]+$/.test(s);\n const isAllLowerCase = /^[0-9a-f]+$/.test(s);\n if (!(isAllUpperCase || isAllLowerCase)) {\n return false;\n }\n return s.length % 2 === 0;\n}\nfunction isBase64(s) {\n return /^[A-Za-z0-9\\-_]*(={0,2})?$/.test(s) || /^[A-Za-z0-9+/]*(={0,2})?$/.test(s);\n}\nfunction detectEncoding(input) {\n if (isHex(input)) {\n return \"hex\";\n } else if (isBase64(input)) {\n return \"b64\";\n }\n return \"\";\n}\nfunction hexToByteArray(s) {\n if (s.length % 2 !== 0) {\n throw new Error(\"hex string must have an even length\");\n }\n const a = new Uint8Array(s.length / 2);\n for(let i = 0; i < s.length; i += 2){\n a[i / 2] = parseInt(s.substring(i, i + 2), 16);\n }\n return a;\n}\nfunction base64ToByteArray(s) {\n s = s.replace(/-/g, \"+\");\n s = s.replace(/_/g, \"/\");\n const sbin = atob(s);\n return Uint8Array.from(sbin, (c)=>c.charCodeAt(0));\n}\nfunction toByteArray(input) {\n const encoding = detectEncoding(input);\n switch(encoding){\n case \"hex\":\n return hexToByteArray(input);\n case \"b64\":\n return base64ToByteArray(input);\n }\n return null;\n}\nfunction checkSha256(a, b) {\n const aBytes = typeof a === \"string\" ? parseSha256(a) : a;\n const bBytes = typeof b === \"string\" ? parseSha256(b) : b;\n if (aBytes === null || bBytes === null) {\n return false;\n }\n if (aBytes.length !== bBytes.length) {\n return false;\n }\n for(let i = 0; i < aBytes.length; i++){\n if (aBytes[i] !== bBytes[i]) {\n return false;\n }\n }\n return true;\n}\nclass BaseRequest {\n token;\n received;\n ctx;\n requestSubject;\n mux;\n constructor(mux, requestSubject, asyncTraces = true){\n this.mux = mux;\n this.requestSubject = requestSubject;\n this.received = 0;\n this.token = nuid.next();\n if (asyncTraces) {\n this.ctx = new Error();\n }\n }\n}\nclass RequestMany extends BaseRequest {\n callback;\n done;\n timer;\n max;\n opts;\n constructor(mux, requestSubject, opts = {\n maxWait: 1000\n }){\n super(mux, requestSubject);\n this.opts = opts;\n if (typeof this.opts.callback !== \"function\") {\n throw new Error(\"callback is required\");\n }\n this.callback = this.opts.callback;\n this.max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0 ? opts.maxMessages : -1;\n this.done = deferred();\n this.done.then(()=>{\n this.callback(null, null);\n });\n this.timer = setTimeout(()=>{\n this.cancel();\n }, opts.maxWait);\n }\n cancel(err) {\n if (err) {\n this.callback(err, null);\n }\n clearTimeout(this.timer);\n this.mux.cancel(this);\n this.done.resolve();\n }\n resolver(err, msg) {\n if (err) {\n if (this.ctx) {\n err.stack += `\\n\\n${this.ctx.stack}`;\n }\n this.cancel(err);\n } else {\n this.callback(null, msg);\n if (this.opts.strategy === RequestStrategy.Count) {\n this.max--;\n if (this.max === 0) {\n this.cancel();\n }\n }\n if (this.opts.strategy === RequestStrategy.JitterTimer) {\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n this.cancel();\n }, this.opts.jitter || 300);\n }\n if (this.opts.strategy === RequestStrategy.SentinelMsg) {\n if (msg && msg.data.length === 0) {\n this.cancel();\n }\n }\n }\n }\n}\nclass RequestOne extends BaseRequest {\n deferred;\n timer;\n constructor(mux, requestSubject, opts = {\n timeout: 1000\n }, asyncTraces = true){\n super(mux, requestSubject, asyncTraces);\n this.deferred = deferred();\n this.timer = timeout(opts.timeout, asyncTraces);\n }\n resolver(err, msg) {\n if (this.timer) {\n this.timer.cancel();\n }\n if (err) {\n if (this.ctx) {\n err.stack += `\\n\\n${this.ctx.stack}`;\n }\n this.deferred.reject(err);\n } else {\n this.deferred.resolve(msg);\n }\n this.cancel();\n }\n cancel(err) {\n if (this.timer) {\n this.timer.cancel();\n }\n this.mux.cancel(this);\n this.deferred.reject(err ? err : NatsError.errorForCode(ErrorCode.Cancelled));\n }\n}\nconst defaultPrefix = \"$JS.API\";\nfunction defaultJsOptions(opts) {\n opts = opts || {};\n if (opts.domain) {\n opts.apiPrefix = `$JS.${opts.domain}.API`;\n delete opts.domain;\n }\n return extend({\n apiPrefix: defaultPrefix,\n timeout: 5000\n }, opts);\n}\nclass BaseApiClient {\n nc;\n opts;\n prefix;\n timeout;\n jc;\n constructor(nc, opts){\n this.nc = nc;\n this.opts = defaultJsOptions(opts);\n this._parseOpts();\n this.prefix = this.opts.apiPrefix;\n this.timeout = this.opts.timeout;\n this.jc = JSONCodec();\n }\n getOptions() {\n return Object.assign({}, this.opts);\n }\n _parseOpts() {\n let prefix = this.opts.apiPrefix;\n if (!prefix || prefix.length === 0) {\n throw new Error(\"invalid empty prefix\");\n }\n const c = prefix[prefix.length - 1];\n if (c === \".\") {\n prefix = prefix.substr(0, prefix.length - 1);\n }\n this.opts.apiPrefix = prefix;\n }\n async _request(subj, data = null, opts) {\n opts = opts || {};\n opts.timeout = this.timeout;\n let a = Empty;\n if (data) {\n a = this.jc.encode(data);\n }\n let { retries } = opts;\n retries = retries || 1;\n retries = retries === -1 ? Number.MAX_SAFE_INTEGER : retries;\n const bo = backoff();\n for(let i = 0; i < retries; i++){\n try {\n const m = await this.nc.request(subj, a, opts);\n return this.parseJsResponse(m);\n } catch (err) {\n const ne = err;\n if ((ne.code === \"503\" || ne.code === ErrorCode.Timeout) && i + 1 < retries) {\n await delay(bo.backoff(i));\n } else {\n throw err;\n }\n }\n }\n }\n async findStream(subject) {\n const q = {\n subject\n };\n const r = await this._request(`${this.prefix}.STREAM.NAMES`, q);\n const names = r;\n if (!names.streams || names.streams.length !== 1) {\n throw new Error(\"no stream matches subject\");\n }\n return names.streams[0];\n }\n getConnection() {\n return this.nc;\n }\n parseJsResponse(m) {\n const v = this.jc.decode(m.data);\n const r = v;\n if (r.error) {\n const err = checkJsErrorCode(r.error.code, r.error.description);\n if (err !== null) {\n err.api_error = r.error;\n throw err;\n }\n }\n return v;\n }\n}\nclass ListerImpl {\n err;\n offset;\n pageInfo;\n subject;\n jsm;\n filter;\n payload;\n constructor(subject, filter, jsm, payload){\n if (!subject) {\n throw new Error(\"subject is required\");\n }\n this.subject = subject;\n this.jsm = jsm;\n this.offset = 0;\n this.pageInfo = {};\n this.filter = filter;\n this.payload = payload || {};\n }\n async next() {\n if (this.err) {\n return [];\n }\n if (this.pageInfo && this.offset >= this.pageInfo.total) {\n return [];\n }\n const offset = {\n offset: this.offset\n };\n if (this.payload) {\n Object.assign(offset, this.payload);\n }\n try {\n const r = await this.jsm._request(this.subject, offset, {\n timeout: this.jsm.timeout\n });\n this.pageInfo = r;\n const count = this.countResponse(r);\n if (count === 0) {\n return [];\n }\n this.offset += count;\n const a = this.filter(r);\n return a;\n } catch (err) {\n this.err = err;\n throw err;\n }\n }\n countResponse(r) {\n switch(r?.type){\n case \"io.nats.jetstream.api.v1.stream_names_response\":\n case \"io.nats.jetstream.api.v1.stream_list_response\":\n return r.streams?.length || 0;\n case \"io.nats.jetstream.api.v1.consumer_list_response\":\n return r.consumers?.length || 0;\n default:\n console.error(`jslister.ts: unknown API response for paged output: ${r?.type}`);\n return r.streams?.length || 0;\n }\n return 0;\n }\n async *[Symbol.asyncIterator]() {\n let page = await this.next();\n while(page.length > 0){\n for (const item of page){\n yield item;\n }\n page = await this.next();\n }\n }\n}\nfunction parseSemVer(s = \"\") {\n const m = s.match(/(\\d+).(\\d+).(\\d+)/);\n if (m) {\n return {\n major: parseInt(m[1]),\n minor: parseInt(m[2]),\n micro: parseInt(m[3])\n };\n }\n throw new Error(`'${s}' is not a semver value`);\n}\nfunction compare(a, b) {\n if (a.major < b.major) return -1;\n if (a.major > b.major) return 1;\n if (a.minor < b.minor) return -1;\n if (a.minor > b.minor) return 1;\n if (a.micro < b.micro) return -1;\n if (a.micro > b.micro) return 1;\n return 0;\n}\nvar Feature;\n(function(Feature) {\n Feature[\"JS_KV\"] = \"js_kv\";\n Feature[\"JS_OBJECTSTORE\"] = \"js_objectstore\";\n Feature[\"JS_PULL_MAX_BYTES\"] = \"js_pull_max_bytes\";\n Feature[\"JS_NEW_CONSUMER_CREATE_API\"] = \"js_new_consumer_create\";\n Feature[\"JS_ALLOW_DIRECT\"] = \"js_allow_direct\";\n Feature[\"JS_MULTIPLE_CONSUMER_FILTER\"] = \"js_multiple_consumer_filter\";\n Feature[\"JS_SIMPLIFICATION\"] = \"js_simplification\";\n Feature[\"JS_STREAM_CONSUMER_METADATA\"] = \"js_stream_consumer_metadata\";\n Feature[\"JS_CONSUMER_FILTER_SUBJECTS\"] = \"js_consumer_filter_subjects\";\n Feature[\"JS_STREAM_FIRST_SEQ\"] = \"js_stream_first_seq\";\n Feature[\"JS_STREAM_SUBJECT_TRANSFORM\"] = \"js_stream_subject_transform\";\n Feature[\"JS_STREAM_SOURCE_SUBJECT_TRANSFORM\"] = \"js_stream_source_subject_transform\";\n Feature[\"JS_STREAM_COMPRESSION\"] = \"js_stream_compression\";\n Feature[\"JS_DEFAULT_CONSUMER_LIMITS\"] = \"js_default_consumer_limits\";\n Feature[\"JS_BATCH_DIRECT_GET\"] = \"js_batch_direct_get\";\n})(Feature || (Feature = {}));\nclass Features {\n server;\n features;\n disabled;\n constructor(v){\n this.features = new Map();\n this.disabled = [];\n this.update(v);\n }\n resetDisabled() {\n this.disabled.length = 0;\n this.update(this.server);\n }\n disable(f) {\n this.disabled.push(f);\n this.update(this.server);\n }\n isDisabled(f) {\n return this.disabled.indexOf(f) !== -1;\n }\n update(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n this.server = v;\n this.set(Feature.JS_KV, \"2.6.2\");\n this.set(Feature.JS_OBJECTSTORE, \"2.6.3\");\n this.set(Feature.JS_PULL_MAX_BYTES, \"2.8.3\");\n this.set(Feature.JS_NEW_CONSUMER_CREATE_API, \"2.9.0\");\n this.set(Feature.JS_ALLOW_DIRECT, \"2.9.0\");\n this.set(Feature.JS_MULTIPLE_CONSUMER_FILTER, \"2.10.0\");\n this.set(Feature.JS_SIMPLIFICATION, \"2.9.4\");\n this.set(Feature.JS_STREAM_CONSUMER_METADATA, \"2.10.0\");\n this.set(Feature.JS_CONSUMER_FILTER_SUBJECTS, \"2.10.0\");\n this.set(Feature.JS_STREAM_FIRST_SEQ, \"2.10.0\");\n this.set(Feature.JS_STREAM_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(Feature.JS_STREAM_SOURCE_SUBJECT_TRANSFORM, \"2.10.0\");\n this.set(Feature.JS_STREAM_COMPRESSION, \"2.10.0\");\n this.set(Feature.JS_DEFAULT_CONSUMER_LIMITS, \"2.10.0\");\n this.set(Feature.JS_BATCH_DIRECT_GET, \"2.11.0\");\n this.disabled.forEach((f)=>{\n this.features.delete(f);\n });\n }\n set(f, requires) {\n this.features.set(f, {\n min: requires,\n ok: compare(this.server, parseSemVer(requires)) >= 0\n });\n }\n get(f) {\n return this.features.get(f) || {\n min: \"unknown\",\n ok: false\n };\n }\n supports(f) {\n return this.get(f)?.ok || false;\n }\n require(v) {\n if (typeof v === \"string\") {\n v = parseSemVer(v);\n }\n return compare(this.server, v) >= 0;\n }\n}\nclass ConsumerAPIImpl extends BaseApiClient {\n constructor(nc, opts){\n super(nc, opts);\n }\n async add(stream, cfg, action = ConsumerApiAction.Create) {\n validateStreamName(stream);\n if (cfg.deliver_group && cfg.flow_control) {\n throw new Error(\"jetstream flow control is not supported with queue groups\");\n }\n if (cfg.deliver_group && cfg.idle_heartbeat) {\n throw new Error(\"jetstream idle heartbeat is not supported with queue groups\");\n }\n const cr = {};\n cr.config = cfg;\n cr.stream_name = stream;\n cr.action = action;\n if (cr.config.durable_name) {\n validateDurableName(cr.config.durable_name);\n }\n const nci = this.nc;\n let { min, ok: newAPI } = nci.features.get(Feature.JS_NEW_CONSUMER_CREATE_API);\n const name = cfg.name === \"\" ? undefined : cfg.name;\n if (name && !newAPI) {\n throw new Error(`consumer 'name' requires server ${min}`);\n }\n if (name) {\n try {\n minValidation(\"name\", name);\n } catch (err) {\n const m = err.message;\n const idx = m.indexOf(\"cannot contain\");\n if (idx !== -1) {\n throw new Error(`consumer 'name' ${m.substring(idx)}`);\n }\n throw err;\n }\n }\n let subj;\n let consumerName = \"\";\n if (Array.isArray(cfg.filter_subjects)) {\n const { min, ok } = nci.features.get(Feature.JS_MULTIPLE_CONSUMER_FILTER);\n if (!ok) {\n throw new Error(`consumer 'filter_subjects' requires server ${min}`);\n }\n newAPI = false;\n }\n if (cfg.metadata) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_CONSUMER_METADATA);\n if (!ok) {\n throw new Error(`consumer 'metadata' requires server ${min}`);\n }\n }\n if (newAPI) {\n consumerName = cfg.name ?? cfg.durable_name ?? \"\";\n }\n if (consumerName !== \"\") {\n let fs = cfg.filter_subject ?? undefined;\n if (fs === \">\") {\n fs = undefined;\n }\n subj = fs !== undefined ? `${this.prefix}.CONSUMER.CREATE.${stream}.${consumerName}.${fs}` : `${this.prefix}.CONSUMER.CREATE.${stream}.${consumerName}`;\n } else {\n subj = cfg.durable_name ? `${this.prefix}.CONSUMER.DURABLE.CREATE.${stream}.${cfg.durable_name}` : `${this.prefix}.CONSUMER.CREATE.${stream}`;\n }\n const r = await this._request(subj, cr);\n return r;\n }\n async update(stream, durable, cfg) {\n const ci = await this.info(stream, durable);\n const changable = cfg;\n return this.add(stream, Object.assign(ci.config, changable), ConsumerApiAction.Update);\n }\n async info(stream, name) {\n validateStreamName(stream);\n validateDurableName(name);\n const r = await this._request(`${this.prefix}.CONSUMER.INFO.${stream}.${name}`);\n return r;\n }\n async delete(stream, name) {\n validateStreamName(stream);\n validateDurableName(name);\n const r = await this._request(`${this.prefix}.CONSUMER.DELETE.${stream}.${name}`);\n const cr = r;\n return cr.success;\n }\n list(stream) {\n validateStreamName(stream);\n const filter = (v)=>{\n const clr = v;\n return clr.consumers;\n };\n const subj = `${this.prefix}.CONSUMER.LIST.${stream}`;\n return new ListerImpl(subj, filter, this);\n }\n pause(stream, name, until) {\n const subj = `${this.prefix}.CONSUMER.PAUSE.${stream}.${name}`;\n const opts = {\n pause_until: until.toISOString()\n };\n return this._request(subj, opts);\n }\n resume(stream, name) {\n return this.pause(stream, name, new Date(0));\n }\n}\nfunction checkFn(fn, name, required = false) {\n if (required === true && !fn) {\n throw NatsError.errorForCode(ErrorCode.ApiError, new Error(`${name} is not a function`));\n }\n if (fn && typeof fn !== \"function\") {\n throw NatsError.errorForCode(ErrorCode.ApiError, new Error(`${name} is not a function`));\n }\n}\nclass TypedSubscription extends QueuedIteratorImpl {\n sub;\n adapter;\n subIterDone;\n constructor(nc, subject, opts){\n super();\n checkFn(opts.adapter, \"adapter\", true);\n this.adapter = opts.adapter;\n if (opts.callback) {\n checkFn(opts.callback, \"callback\");\n }\n this.noIterator = typeof opts.callback === \"function\";\n if (opts.ingestionFilterFn) {\n checkFn(opts.ingestionFilterFn, \"ingestionFilterFn\");\n this.ingestionFilterFn = opts.ingestionFilterFn;\n }\n if (opts.protocolFilterFn) {\n checkFn(opts.protocolFilterFn, \"protocolFilterFn\");\n this.protocolFilterFn = opts.protocolFilterFn;\n }\n if (opts.dispatchedFn) {\n checkFn(opts.dispatchedFn, \"dispatchedFn\");\n this.dispatchedFn = opts.dispatchedFn;\n }\n if (opts.cleanupFn) {\n checkFn(opts.cleanupFn, \"cleanupFn\");\n }\n let callback = (err, msg)=>{\n this.callback(err, msg);\n };\n if (opts.callback) {\n const uh = opts.callback;\n callback = (err, msg)=>{\n const [jer, tm] = this.adapter(err, msg);\n if (jer) {\n uh(jer, null);\n return;\n }\n const { ingest } = this.ingestionFilterFn ? this.ingestionFilterFn(tm, this) : {\n ingest: true\n };\n if (ingest) {\n const ok = this.protocolFilterFn ? this.protocolFilterFn(tm) : true;\n if (ok) {\n uh(jer, tm);\n if (this.dispatchedFn && tm) {\n this.dispatchedFn(tm);\n }\n }\n }\n };\n }\n const { max, queue, timeout } = opts;\n const sopts = {\n queue,\n timeout,\n callback\n };\n if (max && max > 0) {\n sopts.max = max;\n }\n this.sub = nc.subscribe(subject, sopts);\n if (opts.cleanupFn) {\n this.sub.cleanupFn = opts.cleanupFn;\n }\n if (!this.noIterator) {\n this.iterClosed.then(()=>{\n this.unsubscribe();\n });\n }\n this.subIterDone = deferred();\n Promise.all([\n this.sub.closed,\n this.iterClosed\n ]).then(()=>{\n this.subIterDone.resolve();\n }).catch(()=>{\n this.subIterDone.resolve();\n });\n (async (s)=>{\n await s.closed;\n this.stop();\n })(this.sub).then().catch();\n }\n unsubscribe(max) {\n this.sub.unsubscribe(max);\n }\n drain() {\n return this.sub.drain();\n }\n isDraining() {\n return this.sub.isDraining();\n }\n isClosed() {\n return this.sub.isClosed();\n }\n callback(e, msg) {\n this.sub.cancelTimeout();\n const [err, tm] = this.adapter(e, msg);\n if (err) {\n this.stop(err);\n }\n if (tm) {\n this.push(tm);\n }\n }\n getSubject() {\n return this.sub.getSubject();\n }\n getReceived() {\n return this.sub.getReceived();\n }\n getProcessed() {\n return this.sub.getProcessed();\n }\n getPending() {\n return this.sub.getPending();\n }\n getID() {\n return this.sub.getID();\n }\n getMax() {\n return this.sub.getMax();\n }\n get closed() {\n return this.sub.closed;\n }\n}\nlet transportConfig;\nfunction setTransportFactory(config) {\n transportConfig = config;\n}\nfunction defaultPort() {\n return transportConfig !== undefined && transportConfig.defaultPort !== undefined ? transportConfig.defaultPort : 4222;\n}\nfunction getUrlParseFn() {\n return transportConfig !== undefined && transportConfig.urlParseFn ? transportConfig.urlParseFn : undefined;\n}\nfunction newTransport() {\n if (!transportConfig || typeof transportConfig.factory !== \"function\") {\n throw new Error(\"transport fn is not set\");\n }\n return transportConfig.factory();\n}\nfunction getResolveFn() {\n return transportConfig !== undefined && transportConfig.dnsResolveFn ? transportConfig.dnsResolveFn : undefined;\n}\nconst CR_LF = \"\\r\\n\";\nCR_LF.length;\nconst CRLF = DataBuffer.fromAscii(CR_LF);\nconst CR = new Uint8Array(CRLF)[0];\nconst LF = new Uint8Array(CRLF)[1];\nfunction protoLen(ba) {\n for(let i = 0; i < ba.length; i++){\n const n = i + 1;\n if (ba.byteLength > n && ba[i] === CR && ba[n] === LF) {\n return n + 1;\n }\n }\n return 0;\n}\nfunction extractProtocolMessage(a) {\n const len = protoLen(a);\n if (len > 0) {\n const ba = new Uint8Array(a);\n const out = ba.slice(0, len);\n return TD.decode(out);\n }\n return \"\";\n}\nconst IPv4LEN = 4;\nconst ASCII0 = 48;\nconst ASCIIA = 65;\nconst ASCIIa = 97;\nfunction ipV4(a, b, c, d) {\n const ip = new Uint8Array(16);\n const prefix = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0xff,\n 0xff\n ];\n prefix.forEach((v, idx)=>{\n ip[idx] = v;\n });\n ip[12] = a;\n ip[13] = b;\n ip[14] = c;\n ip[15] = d;\n return ip;\n}\nfunction isIP(h) {\n return parseIP(h) !== undefined;\n}\nfunction parseIP(h) {\n for(let i = 0; i < h.length; i++){\n switch(h[i]){\n case \".\":\n return parseIPv4(h);\n case \":\":\n return parseIPv6(h);\n }\n }\n return;\n}\nfunction parseIPv4(s) {\n const ip = new Uint8Array(4);\n for(let i = 0; i < 4; i++){\n if (s.length === 0) {\n return undefined;\n }\n if (i > 0) {\n if (s[0] !== \".\") {\n return undefined;\n }\n s = s.substring(1);\n }\n const { n, c, ok } = dtoi(s);\n if (!ok || n > 0xFF) {\n return undefined;\n }\n s = s.substring(c);\n ip[i] = n;\n }\n return ipV4(ip[0], ip[1], ip[2], ip[3]);\n}\nfunction parseIPv6(s) {\n const ip = new Uint8Array(16);\n let ellipsis = -1;\n if (s.length >= 2 && s[0] === \":\" && s[1] === \":\") {\n ellipsis = 0;\n s = s.substring(2);\n if (s.length === 0) {\n return ip;\n }\n }\n let i = 0;\n while(i < 16){\n const { n, c, ok } = xtoi(s);\n if (!ok || n > 0xFFFF) {\n return undefined;\n }\n if (c < s.length && s[c] === \".\") {\n if (ellipsis < 0 && i != 16 - 4) {\n return undefined;\n }\n if (i + 4 > 16) {\n return undefined;\n }\n const ip4 = parseIPv4(s);\n if (ip4 === undefined) {\n return undefined;\n }\n ip[i] = ip4[12];\n ip[i + 1] = ip4[13];\n ip[i + 2] = ip4[14];\n ip[i + 3] = ip4[15];\n s = \"\";\n i += IPv4LEN;\n break;\n }\n ip[i] = n >> 8;\n ip[i + 1] = n;\n i += 2;\n s = s.substring(c);\n if (s.length === 0) {\n break;\n }\n if (s[0] !== \":\" || s.length == 1) {\n return undefined;\n }\n s = s.substring(1);\n if (s[0] === \":\") {\n if (ellipsis >= 0) {\n return undefined;\n }\n ellipsis = i;\n s = s.substring(1);\n if (s.length === 0) {\n break;\n }\n }\n }\n if (s.length !== 0) {\n return undefined;\n }\n if (i < 16) {\n if (ellipsis < 0) {\n return undefined;\n }\n const n = 16 - i;\n for(let j = i - 1; j >= ellipsis; j--){\n ip[j + n] = ip[j];\n }\n for(let j = ellipsis + n - 1; j >= ellipsis; j--){\n ip[j] = 0;\n }\n } else if (ellipsis >= 0) {\n return undefined;\n }\n return ip;\n}\nfunction dtoi(s) {\n let i = 0;\n let n = 0;\n for(i = 0; i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57; i++){\n n = n * 10 + (s.charCodeAt(i) - ASCII0);\n if (n >= 0xFFFFFF) {\n return {\n n: 0xFFFFFF,\n c: i,\n ok: false\n };\n }\n }\n if (i === 0) {\n return {\n n: 0,\n c: 0,\n ok: false\n };\n }\n return {\n n: n,\n c: i,\n ok: true\n };\n}\nfunction xtoi(s) {\n let n = 0;\n let i = 0;\n for(i = 0; i < s.length; i++){\n if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) {\n n *= 16;\n n += s.charCodeAt(i) - ASCII0;\n } else if (97 <= s.charCodeAt(i) && s.charCodeAt(i) <= 102) {\n n *= 16;\n n += s.charCodeAt(i) - ASCIIa + 10;\n } else if (65 <= s.charCodeAt(i) && s.charCodeAt(i) <= 70) {\n n *= 16;\n n += s.charCodeAt(i) - ASCIIA + 10;\n } else {\n break;\n }\n if (n >= 0xFFFFFF) {\n return {\n n: 0,\n c: i,\n ok: false\n };\n }\n }\n if (i === 0) {\n return {\n n: 0,\n c: i,\n ok: false\n };\n }\n return {\n n: n,\n c: i,\n ok: true\n };\n}\nfunction isIPV4OrHostname(hp) {\n if (hp.indexOf(\"[\") !== -1 || hp.indexOf(\"::\") !== -1) {\n return false;\n }\n if (hp.indexOf(\".\") !== -1) {\n return true;\n }\n if (hp.split(\":\").length <= 2) {\n return true;\n }\n return false;\n}\nfunction isIPV6(hp) {\n return !isIPV4OrHostname(hp);\n}\nfunction filterIpv6MappedToIpv4(hp) {\n const prefix = \"::FFFF:\";\n const idx = hp.toUpperCase().indexOf(prefix);\n if (idx !== -1 && hp.indexOf(\".\") !== -1) {\n let ip = hp.substring(idx + prefix.length);\n ip = ip.replace(\"[\", \"\");\n return ip.replace(\"]\", \"\");\n }\n return hp;\n}\nfunction hostPort(u) {\n u = u.trim();\n if (u.match(/^(.*:\\/\\/)(.*)/m)) {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n }\n u = filterIpv6MappedToIpv4(u);\n if (isIPV6(u) && u.indexOf(\"[\") === -1) {\n u = `[${u}]`;\n }\n const op = isIPV6(u) ? u.match(/(]:)(\\d+)/) : u.match(/(:)(\\d+)/);\n const port = op && op.length === 3 && op[1] && op[2] ? parseInt(op[2]) : 4222;\n const protocol = port === 80 ? \"https\" : \"http\";\n const url = new URL(`${protocol}://${u}`);\n url.port = `${port}`;\n let hostname = url.hostname;\n if (hostname.charAt(0) === \"[\") {\n hostname = hostname.substring(1, hostname.length - 1);\n }\n const listen = url.host;\n return {\n listen,\n hostname,\n port\n };\n}\nclass ServerImpl {\n src;\n listen;\n hostname;\n port;\n didConnect;\n reconnects;\n lastConnect;\n gossiped;\n tlsName;\n resolves;\n constructor(u, gossiped = false){\n this.src = u;\n this.tlsName = \"\";\n const v = hostPort(u);\n this.listen = v.listen;\n this.hostname = v.hostname;\n this.port = v.port;\n this.didConnect = false;\n this.reconnects = 0;\n this.lastConnect = 0;\n this.gossiped = gossiped;\n }\n toString() {\n return this.listen;\n }\n async resolve(opts) {\n if (!opts.fn || opts.resolve === false) {\n return [\n this\n ];\n }\n const buf = [];\n if (isIP(this.hostname)) {\n return [\n this\n ];\n } else {\n const ips = await opts.fn(this.hostname);\n if (opts.debug) {\n console.log(`resolve ${this.hostname} = ${ips.join(\",\")}`);\n }\n for (const ip of ips){\n const proto = this.port === 80 ? \"https\" : \"http\";\n const url = new URL(`${proto}://${isIPV6(ip) ? \"[\" + ip + \"]\" : ip}`);\n url.port = `${this.port}`;\n const ss = new ServerImpl(url.host, false);\n ss.tlsName = this.hostname;\n buf.push(ss);\n }\n }\n if (opts.randomize) {\n shuffle(buf);\n }\n this.resolves = buf;\n return buf;\n }\n}\nclass Servers {\n firstSelect;\n servers;\n currentServer;\n tlsName;\n randomize;\n constructor(listens = [], opts = {}){\n this.firstSelect = true;\n this.servers = [];\n this.tlsName = \"\";\n this.randomize = opts.randomize || false;\n const urlParseFn = getUrlParseFn();\n if (listens) {\n listens.forEach((hp)=>{\n hp = urlParseFn ? urlParseFn(hp) : hp;\n this.servers.push(new ServerImpl(hp));\n });\n if (this.randomize) {\n this.servers = shuffle(this.servers);\n }\n }\n if (this.servers.length === 0) {\n this.addServer(`${DEFAULT_HOST}:${defaultPort()}`, false);\n }\n this.currentServer = this.servers[0];\n }\n clear() {\n this.servers.length = 0;\n }\n updateTLSName() {\n const cs = this.getCurrentServer();\n if (!isIP(cs.hostname)) {\n this.tlsName = cs.hostname;\n this.servers.forEach((s)=>{\n if (s.gossiped) {\n s.tlsName = this.tlsName;\n }\n });\n }\n }\n getCurrentServer() {\n return this.currentServer;\n }\n addServer(u, implicit = false) {\n const urlParseFn = getUrlParseFn();\n u = urlParseFn ? urlParseFn(u) : u;\n const s = new ServerImpl(u, implicit);\n if (isIP(s.hostname)) {\n s.tlsName = this.tlsName;\n }\n this.servers.push(s);\n }\n selectServer() {\n if (this.firstSelect) {\n this.firstSelect = false;\n return this.currentServer;\n }\n const t = this.servers.shift();\n if (t) {\n this.servers.push(t);\n this.currentServer = t;\n }\n return t;\n }\n removeCurrentServer() {\n this.removeServer(this.currentServer);\n }\n removeServer(server) {\n if (server) {\n const index = this.servers.indexOf(server);\n this.servers.splice(index, 1);\n }\n }\n length() {\n return this.servers.length;\n }\n next() {\n return this.servers.length ? this.servers[0] : undefined;\n }\n getServers() {\n return this.servers;\n }\n update(info, encrypted) {\n const added = [];\n let deleted = [];\n const urlParseFn = getUrlParseFn();\n const discovered = new Map();\n if (info.connect_urls && info.connect_urls.length > 0) {\n info.connect_urls.forEach((hp)=>{\n hp = urlParseFn ? urlParseFn(hp, encrypted) : hp;\n const s = new ServerImpl(hp, true);\n discovered.set(hp, s);\n });\n }\n const toDelete = [];\n this.servers.forEach((s, index)=>{\n const u = s.listen;\n if (s.gossiped && this.currentServer.listen !== u && discovered.get(u) === undefined) {\n toDelete.push(index);\n }\n discovered.delete(u);\n });\n toDelete.reverse();\n toDelete.forEach((index)=>{\n const removed = this.servers.splice(index, 1);\n deleted = deleted.concat(removed[0].listen);\n });\n discovered.forEach((v, k)=>{\n this.servers.push(v);\n added.push(k);\n });\n return {\n added,\n deleted\n };\n }\n}\nclass MuxSubscription {\n baseInbox;\n reqs;\n constructor(){\n this.reqs = new Map();\n }\n size() {\n return this.reqs.size;\n }\n init(prefix) {\n this.baseInbox = `${createInbox(prefix)}.`;\n return this.baseInbox;\n }\n add(r) {\n if (!isNaN(r.received)) {\n r.received = 0;\n }\n this.reqs.set(r.token, r);\n }\n get(token) {\n return this.reqs.get(token);\n }\n cancel(r) {\n this.reqs.delete(r.token);\n }\n getToken(m) {\n const s = m.subject || \"\";\n if (s.indexOf(this.baseInbox) === 0) {\n return s.substring(this.baseInbox.length);\n }\n return null;\n }\n all() {\n return Array.from(this.reqs.values());\n }\n handleError(isMuxPermissionError, err) {\n if (err && err.permissionContext) {\n if (isMuxPermissionError) {\n this.all().forEach((r)=>{\n r.resolver(err, {});\n });\n return true;\n }\n const ctx = err.permissionContext;\n if (ctx.operation === \"publish\") {\n const req = this.all().find((s)=>{\n return s.requestSubject === ctx.subject;\n });\n if (req) {\n req.resolver(err, {});\n return true;\n }\n }\n }\n return false;\n }\n dispatcher() {\n return (err, m)=>{\n const token = this.getToken(m);\n if (token) {\n const r = this.get(token);\n if (r) {\n if (err === null && m.headers) {\n err = isRequestError(m);\n }\n r.resolver(err, m);\n }\n }\n };\n }\n close() {\n const err = NatsError.errorForCode(ErrorCode.Timeout);\n this.reqs.forEach((req)=>{\n req.resolver(err, {});\n });\n }\n}\nclass Heartbeat {\n ph;\n interval;\n maxOut;\n timer;\n pendings;\n constructor(ph, interval, maxOut){\n this.ph = ph;\n this.interval = interval;\n this.maxOut = maxOut;\n this.pendings = [];\n }\n start() {\n this.cancel();\n this._schedule();\n }\n cancel(stale) {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n this._reset();\n if (stale) {\n this.ph.disconnect();\n }\n }\n _schedule() {\n this.timer = setTimeout(()=>{\n this.ph.dispatchStatus({\n type: DebugEvents.PingTimer,\n data: `${this.pendings.length + 1}`\n });\n if (this.pendings.length === this.maxOut) {\n this.cancel(true);\n return;\n }\n const ping = deferred();\n this.ph.flush(ping).then(()=>{\n this._reset();\n }).catch(()=>{\n this.cancel();\n });\n this.pendings.push(ping);\n this._schedule();\n }, this.interval);\n }\n _reset() {\n this.pendings = this.pendings.filter((p)=>{\n const d = p;\n d.resolve();\n return false;\n });\n }\n}\nclass AssertionError extends Error {\n constructor(msg){\n super(msg);\n this.name = \"AssertionError\";\n }\n}\nfunction assert(cond, msg = \"Assertion failed.\") {\n if (!cond) {\n throw new AssertionError(msg);\n }\n}\nconst MIN_READ = 32 * 1024;\nconst MAX_SIZE = 2 ** 32 - 2;\nfunction copy(src, dst, off = 0) {\n const r = dst.byteLength - off;\n if (src.byteLength > r) {\n src = src.subarray(0, r);\n }\n dst.set(src, off);\n return src.byteLength;\n}\nclass DenoBuffer {\n _buf;\n _off;\n constructor(ab){\n this._off = 0;\n if (ab == null) {\n this._buf = new Uint8Array(0);\n return;\n }\n this._buf = new Uint8Array(ab);\n }\n bytes(options = {\n copy: true\n }) {\n if (options.copy === false) return this._buf.subarray(this._off);\n return this._buf.slice(this._off);\n }\n empty() {\n return this._buf.byteLength <= this._off;\n }\n get length() {\n return this._buf.byteLength - this._off;\n }\n get capacity() {\n return this._buf.buffer.byteLength;\n }\n truncate(n) {\n if (n === 0) {\n this.reset();\n return;\n }\n if (n < 0 || n > this.length) {\n throw Error(\"bytes.Buffer: truncation out of range\");\n }\n this._reslice(this._off + n);\n }\n reset() {\n this._reslice(0);\n this._off = 0;\n }\n _tryGrowByReslice(n) {\n const l = this._buf.byteLength;\n if (n <= this.capacity - l) {\n this._reslice(l + n);\n return l;\n }\n return -1;\n }\n _reslice(len) {\n assert(len <= this._buf.buffer.byteLength);\n this._buf = new Uint8Array(this._buf.buffer, 0, len);\n }\n readByte() {\n const a = new Uint8Array(1);\n if (this.read(a)) {\n return a[0];\n }\n return null;\n }\n read(p) {\n if (this.empty()) {\n this.reset();\n if (p.byteLength === 0) {\n return 0;\n }\n return null;\n }\n const nread = copy(this._buf.subarray(this._off), p);\n this._off += nread;\n return nread;\n }\n writeByte(n) {\n return this.write(Uint8Array.of(n));\n }\n writeString(s) {\n return this.write(TE.encode(s));\n }\n write(p) {\n const m = this._grow(p.byteLength);\n return copy(p, this._buf, m);\n }\n _grow(n) {\n const m = this.length;\n if (m === 0 && this._off !== 0) {\n this.reset();\n }\n const i = this._tryGrowByReslice(n);\n if (i >= 0) {\n return i;\n }\n const c = this.capacity;\n if (n <= Math.floor(c / 2) - m) {\n copy(this._buf.subarray(this._off), this._buf);\n } else if (c + n > MAX_SIZE) {\n throw new Error(\"The buffer cannot be grown beyond the maximum size.\");\n } else {\n const buf = new Uint8Array(Math.min(2 * c + n, MAX_SIZE));\n copy(this._buf.subarray(this._off), buf);\n this._buf = buf;\n }\n this._off = 0;\n this._reslice(Math.min(m + n, MAX_SIZE));\n return m;\n }\n grow(n) {\n if (n < 0) {\n throw Error(\"Buffer._grow: negative count\");\n }\n const m = this._grow(n);\n this._reslice(m);\n }\n readFrom(r) {\n let n = 0;\n const tmp = new Uint8Array(MIN_READ);\n while(true){\n const shouldGrow = this.capacity - this.length < MIN_READ;\n const buf = shouldGrow ? tmp : new Uint8Array(this._buf.buffer, this.length);\n const nread = r.read(buf);\n if (nread === null) {\n return n;\n }\n if (shouldGrow) this.write(buf.subarray(0, nread));\n else this._reslice(this.length + nread);\n n += nread;\n }\n }\n}\nvar Kind;\n(function(Kind) {\n Kind[Kind[\"OK\"] = 0] = \"OK\";\n Kind[Kind[\"ERR\"] = 1] = \"ERR\";\n Kind[Kind[\"MSG\"] = 2] = \"MSG\";\n Kind[Kind[\"INFO\"] = 3] = \"INFO\";\n Kind[Kind[\"PING\"] = 4] = \"PING\";\n Kind[Kind[\"PONG\"] = 5] = \"PONG\";\n})(Kind || (Kind = {}));\nfunction newMsgArg() {\n const ma = {};\n ma.sid = -1;\n ma.hdr = -1;\n ma.size = -1;\n return ma;\n}\nconst ASCII_0 = 48;\nclass Parser {\n dispatcher;\n state;\n as;\n drop;\n hdr;\n ma;\n argBuf;\n msgBuf;\n constructor(dispatcher){\n this.dispatcher = dispatcher;\n this.state = State.OP_START;\n this.as = 0;\n this.drop = 0;\n this.hdr = 0;\n }\n parse(buf) {\n let i;\n for(i = 0; i < buf.length; i++){\n const b = buf[i];\n switch(this.state){\n case State.OP_START:\n switch(b){\n case cc.M:\n case cc.m:\n this.state = State.OP_M;\n this.hdr = -1;\n this.ma = newMsgArg();\n break;\n case cc.H:\n case cc.h:\n this.state = State.OP_H;\n this.hdr = 0;\n this.ma = newMsgArg();\n break;\n case cc.P:\n case cc.p:\n this.state = State.OP_P;\n break;\n case cc.PLUS:\n this.state = State.OP_PLUS;\n break;\n case cc.MINUS:\n this.state = State.OP_MINUS;\n break;\n case cc.I:\n case cc.i:\n this.state = State.OP_I;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_H:\n switch(b){\n case cc.M:\n case cc.m:\n this.state = State.OP_M;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_M:\n switch(b){\n case cc.S:\n case cc.s:\n this.state = State.OP_MS;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MS:\n switch(b){\n case cc.G:\n case cc.g:\n this.state = State.OP_MSG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MSG:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n this.state = State.OP_MSG_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MSG_SPC:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n continue;\n default:\n this.state = State.MSG_ARG;\n this.as = i;\n }\n break;\n case State.MSG_ARG:\n switch(b){\n case cc.CR:\n this.drop = 1;\n break;\n case cc.NL:\n {\n const arg = this.argBuf ? this.argBuf.bytes() : buf.subarray(this.as, i - this.drop);\n this.processMsgArgs(arg);\n this.drop = 0;\n this.as = i + 1;\n this.state = State.MSG_PAYLOAD;\n i = this.as + this.ma.size - 1;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n case State.MSG_PAYLOAD:\n if (this.msgBuf) {\n if (this.msgBuf.length >= this.ma.size) {\n const data = this.msgBuf.bytes({\n copy: false\n });\n this.dispatcher.push({\n kind: Kind.MSG,\n msg: this.ma,\n data: data\n });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = State.MSG_END;\n } else {\n let toCopy = this.ma.size - this.msgBuf.length;\n const avail = buf.length - i;\n if (avail < toCopy) {\n toCopy = avail;\n }\n if (toCopy > 0) {\n this.msgBuf.write(buf.subarray(i, i + toCopy));\n i = i + toCopy - 1;\n } else {\n this.msgBuf.writeByte(b);\n }\n }\n } else if (i - this.as >= this.ma.size) {\n this.dispatcher.push({\n kind: Kind.MSG,\n msg: this.ma,\n data: buf.subarray(this.as, i)\n });\n this.argBuf = undefined;\n this.msgBuf = undefined;\n this.state = State.MSG_END;\n }\n break;\n case State.MSG_END:\n switch(b){\n case cc.NL:\n this.drop = 0;\n this.as = i + 1;\n this.state = State.OP_START;\n break;\n default:\n continue;\n }\n break;\n case State.OP_PLUS:\n switch(b){\n case cc.O:\n case cc.o:\n this.state = State.OP_PLUS_O;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PLUS_O:\n switch(b){\n case cc.K:\n case cc.k:\n this.state = State.OP_PLUS_OK;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PLUS_OK:\n switch(b){\n case cc.NL:\n this.dispatcher.push({\n kind: Kind.OK\n });\n this.drop = 0;\n this.state = State.OP_START;\n break;\n }\n break;\n case State.OP_MINUS:\n switch(b){\n case cc.E:\n case cc.e:\n this.state = State.OP_MINUS_E;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MINUS_E:\n switch(b){\n case cc.R:\n case cc.r:\n this.state = State.OP_MINUS_ER;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MINUS_ER:\n switch(b){\n case cc.R:\n case cc.r:\n this.state = State.OP_MINUS_ERR;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MINUS_ERR:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n this.state = State.OP_MINUS_ERR_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_MINUS_ERR_SPC:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n continue;\n default:\n this.state = State.MINUS_ERR_ARG;\n this.as = i;\n }\n break;\n case State.MINUS_ERR_ARG:\n switch(b){\n case cc.CR:\n this.drop = 1;\n break;\n case cc.NL:\n {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n } else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({\n kind: Kind.ERR,\n data: arg\n });\n this.drop = 0;\n this.as = i + 1;\n this.state = State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.write(Uint8Array.of(b));\n }\n }\n break;\n case State.OP_P:\n switch(b){\n case cc.I:\n case cc.i:\n this.state = State.OP_PI;\n break;\n case cc.O:\n case cc.o:\n this.state = State.OP_PO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PO:\n switch(b){\n case cc.N:\n case cc.n:\n this.state = State.OP_PON;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PON:\n switch(b){\n case cc.G:\n case cc.g:\n this.state = State.OP_PONG;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PONG:\n switch(b){\n case cc.NL:\n this.dispatcher.push({\n kind: Kind.PONG\n });\n this.drop = 0;\n this.state = State.OP_START;\n break;\n }\n break;\n case State.OP_PI:\n switch(b){\n case cc.N:\n case cc.n:\n this.state = State.OP_PIN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PIN:\n switch(b){\n case cc.G:\n case cc.g:\n this.state = State.OP_PING;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_PING:\n switch(b){\n case cc.NL:\n this.dispatcher.push({\n kind: Kind.PING\n });\n this.drop = 0;\n this.state = State.OP_START;\n break;\n }\n break;\n case State.OP_I:\n switch(b){\n case cc.N:\n case cc.n:\n this.state = State.OP_IN;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_IN:\n switch(b){\n case cc.F:\n case cc.f:\n this.state = State.OP_INF;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_INF:\n switch(b){\n case cc.O:\n case cc.o:\n this.state = State.OP_INFO;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_INFO:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n this.state = State.OP_INFO_SPC;\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n break;\n case State.OP_INFO_SPC:\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n continue;\n default:\n this.state = State.INFO_ARG;\n this.as = i;\n }\n break;\n case State.INFO_ARG:\n switch(b){\n case cc.CR:\n this.drop = 1;\n break;\n case cc.NL:\n {\n let arg;\n if (this.argBuf) {\n arg = this.argBuf.bytes();\n this.argBuf = undefined;\n } else {\n arg = buf.subarray(this.as, i - this.drop);\n }\n this.dispatcher.push({\n kind: Kind.INFO,\n data: arg\n });\n this.drop = 0;\n this.as = i + 1;\n this.state = State.OP_START;\n break;\n }\n default:\n if (this.argBuf) {\n this.argBuf.writeByte(b);\n }\n }\n break;\n default:\n throw this.fail(buf.subarray(i));\n }\n }\n if ((this.state === State.MSG_ARG || this.state === State.MINUS_ERR_ARG || this.state === State.INFO_ARG) && !this.argBuf) {\n this.argBuf = new DenoBuffer(buf.subarray(this.as, i - this.drop));\n }\n if (this.state === State.MSG_PAYLOAD && !this.msgBuf) {\n if (!this.argBuf) {\n this.cloneMsgArg();\n }\n this.msgBuf = new DenoBuffer(buf.subarray(this.as));\n }\n }\n cloneMsgArg() {\n const s = this.ma.subject.length;\n const r = this.ma.reply ? this.ma.reply.length : 0;\n const buf = new Uint8Array(s + r);\n buf.set(this.ma.subject);\n if (this.ma.reply) {\n buf.set(this.ma.reply, s);\n }\n this.argBuf = new DenoBuffer(buf);\n this.ma.subject = buf.subarray(0, s);\n if (this.ma.reply) {\n this.ma.reply = buf.subarray(s);\n }\n }\n processMsgArgs(arg) {\n if (this.hdr >= 0) {\n return this.processHeaderMsgArgs(arg);\n }\n const args = [];\n let start = -1;\n for(let i = 0; i < arg.length; i++){\n const b = arg[i];\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n case cc.CR:\n case cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch(args.length){\n case 3:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.size = this.protoParseInt(args[2]);\n break;\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.size = this.protoParseInt(args[3]);\n break;\n default:\n throw this.fail(arg, \"processMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processMsgArgs Bad or Missing Size Error\");\n }\n }\n fail(data, label = \"\") {\n if (!label) {\n label = `parse error [${this.state}]`;\n } else {\n label = `${label} [${this.state}]`;\n }\n return new Error(`${label}: ${TD.decode(data)}`);\n }\n processHeaderMsgArgs(arg) {\n const args = [];\n let start = -1;\n for(let i = 0; i < arg.length; i++){\n const b = arg[i];\n switch(b){\n case cc.SPACE:\n case cc.TAB:\n case cc.CR:\n case cc.NL:\n if (start >= 0) {\n args.push(arg.subarray(start, i));\n start = -1;\n }\n break;\n default:\n if (start < 0) {\n start = i;\n }\n }\n }\n if (start >= 0) {\n args.push(arg.subarray(start));\n }\n switch(args.length){\n case 4:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = undefined;\n this.ma.hdr = this.protoParseInt(args[2]);\n this.ma.size = this.protoParseInt(args[3]);\n break;\n case 5:\n this.ma.subject = args[0];\n this.ma.sid = this.protoParseInt(args[1]);\n this.ma.reply = args[2];\n this.ma.hdr = this.protoParseInt(args[3]);\n this.ma.size = this.protoParseInt(args[4]);\n break;\n default:\n throw this.fail(arg, \"processHeaderMsgArgs Parse Error\");\n }\n if (this.ma.sid < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Sid Error\");\n }\n if (this.ma.hdr < 0 || this.ma.hdr > this.ma.size) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Header Size Error\");\n }\n if (this.ma.size < 0) {\n throw this.fail(arg, \"processHeaderMsgArgs Bad or Missing Size Error\");\n }\n }\n protoParseInt(a) {\n if (a.length === 0) {\n return -1;\n }\n let n = 0;\n for(let i = 0; i < a.length; i++){\n if (a[i] < 48 || a[i] > 57) {\n return -1;\n }\n n = n * 10 + (a[i] - ASCII_0);\n }\n return n;\n }\n}\nvar State;\n(function(State) {\n State[State[\"OP_START\"] = 0] = \"OP_START\";\n State[State[\"OP_PLUS\"] = 1] = \"OP_PLUS\";\n State[State[\"OP_PLUS_O\"] = 2] = \"OP_PLUS_O\";\n State[State[\"OP_PLUS_OK\"] = 3] = \"OP_PLUS_OK\";\n State[State[\"OP_MINUS\"] = 4] = \"OP_MINUS\";\n State[State[\"OP_MINUS_E\"] = 5] = \"OP_MINUS_E\";\n State[State[\"OP_MINUS_ER\"] = 6] = \"OP_MINUS_ER\";\n State[State[\"OP_MINUS_ERR\"] = 7] = \"OP_MINUS_ERR\";\n State[State[\"OP_MINUS_ERR_SPC\"] = 8] = \"OP_MINUS_ERR_SPC\";\n State[State[\"MINUS_ERR_ARG\"] = 9] = \"MINUS_ERR_ARG\";\n State[State[\"OP_M\"] = 10] = \"OP_M\";\n State[State[\"OP_MS\"] = 11] = \"OP_MS\";\n State[State[\"OP_MSG\"] = 12] = \"OP_MSG\";\n State[State[\"OP_MSG_SPC\"] = 13] = \"OP_MSG_SPC\";\n State[State[\"MSG_ARG\"] = 14] = \"MSG_ARG\";\n State[State[\"MSG_PAYLOAD\"] = 15] = \"MSG_PAYLOAD\";\n State[State[\"MSG_END\"] = 16] = \"MSG_END\";\n State[State[\"OP_H\"] = 17] = \"OP_H\";\n State[State[\"OP_P\"] = 18] = \"OP_P\";\n State[State[\"OP_PI\"] = 19] = \"OP_PI\";\n State[State[\"OP_PIN\"] = 20] = \"OP_PIN\";\n State[State[\"OP_PING\"] = 21] = \"OP_PING\";\n State[State[\"OP_PO\"] = 22] = \"OP_PO\";\n State[State[\"OP_PON\"] = 23] = \"OP_PON\";\n State[State[\"OP_PONG\"] = 24] = \"OP_PONG\";\n State[State[\"OP_I\"] = 25] = \"OP_I\";\n State[State[\"OP_IN\"] = 26] = \"OP_IN\";\n State[State[\"OP_INF\"] = 27] = \"OP_INF\";\n State[State[\"OP_INFO\"] = 28] = \"OP_INFO\";\n State[State[\"OP_INFO_SPC\"] = 29] = \"OP_INFO_SPC\";\n State[State[\"INFO_ARG\"] = 30] = \"INFO_ARG\";\n})(State || (State = {}));\nvar cc;\n(function(cc) {\n cc[cc[\"CR\"] = \"\\r\".charCodeAt(0)] = \"CR\";\n cc[cc[\"E\"] = \"E\".charCodeAt(0)] = \"E\";\n cc[cc[\"e\"] = \"e\".charCodeAt(0)] = \"e\";\n cc[cc[\"F\"] = \"F\".charCodeAt(0)] = \"F\";\n cc[cc[\"f\"] = \"f\".charCodeAt(0)] = \"f\";\n cc[cc[\"G\"] = \"G\".charCodeAt(0)] = \"G\";\n cc[cc[\"g\"] = \"g\".charCodeAt(0)] = \"g\";\n cc[cc[\"H\"] = \"H\".charCodeAt(0)] = \"H\";\n cc[cc[\"h\"] = \"h\".charCodeAt(0)] = \"h\";\n cc[cc[\"I\"] = \"I\".charCodeAt(0)] = \"I\";\n cc[cc[\"i\"] = \"i\".charCodeAt(0)] = \"i\";\n cc[cc[\"K\"] = \"K\".charCodeAt(0)] = \"K\";\n cc[cc[\"k\"] = \"k\".charCodeAt(0)] = \"k\";\n cc[cc[\"M\"] = \"M\".charCodeAt(0)] = \"M\";\n cc[cc[\"m\"] = \"m\".charCodeAt(0)] = \"m\";\n cc[cc[\"MINUS\"] = \"-\".charCodeAt(0)] = \"MINUS\";\n cc[cc[\"N\"] = \"N\".charCodeAt(0)] = \"N\";\n cc[cc[\"n\"] = \"n\".charCodeAt(0)] = \"n\";\n cc[cc[\"NL\"] = \"\\n\".charCodeAt(0)] = \"NL\";\n cc[cc[\"O\"] = \"O\".charCodeAt(0)] = \"O\";\n cc[cc[\"o\"] = \"o\".charCodeAt(0)] = \"o\";\n cc[cc[\"P\"] = \"P\".charCodeAt(0)] = \"P\";\n cc[cc[\"p\"] = \"p\".charCodeAt(0)] = \"p\";\n cc[cc[\"PLUS\"] = \"+\".charCodeAt(0)] = \"PLUS\";\n cc[cc[\"R\"] = \"R\".charCodeAt(0)] = \"R\";\n cc[cc[\"r\"] = \"r\".charCodeAt(0)] = \"r\";\n cc[cc[\"S\"] = \"S\".charCodeAt(0)] = \"S\";\n cc[cc[\"s\"] = \"s\".charCodeAt(0)] = \"s\";\n cc[cc[\"SPACE\"] = \" \".charCodeAt(0)] = \"SPACE\";\n cc[cc[\"TAB\"] = \"\\t\".charCodeAt(0)] = \"TAB\";\n})(cc || (cc = {}));\n(function(nacl) {\n 'use strict';\n var u64 = function(h, l) {\n this.hi = h | 0 >>> 0;\n this.lo = l | 0 >>> 0;\n };\n var gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for(i = 0; i < init.length; i++)r[i] = init[i];\n return r;\n };\n var randombytes = function() {\n throw new Error('no PRNG');\n };\n var _0 = new Uint8Array(16);\n var _9 = new Uint8Array(32);\n _9[0] = 9;\n var gf0 = gf(), gf1 = gf([\n 1\n ]), _121665 = gf([\n 0xdb41,\n 1\n ]), D = gf([\n 0x78a3,\n 0x1359,\n 0x4dca,\n 0x75eb,\n 0xd8ab,\n 0x4141,\n 0x0a4d,\n 0x0070,\n 0xe898,\n 0x7779,\n 0x4079,\n 0x8cc7,\n 0xfe73,\n 0x2b6f,\n 0x6cee,\n 0x5203\n ]), D2 = gf([\n 0xf159,\n 0x26b2,\n 0x9b94,\n 0xebd6,\n 0xb156,\n 0x8283,\n 0x149a,\n 0x00e0,\n 0xd130,\n 0xeef3,\n 0x80f2,\n 0x198e,\n 0xfce7,\n 0x56df,\n 0xd9dc,\n 0x2406\n ]), X = gf([\n 0xd51a,\n 0x8f25,\n 0x2d60,\n 0xc956,\n 0xa7b2,\n 0x9525,\n 0xc760,\n 0x692c,\n 0xdc5c,\n 0xfdd6,\n 0xe231,\n 0xc0a4,\n 0x53fe,\n 0xcd6e,\n 0x36d3,\n 0x2169\n ]), Y = gf([\n 0x6658,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666,\n 0x6666\n ]), I = gf([\n 0xa0b0,\n 0x4a0e,\n 0x1b27,\n 0xc4ee,\n 0xe478,\n 0xad2f,\n 0x1806,\n 0x2f43,\n 0xd7a7,\n 0x3dfb,\n 0x0099,\n 0x2b4d,\n 0xdf0b,\n 0x4fc1,\n 0x2480,\n 0x2b83\n ]);\n function L32(x, c) {\n return x << c | x >>> 32 - c;\n }\n function ld32(x, i) {\n var u = x[i + 3] & 0xff;\n u = u << 8 | x[i + 2] & 0xff;\n u = u << 8 | x[i + 1] & 0xff;\n return u << 8 | x[i + 0] & 0xff;\n }\n function dl64(x, i) {\n var h = x[i] << 24 | x[i + 1] << 16 | x[i + 2] << 8 | x[i + 3];\n var l = x[i + 4] << 24 | x[i + 5] << 16 | x[i + 6] << 8 | x[i + 7];\n return new u64(h, l);\n }\n function st32(x, j, u) {\n var i;\n for(i = 0; i < 4; i++){\n x[j + i] = u & 255;\n u >>>= 8;\n }\n }\n function ts64(x, i, u) {\n x[i] = u.hi >> 24 & 0xff;\n x[i + 1] = u.hi >> 16 & 0xff;\n x[i + 2] = u.hi >> 8 & 0xff;\n x[i + 3] = u.hi & 0xff;\n x[i + 4] = u.lo >> 24 & 0xff;\n x[i + 5] = u.lo >> 16 & 0xff;\n x[i + 6] = u.lo >> 8 & 0xff;\n x[i + 7] = u.lo & 0xff;\n }\n function vn(x, xi, y, yi, n) {\n var i, d = 0;\n for(i = 0; i < n; i++)d |= x[xi + i] ^ y[yi + i];\n return (1 & d - 1 >>> 8) - 1;\n }\n function crypto_verify_16(x, xi, y, yi) {\n return vn(x, xi, y, yi, 16);\n }\n function crypto_verify_32(x, xi, y, yi) {\n return vn(x, xi, y, yi, 32);\n }\n function core(out, inp, k, c, h) {\n var w = new Uint32Array(16), x = new Uint32Array(16), y = new Uint32Array(16), t = new Uint32Array(4);\n var i, j, m;\n for(i = 0; i < 4; i++){\n x[5 * i] = ld32(c, 4 * i);\n x[1 + i] = ld32(k, 4 * i);\n x[6 + i] = ld32(inp, 4 * i);\n x[11 + i] = ld32(k, 16 + 4 * i);\n }\n for(i = 0; i < 16; i++)y[i] = x[i];\n for(i = 0; i < 20; i++){\n for(j = 0; j < 4; j++){\n for(m = 0; m < 4; m++)t[m] = x[(5 * j + 4 * m) % 16];\n t[1] ^= L32(t[0] + t[3] | 0, 7);\n t[2] ^= L32(t[1] + t[0] | 0, 9);\n t[3] ^= L32(t[2] + t[1] | 0, 13);\n t[0] ^= L32(t[3] + t[2] | 0, 18);\n for(m = 0; m < 4; m++)w[4 * j + (j + m) % 4] = t[m];\n }\n for(m = 0; m < 16; m++)x[m] = w[m];\n }\n if (h) {\n for(i = 0; i < 16; i++)x[i] = x[i] + y[i] | 0;\n for(i = 0; i < 4; i++){\n x[5 * i] = x[5 * i] - ld32(c, 4 * i) | 0;\n x[6 + i] = x[6 + i] - ld32(inp, 4 * i) | 0;\n }\n for(i = 0; i < 4; i++){\n st32(out, 4 * i, x[5 * i]);\n st32(out, 16 + 4 * i, x[6 + i]);\n }\n } else {\n for(i = 0; i < 16; i++)st32(out, 4 * i, x[i] + y[i] | 0);\n }\n }\n function crypto_core_salsa20(out, inp, k, c) {\n core(out, inp, k, c, false);\n return 0;\n }\n function crypto_core_hsalsa20(out, inp, k, c) {\n core(out, inp, k, c, true);\n return 0;\n }\n var sigma = new Uint8Array([\n 101,\n 120,\n 112,\n 97,\n 110,\n 100,\n 32,\n 51,\n 50,\n 45,\n 98,\n 121,\n 116,\n 101,\n 32,\n 107\n ]);\n function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n if (!b) return 0;\n for(i = 0; i < 16; i++)z[i] = 0;\n for(i = 0; i < 8; i++)z[i] = n[i];\n while(b >= 64){\n crypto_core_salsa20(x, z, k, sigma);\n for(i = 0; i < 64; i++)c[cpos + i] = (m ? m[mpos + i] : 0) ^ x[i];\n u = 1;\n for(i = 8; i < 16; i++){\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n if (m) mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x, z, k, sigma);\n for(i = 0; i < b; i++)c[cpos + i] = (m ? m[mpos + i] : 0) ^ x[i];\n }\n return 0;\n }\n function crypto_stream_salsa20(c, cpos, d, n, k) {\n return crypto_stream_salsa20_xor(c, cpos, null, 0, d, n, k);\n }\n function crypto_stream(c, cpos, d, n, k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s, n, k, sigma);\n return crypto_stream_salsa20(c, cpos, d, n.subarray(16), s);\n }\n function crypto_stream_xor(c, cpos, m, mpos, d, n, k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s, n, k, sigma);\n return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, n.subarray(16), s);\n }\n function add1305(h, c) {\n var j, u = 0;\n for(j = 0; j < 17; j++){\n u = u + (h[j] + c[j] | 0) | 0;\n h[j] = u & 255;\n u >>>= 8;\n }\n }\n var minusp = new Uint32Array([\n 5,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 252\n ]);\n function crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s, i, j, u;\n var x = new Uint32Array(17), r = new Uint32Array(17), h = new Uint32Array(17), c = new Uint32Array(17), g = new Uint32Array(17);\n for(j = 0; j < 17; j++)r[j] = h[j] = 0;\n for(j = 0; j < 16; j++)r[j] = k[j];\n r[3] &= 15;\n r[4] &= 252;\n r[7] &= 15;\n r[8] &= 252;\n r[11] &= 15;\n r[12] &= 252;\n r[15] &= 15;\n while(n > 0){\n for(j = 0; j < 17; j++)c[j] = 0;\n for(j = 0; j < 16 && j < n; ++j)c[j] = m[mpos + j];\n c[j] = 1;\n mpos += j;\n n -= j;\n add1305(h, c);\n for(i = 0; i < 17; i++){\n x[i] = 0;\n for(j = 0; j < 17; j++)x[i] = x[i] + h[j] * (j <= i ? r[i - j] : 320 * r[i + 17 - j] | 0) | 0 | 0;\n }\n for(i = 0; i < 17; i++)h[i] = x[i];\n u = 0;\n for(j = 0; j < 16; j++){\n u = u + h[j] | 0;\n h[j] = u & 255;\n u >>>= 8;\n }\n u = u + h[16] | 0;\n h[16] = u & 3;\n u = 5 * (u >>> 2) | 0;\n for(j = 0; j < 16; j++){\n u = u + h[j] | 0;\n h[j] = u & 255;\n u >>>= 8;\n }\n u = u + h[16] | 0;\n h[16] = u;\n }\n for(j = 0; j < 17; j++)g[j] = h[j];\n add1305(h, minusp);\n s = -(h[16] >>> 7) | 0;\n for(j = 0; j < 17; j++)h[j] ^= s & (g[j] ^ h[j]);\n for(j = 0; j < 16; j++)c[j] = k[j + 16];\n c[16] = 0;\n add1305(h, c);\n for(j = 0; j < 16; j++)out[outpos + j] = h[j];\n return 0;\n }\n function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x, 0, m, mpos, n, k);\n return crypto_verify_16(h, hpos, x, 0);\n }\n function crypto_secretbox(c, m, d, n, k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c, 0, m, 0, d, n, k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for(i = 0; i < 16; i++)c[i] = 0;\n return 0;\n }\n function crypto_secretbox_open(m, c, d, n, k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x, 0, 32, n, k);\n if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0) return -1;\n crypto_stream_xor(m, 0, c, 0, d, n, k);\n for(i = 0; i < 32; i++)m[i] = 0;\n return 0;\n }\n function set25519(r, a) {\n var i;\n for(i = 0; i < 16; i++)r[i] = a[i] | 0;\n }\n function car25519(o) {\n var c;\n var i;\n for(i = 0; i < 16; i++){\n o[i] += 65536;\n c = Math.floor(o[i] / 65536);\n o[(i + 1) * (i < 15 ? 1 : 0)] += c - 1 + 37 * (c - 1) * (i === 15 ? 1 : 0);\n o[i] -= c * 65536;\n }\n }\n function sel25519(p, q, b) {\n var t, c = ~(b - 1);\n for(var i = 0; i < 16; i++){\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n }\n function pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for(i = 0; i < 16; i++)t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for(j = 0; j < 2; j++){\n m[0] = t[0] - 0xffed;\n for(i = 1; i < 15; i++){\n m[i] = t[i] - 0xffff - (m[i - 1] >> 16 & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - (m[14] >> 16 & 1);\n b = m[15] >> 16 & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for(i = 0; i < 16; i++){\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n }\n function neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n }\n function par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n }\n function unpack25519(o, n) {\n var i;\n for(i = 0; i < 16; i++)o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n o[15] &= 0x7fff;\n }\n function A(o, a, b) {\n var i;\n for(i = 0; i < 16; i++)o[i] = a[i] + b[i] | 0;\n }\n function Z(o, a, b) {\n var i;\n for(i = 0; i < 16; i++)o[i] = a[i] - b[i] | 0;\n }\n function M(o, a, b) {\n var i, j, t = new Float64Array(31);\n for(i = 0; i < 31; i++)t[i] = 0;\n for(i = 0; i < 16; i++){\n for(j = 0; j < 16; j++){\n t[i + j] += a[i] * b[j];\n }\n }\n for(i = 0; i < 15; i++){\n t[i] += 38 * t[i + 16];\n }\n for(i = 0; i < 16; i++)o[i] = t[i];\n car25519(o);\n car25519(o);\n }\n function S(o, a) {\n M(o, a, a);\n }\n function inv25519(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; a++)c[a] = i[a];\n for(a = 253; a >= 0; a--){\n S(c, c);\n if (a !== 2 && a !== 4) M(c, c, i);\n }\n for(a = 0; a < 16; a++)o[a] = c[a];\n }\n function pow2523(o, i) {\n var c = gf();\n var a;\n for(a = 0; a < 16; a++)c[a] = i[a];\n for(a = 250; a >= 0; a--){\n S(c, c);\n if (a !== 1) M(c, c, i);\n }\n for(a = 0; a < 16; a++)o[a] = c[a];\n }\n function crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for(i = 0; i < 31; i++)z[i] = n[i];\n z[31] = n[31] & 127 | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for(i = 0; i < 16; i++){\n b[i] = x[i];\n d[i] = a[i] = c[i] = 0;\n }\n a[0] = d[0] = 1;\n for(i = 254; i >= 0; --i){\n r = z[i >>> 3] >>> (i & 7) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n A(e, a, c);\n Z(a, a, c);\n A(c, b, d);\n Z(b, b, d);\n S(d, e);\n S(f, a);\n M(a, c, a);\n M(c, b, e);\n A(e, a, c);\n Z(a, a, c);\n S(b, a);\n Z(c, d, f);\n M(a, c, _121665);\n A(a, a, d);\n M(c, c, a);\n M(a, d, f);\n M(d, b, x);\n S(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for(i = 0; i < 16; i++){\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32, x32);\n M(x16, x16, x32);\n pack25519(q, x16);\n return 0;\n }\n function crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n }\n function crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n }\n function crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n }\n var crypto_box_afternm = crypto_secretbox;\n var crypto_box_open_afternm = crypto_secretbox_open;\n function crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n }\n function crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n }\n function add64() {\n var a = 0, b = 0, c = 0, d = 0, m16 = 65535, l, h, i;\n for(i = 0; i < arguments.length; i++){\n l = arguments[i].lo;\n h = arguments[i].hi;\n a += l & m16;\n b += l >>> 16;\n c += h & m16;\n d += h >>> 16;\n }\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n return new u64(c & m16 | d << 16, a & m16 | b << 16);\n }\n function shr64(x, c) {\n return new u64(x.hi >>> c, x.lo >>> c | x.hi << 32 - c);\n }\n function xor64() {\n var l = 0, h = 0, i;\n for(i = 0; i < arguments.length; i++){\n l ^= arguments[i].lo;\n h ^= arguments[i].hi;\n }\n return new u64(h, l);\n }\n function R(x, c) {\n var h, l, c1 = 32 - c;\n if (c < 32) {\n h = x.hi >>> c | x.lo << c1;\n l = x.lo >>> c | x.hi << c1;\n } else if (c < 64) {\n h = x.lo >>> c | x.hi << c1;\n l = x.hi >>> c | x.lo << c1;\n }\n return new u64(h, l);\n }\n function Ch(x, y, z) {\n var h = x.hi & y.hi ^ ~x.hi & z.hi, l = x.lo & y.lo ^ ~x.lo & z.lo;\n return new u64(h, l);\n }\n function Maj(x, y, z) {\n var h = x.hi & y.hi ^ x.hi & z.hi ^ y.hi & z.hi, l = x.lo & y.lo ^ x.lo & z.lo ^ y.lo & z.lo;\n return new u64(h, l);\n }\n function Sigma0(x) {\n return xor64(R(x, 28), R(x, 34), R(x, 39));\n }\n function Sigma1(x) {\n return xor64(R(x, 14), R(x, 18), R(x, 41));\n }\n function sigma0(x) {\n return xor64(R(x, 1), R(x, 8), shr64(x, 7));\n }\n function sigma1(x) {\n return xor64(R(x, 19), R(x, 61), shr64(x, 6));\n }\n var K = [\n new u64(0x428a2f98, 0xd728ae22),\n new u64(0x71374491, 0x23ef65cd),\n new u64(0xb5c0fbcf, 0xec4d3b2f),\n new u64(0xe9b5dba5, 0x8189dbbc),\n new u64(0x3956c25b, 0xf348b538),\n new u64(0x59f111f1, 0xb605d019),\n new u64(0x923f82a4, 0xaf194f9b),\n new u64(0xab1c5ed5, 0xda6d8118),\n new u64(0xd807aa98, 0xa3030242),\n new u64(0x12835b01, 0x45706fbe),\n new u64(0x243185be, 0x4ee4b28c),\n new u64(0x550c7dc3, 0xd5ffb4e2),\n new u64(0x72be5d74, 0xf27b896f),\n new u64(0x80deb1fe, 0x3b1696b1),\n new u64(0x9bdc06a7, 0x25c71235),\n new u64(0xc19bf174, 0xcf692694),\n new u64(0xe49b69c1, 0x9ef14ad2),\n new u64(0xefbe4786, 0x384f25e3),\n new u64(0x0fc19dc6, 0x8b8cd5b5),\n new u64(0x240ca1cc, 0x77ac9c65),\n new u64(0x2de92c6f, 0x592b0275),\n new u64(0x4a7484aa, 0x6ea6e483),\n new u64(0x5cb0a9dc, 0xbd41fbd4),\n new u64(0x76f988da, 0x831153b5),\n new u64(0x983e5152, 0xee66dfab),\n new u64(0xa831c66d, 0x2db43210),\n new u64(0xb00327c8, 0x98fb213f),\n new u64(0xbf597fc7, 0xbeef0ee4),\n new u64(0xc6e00bf3, 0x3da88fc2),\n new u64(0xd5a79147, 0x930aa725),\n new u64(0x06ca6351, 0xe003826f),\n new u64(0x14292967, 0x0a0e6e70),\n new u64(0x27b70a85, 0x46d22ffc),\n new u64(0x2e1b2138, 0x5c26c926),\n new u64(0x4d2c6dfc, 0x5ac42aed),\n new u64(0x53380d13, 0x9d95b3df),\n new u64(0x650a7354, 0x8baf63de),\n new u64(0x766a0abb, 0x3c77b2a8),\n new u64(0x81c2c92e, 0x47edaee6),\n new u64(0x92722c85, 0x1482353b),\n new u64(0xa2bfe8a1, 0x4cf10364),\n new u64(0xa81a664b, 0xbc423001),\n new u64(0xc24b8b70, 0xd0f89791),\n new u64(0xc76c51a3, 0x0654be30),\n new u64(0xd192e819, 0xd6ef5218),\n new u64(0xd6990624, 0x5565a910),\n new u64(0xf40e3585, 0x5771202a),\n new u64(0x106aa070, 0x32bbd1b8),\n new u64(0x19a4c116, 0xb8d2d0c8),\n new u64(0x1e376c08, 0x5141ab53),\n new u64(0x2748774c, 0xdf8eeb99),\n new u64(0x34b0bcb5, 0xe19b48a8),\n new u64(0x391c0cb3, 0xc5c95a63),\n new u64(0x4ed8aa4a, 0xe3418acb),\n new u64(0x5b9cca4f, 0x7763e373),\n new u64(0x682e6ff3, 0xd6b2b8a3),\n new u64(0x748f82ee, 0x5defb2fc),\n new u64(0x78a5636f, 0x43172f60),\n new u64(0x84c87814, 0xa1f0ab72),\n new u64(0x8cc70208, 0x1a6439ec),\n new u64(0x90befffa, 0x23631e28),\n new u64(0xa4506ceb, 0xde82bde9),\n new u64(0xbef9a3f7, 0xb2c67915),\n new u64(0xc67178f2, 0xe372532b),\n new u64(0xca273ece, 0xea26619c),\n new u64(0xd186b8c7, 0x21c0c207),\n new u64(0xeada7dd6, 0xcde0eb1e),\n new u64(0xf57d4f7f, 0xee6ed178),\n new u64(0x06f067aa, 0x72176fba),\n new u64(0x0a637dc5, 0xa2c898a6),\n new u64(0x113f9804, 0xbef90dae),\n new u64(0x1b710b35, 0x131c471b),\n new u64(0x28db77f5, 0x23047d84),\n new u64(0x32caab7b, 0x40c72493),\n new u64(0x3c9ebe0a, 0x15c9bebc),\n new u64(0x431d67c4, 0x9c100d4c),\n new u64(0x4cc5d4be, 0xcb3e42b6),\n new u64(0x597f299c, 0xfc657e2a),\n new u64(0x5fcb6fab, 0x3ad6faec),\n new u64(0x6c44198c, 0x4a475817)\n ];\n function crypto_hashblocks(x, m, n) {\n var z = [], b = [], a = [], w = [], t, i, j;\n for(i = 0; i < 8; i++)z[i] = a[i] = dl64(x, 8 * i);\n var pos = 0;\n while(n >= 128){\n for(i = 0; i < 16; i++)w[i] = dl64(m, 8 * i + pos);\n for(i = 0; i < 80; i++){\n for(j = 0; j < 8; j++)b[j] = a[j];\n t = add64(a[7], Sigma1(a[4]), Ch(a[4], a[5], a[6]), K[i], w[i % 16]);\n b[7] = add64(t, Sigma0(a[0]), Maj(a[0], a[1], a[2]));\n b[3] = add64(b[3], t);\n for(j = 0; j < 8; j++)a[(j + 1) % 8] = b[j];\n if (i % 16 === 15) {\n for(j = 0; j < 16; j++){\n w[j] = add64(w[j], w[(j + 9) % 16], sigma0(w[(j + 1) % 16]), sigma1(w[(j + 14) % 16]));\n }\n }\n }\n for(i = 0; i < 8; i++){\n a[i] = add64(a[i], z[i]);\n z[i] = a[i];\n }\n pos += 128;\n n -= 128;\n }\n for(i = 0; i < 8; i++)ts64(x, 8 * i, z[i]);\n return n;\n }\n var iv = new Uint8Array([\n 0x6a,\n 0x09,\n 0xe6,\n 0x67,\n 0xf3,\n 0xbc,\n 0xc9,\n 0x08,\n 0xbb,\n 0x67,\n 0xae,\n 0x85,\n 0x84,\n 0xca,\n 0xa7,\n 0x3b,\n 0x3c,\n 0x6e,\n 0xf3,\n 0x72,\n 0xfe,\n 0x94,\n 0xf8,\n 0x2b,\n 0xa5,\n 0x4f,\n 0xf5,\n 0x3a,\n 0x5f,\n 0x1d,\n 0x36,\n 0xf1,\n 0x51,\n 0x0e,\n 0x52,\n 0x7f,\n 0xad,\n 0xe6,\n 0x82,\n 0xd1,\n 0x9b,\n 0x05,\n 0x68,\n 0x8c,\n 0x2b,\n 0x3e,\n 0x6c,\n 0x1f,\n 0x1f,\n 0x83,\n 0xd9,\n 0xab,\n 0xfb,\n 0x41,\n 0xbd,\n 0x6b,\n 0x5b,\n 0xe0,\n 0xcd,\n 0x19,\n 0x13,\n 0x7e,\n 0x21,\n 0x79\n ]);\n function crypto_hash(out, m, n) {\n var h = new Uint8Array(64), x = new Uint8Array(256);\n var i, b = n;\n for(i = 0; i < 64; i++)h[i] = iv[i];\n crypto_hashblocks(h, m, n);\n n %= 128;\n for(i = 0; i < 256; i++)x[i] = 0;\n for(i = 0; i < n; i++)x[i] = m[b - n + i];\n x[n] = 128;\n n = 256 - 128 * (n < 112 ? 1 : 0);\n x[n - 9] = 0;\n ts64(x, n - 8, new u64(b / 0x20000000 | 0, b << 3));\n crypto_hashblocks(h, x, n);\n for(i = 0; i < 64; i++)out[i] = h[i];\n return 0;\n }\n function add(p, q) {\n var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n }\n function cswap(p, q, b) {\n var i;\n for(i = 0; i < 4; i++){\n sel25519(p[i], q[i], b);\n }\n }\n function pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n }\n function scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for(i = 255; i >= 0; --i){\n b = s[i / 8 | 0] >> (i & 7) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n }\n function scalarbase(p, s) {\n var q = [\n gf(),\n gf(),\n gf(),\n gf()\n ];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n }\n function crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [\n gf(),\n gf(),\n gf(),\n gf()\n ];\n var i;\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n scalarbase(p, d);\n pack(pk, p);\n for(i = 0; i < 32; i++)sk[i + 32] = pk[i];\n return 0;\n }\n var L = new Float64Array([\n 0xed,\n 0xd3,\n 0xf5,\n 0x5c,\n 0x1a,\n 0x63,\n 0x12,\n 0x58,\n 0xd6,\n 0x9c,\n 0xf7,\n 0xa2,\n 0xde,\n 0xf9,\n 0xde,\n 0x14,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0x10\n ]);\n function modL(r, x) {\n var carry, i, j, k;\n for(i = 63; i >= 32; --i){\n carry = 0;\n for(j = i - 32, k = i - 12; j < k; ++j){\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for(j = 0; j < 32; j++){\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for(j = 0; j < 32; j++)x[j] -= carry * L[j];\n for(i = 0; i < 32; i++){\n x[i + 1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n }\n function reduce(r) {\n var x = new Float64Array(64), i;\n for(i = 0; i < 64; i++)x[i] = r[i];\n for(i = 0; i < 64; i++)r[i] = 0;\n modL(r, x);\n }\n function crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [\n gf(),\n gf(),\n gf(),\n gf()\n ];\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n var smlen = n + 64;\n for(i = 0; i < n; i++)sm[64 + i] = m[i];\n for(i = 0; i < 32; i++)sm[32 + i] = d[32 + i];\n crypto_hash(r, sm.subarray(32), n + 32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n for(i = 32; i < 64; i++)sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n for(i = 0; i < 64; i++)x[i] = 0;\n for(i = 0; i < 32; i++)x[i] = r[i];\n for(i = 0; i < 32; i++){\n for(j = 0; j < 32; j++){\n x[i + j] += h[i] * d[j];\n }\n }\n modL(sm.subarray(32), x);\n return smlen;\n }\n function unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n if (par25519(r[0]) === p[31] >> 7) Z(r[0], gf0, r[0]);\n M(r[3], r[0], r[1]);\n return 0;\n }\n function crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [\n gf(),\n gf(),\n gf(),\n gf()\n ], q = [\n gf(),\n gf(),\n gf(),\n gf()\n ];\n if (n < 64) return -1;\n if (unpackneg(q, pk)) return -1;\n for(i = 0; i < n; i++)m[i] = sm[i];\n for(i = 0; i < 32; i++)m[i + 32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for(i = 0; i < n; i++)m[i] = 0;\n return -1;\n }\n for(i = 0; i < n; i++)m[i] = sm[i + 64];\n return n;\n }\n var crypto_secretbox_KEYBYTES = 32, crypto_secretbox_NONCEBYTES = 24, crypto_secretbox_ZEROBYTES = 32, crypto_secretbox_BOXZEROBYTES = 16, crypto_scalarmult_BYTES = 32, crypto_scalarmult_SCALARBYTES = 32, crypto_box_PUBLICKEYBYTES = 32, crypto_box_SECRETKEYBYTES = 32, crypto_box_BEFORENMBYTES = 32, crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES, crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES, crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES, crypto_sign_BYTES = 64, crypto_sign_PUBLICKEYBYTES = 32, crypto_sign_SECRETKEYBYTES = 64, crypto_sign_SEEDBYTES = 32, crypto_hash_BYTES = 64;\n nacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase\n };\n function checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n }\n function checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n }\n function checkArrayTypes() {\n for(var i = 0; i < arguments.length; i++){\n if (!(arguments[i] instanceof Uint8Array)) throw new TypeError('unexpected type, use Uint8Array');\n }\n }\n function cleanup(arr) {\n for(var i = 0; i < arr.length; i++)arr[i] = 0;\n }\n nacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n };\n nacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for(var i = 0; i < msg.length; i++)m[i + crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n };\n nacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for(var i = 0; i < box.length; i++)c[i + crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n };\n nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\n nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\n nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n nacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n };\n nacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n };\n nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\n nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n nacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n };\n nacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n };\n nacl.box.after = nacl.secretbox;\n nacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n };\n nacl.box.open.after = nacl.secretbox.open;\n nacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n nacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {\n publicKey: pk,\n secretKey: new Uint8Array(secretKey)\n };\n };\n nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\n nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\n nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\n nacl.box.nonceLength = crypto_box_NONCEBYTES;\n nacl.box.overheadLength = nacl.secretbox.overheadLength;\n nacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES) throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n };\n nacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for(var i = 0; i < m.length; i++)m[i] = tmp[i];\n return m;\n };\n nacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for(var i = 0; i < sig.length; i++)sig[i] = signedMsg[i];\n return sig;\n };\n nacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES) throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES) throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for(i = 0; i < crypto_sign_BYTES; i++)sm[i] = sig[i];\n for(i = 0; i < msg.length; i++)sm[i + crypto_sign_BYTES] = msg[i];\n return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;\n };\n nacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n nacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES) throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for(var i = 0; i < pk.length; i++)pk[i] = secretKey[32 + i];\n return {\n publicKey: pk,\n secretKey: new Uint8Array(secretKey)\n };\n };\n nacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES) throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for(var i = 0; i < 32; i++)sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {\n publicKey: pk,\n secretKey: sk\n };\n };\n nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\n nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\n nacl.sign.seedLength = crypto_sign_SEEDBYTES;\n nacl.sign.signatureLength = crypto_sign_BYTES;\n nacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n };\n nacl.hash.hashLength = crypto_hash_BYTES;\n nacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return vn(x, 0, y, 0, x.length) === 0 ? true : false;\n };\n nacl.setPRNG = function(fn) {\n randombytes = fn;\n };\n (function() {\n var crypto1 = typeof globalThis !== 'undefined' ? globalThis.crypto || globalThis.msCrypto : null;\n if (crypto1 && crypto1.getRandomValues) {\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for(i = 0; i < n; i += QUOTA){\n crypto1.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for(i = 0; i < n; i++)x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n crypto1 = require('crypto');\n if (crypto1 && crypto1.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto1.randomBytes(n);\n for(i = 0; i < n; i++)x[i] = v[i];\n cleanup(v);\n });\n }\n }\n })();\n})(typeof module !== 'undefined' && module.exports ? module.exports : globalThis.nacl = globalThis.nacl || {});\nconst nacl = typeof module !== 'undefined' && module.exports ? module.exports : globalThis.nacl;\nconst denoHelper = {\n fromSeed: nacl.sign.keyPair.fromSeed,\n sign: nacl.sign.detached,\n verify: nacl.sign.detached.verify,\n randomBytes: nacl.randomBytes\n};\nlet helper;\nfunction setEd25519Helper(lib) {\n helper = lib;\n}\nfunction getEd25519Helper() {\n return helper;\n}\nconst crc16tab = new Uint16Array([\n 0x0000,\n 0x1021,\n 0x2042,\n 0x3063,\n 0x4084,\n 0x50a5,\n 0x60c6,\n 0x70e7,\n 0x8108,\n 0x9129,\n 0xa14a,\n 0xb16b,\n 0xc18c,\n 0xd1ad,\n 0xe1ce,\n 0xf1ef,\n 0x1231,\n 0x0210,\n 0x3273,\n 0x2252,\n 0x52b5,\n 0x4294,\n 0x72f7,\n 0x62d6,\n 0x9339,\n 0x8318,\n 0xb37b,\n 0xa35a,\n 0xd3bd,\n 0xc39c,\n 0xf3ff,\n 0xe3de,\n 0x2462,\n 0x3443,\n 0x0420,\n 0x1401,\n 0x64e6,\n 0x74c7,\n 0x44a4,\n 0x5485,\n 0xa56a,\n 0xb54b,\n 0x8528,\n 0x9509,\n 0xe5ee,\n 0xf5cf,\n 0xc5ac,\n 0xd58d,\n 0x3653,\n 0x2672,\n 0x1611,\n 0x0630,\n 0x76d7,\n 0x66f6,\n 0x5695,\n 0x46b4,\n 0xb75b,\n 0xa77a,\n 0x9719,\n 0x8738,\n 0xf7df,\n 0xe7fe,\n 0xd79d,\n 0xc7bc,\n 0x48c4,\n 0x58e5,\n 0x6886,\n 0x78a7,\n 0x0840,\n 0x1861,\n 0x2802,\n 0x3823,\n 0xc9cc,\n 0xd9ed,\n 0xe98e,\n 0xf9af,\n 0x8948,\n 0x9969,\n 0xa90a,\n 0xb92b,\n 0x5af5,\n 0x4ad4,\n 0x7ab7,\n 0x6a96,\n 0x1a71,\n 0x0a50,\n 0x3a33,\n 0x2a12,\n 0xdbfd,\n 0xcbdc,\n 0xfbbf,\n 0xeb9e,\n 0x9b79,\n 0x8b58,\n 0xbb3b,\n 0xab1a,\n 0x6ca6,\n 0x7c87,\n 0x4ce4,\n 0x5cc5,\n 0x2c22,\n 0x3c03,\n 0x0c60,\n 0x1c41,\n 0xedae,\n 0xfd8f,\n 0xcdec,\n 0xddcd,\n 0xad2a,\n 0xbd0b,\n 0x8d68,\n 0x9d49,\n 0x7e97,\n 0x6eb6,\n 0x5ed5,\n 0x4ef4,\n 0x3e13,\n 0x2e32,\n 0x1e51,\n 0x0e70,\n 0xff9f,\n 0xefbe,\n 0xdfdd,\n 0xcffc,\n 0xbf1b,\n 0xaf3a,\n 0x9f59,\n 0x8f78,\n 0x9188,\n 0x81a9,\n 0xb1ca,\n 0xa1eb,\n 0xd10c,\n 0xc12d,\n 0xf14e,\n 0xe16f,\n 0x1080,\n 0x00a1,\n 0x30c2,\n 0x20e3,\n 0x5004,\n 0x4025,\n 0x7046,\n 0x6067,\n 0x83b9,\n 0x9398,\n 0xa3fb,\n 0xb3da,\n 0xc33d,\n 0xd31c,\n 0xe37f,\n 0xf35e,\n 0x02b1,\n 0x1290,\n 0x22f3,\n 0x32d2,\n 0x4235,\n 0x5214,\n 0x6277,\n 0x7256,\n 0xb5ea,\n 0xa5cb,\n 0x95a8,\n 0x8589,\n 0xf56e,\n 0xe54f,\n 0xd52c,\n 0xc50d,\n 0x34e2,\n 0x24c3,\n 0x14a0,\n 0x0481,\n 0x7466,\n 0x6447,\n 0x5424,\n 0x4405,\n 0xa7db,\n 0xb7fa,\n 0x8799,\n 0x97b8,\n 0xe75f,\n 0xf77e,\n 0xc71d,\n 0xd73c,\n 0x26d3,\n 0x36f2,\n 0x0691,\n 0x16b0,\n 0x6657,\n 0x7676,\n 0x4615,\n 0x5634,\n 0xd94c,\n 0xc96d,\n 0xf90e,\n 0xe92f,\n 0x99c8,\n 0x89e9,\n 0xb98a,\n 0xa9ab,\n 0x5844,\n 0x4865,\n 0x7806,\n 0x6827,\n 0x18c0,\n 0x08e1,\n 0x3882,\n 0x28a3,\n 0xcb7d,\n 0xdb5c,\n 0xeb3f,\n 0xfb1e,\n 0x8bf9,\n 0x9bd8,\n 0xabbb,\n 0xbb9a,\n 0x4a75,\n 0x5a54,\n 0x6a37,\n 0x7a16,\n 0x0af1,\n 0x1ad0,\n 0x2ab3,\n 0x3a92,\n 0xfd2e,\n 0xed0f,\n 0xdd6c,\n 0xcd4d,\n 0xbdaa,\n 0xad8b,\n 0x9de8,\n 0x8dc9,\n 0x7c26,\n 0x6c07,\n 0x5c64,\n 0x4c45,\n 0x3ca2,\n 0x2c83,\n 0x1ce0,\n 0x0cc1,\n 0xef1f,\n 0xff3e,\n 0xcf5d,\n 0xdf7c,\n 0xaf9b,\n 0xbfba,\n 0x8fd9,\n 0x9ff8,\n 0x6e17,\n 0x7e36,\n 0x4e55,\n 0x5e74,\n 0x2e93,\n 0x3eb2,\n 0x0ed1,\n 0x1ef0\n]);\nclass crc16 {\n static checksum(data) {\n let crc = 0;\n for(let i = 0; i < data.byteLength; i++){\n let b = data[i];\n crc = crc << 8 & 0xffff ^ crc16tab[(crc >> 8 ^ b) & 0x00FF];\n }\n return crc;\n }\n static validate(data, expected) {\n let ba = crc16.checksum(data);\n return ba == expected;\n }\n}\nconst b32Alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\nclass base32 {\n static encode(src) {\n let bits = 0;\n let value = 0;\n let a = new Uint8Array(src);\n let buf = new Uint8Array(src.byteLength * 2);\n let j = 0;\n for(let i = 0; i < a.byteLength; i++){\n value = value << 8 | a[i];\n bits += 8;\n while(bits >= 5){\n let index = value >>> bits - 5 & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n bits -= 5;\n }\n }\n if (bits > 0) {\n let index = value << 5 - bits & 31;\n buf[j++] = b32Alphabet.charAt(index).charCodeAt(0);\n }\n return buf.slice(0, j);\n }\n static decode(src) {\n let bits = 0;\n let __byte = 0;\n let j = 0;\n let a = new Uint8Array(src);\n let out = new Uint8Array(a.byteLength * 5 / 8 | 0);\n for(let i = 0; i < a.byteLength; i++){\n let v = String.fromCharCode(a[i]);\n let vv = b32Alphabet.indexOf(v);\n if (vv === -1) {\n throw new Error(\"Illegal Base32 character: \" + a[i]);\n }\n __byte = __byte << 5 | vv;\n bits += 5;\n if (bits >= 8) {\n out[j++] = __byte >>> bits - 8 & 255;\n bits -= 8;\n }\n }\n return out.slice(0, j);\n }\n}\nclass NKeysError extends Error {\n name;\n code;\n chainedError;\n constructor(code, chainedError){\n super(code);\n this.name = \"NKeysError\";\n this.code = code;\n this.chainedError = chainedError;\n }\n}\nfunction createOperator() {\n return createPair(Prefix.Operator);\n}\nfunction createAccount() {\n return createPair(Prefix.Account);\n}\nfunction createUser() {\n return createPair(Prefix.User);\n}\nvar NKeysErrorCode;\n(function(NKeysErrorCode) {\n NKeysErrorCode[\"InvalidPrefixByte\"] = \"nkeys: invalid prefix byte\";\n NKeysErrorCode[\"InvalidKey\"] = \"nkeys: invalid key\";\n NKeysErrorCode[\"InvalidPublicKey\"] = \"nkeys: invalid public key\";\n NKeysErrorCode[\"InvalidSeedLen\"] = \"nkeys: invalid seed length\";\n NKeysErrorCode[\"InvalidSeed\"] = \"nkeys: invalid seed\";\n NKeysErrorCode[\"InvalidEncoding\"] = \"nkeys: invalid encoded key\";\n NKeysErrorCode[\"InvalidSignature\"] = \"nkeys: signature verification failed\";\n NKeysErrorCode[\"CannotSign\"] = \"nkeys: cannot sign, no private key available\";\n NKeysErrorCode[\"PublicKeyOnly\"] = \"nkeys: no seed or private key available\";\n NKeysErrorCode[\"InvalidChecksum\"] = \"nkeys: invalid checksum\";\n NKeysErrorCode[\"SerializationError\"] = \"nkeys: serialization error\";\n NKeysErrorCode[\"ApiError\"] = \"nkeys: api error\";\n NKeysErrorCode[\"ClearedPair\"] = \"nkeys: pair is cleared\";\n})(NKeysErrorCode || (NKeysErrorCode = {}));\nvar Prefix;\n(function(Prefix) {\n Prefix[Prefix[\"Seed\"] = 144] = \"Seed\";\n Prefix[Prefix[\"Private\"] = 120] = \"Private\";\n Prefix[Prefix[\"Operator\"] = 112] = \"Operator\";\n Prefix[Prefix[\"Server\"] = 104] = \"Server\";\n Prefix[Prefix[\"Cluster\"] = 16] = \"Cluster\";\n Prefix[Prefix[\"Account\"] = 0] = \"Account\";\n Prefix[Prefix[\"User\"] = 160] = \"User\";\n})(Prefix || (Prefix = {}));\nclass Prefixes {\n static isValidPublicPrefix(prefix) {\n return prefix == Prefix.Server || prefix == Prefix.Operator || prefix == Prefix.Cluster || prefix == Prefix.Account || prefix == Prefix.User;\n }\n static startsWithValidPrefix(s) {\n let c = s[0];\n return c == \"S\" || c == \"P\" || c == \"O\" || c == \"N\" || c == \"C\" || c == \"A\" || c == \"U\";\n }\n static isValidPrefix(prefix) {\n let v = this.parsePrefix(prefix);\n return v != -1;\n }\n static parsePrefix(v) {\n switch(v){\n case Prefix.Seed:\n return Prefix.Seed;\n case Prefix.Private:\n return Prefix.Private;\n case Prefix.Operator:\n return Prefix.Operator;\n case Prefix.Server:\n return Prefix.Server;\n case Prefix.Cluster:\n return Prefix.Cluster;\n case Prefix.Account:\n return Prefix.Account;\n case Prefix.User:\n return Prefix.User;\n default:\n return -1;\n }\n }\n}\nclass Codec {\n static encode(prefix, src) {\n if (!src || !(src instanceof Uint8Array)) {\n throw new NKeysError(NKeysErrorCode.SerializationError);\n }\n if (!Prefixes.isValidPrefix(prefix)) {\n throw new NKeysError(NKeysErrorCode.InvalidPrefixByte);\n }\n return Codec._encode(false, prefix, src);\n }\n static encodeSeed(role, src) {\n if (!src) {\n throw new NKeysError(NKeysErrorCode.ApiError);\n }\n if (!Prefixes.isValidPublicPrefix(role)) {\n throw new NKeysError(NKeysErrorCode.InvalidPrefixByte);\n }\n if (src.byteLength !== 32) {\n throw new NKeysError(NKeysErrorCode.InvalidSeedLen);\n }\n return Codec._encode(true, role, src);\n }\n static decode(expected, src) {\n if (!Prefixes.isValidPrefix(expected)) {\n throw new NKeysError(NKeysErrorCode.InvalidPrefixByte);\n }\n const raw = Codec._decode(src);\n if (raw[0] !== expected) {\n throw new NKeysError(NKeysErrorCode.InvalidPrefixByte);\n }\n return raw.slice(1);\n }\n static decodeSeed(src) {\n const raw = Codec._decode(src);\n const prefix = Codec._decodePrefix(raw);\n if (prefix[0] != Prefix.Seed) {\n throw new NKeysError(NKeysErrorCode.InvalidSeed);\n }\n if (!Prefixes.isValidPublicPrefix(prefix[1])) {\n throw new NKeysError(NKeysErrorCode.InvalidPrefixByte);\n }\n return {\n buf: raw.slice(2),\n prefix: prefix[1]\n };\n }\n static _encode(seed, role, payload) {\n const payloadOffset = seed ? 2 : 1;\n const payloadLen = payload.byteLength;\n const cap = payloadOffset + payloadLen + 2;\n const checkOffset = payloadOffset + payloadLen;\n const raw = new Uint8Array(cap);\n if (seed) {\n const encodedPrefix = Codec._encodePrefix(Prefix.Seed, role);\n raw.set(encodedPrefix);\n } else {\n raw[0] = role;\n }\n raw.set(payload, payloadOffset);\n const checksum = crc16.checksum(raw.slice(0, checkOffset));\n const dv = new DataView(raw.buffer);\n dv.setUint16(checkOffset, checksum, true);\n return base32.encode(raw);\n }\n static _decode(src) {\n if (src.byteLength < 4) {\n throw new NKeysError(NKeysErrorCode.InvalidEncoding);\n }\n let raw;\n try {\n raw = base32.decode(src);\n } catch (ex) {\n throw new NKeysError(NKeysErrorCode.InvalidEncoding, ex);\n }\n const checkOffset = raw.byteLength - 2;\n const dv = new DataView(raw.buffer);\n const checksum = dv.getUint16(checkOffset, true);\n const payload = raw.slice(0, checkOffset);\n if (!crc16.validate(payload, checksum)) {\n throw new NKeysError(NKeysErrorCode.InvalidChecksum);\n }\n return payload;\n }\n static _encodePrefix(kind, role) {\n const b1 = kind | role >> 5;\n const b2 = (role & 31) << 3;\n return new Uint8Array([\n b1,\n b2\n ]);\n }\n static _decodePrefix(raw) {\n const b1 = raw[0] & 248;\n const b2 = (raw[0] & 7) << 5 | (raw[1] & 248) >> 3;\n return new Uint8Array([\n b1,\n b2\n ]);\n }\n}\nclass KP {\n seed;\n constructor(seed){\n this.seed = seed;\n }\n getRawSeed() {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n let sd = Codec.decodeSeed(this.seed);\n return sd.buf;\n }\n getSeed() {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n return this.seed;\n }\n getPublicKey() {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n const sd = Codec.decodeSeed(this.seed);\n const kp = getEd25519Helper().fromSeed(this.getRawSeed());\n const buf = Codec.encode(sd.prefix, kp.publicKey);\n return new TextDecoder().decode(buf);\n }\n getPrivateKey() {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n const kp = getEd25519Helper().fromSeed(this.getRawSeed());\n return Codec.encode(Prefix.Private, kp.secretKey);\n }\n sign(input) {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n const kp = getEd25519Helper().fromSeed(this.getRawSeed());\n return getEd25519Helper().sign(input, kp.secretKey);\n }\n verify(input, sig) {\n if (!this.seed) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n const kp = getEd25519Helper().fromSeed(this.getRawSeed());\n return getEd25519Helper().verify(input, sig, kp.publicKey);\n }\n clear() {\n if (!this.seed) {\n return;\n }\n this.seed.fill(0);\n this.seed = undefined;\n }\n}\nfunction createPair(prefix) {\n const rawSeed = getEd25519Helper().randomBytes(32);\n let str = Codec.encodeSeed(prefix, new Uint8Array(rawSeed));\n return new KP(str);\n}\nclass PublicKey {\n publicKey;\n constructor(publicKey){\n this.publicKey = publicKey;\n }\n getPublicKey() {\n if (!this.publicKey) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n return new TextDecoder().decode(this.publicKey);\n }\n getPrivateKey() {\n if (!this.publicKey) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n throw new NKeysError(NKeysErrorCode.PublicKeyOnly);\n }\n getSeed() {\n if (!this.publicKey) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n throw new NKeysError(NKeysErrorCode.PublicKeyOnly);\n }\n sign(_) {\n if (!this.publicKey) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n throw new NKeysError(NKeysErrorCode.CannotSign);\n }\n verify(input, sig) {\n if (!this.publicKey) {\n throw new NKeysError(NKeysErrorCode.ClearedPair);\n }\n let buf = Codec._decode(this.publicKey);\n return getEd25519Helper().verify(input, sig, buf.slice(1));\n }\n clear() {\n if (!this.publicKey) {\n return;\n }\n this.publicKey.fill(0);\n this.publicKey = undefined;\n }\n}\nfunction fromPublic(src) {\n const ba = new TextEncoder().encode(src);\n const raw = Codec._decode(ba);\n const prefix = Prefixes.parsePrefix(raw[0]);\n if (Prefixes.isValidPublicPrefix(prefix)) {\n return new PublicKey(ba);\n }\n throw new NKeysError(NKeysErrorCode.InvalidPublicKey);\n}\nfunction fromSeed(src) {\n Codec.decodeSeed(src);\n return new KP(src);\n}\nfunction encode1(bytes) {\n return btoa(String.fromCharCode(...bytes));\n}\nfunction decode1(b64str) {\n const bin = atob(b64str);\n const bytes = new Uint8Array(bin.length);\n for(let i = 0; i < bin.length; i++){\n bytes[i] = bin.charCodeAt(i);\n }\n return bytes;\n}\nsetEd25519Helper(denoHelper);\nconst mod = {\n createAccount,\n createOperator,\n createPair,\n createUser,\n fromPublic,\n fromSeed,\n NKeysError,\n NKeysErrorCode,\n Prefix,\n decode: decode1,\n encode: encode1\n};\nfunction multiAuthenticator(authenticators) {\n return (nonce)=>{\n let auth = {};\n authenticators.forEach((a)=>{\n const args = a(nonce) || {};\n auth = Object.assign(auth, args);\n });\n return auth;\n };\n}\nfunction noAuthFn() {\n return ()=>{\n return;\n };\n}\nfunction usernamePasswordAuthenticator(user, pass) {\n return ()=>{\n const u = typeof user === \"function\" ? user() : user;\n const p = typeof pass === \"function\" ? pass() : pass;\n return {\n user: u,\n pass: p\n };\n };\n}\nfunction tokenAuthenticator(token) {\n return ()=>{\n const auth_token = typeof token === \"function\" ? token() : token;\n return {\n auth_token\n };\n };\n}\nfunction nkeyAuthenticator(seed) {\n return (nonce)=>{\n const s = typeof seed === \"function\" ? seed() : seed;\n const kp = s ? mod.fromSeed(s) : undefined;\n const nkey = kp ? kp.getPublicKey() : \"\";\n const challenge = TE.encode(nonce || \"\");\n const sigBytes = kp !== undefined && nonce ? kp.sign(challenge) : undefined;\n const sig = sigBytes ? mod.encode(sigBytes) : \"\";\n return {\n nkey,\n sig\n };\n };\n}\nfunction jwtAuthenticator(ajwt, seed) {\n return (nonce)=>{\n const jwt = typeof ajwt === \"function\" ? ajwt() : ajwt;\n const fn = nkeyAuthenticator(seed);\n const { nkey, sig } = fn(nonce);\n return {\n jwt,\n nkey,\n sig\n };\n };\n}\nfunction credsAuthenticator(creds) {\n const fn = typeof creds !== \"function\" ? ()=>creds : creds;\n const parse = ()=>{\n const CREDS = /\\s*(?:(?:[-]{3,}[^\\n]*[-]{3,}\\n)(.+)(?:\\n\\s*[-]{3,}[^\\n]*[-]{3,}\\n))/ig;\n const s = TD.decode(fn());\n let m = CREDS.exec(s);\n if (!m) {\n throw NatsError.errorForCode(ErrorCode.BadCreds);\n }\n const jwt = m[1].trim();\n m = CREDS.exec(s);\n if (!m) {\n throw NatsError.errorForCode(ErrorCode.BadCreds);\n }\n if (!m) {\n throw NatsError.errorForCode(ErrorCode.BadCreds);\n }\n const seed = TE.encode(m[1].trim());\n return {\n jwt,\n seed\n };\n };\n const jwtFn = ()=>{\n const { jwt } = parse();\n return jwt;\n };\n const nkeyFn = ()=>{\n const { seed } = parse();\n return seed;\n };\n return jwtAuthenticator(jwtFn, nkeyFn);\n}\nconst DEFAULT_PING_INTERVAL = 2 * 60 * 1000;\nconst DEFAULT_MAX_PING_OUT = 2;\nconst DEFAULT_RECONNECT_TIME_WAIT = 2 * 1000;\nfunction defaultOptions() {\n return {\n maxPingOut: 2,\n maxReconnectAttempts: 10,\n noRandomize: false,\n pedantic: false,\n pingInterval: DEFAULT_PING_INTERVAL,\n reconnect: true,\n reconnectJitter: 100,\n reconnectJitterTLS: 1000,\n reconnectTimeWait: DEFAULT_RECONNECT_TIME_WAIT,\n tls: undefined,\n verbose: false,\n waitOnFirstConnect: false,\n ignoreAuthErrorAbort: false\n };\n}\nfunction buildAuthenticator(opts) {\n const buf = [];\n if (typeof opts.authenticator === \"function\") {\n buf.push(opts.authenticator);\n }\n if (Array.isArray(opts.authenticator)) {\n buf.push(...opts.authenticator);\n }\n if (opts.token) {\n buf.push(tokenAuthenticator(opts.token));\n }\n if (opts.user) {\n buf.push(usernamePasswordAuthenticator(opts.user, opts.pass));\n }\n return buf.length === 0 ? noAuthFn() : multiAuthenticator(buf);\n}\nfunction parseOptions(opts) {\n const dhp = `${DEFAULT_HOST}:${defaultPort()}`;\n opts = opts || {\n servers: [\n dhp\n ]\n };\n opts.servers = opts.servers || [];\n if (typeof opts.servers === \"string\") {\n opts.servers = [\n opts.servers\n ];\n }\n if (opts.servers.length > 0 && opts.port) {\n throw new NatsError(\"port and servers options are mutually exclusive\", ErrorCode.InvalidOption);\n }\n if (opts.servers.length === 0 && opts.port) {\n opts.servers = [\n `${DEFAULT_HOST}:${opts.port}`\n ];\n }\n if (opts.servers && opts.servers.length === 0) {\n opts.servers = [\n dhp\n ];\n }\n const options = extend(defaultOptions(), opts);\n options.authenticator = buildAuthenticator(options);\n [\n \"reconnectDelayHandler\",\n \"authenticator\"\n ].forEach((n)=>{\n if (options[n] && typeof options[n] !== \"function\") {\n throw new NatsError(`${n} option should be a function`, ErrorCode.NotFunction);\n }\n });\n if (!options.reconnectDelayHandler) {\n options.reconnectDelayHandler = ()=>{\n let extra = options.tls ? options.reconnectJitterTLS : options.reconnectJitter;\n if (extra) {\n extra++;\n extra = Math.floor(Math.random() * extra);\n }\n return options.reconnectTimeWait + extra;\n };\n }\n if (options.inboxPrefix) {\n try {\n createInbox(options.inboxPrefix);\n } catch (err) {\n throw new NatsError(err.message, ErrorCode.ApiError);\n }\n }\n if (options.resolve === undefined) {\n options.resolve = typeof getResolveFn() === \"function\";\n }\n if (options.resolve) {\n if (typeof getResolveFn() !== \"function\") {\n throw new NatsError(`'resolve' is not supported on this client`, ErrorCode.InvalidOption);\n }\n }\n return options;\n}\nfunction checkOptions(info, options) {\n const { proto, tls_required: tlsRequired, tls_available: tlsAvailable } = info;\n if ((proto === undefined || proto < 1) && options.noEcho) {\n throw new NatsError(\"noEcho\", ErrorCode.ServerOptionNotAvailable);\n }\n const tls = tlsRequired || tlsAvailable || false;\n if (options.tls && !tls) {\n throw new NatsError(\"tls\", ErrorCode.ServerOptionNotAvailable);\n }\n}\nconst FLUSH_THRESHOLD = 1024 * 32;\nconst INFO = /^INFO\\s+([^\\r\\n]+)\\r\\n/i;\nconst PONG_CMD = encode(\"PONG\\r\\n\");\nconst PING_CMD = encode(\"PING\\r\\n\");\nclass Connect {\n echo;\n no_responders;\n protocol;\n verbose;\n pedantic;\n jwt;\n nkey;\n sig;\n user;\n pass;\n auth_token;\n tls_required;\n name;\n lang;\n version;\n headers;\n constructor(transport, opts, nonce){\n this.protocol = 1;\n this.version = transport.version;\n this.lang = transport.lang;\n this.echo = opts.noEcho ? false : undefined;\n this.verbose = opts.verbose;\n this.pedantic = opts.pedantic;\n this.tls_required = opts.tls ? true : undefined;\n this.name = opts.name;\n const creds = (opts && typeof opts.authenticator === \"function\" ? opts.authenticator(nonce) : {}) || {};\n extend(this, creds);\n }\n}\nclass SubscriptionImpl extends QueuedIteratorImpl {\n sid;\n queue;\n draining;\n max;\n subject;\n drained;\n protocol;\n timer;\n info;\n cleanupFn;\n closed;\n requestSubject;\n constructor(protocol, subject, opts = {}){\n super();\n extend(this, opts);\n this.protocol = protocol;\n this.subject = subject;\n this.draining = false;\n this.noIterator = typeof opts.callback === \"function\";\n this.closed = deferred();\n const asyncTraces = !(protocol.options?.noAsyncTraces || false);\n if (opts.timeout) {\n this.timer = timeout(opts.timeout, asyncTraces);\n this.timer.then(()=>{\n this.timer = undefined;\n }).catch((err)=>{\n this.stop(err);\n if (this.noIterator) {\n this.callback(err, {});\n }\n });\n }\n if (!this.noIterator) {\n this.iterClosed.then(()=>{\n this.closed.resolve();\n this.unsubscribe();\n });\n }\n }\n setPrePostHandlers(opts) {\n if (this.noIterator) {\n const uc = this.callback;\n const ingestion = opts.ingestionFilterFn ? opts.ingestionFilterFn : ()=>{\n return {\n ingest: true,\n protocol: false\n };\n };\n const filter = opts.protocolFilterFn ? opts.protocolFilterFn : ()=>{\n return true;\n };\n const dispatched = opts.dispatchedFn ? opts.dispatchedFn : ()=>{};\n this.callback = (err, msg)=>{\n const { ingest } = ingestion(msg);\n if (!ingest) {\n return;\n }\n if (filter(msg)) {\n uc(err, msg);\n dispatched(msg);\n }\n };\n } else {\n this.protocolFilterFn = opts.protocolFilterFn;\n this.dispatchedFn = opts.dispatchedFn;\n }\n }\n callback(err, msg) {\n this.cancelTimeout();\n err ? this.stop(err) : this.push(msg);\n }\n close() {\n if (!this.isClosed()) {\n this.cancelTimeout();\n const fn = ()=>{\n this.stop();\n if (this.cleanupFn) {\n try {\n this.cleanupFn(this, this.info);\n } catch (_err) {}\n }\n this.closed.resolve();\n };\n if (this.noIterator) {\n fn();\n } else {\n this.push(fn);\n }\n }\n }\n unsubscribe(max) {\n this.protocol.unsubscribe(this, max);\n }\n cancelTimeout() {\n if (this.timer) {\n this.timer.cancel();\n this.timer = undefined;\n }\n }\n drain() {\n if (this.protocol.isClosed()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionClosed));\n }\n if (this.isClosed()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.SubClosed));\n }\n if (!this.drained) {\n this.draining = true;\n this.protocol.unsub(this);\n this.drained = this.protocol.flush(deferred()).then(()=>{\n this.protocol.subscriptions.cancel(this);\n }).catch(()=>{\n this.protocol.subscriptions.cancel(this);\n });\n }\n return this.drained;\n }\n isDraining() {\n return this.draining;\n }\n isClosed() {\n return this.done;\n }\n getSubject() {\n return this.subject;\n }\n getMax() {\n return this.max;\n }\n getID() {\n return this.sid;\n }\n}\nclass Subscriptions {\n mux;\n subs;\n sidCounter;\n constructor(){\n this.sidCounter = 0;\n this.mux = null;\n this.subs = new Map();\n }\n size() {\n return this.subs.size;\n }\n add(s) {\n this.sidCounter++;\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n setMux(s) {\n this.mux = s;\n return s;\n }\n getMux() {\n return this.mux;\n }\n get(sid) {\n return this.subs.get(sid);\n }\n resub(s) {\n this.sidCounter++;\n this.subs.delete(s.sid);\n s.sid = this.sidCounter;\n this.subs.set(s.sid, s);\n return s;\n }\n all() {\n return Array.from(this.subs.values());\n }\n cancel(s) {\n if (s) {\n s.close();\n this.subs.delete(s.sid);\n }\n }\n handleError(err) {\n if (err && err.permissionContext) {\n const ctx = err.permissionContext;\n const subs = this.all();\n let sub;\n if (ctx.operation === \"subscription\") {\n sub = subs.find((s)=>{\n return s.subject === ctx.subject && s.queue === ctx.queue;\n });\n }\n if (ctx.operation === \"publish\") {\n sub = subs.find((s)=>{\n return s.requestSubject === ctx.subject;\n });\n }\n if (sub) {\n sub.callback(err, {});\n sub.close();\n this.subs.delete(sub.sid);\n return sub !== this.mux;\n }\n }\n return false;\n }\n close() {\n this.subs.forEach((sub)=>{\n sub.close();\n });\n }\n}\nclass ProtocolHandler {\n connected;\n connectedOnce;\n infoReceived;\n info;\n muxSubscriptions;\n options;\n outbound;\n pongs;\n subscriptions;\n transport;\n noMorePublishing;\n connectError;\n publisher;\n _closed;\n closed;\n listeners;\n heartbeats;\n parser;\n outMsgs;\n inMsgs;\n outBytes;\n inBytes;\n pendingLimit;\n lastError;\n abortReconnect;\n whyClosed;\n servers;\n server;\n features;\n connectPromise;\n constructor(options, publisher){\n this._closed = false;\n this.connected = false;\n this.connectedOnce = false;\n this.infoReceived = false;\n this.noMorePublishing = false;\n this.abortReconnect = false;\n this.listeners = [];\n this.pendingLimit = FLUSH_THRESHOLD;\n this.outMsgs = 0;\n this.inMsgs = 0;\n this.outBytes = 0;\n this.inBytes = 0;\n this.options = options;\n this.publisher = publisher;\n this.subscriptions = new Subscriptions();\n this.muxSubscriptions = new MuxSubscription();\n this.outbound = new DataBuffer();\n this.pongs = [];\n this.whyClosed = \"\";\n this.pendingLimit = options.pendingLimit || this.pendingLimit;\n this.features = new Features({\n major: 0,\n minor: 0,\n micro: 0\n });\n this.connectPromise = null;\n const servers = typeof options.servers === \"string\" ? [\n options.servers\n ] : options.servers;\n this.servers = new Servers(servers, {\n randomize: !options.noRandomize\n });\n this.closed = deferred();\n this.parser = new Parser(this);\n this.heartbeats = new Heartbeat(this, this.options.pingInterval || DEFAULT_PING_INTERVAL, this.options.maxPingOut || DEFAULT_MAX_PING_OUT);\n }\n resetOutbound() {\n this.outbound.reset();\n const pongs = this.pongs;\n this.pongs = [];\n const err = NatsError.errorForCode(ErrorCode.Disconnect);\n err.stack = \"\";\n pongs.forEach((p)=>{\n p.reject(err);\n });\n this.parser = new Parser(this);\n this.infoReceived = false;\n }\n dispatchStatus(status) {\n this.listeners.forEach((q)=>{\n q.push(status);\n });\n }\n status() {\n const iter = new QueuedIteratorImpl();\n this.listeners.push(iter);\n return iter;\n }\n prepare() {\n if (this.transport) {\n this.transport.discard();\n }\n this.info = undefined;\n this.resetOutbound();\n const pong = deferred();\n pong.catch(()=>{});\n this.pongs.unshift(pong);\n this.connectError = (err)=>{\n pong.reject(err);\n };\n this.transport = newTransport();\n this.transport.closed().then(async (_err)=>{\n this.connected = false;\n if (!this.isClosed()) {\n await this.disconnected(this.transport.closeError || this.lastError);\n return;\n }\n });\n return pong;\n }\n disconnect() {\n this.dispatchStatus({\n type: DebugEvents.StaleConnection,\n data: \"\"\n });\n this.transport.disconnect();\n }\n reconnect() {\n if (this.connected) {\n this.dispatchStatus({\n type: DebugEvents.ClientInitiatedReconnect,\n data: \"\"\n });\n this.transport.disconnect();\n }\n return Promise.resolve();\n }\n async disconnected(err) {\n this.dispatchStatus({\n type: Events.Disconnect,\n data: this.servers.getCurrentServer().toString()\n });\n if (this.options.reconnect) {\n await this.dialLoop().then(()=>{\n this.dispatchStatus({\n type: Events.Reconnect,\n data: this.servers.getCurrentServer().toString()\n });\n if (this.lastError?.code === ErrorCode.AuthenticationExpired) {\n this.lastError = undefined;\n }\n }).catch((err)=>{\n this._close(err);\n });\n } else {\n await this._close(err);\n }\n }\n async dial(srv) {\n const pong = this.prepare();\n let timer;\n try {\n timer = timeout(this.options.timeout || 20000);\n const cp = this.transport.connect(srv, this.options);\n await Promise.race([\n cp,\n timer\n ]);\n (async ()=>{\n try {\n for await (const b of this.transport){\n this.parser.parse(b);\n }\n } catch (err) {\n console.log(\"reader closed\", err);\n }\n })().then();\n } catch (err) {\n pong.reject(err);\n }\n try {\n await Promise.race([\n timer,\n pong\n ]);\n if (timer) {\n timer.cancel();\n }\n this.connected = true;\n this.connectError = undefined;\n this.sendSubscriptions();\n this.connectedOnce = true;\n this.server.didConnect = true;\n this.server.reconnects = 0;\n this.flushPending();\n this.heartbeats.start();\n } catch (err) {\n if (timer) {\n timer.cancel();\n }\n await this.transport.close(err);\n throw err;\n }\n }\n async _doDial(srv) {\n const { resolve } = this.options;\n const alts = await srv.resolve({\n fn: getResolveFn(),\n debug: this.options.debug,\n randomize: !this.options.noRandomize,\n resolve\n });\n let lastErr = null;\n for (const a of alts){\n try {\n lastErr = null;\n this.dispatchStatus({\n type: DebugEvents.Reconnecting,\n data: a.toString()\n });\n await this.dial(a);\n return;\n } catch (err) {\n lastErr = err;\n }\n }\n throw lastErr;\n }\n dialLoop() {\n if (this.connectPromise === null) {\n this.connectPromise = this.dodialLoop();\n this.connectPromise.then(()=>{}).catch(()=>{}).finally(()=>{\n this.connectPromise = null;\n });\n }\n return this.connectPromise;\n }\n async dodialLoop() {\n let lastError;\n while(true){\n if (this._closed) {\n this.servers.clear();\n }\n const wait = this.options.reconnectDelayHandler ? this.options.reconnectDelayHandler() : DEFAULT_RECONNECT_TIME_WAIT;\n let maxWait = wait;\n const srv = this.selectServer();\n if (!srv || this.abortReconnect) {\n if (lastError) {\n throw lastError;\n } else if (this.lastError) {\n throw this.lastError;\n } else {\n throw NatsError.errorForCode(ErrorCode.ConnectionRefused);\n }\n }\n const now = Date.now();\n if (srv.lastConnect === 0 || srv.lastConnect + wait <= now) {\n srv.lastConnect = Date.now();\n try {\n await this._doDial(srv);\n break;\n } catch (err) {\n lastError = err;\n if (!this.connectedOnce) {\n if (this.options.waitOnFirstConnect) {\n continue;\n }\n this.servers.removeCurrentServer();\n }\n srv.reconnects++;\n const mra = this.options.maxReconnectAttempts || 0;\n if (mra !== -1 && srv.reconnects >= mra) {\n this.servers.removeCurrentServer();\n }\n }\n } else {\n maxWait = Math.min(maxWait, srv.lastConnect + wait - now);\n await delay(maxWait);\n }\n }\n }\n static async connect(options, publisher) {\n const h = new ProtocolHandler(options, publisher);\n await h.dialLoop();\n return h;\n }\n static toError(s) {\n const t = s ? s.toLowerCase() : \"\";\n if (t.indexOf(\"permissions violation\") !== -1) {\n const err = new NatsError(s, ErrorCode.PermissionsViolation);\n const m = s.match(/(Publish|Subscription) to \"(\\S+)\"/);\n if (m) {\n err.permissionContext = {\n operation: m[1].toLowerCase(),\n subject: m[2],\n queue: undefined\n };\n const qm = s.match(/using queue \"(\\S+)\"/);\n if (qm) {\n err.permissionContext.queue = qm[1];\n }\n }\n return err;\n } else if (t.indexOf(\"authorization violation\") !== -1) {\n return new NatsError(s, ErrorCode.AuthorizationViolation);\n } else if (t.indexOf(\"user authentication expired\") !== -1) {\n return new NatsError(s, ErrorCode.AuthenticationExpired);\n } else if (t.indexOf(\"account authentication expired\") != -1) {\n return new NatsError(s, ErrorCode.AccountExpired);\n } else if (t.indexOf(\"authentication timeout\") !== -1) {\n return new NatsError(s, ErrorCode.AuthenticationTimeout);\n } else {\n return new NatsError(s, ErrorCode.ProtocolError);\n }\n }\n processMsg(msg, data) {\n this.inMsgs++;\n this.inBytes += data.length;\n if (!this.subscriptions.sidCounter) {\n return;\n }\n const sub = this.subscriptions.get(msg.sid);\n if (!sub) {\n return;\n }\n sub.received += 1;\n if (sub.callback) {\n sub.callback(null, new MsgImpl(msg, data, this));\n }\n if (sub.max !== undefined && sub.received >= sub.max) {\n sub.unsubscribe();\n }\n }\n processError(m) {\n const s = decode(m);\n const err = ProtocolHandler.toError(s);\n const status = {\n type: Events.Error,\n data: err.code\n };\n if (err.isPermissionError()) {\n let isMuxPermissionError = false;\n if (err.permissionContext) {\n status.permissionContext = err.permissionContext;\n const mux = this.subscriptions.getMux();\n isMuxPermissionError = mux?.subject === err.permissionContext.subject;\n }\n this.subscriptions.handleError(err);\n this.muxSubscriptions.handleError(isMuxPermissionError, err);\n if (isMuxPermissionError) {\n this.subscriptions.setMux(null);\n }\n }\n this.dispatchStatus(status);\n this.handleError(err);\n }\n handleError(err) {\n if (err.isAuthError()) {\n this.handleAuthError(err);\n } else if (err.isProtocolError()) {\n this.lastError = err;\n } else if (err.isAuthTimeout()) {\n this.lastError = err;\n }\n if (!err.isPermissionError()) {\n this.lastError = err;\n }\n }\n handleAuthError(err) {\n if (this.lastError && err.code === this.lastError.code && this.options.ignoreAuthErrorAbort === false) {\n this.abortReconnect = true;\n }\n if (this.connectError) {\n this.connectError(err);\n } else {\n this.disconnect();\n }\n }\n processPing() {\n this.transport.send(PONG_CMD);\n }\n processPong() {\n const cb = this.pongs.shift();\n if (cb) {\n cb.resolve();\n }\n }\n processInfo(m) {\n const info = JSON.parse(decode(m));\n this.info = info;\n const updates = this.options && this.options.ignoreClusterUpdates ? undefined : this.servers.update(info, this.transport.isEncrypted());\n if (!this.infoReceived) {\n this.features.update(parseSemVer(info.version));\n this.infoReceived = true;\n if (this.transport.isEncrypted()) {\n this.servers.updateTLSName();\n }\n const { version, lang } = this.transport;\n try {\n const c = new Connect({\n version,\n lang\n }, this.options, info.nonce);\n if (info.headers) {\n c.headers = true;\n c.no_responders = true;\n }\n const cs = JSON.stringify(c);\n this.transport.send(encode(`CONNECT ${cs}${CR_LF}`));\n this.transport.send(PING_CMD);\n } catch (err) {\n this._close(err);\n }\n }\n if (updates) {\n this.dispatchStatus({\n type: Events.Update,\n data: updates\n });\n }\n const ldm = info.ldm !== undefined ? info.ldm : false;\n if (ldm) {\n this.dispatchStatus({\n type: Events.LDM,\n data: this.servers.getCurrentServer().toString()\n });\n }\n }\n push(e) {\n switch(e.kind){\n case Kind.MSG:\n {\n const { msg, data } = e;\n this.processMsg(msg, data);\n break;\n }\n case Kind.OK:\n break;\n case Kind.ERR:\n this.processError(e.data);\n break;\n case Kind.PING:\n this.processPing();\n break;\n case Kind.PONG:\n this.processPong();\n break;\n case Kind.INFO:\n this.processInfo(e.data);\n break;\n }\n }\n sendCommand(cmd, ...payloads) {\n const len = this.outbound.length();\n let buf;\n if (typeof cmd === \"string\") {\n buf = encode(cmd);\n } else {\n buf = cmd;\n }\n this.outbound.fill(buf, ...payloads);\n if (len === 0) {\n queueMicrotask(()=>{\n this.flushPending();\n });\n } else if (this.outbound.size() >= this.pendingLimit) {\n this.flushPending();\n }\n }\n publish(subject, payload = Empty, options) {\n let data;\n if (payload instanceof Uint8Array) {\n data = payload;\n } else if (typeof payload === \"string\") {\n data = TE.encode(payload);\n } else {\n throw NatsError.errorForCode(ErrorCode.BadPayload);\n }\n let len = data.length;\n options = options || {};\n options.reply = options.reply || \"\";\n let headers = Empty;\n let hlen = 0;\n if (options.headers) {\n if (this.info && !this.info.headers) {\n throw new NatsError(\"headers\", ErrorCode.ServerOptionNotAvailable);\n }\n const hdrs = options.headers;\n headers = hdrs.encode();\n hlen = headers.length;\n len = data.length + hlen;\n }\n if (this.info && len > this.info.max_payload) {\n throw NatsError.errorForCode(ErrorCode.MaxPayloadExceeded);\n }\n this.outBytes += len;\n this.outMsgs++;\n let proto;\n if (options.headers) {\n if (options.reply) {\n proto = `HPUB ${subject} ${options.reply} ${hlen} ${len}\\r\\n`;\n } else {\n proto = `HPUB ${subject} ${hlen} ${len}\\r\\n`;\n }\n this.sendCommand(proto, headers, data, CRLF);\n } else {\n if (options.reply) {\n proto = `PUB ${subject} ${options.reply} ${len}\\r\\n`;\n } else {\n proto = `PUB ${subject} ${len}\\r\\n`;\n }\n this.sendCommand(proto, data, CRLF);\n }\n }\n request(r) {\n this.initMux();\n this.muxSubscriptions.add(r);\n return r;\n }\n subscribe(s) {\n this.subscriptions.add(s);\n this._subunsub(s);\n return s;\n }\n _sub(s) {\n if (s.queue) {\n this.sendCommand(`SUB ${s.subject} ${s.queue} ${s.sid}\\r\\n`);\n } else {\n this.sendCommand(`SUB ${s.subject} ${s.sid}\\r\\n`);\n }\n }\n _subunsub(s) {\n this._sub(s);\n if (s.max) {\n this.unsubscribe(s, s.max);\n }\n return s;\n }\n unsubscribe(s, max) {\n this.unsub(s, max);\n if (s.max === undefined || s.received >= s.max) {\n this.subscriptions.cancel(s);\n }\n }\n unsub(s, max) {\n if (!s || this.isClosed()) {\n return;\n }\n if (max) {\n this.sendCommand(`UNSUB ${s.sid} ${max}\\r\\n`);\n } else {\n this.sendCommand(`UNSUB ${s.sid}\\r\\n`);\n }\n s.max = max;\n }\n resub(s, subject) {\n if (!s || this.isClosed()) {\n return;\n }\n this.unsub(s);\n s.subject = subject;\n this.subscriptions.resub(s);\n this._sub(s);\n }\n flush(p) {\n if (!p) {\n p = deferred();\n }\n this.pongs.push(p);\n this.outbound.fill(PING_CMD);\n this.flushPending();\n return p;\n }\n sendSubscriptions() {\n const cmds = [];\n this.subscriptions.all().forEach((s)=>{\n const sub = s;\n if (sub.queue) {\n cmds.push(`SUB ${sub.subject} ${sub.queue} ${sub.sid}${CR_LF}`);\n } else {\n cmds.push(`SUB ${sub.subject} ${sub.sid}${CR_LF}`);\n }\n });\n if (cmds.length) {\n this.transport.send(encode(cmds.join(\"\")));\n }\n }\n async _close(err) {\n if (this._closed) {\n return;\n }\n this.whyClosed = new Error(\"close trace\").stack || \"\";\n this.heartbeats.cancel();\n if (this.connectError) {\n this.connectError(err);\n this.connectError = undefined;\n }\n this.muxSubscriptions.close();\n this.subscriptions.close();\n this.listeners.forEach((l)=>{\n l.stop();\n });\n this._closed = true;\n await this.transport.close(err);\n await this.closed.resolve(err);\n }\n close() {\n return this._close();\n }\n isClosed() {\n return this._closed;\n }\n drain() {\n const subs = this.subscriptions.all();\n const promises = [];\n subs.forEach((sub)=>{\n promises.push(sub.drain());\n });\n return Promise.all(promises).then(async ()=>{\n this.noMorePublishing = true;\n await this.flush();\n return this.close();\n }).catch(()=>{});\n }\n flushPending() {\n if (!this.infoReceived || !this.connected) {\n return;\n }\n if (this.outbound.size()) {\n const d = this.outbound.drain();\n this.transport.send(d);\n }\n }\n initMux() {\n const mux = this.subscriptions.getMux();\n if (!mux) {\n const inbox = this.muxSubscriptions.init(this.options.inboxPrefix);\n const sub = new SubscriptionImpl(this, `${inbox}*`);\n sub.callback = this.muxSubscriptions.dispatcher();\n this.subscriptions.setMux(sub);\n this.subscribe(sub);\n }\n }\n selectServer() {\n const server = this.servers.selectServer();\n if (server === undefined) {\n return undefined;\n }\n this.server = server;\n return this.server;\n }\n getServer() {\n return this.server;\n }\n}\nconst ServiceApiPrefix = \"$SRV\";\nclass ServiceMsgImpl {\n msg;\n constructor(msg){\n this.msg = msg;\n }\n get data() {\n return this.msg.data;\n }\n get sid() {\n return this.msg.sid;\n }\n get subject() {\n return this.msg.subject;\n }\n get reply() {\n return this.msg.reply || \"\";\n }\n get headers() {\n return this.msg.headers;\n }\n respond(data, opts) {\n return this.msg.respond(data, opts);\n }\n respondError(code, description, data, opts) {\n opts = opts || {};\n opts.headers = opts.headers || headers();\n opts.headers?.set(ServiceErrorCodeHeader, `${code}`);\n opts.headers?.set(ServiceErrorHeader, description);\n return this.msg.respond(data, opts);\n }\n json(reviver) {\n return this.msg.json(reviver);\n }\n string() {\n return this.msg.string();\n }\n}\nclass ServiceGroupImpl {\n subject;\n queue;\n srv;\n constructor(parent, name = \"\", queue = \"\"){\n if (name !== \"\") {\n validInternalToken(\"service group\", name);\n }\n let root = \"\";\n if (parent instanceof ServiceImpl) {\n this.srv = parent;\n root = \"\";\n } else if (parent instanceof ServiceGroupImpl) {\n const sg = parent;\n this.srv = sg.srv;\n if (queue === \"\" && sg.queue !== \"\") {\n queue = sg.queue;\n }\n root = sg.subject;\n } else {\n throw new Error(\"unknown ServiceGroup type\");\n }\n this.subject = this.calcSubject(root, name);\n this.queue = queue;\n }\n calcSubject(root, name = \"\") {\n if (name === \"\") {\n return root;\n }\n return root !== \"\" ? `${root}.${name}` : name;\n }\n addEndpoint(name = \"\", opts) {\n opts = opts || {\n subject: name\n };\n const args = typeof opts === \"function\" ? {\n handler: opts,\n subject: name\n } : opts;\n validateName(\"endpoint\", name);\n let { subject, handler, metadata, queue } = args;\n subject = subject || name;\n queue = queue || this.queue;\n validSubjectName(\"endpoint subject\", subject);\n subject = this.calcSubject(this.subject, subject);\n const ne = {\n name,\n subject,\n queue,\n handler,\n metadata\n };\n return this.srv._addEndpoint(ne);\n }\n addGroup(name = \"\", queue = \"\") {\n return new ServiceGroupImpl(this, name, queue);\n }\n}\nfunction validSubjectName(context, subj) {\n if (subj === \"\") {\n throw new Error(`${context} cannot be empty`);\n }\n if (subj.indexOf(\" \") !== -1) {\n throw new Error(`${context} cannot contain spaces: '${subj}'`);\n }\n const tokens = subj.split(\".\");\n tokens.forEach((v, idx)=>{\n if (v === \">\" && idx !== tokens.length - 1) {\n throw new Error(`${context} cannot have internal '>': '${subj}'`);\n }\n });\n}\nfunction validInternalToken(context, subj) {\n if (subj.indexOf(\" \") !== -1) {\n throw new Error(`${context} cannot contain spaces: '${subj}'`);\n }\n const tokens = subj.split(\".\");\n tokens.forEach((v)=>{\n if (v === \">\") {\n throw new Error(`${context} name cannot contain internal '>': '${subj}'`);\n }\n });\n}\nclass ServiceImpl {\n nc;\n _id;\n config;\n handlers;\n internal;\n _stopped;\n _done;\n started;\n static controlSubject(verb, name = \"\", id = \"\", prefix) {\n const pre = prefix ?? ServiceApiPrefix;\n if (name === \"\" && id === \"\") {\n return `${pre}.${verb}`;\n }\n validateName(\"control subject name\", name);\n if (id !== \"\") {\n validateName(\"control subject id\", id);\n return `${pre}.${verb}.${name}.${id}`;\n }\n return `${pre}.${verb}.${name}`;\n }\n constructor(nc, config = {\n name: \"\",\n version: \"\"\n }){\n this.nc = nc;\n this.config = Object.assign({}, config);\n if (!this.config.queue) {\n this.config.queue = \"q\";\n }\n validateName(\"name\", this.config.name);\n validateName(\"queue\", this.config.queue);\n parseSemVer(this.config.version);\n this._id = nuid.next();\n this.internal = [];\n this._done = deferred();\n this._stopped = false;\n this.handlers = [];\n this.started = new Date().toISOString();\n this.reset();\n this.nc.closed().then(()=>{\n this.close().catch();\n }).catch((err)=>{\n this.close(err).catch();\n });\n }\n get subjects() {\n return this.handlers.filter((s)=>{\n return s.internal === false;\n }).map((s)=>{\n return s.subject;\n });\n }\n get id() {\n return this._id;\n }\n get name() {\n return this.config.name;\n }\n get description() {\n return this.config.description ?? \"\";\n }\n get version() {\n return this.config.version;\n }\n get metadata() {\n return this.config.metadata;\n }\n errorToHeader(err) {\n const h = headers();\n if (err instanceof ServiceError) {\n const se = err;\n h.set(ServiceErrorHeader, se.message);\n h.set(ServiceErrorCodeHeader, `${se.code}`);\n } else {\n h.set(ServiceErrorHeader, err.message);\n h.set(ServiceErrorCodeHeader, \"500\");\n }\n return h;\n }\n setupHandler(h, internal = false) {\n const queue = internal ? \"\" : h.queue ? h.queue : this.config.queue;\n const { name, subject, handler } = h;\n const sv = h;\n sv.internal = internal;\n if (internal) {\n this.internal.push(sv);\n }\n sv.stats = new NamedEndpointStatsImpl(name, subject, queue);\n sv.queue = queue;\n const callback = handler ? (err, msg)=>{\n if (err) {\n this.close(err);\n return;\n }\n const start = Date.now();\n try {\n handler(err, new ServiceMsgImpl(msg));\n } catch (err) {\n sv.stats.countError(err);\n msg?.respond(Empty, {\n headers: this.errorToHeader(err)\n });\n } finally{\n sv.stats.countLatency(start);\n }\n } : undefined;\n sv.sub = this.nc.subscribe(subject, {\n callback,\n queue\n });\n sv.sub.closed.then(()=>{\n if (!this._stopped) {\n this.close(new Error(`required subscription ${h.subject} stopped`)).catch();\n }\n }).catch((err)=>{\n if (!this._stopped) {\n const ne = new Error(`required subscription ${h.subject} errored: ${err.message}`);\n ne.stack = err.stack;\n this.close(ne).catch();\n }\n });\n return sv;\n }\n info() {\n return {\n type: ServiceResponseType.INFO,\n name: this.name,\n id: this.id,\n version: this.version,\n description: this.description,\n metadata: this.metadata,\n endpoints: this.endpoints()\n };\n }\n endpoints() {\n return this.handlers.map((v)=>{\n const { subject, metadata, name, queue } = v;\n return {\n subject,\n metadata,\n name,\n queue_group: queue\n };\n });\n }\n async stats() {\n const endpoints = [];\n for (const h of this.handlers){\n if (typeof this.config.statsHandler === \"function\") {\n try {\n h.stats.data = await this.config.statsHandler(h);\n } catch (err) {\n h.stats.countError(err);\n }\n }\n endpoints.push(h.stats.stats(h.qi));\n }\n return {\n type: ServiceResponseType.STATS,\n name: this.name,\n id: this.id,\n version: this.version,\n started: this.started,\n metadata: this.metadata,\n endpoints\n };\n }\n addInternalHandler(verb, handler) {\n const v = `${verb}`.toUpperCase();\n this._doAddInternalHandler(`${v}-all`, verb, handler);\n this._doAddInternalHandler(`${v}-kind`, verb, handler, this.name);\n this._doAddInternalHandler(`${v}`, verb, handler, this.name, this.id);\n }\n _doAddInternalHandler(name, verb, handler, kind = \"\", id = \"\") {\n const endpoint = {};\n endpoint.name = name;\n endpoint.subject = ServiceImpl.controlSubject(verb, kind, id);\n endpoint.handler = handler;\n this.setupHandler(endpoint, true);\n }\n start() {\n const jc = JSONCodec();\n const statsHandler = (err, msg)=>{\n if (err) {\n this.close(err);\n return Promise.reject(err);\n }\n return this.stats().then((s)=>{\n msg?.respond(jc.encode(s));\n return Promise.resolve();\n });\n };\n const infoHandler = (err, msg)=>{\n if (err) {\n this.close(err);\n return Promise.reject(err);\n }\n msg?.respond(jc.encode(this.info()));\n return Promise.resolve();\n };\n const ping = jc.encode(this.ping());\n const pingHandler = (err, msg)=>{\n if (err) {\n this.close(err).then().catch();\n return Promise.reject(err);\n }\n msg.respond(ping);\n return Promise.resolve();\n };\n this.addInternalHandler(ServiceVerb.PING, pingHandler);\n this.addInternalHandler(ServiceVerb.STATS, statsHandler);\n this.addInternalHandler(ServiceVerb.INFO, infoHandler);\n this.handlers.forEach((h)=>{\n const { subject } = h;\n if (typeof subject !== \"string\") {\n return;\n }\n if (h.handler === null) {\n return;\n }\n this.setupHandler(h);\n });\n return Promise.resolve(this);\n }\n close(err) {\n if (this._stopped) {\n return this._done;\n }\n this._stopped = true;\n let buf = [];\n if (!this.nc.isClosed()) {\n buf = this.handlers.concat(this.internal).map((h)=>{\n return h.sub.drain();\n });\n }\n Promise.allSettled(buf).then(()=>{\n this._done.resolve(err ? err : null);\n });\n return this._done;\n }\n get stopped() {\n return this._done;\n }\n get isStopped() {\n return this._stopped;\n }\n stop(err) {\n return this.close(err);\n }\n ping() {\n return {\n type: ServiceResponseType.PING,\n name: this.name,\n id: this.id,\n version: this.version,\n metadata: this.metadata\n };\n }\n reset() {\n this.started = new Date().toISOString();\n if (this.handlers) {\n for (const h of this.handlers){\n h.stats.reset(h.qi);\n }\n }\n }\n addGroup(name, queue) {\n return new ServiceGroupImpl(this, name, queue);\n }\n addEndpoint(name, handler) {\n const sg = new ServiceGroupImpl(this);\n return sg.addEndpoint(name, handler);\n }\n _addEndpoint(e) {\n const qi = new QueuedIteratorImpl();\n qi.noIterator = typeof e.handler === \"function\";\n if (!qi.noIterator) {\n e.handler = (err, msg)=>{\n err ? this.stop(err).catch() : qi.push(new ServiceMsgImpl(msg));\n };\n qi.iterClosed.then(()=>{\n this.close().catch();\n });\n }\n const ss = this.setupHandler(e, false);\n ss.qi = qi;\n this.handlers.push(ss);\n return qi;\n }\n}\nclass NamedEndpointStatsImpl {\n name;\n subject;\n average_processing_time;\n num_requests;\n processing_time;\n num_errors;\n last_error;\n data;\n metadata;\n queue;\n constructor(name, subject, queue = \"\"){\n this.name = name;\n this.subject = subject;\n this.average_processing_time = 0;\n this.num_errors = 0;\n this.num_requests = 0;\n this.processing_time = 0;\n this.queue = queue;\n }\n reset(qi) {\n this.num_requests = 0;\n this.processing_time = 0;\n this.average_processing_time = 0;\n this.num_errors = 0;\n this.last_error = undefined;\n this.data = undefined;\n const qii = qi;\n if (qii) {\n qii.time = 0;\n qii.processed = 0;\n }\n }\n countLatency(start) {\n this.num_requests++;\n this.processing_time += nanos(Date.now() - start);\n this.average_processing_time = Math.round(this.processing_time / this.num_requests);\n }\n countError(err) {\n this.num_errors++;\n this.last_error = err.message;\n }\n _stats() {\n const { name, subject, average_processing_time, num_errors, num_requests, processing_time, last_error, data, queue } = this;\n return {\n name,\n subject,\n average_processing_time,\n num_errors,\n num_requests,\n processing_time,\n last_error,\n data,\n queue_group: queue\n };\n }\n stats(qi) {\n const qii = qi;\n if (qii?.noIterator === false) {\n this.processing_time = nanos(qii.time);\n this.num_requests = qii.processed;\n this.average_processing_time = this.processing_time > 0 && this.num_requests > 0 ? this.processing_time / this.num_requests : 0;\n }\n return this._stats();\n }\n}\nclass ServiceClientImpl {\n nc;\n prefix;\n opts;\n constructor(nc, opts = {\n strategy: RequestStrategy.JitterTimer,\n maxWait: 2000\n }, prefix){\n this.nc = nc;\n this.prefix = prefix;\n this.opts = opts;\n }\n ping(name = \"\", id = \"\") {\n return this.q(ServiceVerb.PING, name, id);\n }\n stats(name = \"\", id = \"\") {\n return this.q(ServiceVerb.STATS, name, id);\n }\n info(name = \"\", id = \"\") {\n return this.q(ServiceVerb.INFO, name, id);\n }\n async q(v, name = \"\", id = \"\") {\n const iter = new QueuedIteratorImpl();\n const jc = JSONCodec();\n const subj = ServiceImpl.controlSubject(v, name, id, this.prefix);\n const responses = await this.nc.requestMany(subj, Empty, this.opts);\n (async ()=>{\n for await (const m of responses){\n try {\n const s = jc.decode(m.data);\n iter.push(s);\n } catch (err) {\n iter.push(()=>{\n iter.stop(err);\n });\n }\n }\n iter.push(()=>{\n iter.stop();\n });\n })().catch((err)=>{\n iter.stop(err);\n });\n return iter;\n }\n}\nclass Metric {\n name;\n duration;\n date;\n payload;\n msgs;\n lang;\n version;\n bytes;\n asyncRequests;\n min;\n max;\n constructor(name, duration){\n this.name = name;\n this.duration = duration;\n this.date = Date.now();\n this.payload = 0;\n this.msgs = 0;\n this.bytes = 0;\n }\n toString() {\n const sec = this.duration / 1000;\n const mps = Math.round(this.msgs / sec);\n const label = this.asyncRequests ? \"asyncRequests\" : \"\";\n let minmax = \"\";\n if (this.max) {\n minmax = `${this.min}/${this.max}`;\n }\n return `${this.name}${label ? \" [asyncRequests]\" : \"\"} ${humanizeNumber(mps)} msgs/sec - [${sec.toFixed(2)} secs] ~ ${throughput(this.bytes, sec)} ${minmax}`;\n }\n toCsv() {\n return `\"${this.name}\",${new Date(this.date).toISOString()},${this.lang},${this.version},${this.msgs},${this.payload},${this.bytes},${this.duration},${this.asyncRequests ? this.asyncRequests : false}\\n`;\n }\n static header() {\n return `Test,Date,Lang,Version,Count,MsgPayload,Bytes,Millis,Async\\n`;\n }\n}\nclass Bench {\n nc;\n callbacks;\n msgs;\n size;\n subject;\n asyncRequests;\n pub;\n sub;\n req;\n rep;\n perf;\n payload;\n constructor(nc, opts = {\n msgs: 100000,\n size: 128,\n subject: \"\",\n asyncRequests: false,\n pub: false,\n sub: false,\n req: false,\n rep: false\n }){\n this.nc = nc;\n this.callbacks = opts.callbacks || false;\n this.msgs = opts.msgs || 0;\n this.size = opts.size || 0;\n this.subject = opts.subject || nuid.next();\n this.asyncRequests = opts.asyncRequests || false;\n this.pub = opts.pub || false;\n this.sub = opts.sub || false;\n this.req = opts.req || false;\n this.rep = opts.rep || false;\n this.perf = new Perf();\n this.payload = this.size ? new Uint8Array(this.size) : Empty;\n if (!this.pub && !this.sub && !this.req && !this.rep) {\n throw new Error(\"no bench option selected\");\n }\n }\n async run() {\n this.nc.closed().then((err)=>{\n if (err) {\n throw new NatsError(`bench closed with an error: ${err.message}`, ErrorCode.Unknown, err);\n }\n });\n if (this.callbacks) {\n await this.runCallbacks();\n } else {\n await this.runAsync();\n }\n return this.processMetrics();\n }\n processMetrics() {\n const nc = this.nc;\n const { lang, version } = nc.protocol.transport;\n if (this.pub && this.sub) {\n this.perf.measure(\"pubsub\", \"pubStart\", \"subStop\");\n }\n if (this.req && this.rep) {\n this.perf.measure(\"reqrep\", \"reqStart\", \"reqStop\");\n }\n const measures = this.perf.getEntries();\n const pubsub = measures.find((m)=>m.name === \"pubsub\");\n const reqrep = measures.find((m)=>m.name === \"reqrep\");\n const req = measures.find((m)=>m.name === \"req\");\n const rep = measures.find((m)=>m.name === \"rep\");\n const pub = measures.find((m)=>m.name === \"pub\");\n const sub = measures.find((m)=>m.name === \"sub\");\n const stats = this.nc.stats();\n const metrics = [];\n if (pubsub) {\n const { name, duration } = pubsub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (reqrep) {\n const { name, duration } = reqrep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs * 2;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (pub) {\n const { name, duration } = pub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (sub) {\n const { name, duration } = sub;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (rep) {\n const { name, duration } = rep;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n if (req) {\n const { name, duration } = req;\n const m = new Metric(name, duration);\n m.msgs = this.msgs;\n m.bytes = stats.inBytes + stats.outBytes;\n m.lang = lang;\n m.version = version;\n m.payload = this.payload.length;\n metrics.push(m);\n }\n return metrics;\n }\n async runCallbacks() {\n const jobs = [];\n if (this.sub) {\n const d = deferred();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: ()=>{\n i++;\n if (i === 1) {\n this.perf.mark(\"subStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n d.resolve();\n }\n }\n });\n }\n if (this.rep) {\n const d = deferred();\n jobs.push(d);\n let i = 0;\n this.nc.subscribe(this.subject, {\n max: this.msgs,\n callback: (_, m)=>{\n m.respond(this.payload);\n i++;\n if (i === 1) {\n this.perf.mark(\"repStart\");\n }\n if (i === this.msgs) {\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n d.resolve();\n }\n }\n });\n }\n if (this.pub) {\n const job = (async ()=>{\n this.perf.mark(\"pubStart\");\n for(let i = 0; i < this.msgs; i++){\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async ()=>{\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for(let i = 0; i < this.msgs; i++){\n a.push(this.nc.request(this.subject, this.payload, {\n timeout: 20000\n }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n } else {\n this.perf.mark(\"reqStart\");\n for(let i = 0; i < this.msgs; i++){\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n async runAsync() {\n const jobs = [];\n if (this.rep) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, {\n max: this.msgs\n });\n const job = (async ()=>{\n for await (const m of sub){\n if (!first) {\n this.perf.mark(\"repStart\");\n first = true;\n }\n m.respond(this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"repStop\");\n this.perf.measure(\"rep\", \"repStart\", \"repStop\");\n })();\n jobs.push(job);\n }\n if (this.sub) {\n let first = false;\n const sub = this.nc.subscribe(this.subject, {\n max: this.msgs\n });\n const job = (async ()=>{\n for await (const _m of sub){\n if (!first) {\n this.perf.mark(\"subStart\");\n first = true;\n }\n }\n this.perf.mark(\"subStop\");\n this.perf.measure(\"sub\", \"subStart\", \"subStop\");\n })();\n jobs.push(job);\n }\n if (this.pub) {\n const job = (async ()=>{\n this.perf.mark(\"pubStart\");\n for(let i = 0; i < this.msgs; i++){\n this.nc.publish(this.subject, this.payload);\n }\n await this.nc.flush();\n this.perf.mark(\"pubStop\");\n this.perf.measure(\"pub\", \"pubStart\", \"pubStop\");\n })();\n jobs.push(job);\n }\n if (this.req) {\n const job = (async ()=>{\n if (this.asyncRequests) {\n this.perf.mark(\"reqStart\");\n const a = [];\n for(let i = 0; i < this.msgs; i++){\n a.push(this.nc.request(this.subject, this.payload, {\n timeout: 20000\n }));\n }\n await Promise.all(a);\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n } else {\n this.perf.mark(\"reqStart\");\n for(let i = 0; i < this.msgs; i++){\n await this.nc.request(this.subject);\n }\n this.perf.mark(\"reqStop\");\n this.perf.measure(\"req\", \"reqStart\", \"reqStop\");\n }\n })();\n jobs.push(job);\n }\n await Promise.all(jobs);\n }\n}\nfunction throughput(bytes, seconds) {\n return `${humanizeBytes(bytes / seconds)}/sec`;\n}\nfunction humanizeBytes(bytes, si = false) {\n const base = si ? 1000 : 1024;\n const pre = si ? [\n \"k\",\n \"M\",\n \"G\",\n \"T\",\n \"P\",\n \"E\"\n ] : [\n \"K\",\n \"M\",\n \"G\",\n \"T\",\n \"P\",\n \"E\"\n ];\n const post = si ? \"iB\" : \"B\";\n if (bytes < base) {\n return `${bytes.toFixed(2)} ${post}`;\n }\n const exp = parseInt(Math.log(bytes) / Math.log(base) + \"\");\n const index = parseInt(exp - 1 + \"\");\n return `${(bytes / Math.pow(base, exp)).toFixed(2)} ${pre[index]}${post}`;\n}\nfunction humanizeNumber(n) {\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\nexport { backoff as backoff, Bench as Bench, buildAuthenticator as buildAuthenticator, canonicalMIMEHeaderKey as canonicalMIMEHeaderKey, createInbox as createInbox, credsAuthenticator as credsAuthenticator, deadline as deadline, DebugEvents as DebugEvents, deferred as deferred, delay as delay, Empty as Empty, ErrorCode as ErrorCode, Events as Events, headers as headers, JSONCodec as JSONCodec, jwtAuthenticator as jwtAuthenticator, Match as Match, Metric as Metric, millis as millis, MsgHdrsImpl as MsgHdrsImpl, nanos as nanos, NatsError as NatsError, nkeyAuthenticator as nkeyAuthenticator, mod as nkeys, Nuid as Nuid, nuid as nuid, RequestStrategy as RequestStrategy, ServiceError as ServiceError, ServiceErrorCodeHeader as ServiceErrorCodeHeader, ServiceErrorHeader as ServiceErrorHeader, ServiceResponseType as ServiceResponseType, ServiceVerb as ServiceVerb, StringCodec as StringCodec, syncIterator as syncIterator, tokenAuthenticator as tokenAuthenticator, usernamePasswordAuthenticator as usernamePasswordAuthenticator };\nfunction NoopKvCodecs() {\n return {\n key: {\n encode (k) {\n return k;\n },\n decode (k) {\n return k;\n }\n },\n value: {\n encode (v) {\n return v;\n },\n decode (v) {\n return v;\n }\n }\n };\n}\nfunction defaultBucketOpts() {\n return {\n replicas: 1,\n history: 1,\n timeout: 2000,\n max_bytes: -1,\n maxValueSize: -1,\n codec: NoopKvCodecs(),\n storage: StorageType.File\n };\n}\nconst kvOperationHdr = \"KV-Operation\";\nconst kvSubjectPrefix = \"$KV\";\nconst validKeyRe = /^[-/=.\\w]+$/;\nconst validSearchKey = /^[-/=.>*\\w]+$/;\nconst validBucketRe = /^[-\\w]+$/;\nfunction validateKey(k) {\n if (k.startsWith(\".\") || k.endsWith(\".\") || !validKeyRe.test(k)) {\n throw new Error(`invalid key: ${k}`);\n }\n}\nfunction validateSearchKey(k) {\n if (k.startsWith(\".\") || k.endsWith(\".\") || !validSearchKey.test(k)) {\n throw new Error(`invalid key: ${k}`);\n }\n}\nfunction hasWildcards(k) {\n if (k.startsWith(\".\") || k.endsWith(\".\")) {\n throw new Error(`invalid key: ${k}`);\n }\n const chunks = k.split(\".\");\n let hasWildcards = false;\n for(let i = 0; i < chunks.length; i++){\n switch(chunks[i]){\n case \"*\":\n hasWildcards = true;\n break;\n case \">\":\n if (i !== chunks.length - 1) {\n throw new Error(`invalid key: ${k}`);\n }\n hasWildcards = true;\n break;\n default:\n }\n }\n return hasWildcards;\n}\nfunction validateBucket(name) {\n if (!validBucketRe.test(name)) {\n throw new Error(`invalid bucket name: ${name}`);\n }\n}\nvar PubHeaders;\n(function(PubHeaders) {\n PubHeaders[\"MsgIdHdr\"] = \"Nats-Msg-Id\";\n PubHeaders[\"ExpectedStreamHdr\"] = \"Nats-Expected-Stream\";\n PubHeaders[\"ExpectedLastSeqHdr\"] = \"Nats-Expected-Last-Sequence\";\n PubHeaders[\"ExpectedLastMsgIdHdr\"] = \"Nats-Expected-Last-Msg-Id\";\n PubHeaders[\"ExpectedLastSubjectSequenceHdr\"] = \"Nats-Expected-Last-Subject-Sequence\";\n})(PubHeaders || (PubHeaders = {}));\nclass Bucket {\n js;\n jsm;\n stream;\n bucket;\n direct;\n codec;\n prefix;\n editPrefix;\n useJsPrefix;\n _prefixLen;\n constructor(bucket, js, jsm){\n validateBucket(bucket);\n this.js = js;\n this.jsm = jsm;\n this.bucket = bucket;\n this.prefix = kvSubjectPrefix;\n this.editPrefix = \"\";\n this.useJsPrefix = false;\n this._prefixLen = 0;\n }\n static async create(js, name, opts = {}) {\n validateBucket(name);\n const jsm = await js.jetstreamManager();\n const bucket = new Bucket(name, js, jsm);\n await bucket.init(opts);\n return bucket;\n }\n static async bind(js, name, opts = {}) {\n const jsm = await js.jetstreamManager();\n const info = {\n config: {\n allow_direct: opts.allow_direct\n }\n };\n validateBucket(name);\n const bucket = new Bucket(name, js, jsm);\n info.config.name = opts.streamName ?? bucket.bucketName();\n Object.assign(bucket, info);\n bucket.stream = info.config.name;\n bucket.codec = opts.codec || NoopKvCodecs();\n bucket.direct = info.config.allow_direct ?? false;\n bucket.initializePrefixes(info);\n return bucket;\n }\n async init(opts = {}) {\n const bo = Object.assign(defaultBucketOpts(), opts);\n this.codec = bo.codec;\n const sc = {};\n this.stream = sc.name = opts.streamName ?? this.bucketName();\n sc.retention = RetentionPolicy.Limits;\n sc.max_msgs_per_subject = bo.history;\n if (bo.maxBucketSize) {\n bo.max_bytes = bo.maxBucketSize;\n }\n if (bo.max_bytes) {\n sc.max_bytes = bo.max_bytes;\n }\n sc.max_msg_size = bo.maxValueSize;\n sc.storage = bo.storage;\n const location = opts.placementCluster ?? \"\";\n if (location) {\n opts.placement = {};\n opts.placement.cluster = location;\n opts.placement.tags = [];\n }\n if (opts.placement) {\n sc.placement = opts.placement;\n }\n if (opts.republish) {\n sc.republish = opts.republish;\n }\n if (opts.description) {\n sc.description = opts.description;\n }\n if (opts.mirror) {\n const mirror = Object.assign({}, opts.mirror);\n if (!mirror.name.startsWith(kvPrefix)) {\n mirror.name = `${kvPrefix}${mirror.name}`;\n }\n sc.mirror = mirror;\n sc.mirror_direct = true;\n } else if (opts.sources) {\n const sources = opts.sources.map((s)=>{\n const c = Object.assign({}, s);\n const srcBucketName = c.name.startsWith(kvPrefix) ? c.name.substring(kvPrefix.length) : c.name;\n if (!c.name.startsWith(kvPrefix)) {\n c.name = `${kvPrefix}${c.name}`;\n }\n if (!s.external && srcBucketName !== this.bucket) {\n c.subject_transforms = [\n {\n src: `$KV.${srcBucketName}.>`,\n dest: `$KV.${this.bucket}.>`\n }\n ];\n }\n return c;\n });\n sc.sources = sources;\n sc.subjects = [\n this.subjectForBucket()\n ];\n } else {\n sc.subjects = [\n this.subjectForBucket()\n ];\n }\n if (opts.metadata) {\n sc.metadata = opts.metadata;\n }\n if (typeof opts.compression === \"boolean\") {\n sc.compression = opts.compression ? StoreCompression.S2 : StoreCompression.None;\n }\n const nci = this.js.nc;\n const have = nci.getServerVersion();\n const discardNew = have ? compare(have, parseSemVer(\"2.7.2\")) >= 0 : false;\n sc.discard = discardNew ? DiscardPolicy.New : DiscardPolicy.Old;\n const { ok: direct, min } = nci.features.get(Feature.JS_ALLOW_DIRECT);\n if (!direct && opts.allow_direct === true) {\n const v = have ? `${have.major}.${have.minor}.${have.micro}` : \"unknown\";\n return Promise.reject(new Error(`allow_direct is not available on server version ${v} - requires ${min}`));\n }\n opts.allow_direct = typeof opts.allow_direct === \"boolean\" ? opts.allow_direct : direct;\n sc.allow_direct = opts.allow_direct;\n this.direct = sc.allow_direct;\n sc.num_replicas = bo.replicas;\n if (bo.ttl) {\n sc.max_age = nanos(bo.ttl);\n }\n sc.allow_rollup_hdrs = true;\n let info;\n try {\n info = await this.jsm.streams.info(sc.name);\n if (!info.config.allow_direct && this.direct === true) {\n this.direct = false;\n }\n } catch (err) {\n if (err.message === \"stream not found\") {\n info = await this.jsm.streams.add(sc);\n } else {\n throw err;\n }\n }\n this.initializePrefixes(info);\n }\n initializePrefixes(info) {\n this._prefixLen = 0;\n this.prefix = `$KV.${this.bucket}`;\n this.useJsPrefix = this.js.apiPrefix !== \"$JS.API\";\n const { mirror } = info.config;\n if (mirror) {\n let n = mirror.name;\n if (n.startsWith(kvPrefix)) {\n n = n.substring(kvPrefix.length);\n }\n if (mirror.external && mirror.external.api !== \"\") {\n const mb = mirror.name.substring(kvPrefix.length);\n this.useJsPrefix = false;\n this.prefix = `$KV.${mb}`;\n this.editPrefix = `${mirror.external.api}.$KV.${n}`;\n } else {\n this.editPrefix = this.prefix;\n }\n }\n }\n bucketName() {\n return this.stream ?? `${kvPrefix}${this.bucket}`;\n }\n subjectForBucket() {\n return `${this.prefix}.${this.bucket}.>`;\n }\n subjectForKey(k, edit = false) {\n const builder = [];\n if (edit) {\n if (this.useJsPrefix) {\n builder.push(this.js.apiPrefix);\n }\n if (this.editPrefix !== \"\") {\n builder.push(this.editPrefix);\n } else {\n builder.push(this.prefix);\n }\n } else {\n if (this.prefix) {\n builder.push(this.prefix);\n }\n }\n builder.push(k);\n return builder.join(\".\");\n }\n fullKeyName(k) {\n if (this.prefix !== \"\") {\n return `${this.prefix}.${k}`;\n }\n return `${kvSubjectPrefix}.${this.bucket}.${k}`;\n }\n get prefixLen() {\n if (this._prefixLen === 0) {\n this._prefixLen = this.prefix.length + 1;\n }\n return this._prefixLen;\n }\n encodeKey(key) {\n const chunks = [];\n for (const t of key.split(\".\")){\n switch(t){\n case \">\":\n case \"*\":\n chunks.push(t);\n break;\n default:\n chunks.push(this.codec.key.encode(t));\n break;\n }\n }\n return chunks.join(\".\");\n }\n decodeKey(ekey) {\n const chunks = [];\n for (const t of ekey.split(\".\")){\n switch(t){\n case \">\":\n case \"*\":\n chunks.push(t);\n break;\n default:\n chunks.push(this.codec.key.decode(t));\n break;\n }\n }\n return chunks.join(\".\");\n }\n validateKey = validateKey;\n validateSearchKey = validateSearchKey;\n hasWildcards = hasWildcards;\n close() {\n return Promise.resolve();\n }\n dataLen(data, h) {\n const slen = h ? h.get(JsHeaders.MessageSizeHdr) || \"\" : \"\";\n if (slen !== \"\") {\n return parseInt(slen, 10);\n }\n return data.length;\n }\n smToEntry(sm) {\n return new KvStoredEntryImpl(this.bucket, this.prefixLen, sm);\n }\n jmToEntry(jm) {\n const key = this.decodeKey(jm.subject.substring(this.prefixLen));\n return new KvJsMsgEntryImpl(this.bucket, key, jm);\n }\n async create(k, data) {\n let firstErr;\n try {\n const n = await this.put(k, data, {\n previousSeq: 0\n });\n return Promise.resolve(n);\n } catch (err) {\n firstErr = err;\n if (err?.api_error?.err_code !== 10071) {\n return Promise.reject(err);\n }\n }\n let rev = 0;\n try {\n const e = await this.get(k);\n if (e?.operation === \"DEL\" || e?.operation === \"PURGE\") {\n rev = e !== null ? e.revision : 0;\n return this.update(k, data, rev);\n } else {\n return Promise.reject(firstErr);\n }\n } catch (err) {\n return Promise.reject(err);\n }\n }\n update(k, data, version) {\n if (version <= 0) {\n throw new Error(\"version must be greater than 0\");\n }\n return this.put(k, data, {\n previousSeq: version\n });\n }\n async put(k, data, opts = {}) {\n const ek = this.encodeKey(k);\n this.validateKey(ek);\n const o = {};\n if (opts.previousSeq !== undefined) {\n const h = headers();\n o.headers = h;\n h.set(PubHeaders.ExpectedLastSubjectSequenceHdr, `${opts.previousSeq}`);\n }\n try {\n const pa = await this.js.publish(this.subjectForKey(ek, true), data, o);\n return pa.seq;\n } catch (err) {\n const ne = err;\n if (ne.isJetStreamError()) {\n ne.message = ne.api_error?.description;\n ne.code = `${ne.api_error?.code}`;\n return Promise.reject(ne);\n }\n return Promise.reject(err);\n }\n }\n async get(k, opts) {\n const ek = this.encodeKey(k);\n this.validateKey(ek);\n let arg = {\n last_by_subj: this.subjectForKey(ek)\n };\n if (opts && opts.revision > 0) {\n arg = {\n seq: opts.revision\n };\n }\n let sm;\n try {\n if (this.direct) {\n const direct = this.jsm.direct;\n sm = await direct.getMessage(this.bucketName(), arg);\n } else {\n sm = await this.jsm.streams.getMessage(this.bucketName(), arg);\n }\n const ke = this.smToEntry(sm);\n if (ke.key !== ek) {\n return null;\n }\n return ke;\n } catch (err) {\n if (err.code === ErrorCode.JetStream404NoMessages) {\n return null;\n }\n throw err;\n }\n }\n purge(k, opts) {\n return this._deleteOrPurge(k, \"PURGE\", opts);\n }\n delete(k, opts) {\n return this._deleteOrPurge(k, \"DEL\", opts);\n }\n async purgeDeletes(olderMillis = 30 * 60 * 1000) {\n const done = deferred();\n const buf = [];\n const i = await this.watch({\n key: \">\",\n initializedFn: ()=>{\n done.resolve();\n }\n });\n (async ()=>{\n for await (const e of i){\n if (e.operation === \"DEL\" || e.operation === \"PURGE\") {\n buf.push(e);\n }\n }\n })().then();\n await done;\n i.stop();\n const min = Date.now() - olderMillis;\n const proms = buf.map((e)=>{\n const subj = this.subjectForKey(e.key);\n if (e.created.getTime() >= min) {\n return this.jsm.streams.purge(this.stream, {\n filter: subj,\n keep: 1\n });\n } else {\n return this.jsm.streams.purge(this.stream, {\n filter: subj,\n keep: 0\n });\n }\n });\n const purged = await Promise.all(proms);\n purged.unshift({\n success: true,\n purged: 0\n });\n return purged.reduce((pv, cv)=>{\n pv.purged += cv.purged;\n return pv;\n });\n }\n async _deleteOrPurge(k, op, opts) {\n if (!this.hasWildcards(k)) {\n return this._doDeleteOrPurge(k, op, opts);\n }\n const iter = await this.keys(k);\n const buf = [];\n for await (const k of iter){\n buf.push(this._doDeleteOrPurge(k, op));\n if (buf.length === 100) {\n await Promise.all(buf);\n buf.length = 0;\n }\n }\n if (buf.length > 0) {\n await Promise.all(buf);\n }\n }\n async _doDeleteOrPurge(k, op, opts) {\n const ek = this.encodeKey(k);\n this.validateKey(ek);\n const h = headers();\n h.set(kvOperationHdr, op);\n if (op === \"PURGE\") {\n h.set(JsHeaders.RollupHdr, JsHeaders.RollupValueSubject);\n }\n if (opts?.previousSeq) {\n h.set(PubHeaders.ExpectedLastSubjectSequenceHdr, `${opts.previousSeq}`);\n }\n await this.js.publish(this.subjectForKey(ek, true), Empty, {\n headers: h\n });\n }\n _buildCC(k, content, opts = {}) {\n const a = !Array.isArray(k) ? [\n k\n ] : k;\n let filter_subjects = a.map((k)=>{\n const ek = this.encodeKey(k);\n this.validateSearchKey(k);\n return this.fullKeyName(ek);\n });\n let deliver_policy = DeliverPolicy.LastPerSubject;\n if (content === KvWatchInclude.AllHistory) {\n deliver_policy = DeliverPolicy.All;\n }\n if (content === KvWatchInclude.UpdatesOnly) {\n deliver_policy = DeliverPolicy.New;\n }\n let filter_subject = undefined;\n if (filter_subjects.length === 1) {\n filter_subject = filter_subjects[0];\n filter_subjects = undefined;\n }\n return Object.assign({\n deliver_policy,\n \"ack_policy\": AckPolicy.None,\n filter_subjects,\n filter_subject,\n \"flow_control\": true,\n \"idle_heartbeat\": nanos(5 * 1000)\n }, opts);\n }\n remove(k) {\n return this.purge(k);\n }\n async history(opts = {}) {\n const k = opts.key ?? \">\";\n const qi = new QueuedIteratorImpl();\n const co = {};\n co.headers_only = opts.headers_only || false;\n let fn;\n fn = ()=>{\n qi.stop();\n };\n let count = 0;\n const cc = this._buildCC(k, KvWatchInclude.AllHistory, co);\n const subj = cc.filter_subject;\n const copts = consumerOpts(cc);\n copts.bindStream(this.stream);\n copts.orderedConsumer();\n copts.callback((err, jm)=>{\n if (err) {\n qi.stop(err);\n return;\n }\n if (jm) {\n const e = this.jmToEntry(jm);\n qi.push(e);\n qi.received++;\n if (fn && count > 0 && qi.received >= count || jm.info.pending === 0) {\n qi.push(fn);\n fn = undefined;\n }\n }\n });\n const sub = await this.js.subscribe(subj, copts);\n if (fn) {\n const { info: { last } } = sub;\n const expect = last.num_pending + last.delivered.consumer_seq;\n if (expect === 0 || qi.received >= expect) {\n try {\n fn();\n } catch (err) {\n qi.stop(err);\n } finally{\n fn = undefined;\n }\n } else {\n count = expect;\n }\n }\n qi._data = sub;\n qi.iterClosed.then(()=>{\n sub.unsubscribe();\n });\n sub.closed.then(()=>{\n qi.stop();\n }).catch((err)=>{\n qi.stop(err);\n });\n return qi;\n }\n canSetWatcherName() {\n const jsi = this.js;\n const nci = jsi.nc;\n const { ok } = nci.features.get(Feature.JS_NEW_CONSUMER_CREATE_API);\n return ok;\n }\n async watch(opts = {}) {\n const k = opts.key ?? \">\";\n const qi = new QueuedIteratorImpl();\n const co = {};\n co.headers_only = opts.headers_only || false;\n let content = KvWatchInclude.LastValue;\n if (opts.include === KvWatchInclude.AllHistory) {\n content = KvWatchInclude.AllHistory;\n } else if (opts.include === KvWatchInclude.UpdatesOnly) {\n content = KvWatchInclude.UpdatesOnly;\n }\n const ignoreDeletes = opts.ignoreDeletes === true;\n let fn = opts.initializedFn;\n let count = 0;\n const cc = this._buildCC(k, content, co);\n const subj = cc.filter_subject;\n const copts = consumerOpts(cc);\n if (this.canSetWatcherName()) {\n copts.consumerName(nuid.next());\n }\n copts.bindStream(this.stream);\n if (opts.resumeFromRevision && opts.resumeFromRevision > 0) {\n copts.startSequence(opts.resumeFromRevision);\n }\n copts.orderedConsumer();\n copts.callback((err, jm)=>{\n if (err) {\n qi.stop(err);\n return;\n }\n if (jm) {\n const e = this.jmToEntry(jm);\n if (ignoreDeletes && e.operation === \"DEL\") {\n return;\n }\n qi.push(e);\n qi.received++;\n if (fn && (count > 0 && qi.received >= count || jm.info.pending === 0)) {\n qi.push(fn);\n fn = undefined;\n }\n }\n });\n const sub = await this.js.subscribe(subj, copts);\n if (fn) {\n const { info: { last } } = sub;\n const expect = last.num_pending + last.delivered.consumer_seq;\n if (expect === 0 || qi.received >= expect) {\n try {\n fn();\n } catch (err) {\n qi.stop(err);\n } finally{\n fn = undefined;\n }\n } else {\n count = expect;\n }\n }\n qi._data = sub;\n qi.iterClosed.then(()=>{\n sub.unsubscribe();\n });\n sub.closed.then(()=>{\n qi.stop();\n }).catch((err)=>{\n qi.stop(err);\n });\n return qi;\n }\n async keys(k = \">\") {\n const keys = new QueuedIteratorImpl();\n const cc = this._buildCC(k, KvWatchInclude.LastValue, {\n headers_only: true\n });\n const subj = Array.isArray(k) ? \">\" : cc.filter_subject;\n const copts = consumerOpts(cc);\n copts.bindStream(this.stream);\n copts.orderedConsumer();\n const sub = await this.js.subscribe(subj, copts);\n (async ()=>{\n for await (const jm of sub){\n const op = jm.headers?.get(kvOperationHdr);\n if (op !== \"DEL\" && op !== \"PURGE\") {\n const key = this.decodeKey(jm.subject.substring(this.prefixLen));\n keys.push(key);\n }\n if (jm.info.pending === 0) {\n sub.unsubscribe();\n }\n }\n })().then(()=>{\n keys.stop();\n }).catch((err)=>{\n keys.stop(err);\n });\n const si = sub;\n if (si.info.last.num_pending === 0) {\n sub.unsubscribe();\n }\n return keys;\n }\n purgeBucket(opts) {\n return this.jsm.streams.purge(this.bucketName(), opts);\n }\n destroy() {\n return this.jsm.streams.delete(this.bucketName());\n }\n async status() {\n const nc = this.js.nc;\n const cluster = nc.info?.cluster ?? \"\";\n const bn = this.bucketName();\n const si = await this.jsm.streams.info(bn);\n return new KvStatusImpl(si, cluster);\n }\n}\nclass KvStatusImpl {\n si;\n cluster;\n constructor(si, cluster = \"\"){\n this.si = si;\n this.cluster = cluster;\n }\n get bucket() {\n return this.si.config.name.startsWith(kvPrefix) ? this.si.config.name.substring(kvPrefix.length) : this.si.config.name;\n }\n get values() {\n return this.si.state.messages;\n }\n get history() {\n return this.si.config.max_msgs_per_subject;\n }\n get ttl() {\n return millis(this.si.config.max_age);\n }\n get bucket_location() {\n return this.cluster;\n }\n get backingStore() {\n return this.si.config.storage;\n }\n get storage() {\n return this.si.config.storage;\n }\n get replicas() {\n return this.si.config.num_replicas;\n }\n get description() {\n return this.si.config.description ?? \"\";\n }\n get maxBucketSize() {\n return this.si.config.max_bytes;\n }\n get maxValueSize() {\n return this.si.config.max_msg_size;\n }\n get max_bytes() {\n return this.si.config.max_bytes;\n }\n get placement() {\n return this.si.config.placement || {\n cluster: \"\",\n tags: []\n };\n }\n get placementCluster() {\n return this.si.config.placement?.cluster ?? \"\";\n }\n get republish() {\n return this.si.config.republish ?? {\n src: \"\",\n dest: \"\"\n };\n }\n get streamInfo() {\n return this.si;\n }\n get size() {\n return this.si.state.bytes;\n }\n get metadata() {\n return this.si.config.metadata ?? {};\n }\n get compression() {\n if (this.si.config.compression) {\n return this.si.config.compression !== StoreCompression.None;\n }\n return false;\n }\n}\nconst osPrefix = \"OBJ_\";\nconst digestType = \"SHA-256=\";\nfunction objectStoreStreamName(bucket) {\n validateBucket(bucket);\n return `${osPrefix}${bucket}`;\n}\nfunction objectStoreBucketName(stream) {\n if (stream.startsWith(osPrefix)) {\n return stream.substring(4);\n }\n return stream;\n}\nclass ObjectStoreStatusImpl {\n si;\n backingStore;\n constructor(si){\n this.si = si;\n this.backingStore = \"JetStream\";\n }\n get bucket() {\n return objectStoreBucketName(this.si.config.name);\n }\n get description() {\n return this.si.config.description ?? \"\";\n }\n get ttl() {\n return this.si.config.max_age;\n }\n get storage() {\n return this.si.config.storage;\n }\n get replicas() {\n return this.si.config.num_replicas;\n }\n get sealed() {\n return this.si.config.sealed;\n }\n get size() {\n return this.si.state.bytes;\n }\n get streamInfo() {\n return this.si;\n }\n get metadata() {\n return this.si.config.metadata;\n }\n get compression() {\n if (this.si.config.compression) {\n return this.si.config.compression !== StoreCompression.None;\n }\n return false;\n }\n}\nfunction convertStreamSourceDomain(s) {\n if (s === undefined) {\n return undefined;\n }\n const { domain } = s;\n if (domain === undefined) {\n return s;\n }\n const copy = Object.assign({}, s);\n delete copy.domain;\n if (domain === \"\") {\n return copy;\n }\n if (copy.external) {\n throw new Error(\"domain and external are both set\");\n }\n copy.external = {\n api: `$JS.${domain}.API`\n };\n return copy;\n}\nvar PullConsumerType;\n(function(PullConsumerType) {\n PullConsumerType[PullConsumerType[\"Unset\"] = -1] = \"Unset\";\n PullConsumerType[PullConsumerType[\"Consume\"] = 0] = \"Consume\";\n PullConsumerType[PullConsumerType[\"Fetch\"] = 1] = \"Fetch\";\n})(PullConsumerType || (PullConsumerType = {}));\nvar ConsumerEvents;\n(function(ConsumerEvents) {\n ConsumerEvents[\"HeartbeatsMissed\"] = \"heartbeats_missed\";\n ConsumerEvents[\"ConsumerNotFound\"] = \"consumer_not_found\";\n ConsumerEvents[\"StreamNotFound\"] = \"stream_not_found\";\n ConsumerEvents[\"ConsumerDeleted\"] = \"consumer_deleted\";\n ConsumerEvents[\"OrderedConsumerRecreated\"] = \"ordered_consumer_recreated\";\n ConsumerEvents[\"NoResponders\"] = \"no_responders\";\n})(ConsumerEvents || (ConsumerEvents = {}));\nvar ConsumerDebugEvents;\n(function(ConsumerDebugEvents) {\n ConsumerDebugEvents[\"DebugEvent\"] = \"debug\";\n ConsumerDebugEvents[\"Discard\"] = \"discard\";\n ConsumerDebugEvents[\"Reset\"] = \"reset\";\n ConsumerDebugEvents[\"Next\"] = \"next\";\n})(ConsumerDebugEvents || (ConsumerDebugEvents = {}));\nconst ACK = Uint8Array.of(43, 65, 67, 75);\nconst NAK = Uint8Array.of(45, 78, 65, 75);\nconst WPI = Uint8Array.of(43, 87, 80, 73);\nconst NXT = Uint8Array.of(43, 78, 88, 84);\nconst TERM = Uint8Array.of(43, 84, 69, 82, 77);\nconst SPACE = Uint8Array.of(32);\nfunction toJsMsg(m, ackTimeout = 5000) {\n return new JsMsgImpl(m, ackTimeout);\n}\nclass PullConsumerMessagesImpl extends QueuedIteratorImpl {\n consumer;\n opts;\n sub;\n monitor;\n pending;\n inbox;\n refilling;\n pong;\n callback;\n timeout;\n cleanupHandler;\n listeners;\n statusIterator;\n forOrderedConsumer;\n resetHandler;\n abortOnMissingResource;\n bind;\n inBackOff;\n constructor(c, opts, refilling = false){\n super();\n this.consumer = c;\n const copts = opts;\n this.opts = this.parseOptions(opts, refilling);\n this.callback = copts.callback || null;\n this.noIterator = typeof this.callback === \"function\";\n this.monitor = null;\n this.pong = null;\n this.pending = {\n msgs: 0,\n bytes: 0,\n requests: 0\n };\n this.refilling = refilling;\n this.timeout = null;\n this.inbox = createInbox(c.api.nc.options.inboxPrefix);\n this.listeners = [];\n this.forOrderedConsumer = false;\n this.abortOnMissingResource = copts.abort_on_missing_resource === true;\n this.bind = copts.bind === true;\n this.inBackOff = false;\n this.start();\n }\n start() {\n const { max_messages, max_bytes, idle_heartbeat, threshold_bytes, threshold_messages } = this.opts;\n this.closed().then((err)=>{\n if (this.cleanupHandler) {\n try {\n this.cleanupHandler(err);\n } catch (_err) {}\n }\n });\n const { sub } = this;\n if (sub) {\n sub.unsubscribe();\n }\n this.sub = this.consumer.api.nc.subscribe(this.inbox, {\n callback: (err, msg)=>{\n if (err) {\n this.stop(err);\n return;\n }\n this.monitor?.work();\n const isProtocol = msg.subject === this.inbox;\n if (isProtocol) {\n if (isHeartbeatMsg(msg)) {\n return;\n }\n const code = msg.headers?.code;\n const description = msg.headers?.description?.toLowerCase() || \"unknown\";\n const { msgsLeft, bytesLeft } = this.parseDiscard(msg.headers);\n if (msgsLeft > 0 || bytesLeft > 0) {\n this.pending.msgs -= msgsLeft;\n this.pending.bytes -= bytesLeft;\n this.pending.requests--;\n this.notify(ConsumerDebugEvents.Discard, {\n msgsLeft,\n bytesLeft\n });\n } else {\n if (code === 400) {\n this.stop(new NatsError(description, `${code}`));\n return;\n } else if (code === 409 && description === \"consumer deleted\") {\n this.notify(ConsumerEvents.ConsumerDeleted, `${code} ${description}`);\n if (!this.refilling || this.abortOnMissingResource) {\n const error = new NatsError(description, `${code}`);\n this.stop(error);\n return;\n }\n } else if (code === 503) {\n this.notify(ConsumerEvents.NoResponders, `${code} No Responders`);\n if (!this.refilling || this.abortOnMissingResource) {\n const error = new NatsError(\"no responders\", `${code}`);\n this.stop(error);\n return;\n }\n } else {\n this.notify(ConsumerDebugEvents.DebugEvent, `${code} ${description}`);\n }\n }\n } else {\n this._push(toJsMsg(msg, this.consumer.api.timeout));\n this.received++;\n if (this.pending.msgs) {\n this.pending.msgs--;\n }\n if (this.pending.bytes) {\n this.pending.bytes -= msg.size();\n }\n }\n if (this.pending.msgs === 0 && this.pending.bytes === 0) {\n this.pending.requests = 0;\n }\n if (this.refilling) {\n if (max_messages && this.pending.msgs <= threshold_messages || max_bytes && this.pending.bytes <= threshold_bytes) {\n const batch = this.pullOptions();\n this.pull(batch);\n }\n } else if (this.pending.requests === 0) {\n this._push(()=>{\n this.stop();\n });\n }\n }\n });\n this.sub.closed.then(()=>{\n if (this.sub.draining) {\n this._push(()=>{\n this.stop();\n });\n }\n });\n if (idle_heartbeat) {\n this.monitor = new IdleHeartbeatMonitor(idle_heartbeat, (data)=>{\n this.notify(ConsumerEvents.HeartbeatsMissed, data);\n this.resetPending().then(()=>{}).catch(()=>{});\n return false;\n }, {\n maxOut: 2\n });\n }\n (async ()=>{\n const status = this.consumer.api.nc.status();\n this.statusIterator = status;\n for await (const s of status){\n switch(s.type){\n case Events.Disconnect:\n this.monitor?.cancel();\n break;\n case Events.Reconnect:\n this.resetPending().then((ok)=>{\n if (ok) {\n this.monitor?.restart();\n }\n }).catch(()=>{});\n break;\n default:\n }\n }\n })();\n this.pull(this.pullOptions());\n }\n _push(r) {\n if (!this.callback) {\n super.push(r);\n } else {\n const fn = typeof r === \"function\" ? r : null;\n try {\n if (!fn) {\n this.callback(r);\n } else {\n fn();\n }\n } catch (err) {\n this.stop(err);\n }\n }\n }\n notify(type, data) {\n if (this.listeners.length > 0) {\n (()=>{\n this.listeners.forEach((l)=>{\n if (!l.done) {\n l.push({\n type,\n data\n });\n }\n });\n })();\n }\n }\n resetPending() {\n return this.bind ? this.resetPendingNoInfo() : this.resetPendingWithInfo();\n }\n resetPendingNoInfo() {\n this.pending.msgs = 0;\n this.pending.bytes = 0;\n this.pending.requests = 0;\n this.pull(this.pullOptions());\n return Promise.resolve(true);\n }\n async resetPendingWithInfo() {\n if (this.inBackOff) {\n return false;\n }\n let notFound = 0;\n let streamNotFound = 0;\n const bo = backoff([\n this.opts.expires\n ]);\n let attempt = 0;\n while(true){\n if (this.done) {\n return false;\n }\n if (this.consumer.api.nc.isClosed()) {\n console.error(\"aborting resetPending - connection is closed\");\n return false;\n }\n try {\n await this.consumer.info();\n this.inBackOff = false;\n notFound = 0;\n this.pending.msgs = 0;\n this.pending.bytes = 0;\n this.pending.requests = 0;\n this.pull(this.pullOptions());\n return true;\n } catch (err) {\n if (err.message === \"stream not found\") {\n streamNotFound++;\n this.notify(ConsumerEvents.StreamNotFound, streamNotFound);\n if (!this.refilling || this.abortOnMissingResource) {\n this.stop(err);\n return false;\n }\n } else if (err.message === \"consumer not found\") {\n notFound++;\n this.notify(ConsumerEvents.ConsumerNotFound, notFound);\n if (this.resetHandler) {\n try {\n this.resetHandler();\n } catch (_) {}\n }\n if (!this.refilling || this.abortOnMissingResource) {\n this.stop(err);\n return false;\n }\n if (this.forOrderedConsumer) {\n return false;\n }\n } else {\n notFound = 0;\n streamNotFound = 0;\n }\n this.inBackOff = true;\n const to = bo.backoff(attempt);\n const de = delay(to);\n await Promise.race([\n de,\n this.consumer.api.nc.closed()\n ]);\n de.cancel();\n attempt++;\n }\n }\n }\n pull(opts) {\n this.pending.bytes += opts.max_bytes ?? 0;\n this.pending.msgs += opts.batch ?? 0;\n this.pending.requests++;\n const nc = this.consumer.api.nc;\n this._push(()=>{\n nc.publish(`${this.consumer.api.prefix}.CONSUMER.MSG.NEXT.${this.consumer.stream}.${this.consumer.name}`, this.consumer.api.jc.encode(opts), {\n reply: this.inbox\n });\n this.notify(ConsumerDebugEvents.Next, opts);\n });\n }\n pullOptions() {\n const batch = this.opts.max_messages - this.pending.msgs;\n const max_bytes = this.opts.max_bytes - this.pending.bytes;\n const idle_heartbeat = nanos(this.opts.idle_heartbeat);\n const expires = nanos(this.opts.expires);\n return {\n batch,\n max_bytes,\n idle_heartbeat,\n expires\n };\n }\n parseDiscard(headers) {\n const discard = {\n msgsLeft: 0,\n bytesLeft: 0\n };\n const msgsLeft = headers?.get(JsHeaders.PendingMessagesHdr);\n if (msgsLeft) {\n discard.msgsLeft = parseInt(msgsLeft);\n }\n const bytesLeft = headers?.get(JsHeaders.PendingBytesHdr);\n if (bytesLeft) {\n discard.bytesLeft = parseInt(bytesLeft);\n }\n return discard;\n }\n trackTimeout(t) {\n this.timeout = t;\n }\n close() {\n this.stop();\n return this.iterClosed;\n }\n closed() {\n return this.iterClosed;\n }\n clearTimers() {\n this.monitor?.cancel();\n this.monitor = null;\n this.timeout?.cancel();\n this.timeout = null;\n }\n setCleanupHandler(fn) {\n this.cleanupHandler = fn;\n }\n stop(err) {\n if (this.done) {\n return;\n }\n this.sub?.unsubscribe();\n this.clearTimers();\n this.statusIterator?.stop();\n this._push(()=>{\n super.stop(err);\n this.listeners.forEach((n)=>{\n n.stop();\n });\n });\n }\n parseOptions(opts, refilling = false) {\n const args = opts || {};\n args.max_messages = args.max_messages || 0;\n args.max_bytes = args.max_bytes || 0;\n if (args.max_messages !== 0 && args.max_bytes !== 0) {\n throw new Error(`only specify one of max_messages or max_bytes`);\n }\n if (args.max_messages === 0) {\n args.max_messages = 100;\n }\n args.expires = args.expires || 30_000;\n if (args.expires < 1000) {\n throw new Error(\"expires should be at least 1000ms\");\n }\n args.idle_heartbeat = args.idle_heartbeat || args.expires / 2;\n args.idle_heartbeat = args.idle_heartbeat > 30_000 ? 30_000 : args.idle_heartbeat;\n if (refilling) {\n const minMsgs = Math.round(args.max_messages * .75) || 1;\n args.threshold_messages = args.threshold_messages || minMsgs;\n const minBytes = Math.round(args.max_bytes * .75) || 1;\n args.threshold_bytes = args.threshold_bytes || minBytes;\n }\n return args;\n }\n status() {\n const iter = new QueuedIteratorImpl();\n this.listeners.push(iter);\n return Promise.resolve(iter);\n }\n}\nclass OrderedConsumerMessages extends QueuedIteratorImpl {\n src;\n listeners;\n constructor(){\n super();\n this.listeners = [];\n }\n setSource(src) {\n if (this.src) {\n this.src.resetHandler = undefined;\n this.src.setCleanupHandler();\n this.src.stop();\n }\n this.src = src;\n this.src.setCleanupHandler((err)=>{\n this.stop(err || undefined);\n });\n (async ()=>{\n const status = await this.src.status();\n for await (const s of status){\n this.notify(s.type, s.data);\n }\n })().catch(()=>{});\n }\n notify(type, data) {\n if (this.listeners.length > 0) {\n (()=>{\n this.listeners.forEach((l)=>{\n if (!l.done) {\n l.push({\n type,\n data\n });\n }\n });\n })();\n }\n }\n stop(err) {\n if (this.done) {\n return;\n }\n this.src?.stop(err);\n super.stop(err);\n this.listeners.forEach((n)=>{\n n.stop();\n });\n }\n close() {\n this.stop();\n return this.iterClosed;\n }\n closed() {\n return this.iterClosed;\n }\n status() {\n const iter = new QueuedIteratorImpl();\n this.listeners.push(iter);\n return Promise.resolve(iter);\n }\n}\nclass PullConsumerImpl {\n api;\n _info;\n stream;\n name;\n constructor(api, info){\n this.api = api;\n this._info = info;\n this.stream = info.stream_name;\n this.name = info.name;\n }\n consume(opts = {\n max_messages: 100,\n expires: 30_000\n }) {\n return Promise.resolve(new PullConsumerMessagesImpl(this, opts, true));\n }\n fetch(opts = {\n max_messages: 100,\n expires: 30_000\n }) {\n const m = new PullConsumerMessagesImpl(this, opts, false);\n const to = Math.round(m.opts.expires * 1.05);\n const timer = timeout(to);\n m.closed().catch(()=>{}).finally(()=>{\n timer.cancel();\n });\n timer.catch(()=>{\n m.close().catch();\n });\n m.trackTimeout(timer);\n return Promise.resolve(m);\n }\n next(opts = {\n expires: 30_000\n }) {\n const d = deferred();\n const fopts = opts;\n fopts.max_messages = 1;\n const iter = new PullConsumerMessagesImpl(this, fopts, false);\n const to = Math.round(iter.opts.expires * 1.05);\n if (to >= 60_000) {\n (async ()=>{\n for await (const s of (await iter.status())){\n if (s.type === ConsumerEvents.HeartbeatsMissed && s.data >= 2) {\n d.reject(new Error(\"consumer missed heartbeats\"));\n break;\n }\n }\n })().catch();\n }\n (async ()=>{\n for await (const m of iter){\n d.resolve(m);\n break;\n }\n })().catch(()=>{});\n const timer = timeout(to);\n iter.closed().then((err)=>{\n err ? d.reject(err) : d.resolve(null);\n }).catch((err)=>{\n d.reject(err);\n }).finally(()=>{\n timer.cancel();\n });\n timer.catch((_err)=>{\n d.resolve(null);\n iter.close().catch();\n });\n iter.trackTimeout(timer);\n return d;\n }\n delete() {\n const { stream_name, name } = this._info;\n return this.api.delete(stream_name, name);\n }\n info(cached = false) {\n if (cached) {\n return Promise.resolve(this._info);\n }\n const { stream_name, name } = this._info;\n return this.api.info(stream_name, name).then((ci)=>{\n this._info = ci;\n return this._info;\n });\n }\n}\nclass OrderedPullConsumerImpl {\n api;\n consumerOpts;\n consumer;\n opts;\n cursor;\n stream;\n namePrefix;\n serial;\n currentConsumer;\n userCallback;\n iter;\n type;\n startSeq;\n maxInitialReset;\n constructor(api, stream, opts = {}){\n this.api = api;\n this.stream = stream;\n this.cursor = {\n stream_seq: 1,\n deliver_seq: 0\n };\n this.namePrefix = nuid.next();\n if (typeof opts.name_prefix === \"string\") {\n minValidation(\"name_prefix\", opts.name_prefix);\n this.namePrefix = opts.name_prefix + this.namePrefix;\n }\n this.serial = 0;\n this.currentConsumer = null;\n this.userCallback = null;\n this.iter = null;\n this.type = PullConsumerType.Unset;\n this.consumerOpts = opts;\n this.maxInitialReset = 30;\n this.startSeq = this.consumerOpts.opt_start_seq || 0;\n this.cursor.stream_seq = this.startSeq > 0 ? this.startSeq - 1 : 0;\n }\n getConsumerOpts(seq) {\n this.serial++;\n const name = `${this.namePrefix}_${this.serial}`;\n seq = seq === 0 ? 1 : seq;\n const config = {\n name,\n deliver_policy: DeliverPolicy.StartSequence,\n opt_start_seq: seq,\n ack_policy: AckPolicy.None,\n inactive_threshold: nanos(5 * 60 * 1000),\n num_replicas: 1\n };\n if (this.consumerOpts.headers_only === true) {\n config.headers_only = true;\n }\n if (Array.isArray(this.consumerOpts.filterSubjects)) {\n config.filter_subjects = this.consumerOpts.filterSubjects;\n }\n if (typeof this.consumerOpts.filterSubjects === \"string\") {\n config.filter_subject = this.consumerOpts.filterSubjects;\n }\n if (this.consumerOpts.replay_policy) {\n config.replay_policy = this.consumerOpts.replay_policy;\n }\n if (seq === this.startSeq + 1) {\n config.deliver_policy = this.consumerOpts.deliver_policy || DeliverPolicy.StartSequence;\n if (this.consumerOpts.deliver_policy === DeliverPolicy.LastPerSubject || this.consumerOpts.deliver_policy === DeliverPolicy.New || this.consumerOpts.deliver_policy === DeliverPolicy.Last) {\n delete config.opt_start_seq;\n config.deliver_policy = this.consumerOpts.deliver_policy;\n }\n if (config.deliver_policy === DeliverPolicy.LastPerSubject) {\n if (typeof config.filter_subjects === \"undefined\" && typeof config.filter_subject === \"undefined\") {\n config.filter_subject = \">\";\n }\n }\n if (this.consumerOpts.opt_start_time) {\n delete config.opt_start_seq;\n config.deliver_policy = DeliverPolicy.StartTime;\n config.opt_start_time = this.consumerOpts.opt_start_time;\n }\n if (this.consumerOpts.inactive_threshold) {\n config.inactive_threshold = nanos(this.consumerOpts.inactive_threshold);\n }\n }\n return config;\n }\n async resetConsumer(seq = 0) {\n nuid.next();\n const isNew = this.serial === 0;\n this.consumer?.delete().catch(()=>{});\n seq = seq === 0 ? 1 : seq;\n this.cursor.deliver_seq = 0;\n const config = this.getConsumerOpts(seq);\n config.max_deliver = 1;\n config.mem_storage = true;\n const bo = backoff([\n this.opts?.expires || 30_000\n ]);\n let ci;\n for(let i = 0;; i++){\n try {\n ci = await this.api.add(this.stream, config);\n this.iter?.notify(ConsumerEvents.OrderedConsumerRecreated, ci.name);\n break;\n } catch (err) {\n if (err.message === \"stream not found\") {\n this.iter?.notify(ConsumerEvents.StreamNotFound, i);\n if (this.type === PullConsumerType.Fetch || this.opts.abort_on_missing_resource === true) {\n this.iter?.stop(err);\n return Promise.reject(err);\n }\n }\n if (isNew && i >= this.maxInitialReset) {\n throw err;\n } else {\n await delay(bo.backoff(i + 1));\n }\n }\n }\n return ci;\n }\n internalHandler(serial) {\n return (m)=>{\n if (this.serial !== serial) {\n return;\n }\n const dseq = m.info.deliverySequence;\n if (dseq !== this.cursor.deliver_seq + 1) {\n this.notifyOrderedResetAndReset();\n return;\n }\n this.cursor.deliver_seq = dseq;\n this.cursor.stream_seq = m.info.streamSequence;\n if (this.userCallback) {\n this.userCallback(m);\n } else {\n this.iter?.push(m);\n }\n };\n }\n async reset(opts = {\n max_messages: 100,\n expires: 30_000\n }, info) {\n info = info || {};\n const fromFetch = info.fromFetch || false;\n const orderedReset = info.orderedReset || false;\n if (this.type === PullConsumerType.Fetch && orderedReset) {\n this.iter?.src.stop();\n await this.iter?.closed();\n this.currentConsumer = null;\n return;\n }\n if (this.currentConsumer === null || orderedReset) {\n this.currentConsumer = await this.resetConsumer(this.cursor.stream_seq + 1);\n }\n if (this.iter === null || fromFetch) {\n this.iter = new OrderedConsumerMessages();\n }\n this.consumer = new PullConsumerImpl(this.api, this.currentConsumer);\n const copts = opts;\n copts.callback = this.internalHandler(this.serial);\n let msgs = null;\n if (this.type === PullConsumerType.Fetch && fromFetch) {\n msgs = await this.consumer.fetch(opts);\n } else if (this.type === PullConsumerType.Consume) {\n msgs = await this.consumer.consume(opts);\n }\n const msgsImpl = msgs;\n msgsImpl.forOrderedConsumer = true;\n msgsImpl.resetHandler = ()=>{\n this.notifyOrderedResetAndReset();\n };\n this.iter.setSource(msgsImpl);\n }\n notifyOrderedResetAndReset() {\n this.iter?.notify(ConsumerDebugEvents.Reset, \"\");\n this.reset(this.opts, {\n orderedReset: true\n });\n }\n async consume(opts = {\n max_messages: 100,\n expires: 30_000\n }) {\n const copts = opts;\n if (copts.bind) {\n return Promise.reject(new Error(\"bind is not supported\"));\n }\n if (this.type === PullConsumerType.Fetch) {\n return Promise.reject(new Error(\"ordered consumer initialized as fetch\"));\n }\n if (this.type === PullConsumerType.Consume) {\n return Promise.reject(new Error(\"ordered consumer doesn't support concurrent consume\"));\n }\n const { callback } = opts;\n if (callback) {\n this.userCallback = callback;\n }\n this.type = PullConsumerType.Consume;\n this.opts = opts;\n await this.reset(opts);\n return this.iter;\n }\n async fetch(opts = {\n max_messages: 100,\n expires: 30_000\n }) {\n const copts = opts;\n if (copts.bind) {\n return Promise.reject(new Error(\"bind is not supported\"));\n }\n if (this.type === PullConsumerType.Consume) {\n return Promise.reject(new Error(\"ordered consumer already initialized as consume\"));\n }\n if (this.iter?.done === false) {\n return Promise.reject(new Error(\"ordered consumer doesn't support concurrent fetch\"));\n }\n const { callback } = opts;\n if (callback) {\n this.userCallback = callback;\n }\n this.type = PullConsumerType.Fetch;\n this.opts = opts;\n await this.reset(opts, {\n fromFetch: true\n });\n return this.iter;\n }\n async next(opts = {\n expires: 30_000\n }) {\n const copts = opts;\n if (copts.bind) {\n return Promise.reject(new Error(\"bind is not supported\"));\n }\n copts.max_messages = 1;\n const d = deferred();\n copts.callback = (m)=>{\n this.userCallback = null;\n d.resolve(m);\n };\n const iter = await this.fetch(copts);\n iter.iterClosed.then((err)=>{\n if (err) {\n d.reject(err);\n }\n d.resolve(null);\n }).catch((err)=>{\n d.reject(err);\n });\n return d;\n }\n delete() {\n if (!this.currentConsumer) {\n return Promise.resolve(false);\n }\n return this.api.delete(this.stream, this.currentConsumer.name).then((tf)=>{\n return Promise.resolve(tf);\n }).catch((err)=>{\n return Promise.reject(err);\n }).finally(()=>{\n this.currentConsumer = null;\n });\n }\n async info(cached) {\n if (this.currentConsumer == null) {\n this.currentConsumer = await this.resetConsumer(this.startSeq);\n return Promise.resolve(this.currentConsumer);\n }\n if (cached && this.currentConsumer) {\n return Promise.resolve(this.currentConsumer);\n }\n return this.api.info(this.stream, this.currentConsumer.name);\n }\n}\nclass ConsumersImpl {\n api;\n notified;\n constructor(api){\n this.api = api;\n this.notified = false;\n }\n checkVersion() {\n const fv = this.api.nc.features.get(Feature.JS_SIMPLIFICATION);\n if (!fv.ok) {\n return Promise.reject(new Error(`consumers framework is only supported on servers ${fv.min} or better`));\n }\n return Promise.resolve();\n }\n getPullConsumerFor(ci) {\n if (ci.config.deliver_subject !== undefined) {\n throw new Error(\"push consumer not supported\");\n }\n return new PullConsumerImpl(this.api, ci);\n }\n async get(stream, name = {}) {\n if (typeof name === \"object\") {\n return this.ordered(stream, name);\n }\n await this.checkVersion();\n return this.api.info(stream, name).then((ci)=>{\n if (ci.config.deliver_subject !== undefined) {\n return Promise.reject(new Error(\"push consumer not supported\"));\n }\n return new PullConsumerImpl(this.api, ci);\n }).catch((err)=>{\n return Promise.reject(err);\n });\n }\n async ordered(stream, opts) {\n await this.checkVersion();\n const impl = this.api;\n const sapi = new StreamAPIImpl(impl.nc, impl.opts);\n return sapi.info(stream).then((_si)=>{\n return Promise.resolve(new OrderedPullConsumerImpl(this.api, stream, opts));\n }).catch((err)=>{\n return Promise.reject(err);\n });\n }\n}\nclass StreamImpl {\n api;\n _info;\n constructor(api, info){\n this.api = api;\n this._info = info;\n }\n get name() {\n return this._info.config.name;\n }\n alternates() {\n return this.info().then((si)=>{\n return si.alternates ? si.alternates : [];\n });\n }\n async best() {\n await this.info();\n if (this._info.alternates) {\n const asi = await this.api.info(this._info.alternates[0].name);\n return new StreamImpl(this.api, asi);\n } else {\n return this;\n }\n }\n info(cached = false, opts) {\n if (cached) {\n return Promise.resolve(this._info);\n }\n return this.api.info(this.name, opts).then((si)=>{\n this._info = si;\n return this._info;\n });\n }\n getConsumerFromInfo(ci) {\n return new ConsumersImpl(new ConsumerAPIImpl(this.api.nc, this.api.opts)).getPullConsumerFor(ci);\n }\n getConsumer(name) {\n return new ConsumersImpl(new ConsumerAPIImpl(this.api.nc, this.api.opts)).get(this.name, name);\n }\n getMessage(query) {\n return this.api.getMessage(this.name, query);\n }\n deleteMessage(seq, erase) {\n return this.api.deleteMessage(this.name, seq, erase);\n }\n}\nclass StreamAPIImpl extends BaseApiClient {\n constructor(nc, opts){\n super(nc, opts);\n }\n checkStreamConfigVersions(cfg) {\n const nci = this.nc;\n if (cfg.metadata) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_CONSUMER_METADATA);\n if (!ok) {\n throw new Error(`stream 'metadata' requires server ${min}`);\n }\n }\n if (cfg.first_seq) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_FIRST_SEQ);\n if (!ok) {\n throw new Error(`stream 'first_seq' requires server ${min}`);\n }\n }\n if (cfg.subject_transform) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_SUBJECT_TRANSFORM);\n if (!ok) {\n throw new Error(`stream 'subject_transform' requires server ${min}`);\n }\n }\n if (cfg.compression) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_COMPRESSION);\n if (!ok) {\n throw new Error(`stream 'compression' requires server ${min}`);\n }\n }\n if (cfg.consumer_limits) {\n const { min, ok } = nci.features.get(Feature.JS_DEFAULT_CONSUMER_LIMITS);\n if (!ok) {\n throw new Error(`stream 'consumer_limits' requires server ${min}`);\n }\n }\n function validateStreamSource(context, src) {\n const count = src?.subject_transforms?.length || 0;\n if (count > 0) {\n const { min, ok } = nci.features.get(Feature.JS_STREAM_SOURCE_SUBJECT_TRANSFORM);\n if (!ok) {\n throw new Error(`${context} 'subject_transforms' requires server ${min}`);\n }\n }\n }\n if (cfg.sources) {\n cfg.sources.forEach((src)=>{\n validateStreamSource(\"stream sources\", src);\n });\n }\n if (cfg.mirror) {\n validateStreamSource(\"stream mirror\", cfg.mirror);\n }\n }\n async add(cfg = {}) {\n this.checkStreamConfigVersions(cfg);\n validateStreamName(cfg.name);\n cfg.mirror = convertStreamSourceDomain(cfg.mirror);\n cfg.sources = cfg.sources?.map(convertStreamSourceDomain);\n const r = await this._request(`${this.prefix}.STREAM.CREATE.${cfg.name}`, cfg);\n const si = r;\n this._fixInfo(si);\n return si;\n }\n async delete(stream) {\n validateStreamName(stream);\n const r = await this._request(`${this.prefix}.STREAM.DELETE.${stream}`);\n const cr = r;\n return cr.success;\n }\n async update(name, cfg = {}) {\n if (typeof name === \"object\") {\n const sc = name;\n name = sc.name;\n cfg = sc;\n console.trace(`\\u001B[33m >> streams.update(config: StreamConfig) api changed to streams.update(name: string, config: StreamUpdateConfig) - this shim will be removed - update your code. \\u001B[0m`);\n }\n this.checkStreamConfigVersions(cfg);\n validateStreamName(name);\n const old = await this.info(name);\n const update = Object.assign(old.config, cfg);\n update.mirror = convertStreamSourceDomain(update.mirror);\n update.sources = update.sources?.map(convertStreamSourceDomain);\n const r = await this._request(`${this.prefix}.STREAM.UPDATE.${name}`, update);\n const si = r;\n this._fixInfo(si);\n return si;\n }\n async info(name, data) {\n validateStreamName(name);\n const subj = `${this.prefix}.STREAM.INFO.${name}`;\n const r = await this._request(subj, data);\n let si = r;\n let { total, limit } = si;\n let have = si.state.subjects ? Object.getOwnPropertyNames(si.state.subjects).length : 1;\n if (total && total > have) {\n const infos = [\n si\n ];\n const paged = data || {};\n let i = 0;\n while(total > have){\n i++;\n paged.offset = limit * i;\n const r = await this._request(subj, paged);\n total = r.total;\n infos.push(r);\n const count = Object.getOwnPropertyNames(r.state.subjects).length;\n have += count;\n if (count < limit) {\n break;\n }\n }\n let subjects = {};\n for(let i = 0; i < infos.length; i++){\n si = infos[i];\n if (si.state.subjects) {\n subjects = Object.assign(subjects, si.state.subjects);\n }\n }\n si.offset = 0;\n si.total = 0;\n si.limit = 0;\n si.state.subjects = subjects;\n }\n this._fixInfo(si);\n return si;\n }\n list(subject = \"\") {\n const payload = subject?.length ? {\n subject\n } : {};\n const listerFilter = (v)=>{\n const slr = v;\n slr.streams.forEach((si)=>{\n this._fixInfo(si);\n });\n return slr.streams;\n };\n const subj = `${this.prefix}.STREAM.LIST`;\n return new ListerImpl(subj, listerFilter, this, payload);\n }\n _fixInfo(si) {\n si.config.sealed = si.config.sealed || false;\n si.config.deny_delete = si.config.deny_delete || false;\n si.config.deny_purge = si.config.deny_purge || false;\n si.config.allow_rollup_hdrs = si.config.allow_rollup_hdrs || false;\n }\n async purge(name, opts) {\n if (opts) {\n const { keep, seq } = opts;\n if (typeof keep === \"number\" && typeof seq === \"number\") {\n throw new Error(\"can specify one of keep or seq\");\n }\n }\n validateStreamName(name);\n const v = await this._request(`${this.prefix}.STREAM.PURGE.${name}`, opts);\n return v;\n }\n async deleteMessage(stream, seq, erase = true) {\n validateStreamName(stream);\n const dr = {\n seq\n };\n if (!erase) {\n dr.no_erase = true;\n }\n const r = await this._request(`${this.prefix}.STREAM.MSG.DELETE.${stream}`, dr);\n const cr = r;\n return cr.success;\n }\n async getMessage(stream, query) {\n validateStreamName(stream);\n const r = await this._request(`${this.prefix}.STREAM.MSG.GET.${stream}`, query);\n const sm = r;\n return new StoredMsgImpl(sm);\n }\n find(subject) {\n return this.findStream(subject);\n }\n listKvs() {\n const filter = (v)=>{\n const slr = v;\n const kvStreams = slr.streams.filter((v)=>{\n return v.config.name.startsWith(kvPrefix);\n });\n kvStreams.forEach((si)=>{\n this._fixInfo(si);\n });\n let cluster = \"\";\n if (kvStreams.length) {\n cluster = this.nc.info?.cluster ?? \"\";\n }\n const status = kvStreams.map((si)=>{\n return new KvStatusImpl(si, cluster);\n });\n return status;\n };\n const subj = `${this.prefix}.STREAM.LIST`;\n return new ListerImpl(subj, filter, this);\n }\n listObjectStores() {\n const filter = (v)=>{\n const slr = v;\n const objStreams = slr.streams.filter((v)=>{\n return v.config.name.startsWith(osPrefix);\n });\n objStreams.forEach((si)=>{\n this._fixInfo(si);\n });\n const status = objStreams.map((si)=>{\n return new ObjectStoreStatusImpl(si);\n });\n return status;\n };\n const subj = `${this.prefix}.STREAM.LIST`;\n return new ListerImpl(subj, filter, this);\n }\n names(subject = \"\") {\n const payload = subject?.length ? {\n subject\n } : {};\n const listerFilter = (v)=>{\n const sr = v;\n return sr.streams;\n };\n const subj = `${this.prefix}.STREAM.NAMES`;\n return new ListerImpl(subj, listerFilter, this, payload);\n }\n async get(name) {\n const si = await this.info(name);\n return Promise.resolve(new StreamImpl(this, si));\n }\n}\nclass DirectStreamAPIImpl extends BaseApiClient {\n constructor(nc, opts){\n super(nc, opts);\n }\n async getMessage(stream, query) {\n validateStreamName(stream);\n let qq = query;\n const { last_by_subj } = qq;\n if (last_by_subj) {\n qq = null;\n }\n const payload = qq ? this.jc.encode(qq) : Empty;\n const pre = this.opts.apiPrefix || \"$JS.API\";\n const subj = last_by_subj ? `${pre}.DIRECT.GET.${stream}.${last_by_subj}` : `${pre}.DIRECT.GET.${stream}`;\n const r = await this.nc.request(subj, payload, {\n timeout: this.timeout\n });\n const err = checkJsError(r);\n if (err) {\n return Promise.reject(err);\n }\n const dm = new DirectMsgImpl(r);\n return Promise.resolve(dm);\n }\n async getBatch(stream, opts) {\n validateStreamName(stream);\n const pre = this.opts.apiPrefix || \"$JS.API\";\n const subj = `${pre}.DIRECT.GET.${stream}`;\n if (!Array.isArray(opts.multi_last) || opts.multi_last.length === 0) {\n return Promise.reject(\"multi_last is required\");\n }\n const payload = JSON.stringify(opts, (key, value)=>{\n if (key === \"up_to_time\" && value instanceof Date) {\n return value.toISOString();\n }\n return value;\n });\n const iter = new QueuedIteratorImpl();\n const raw = await this.nc.requestMany(subj, payload, {\n strategy: RequestStrategy.SentinelMsg\n });\n (async ()=>{\n let gotFirst = false;\n let badServer = false;\n let badRequest;\n for await (const m of raw){\n if (!gotFirst) {\n gotFirst = true;\n const code = m.headers?.code || 0;\n if (code !== 0 && code < 200 || code > 299) {\n badRequest = m.headers?.description.toLowerCase();\n break;\n }\n const v = m.headers?.get(\"Nats-Num-Pending\");\n if (v === \"\") {\n badServer = true;\n break;\n }\n }\n if (m.data.length === 0) {\n break;\n }\n iter.push(new DirectMsgImpl(m));\n }\n iter.push(()=>{\n if (badServer) {\n throw new Error(\"batch direct get not supported by the server\");\n }\n if (badRequest) {\n throw new Error(`bad request: ${badRequest}`);\n }\n iter.stop();\n });\n })();\n return Promise.resolve(iter);\n }\n}\nclass DirectMsgImpl {\n data;\n header;\n static jc;\n constructor(m){\n if (!m.headers) {\n throw new Error(\"headers expected\");\n }\n this.data = m.data;\n this.header = m.headers;\n }\n get subject() {\n return this.header.last(DirectMsgHeaders.Subject);\n }\n get seq() {\n const v = this.header.last(DirectMsgHeaders.Sequence);\n return typeof v === \"string\" ? parseInt(v) : 0;\n }\n get time() {\n return new Date(Date.parse(this.timestamp));\n }\n get timestamp() {\n return this.header.last(DirectMsgHeaders.TimeStamp);\n }\n get stream() {\n return this.header.last(DirectMsgHeaders.Stream);\n }\n json(reviver) {\n return JSONCodec(reviver).decode(this.data);\n }\n string() {\n return TD.decode(this.data);\n }\n}\nclass JetStreamManagerImpl extends BaseApiClient {\n streams;\n consumers;\n direct;\n constructor(nc, opts){\n super(nc, opts);\n this.streams = new StreamAPIImpl(nc, opts);\n this.consumers = new ConsumerAPIImpl(nc, opts);\n this.direct = new DirectStreamAPIImpl(nc, opts);\n }\n async getAccountInfo() {\n const r = await this._request(`${this.prefix}.INFO`);\n return r;\n }\n jetstream() {\n return this.nc.jetstream(this.getOptions());\n }\n advisories() {\n const iter = new QueuedIteratorImpl();\n this.nc.subscribe(`$JS.EVENT.ADVISORY.>`, {\n callback: (err, msg)=>{\n if (err) {\n throw err;\n }\n try {\n const d = this.parseJsResponse(msg);\n const chunks = d.type.split(\".\");\n const kind = chunks[chunks.length - 1];\n iter.push({\n kind: kind,\n data: d\n });\n } catch (err) {\n iter.stop(err);\n }\n }\n });\n return iter;\n }\n}\nclass StoredMsgImpl {\n _header;\n smr;\n static jc;\n constructor(smr){\n this.smr = smr;\n }\n get subject() {\n return this.smr.message.subject;\n }\n get seq() {\n return this.smr.message.seq;\n }\n get timestamp() {\n return this.smr.message.time;\n }\n get time() {\n return new Date(Date.parse(this.timestamp));\n }\n get data() {\n return this.smr.message.data ? this._parse(this.smr.message.data) : Empty;\n }\n get header() {\n if (!this._header) {\n if (this.smr.message.hdrs) {\n const hd = this._parse(this.smr.message.hdrs);\n this._header = MsgHdrsImpl.decode(hd);\n } else {\n this._header = headers();\n }\n }\n return this._header;\n }\n _parse(s) {\n const bs = atob(s);\n const len = bs.length;\n const bytes = new Uint8Array(len);\n for(let i = 0; i < len; i++){\n bytes[i] = bs.charCodeAt(i);\n }\n return bytes;\n }\n json(reviver) {\n return JSONCodec(reviver).decode(this.data);\n }\n string() {\n return TD.decode(this.data);\n }\n}\nclass StreamsImpl {\n api;\n constructor(api){\n this.api = api;\n }\n get(stream) {\n return this.api.info(stream).then((si)=>{\n return new StreamImpl(this.api, si);\n });\n }\n}\nclass ObjectInfoImpl {\n info;\n hdrs;\n constructor(oi){\n this.info = oi;\n }\n get name() {\n return this.info.name;\n }\n get description() {\n return this.info.description ?? \"\";\n }\n get headers() {\n if (!this.hdrs) {\n this.hdrs = MsgHdrsImpl.fromRecord(this.info.headers || {});\n }\n return this.hdrs;\n }\n get options() {\n return this.info.options;\n }\n get bucket() {\n return this.info.bucket;\n }\n get chunks() {\n return this.info.chunks;\n }\n get deleted() {\n return this.info.deleted ?? false;\n }\n get digest() {\n return this.info.digest;\n }\n get mtime() {\n return this.info.mtime;\n }\n get nuid() {\n return this.info.nuid;\n }\n get size() {\n return this.info.size;\n }\n get revision() {\n return this.info.revision;\n }\n get metadata() {\n return this.info.metadata || {};\n }\n isLink() {\n return this.info.options?.link !== undefined && this.info.options?.link !== null;\n }\n}\nfunction toServerObjectStoreMeta(meta) {\n const v = {\n name: meta.name,\n description: meta.description ?? \"\",\n options: meta.options,\n metadata: meta.metadata\n };\n if (meta.headers) {\n const mhi = meta.headers;\n v.headers = mhi.toRecord();\n }\n return v;\n}\nfunction emptyReadableStream() {\n return new ReadableStream({\n pull (c) {\n c.enqueue(new Uint8Array(0));\n c.close();\n }\n });\n}\nclass ObjectStoreImpl {\n jsm;\n js;\n stream;\n name;\n constructor(name, jsm, js){\n this.name = name;\n this.jsm = jsm;\n this.js = js;\n }\n _checkNotEmpty(name) {\n if (!name || name.length === 0) {\n return {\n name,\n error: new Error(\"name cannot be empty\")\n };\n }\n return {\n name\n };\n }\n async info(name) {\n const info = await this.rawInfo(name);\n return info ? new ObjectInfoImpl(info) : null;\n }\n async list() {\n const buf = [];\n const iter = await this.watch({\n ignoreDeletes: true,\n includeHistory: true\n });\n for await (const info of iter){\n if (info === null) {\n break;\n }\n buf.push(info);\n }\n return Promise.resolve(buf);\n }\n async rawInfo(name) {\n const { name: obj, error } = this._checkNotEmpty(name);\n if (error) {\n return Promise.reject(error);\n }\n const meta = this._metaSubject(obj);\n try {\n const m = await this.jsm.streams.getMessage(this.stream, {\n last_by_subj: meta\n });\n const jc = JSONCodec();\n const soi = jc.decode(m.data);\n soi.revision = m.seq;\n return soi;\n } catch (err) {\n if (err.code === \"404\") {\n return null;\n }\n return Promise.reject(err);\n }\n }\n async _si(opts) {\n try {\n return await this.jsm.streams.info(this.stream, opts);\n } catch (err) {\n const nerr = err;\n if (nerr.code === \"404\") {\n return null;\n }\n return Promise.reject(err);\n }\n }\n async seal() {\n let info = await this._si();\n if (info === null) {\n return Promise.reject(new Error(\"object store not found\"));\n }\n info.config.sealed = true;\n info = await this.jsm.streams.update(this.stream, info.config);\n return Promise.resolve(new ObjectStoreStatusImpl(info));\n }\n async status(opts) {\n const info = await this._si(opts);\n if (info === null) {\n return Promise.reject(new Error(\"object store not found\"));\n }\n return Promise.resolve(new ObjectStoreStatusImpl(info));\n }\n destroy() {\n return this.jsm.streams.delete(this.stream);\n }\n async _put(meta, rs, opts) {\n const jsopts = this.js.getOptions();\n opts = opts || {\n timeout: jsopts.timeout\n };\n opts.timeout = opts.timeout || jsopts.timeout;\n opts.previousRevision = opts.previousRevision ?? undefined;\n const { timeout, previousRevision } = opts;\n const si = this.js.nc.info;\n const maxPayload = si?.max_payload || 1024;\n meta = meta || {};\n meta.options = meta.options || {};\n let maxChunk = meta.options?.max_chunk_size || 128 * 1024;\n maxChunk = maxChunk > maxPayload ? maxPayload : maxChunk;\n meta.options.max_chunk_size = maxChunk;\n const old = await this.info(meta.name);\n const { name: n, error } = this._checkNotEmpty(meta.name);\n if (error) {\n return Promise.reject(error);\n }\n const id = nuid.next();\n const chunkSubj = this._chunkSubject(id);\n const metaSubj = this._metaSubject(n);\n const info = Object.assign({\n bucket: this.name,\n nuid: id,\n size: 0,\n chunks: 0\n }, toServerObjectStoreMeta(meta));\n const d = deferred();\n const proms = [];\n const db = new DataBuffer();\n try {\n const reader = rs ? rs.getReader() : null;\n const sha = J.create();\n while(true){\n const { done, value } = reader ? await reader.read() : {\n done: true,\n value: undefined\n };\n if (done) {\n if (db.size() > 0) {\n const payload = db.drain();\n sha.update(payload);\n info.chunks++;\n info.size += payload.length;\n proms.push(this.js.publish(chunkSubj, payload, {\n timeout\n }));\n }\n await Promise.all(proms);\n proms.length = 0;\n info.mtime = new Date().toISOString();\n const digest = Base64UrlPaddedCodec.encode(sha.digest());\n info.digest = `${digestType}${digest}`;\n info.deleted = false;\n const h = headers();\n if (typeof previousRevision === \"number\") {\n h.set(PubHeaders.ExpectedLastSubjectSequenceHdr, `${previousRevision}`);\n }\n h.set(JsHeaders.RollupHdr, JsHeaders.RollupValueSubject);\n const pa = await this.js.publish(metaSubj, JSONCodec().encode(info), {\n headers: h,\n timeout\n });\n info.revision = pa.seq;\n if (old) {\n try {\n await this.jsm.streams.purge(this.stream, {\n filter: `$O.${this.name}.C.${old.nuid}`\n });\n } catch (_err) {}\n }\n d.resolve(new ObjectInfoImpl(info));\n break;\n }\n if (value) {\n db.fill(value);\n while(db.size() > maxChunk){\n info.chunks++;\n info.size += maxChunk;\n const payload = db.drain(meta.options.max_chunk_size);\n sha.update(payload);\n proms.push(this.js.publish(chunkSubj, payload, {\n timeout\n }));\n }\n }\n }\n } catch (err) {\n await this.jsm.streams.purge(this.stream, {\n filter: chunkSubj\n });\n d.reject(err);\n }\n return d;\n }\n putBlob(meta, data, opts) {\n function readableStreamFrom(data) {\n return new ReadableStream({\n pull (controller) {\n controller.enqueue(data);\n controller.close();\n }\n });\n }\n if (data === null) {\n data = new Uint8Array(0);\n }\n return this.put(meta, readableStreamFrom(data), opts);\n }\n put(meta, rs, opts) {\n if (meta?.options?.link) {\n return Promise.reject(new Error(\"link cannot be set when putting the object in bucket\"));\n }\n return this._put(meta, rs, opts);\n }\n async getBlob(name) {\n async function fromReadableStream(rs) {\n const buf = new DataBuffer();\n const reader = rs.getReader();\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n return buf.drain();\n }\n if (value && value.length) {\n buf.fill(value);\n }\n }\n }\n const r = await this.get(name);\n if (r === null) {\n return Promise.resolve(null);\n }\n const vs = await Promise.all([\n r.error,\n fromReadableStream(r.data)\n ]);\n if (vs[0]) {\n return Promise.reject(vs[0]);\n } else {\n return Promise.resolve(vs[1]);\n }\n }\n async get(name) {\n const info = await this.rawInfo(name);\n if (info === null) {\n return Promise.resolve(null);\n }\n if (info.deleted) {\n return Promise.resolve(null);\n }\n if (info.options && info.options.link) {\n const ln = info.options.link.name || \"\";\n if (ln === \"\") {\n throw new Error(\"link is a bucket\");\n }\n const os = info.options.link.bucket !== this.name ? await ObjectStoreImpl.create(this.js, info.options.link.bucket) : this;\n return os.get(ln);\n }\n if (!info.digest.startsWith(digestType)) {\n return Promise.reject(new Error(`unknown digest type: ${info.digest}`));\n }\n const digest = parseSha256(info.digest.substring(8));\n if (digest === null) {\n return Promise.reject(new Error(`unable to parse digest: ${info.digest}`));\n }\n const d = deferred();\n const r = {\n info: new ObjectInfoImpl(info),\n error: d\n };\n if (info.size === 0) {\n r.data = emptyReadableStream();\n d.resolve(null);\n return Promise.resolve(r);\n }\n let controller;\n const oc = consumerOpts();\n oc.orderedConsumer();\n const sha = J.create();\n const subj = `$O.${this.name}.C.${info.nuid}`;\n const sub = await this.js.subscribe(subj, oc);\n (async ()=>{\n for await (const jm of sub){\n if (jm.data.length > 0) {\n sha.update(jm.data);\n controller.enqueue(jm.data);\n }\n if (jm.info.pending === 0) {\n if (!checkSha256(digest, sha.digest())) {\n controller.error(new Error(`received a corrupt object, digests do not match received: ${info.digest} calculated ${digest}`));\n } else {\n controller.close();\n }\n sub.unsubscribe();\n }\n }\n })().then(()=>{\n d.resolve();\n }).catch((err)=>{\n controller.error(err);\n d.reject(err);\n });\n r.data = new ReadableStream({\n start (c) {\n controller = c;\n },\n cancel () {\n sub.unsubscribe();\n }\n });\n return r;\n }\n linkStore(name, bucket) {\n if (!(bucket instanceof ObjectStoreImpl)) {\n return Promise.reject(\"bucket required\");\n }\n const osi = bucket;\n const { name: n, error } = this._checkNotEmpty(name);\n if (error) {\n return Promise.reject(error);\n }\n const meta = {\n name: n,\n options: {\n link: {\n bucket: osi.name\n }\n }\n };\n return this._put(meta, null);\n }\n async link(name, info) {\n const { name: n, error } = this._checkNotEmpty(name);\n if (error) {\n return Promise.reject(error);\n }\n if (info.deleted) {\n return Promise.reject(new Error(\"src object is deleted\"));\n }\n if (info.isLink()) {\n return Promise.reject(new Error(\"src object is a link\"));\n }\n const dest = await this.rawInfo(name);\n if (dest !== null && !dest.deleted) {\n return Promise.reject(new Error(\"an object already exists with that name\"));\n }\n const link = {\n bucket: info.bucket,\n name: info.name\n };\n const mm = {\n name: n,\n bucket: info.bucket,\n options: {\n link: link\n }\n };\n await this.js.publish(this._metaSubject(name), JSON.stringify(mm));\n const i = await this.info(name);\n return Promise.resolve(i);\n }\n async delete(name) {\n const info = await this.rawInfo(name);\n if (info === null) {\n return Promise.resolve({\n purged: 0,\n success: false\n });\n }\n info.deleted = true;\n info.size = 0;\n info.chunks = 0;\n info.digest = \"\";\n const jc = JSONCodec();\n const h = headers();\n h.set(JsHeaders.RollupHdr, JsHeaders.RollupValueSubject);\n await this.js.publish(this._metaSubject(info.name), jc.encode(info), {\n headers: h\n });\n return this.jsm.streams.purge(this.stream, {\n filter: this._chunkSubject(info.nuid)\n });\n }\n async update(name, meta = {}) {\n const info = await this.rawInfo(name);\n if (info === null) {\n return Promise.reject(new Error(\"object not found\"));\n }\n if (info.deleted) {\n return Promise.reject(new Error(\"cannot update meta for a deleted object\"));\n }\n meta.name = meta.name ?? info.name;\n const { name: n, error } = this._checkNotEmpty(meta.name);\n if (error) {\n return Promise.reject(error);\n }\n if (name !== meta.name) {\n const i = await this.info(meta.name);\n if (i && !i.deleted) {\n return Promise.reject(new Error(\"an object already exists with that name\"));\n }\n }\n meta.name = n;\n const ii = Object.assign({}, info, toServerObjectStoreMeta(meta));\n const ack = await this.js.publish(this._metaSubject(ii.name), JSON.stringify(ii));\n if (name !== meta.name) {\n await this.jsm.streams.purge(this.stream, {\n filter: this._metaSubject(name)\n });\n }\n return Promise.resolve(ack);\n }\n async watch(opts = {}) {\n opts.includeHistory = opts.includeHistory ?? false;\n opts.ignoreDeletes = opts.ignoreDeletes ?? false;\n let initialized = false;\n const qi = new QueuedIteratorImpl();\n const subj = this._metaSubjectAll();\n try {\n await this.jsm.streams.getMessage(this.stream, {\n last_by_subj: subj\n });\n } catch (err) {\n if (err.code === \"404\") {\n qi.push(null);\n initialized = true;\n } else {\n qi.stop(err);\n }\n }\n const jc = JSONCodec();\n const copts = consumerOpts();\n copts.orderedConsumer();\n if (opts.includeHistory) {\n copts.deliverLastPerSubject();\n } else {\n initialized = true;\n copts.deliverNew();\n }\n copts.callback((err, jm)=>{\n if (err) {\n qi.stop(err);\n return;\n }\n if (jm !== null) {\n const oi = jc.decode(jm.data);\n if (oi.deleted && opts.ignoreDeletes === true) {} else {\n qi.push(oi);\n }\n if (jm.info?.pending === 0 && !initialized) {\n initialized = true;\n qi.push(null);\n }\n }\n });\n const sub = await this.js.subscribe(subj, copts);\n qi._data = sub;\n qi.iterClosed.then(()=>{\n sub.unsubscribe();\n });\n sub.closed.then(()=>{\n qi.stop();\n }).catch((err)=>{\n qi.stop(err);\n });\n return qi;\n }\n _chunkSubject(id) {\n return `$O.${this.name}.C.${id}`;\n }\n _metaSubject(n) {\n return `$O.${this.name}.M.${Base64UrlPaddedCodec.encode(n)}`;\n }\n _metaSubjectAll() {\n return `$O.${this.name}.M.>`;\n }\n async init(opts = {}) {\n try {\n this.stream = objectStoreStreamName(this.name);\n } catch (err) {\n return Promise.reject(err);\n }\n const max_age = opts?.ttl || 0;\n delete opts.ttl;\n const sc = Object.assign({\n max_age\n }, opts);\n sc.name = this.stream;\n sc.num_replicas = opts.replicas ?? 1;\n sc.allow_direct = true;\n sc.allow_rollup_hdrs = true;\n sc.discard = DiscardPolicy.New;\n sc.subjects = [\n `$O.${this.name}.C.>`,\n `$O.${this.name}.M.>`\n ];\n if (opts.placement) {\n sc.placement = opts.placement;\n }\n if (opts.metadata) {\n sc.metadata = opts.metadata;\n }\n if (typeof opts.compression === \"boolean\") {\n sc.compression = opts.compression ? StoreCompression.S2 : StoreCompression.None;\n }\n try {\n await this.jsm.streams.info(sc.name);\n } catch (err) {\n if (err.message === \"stream not found\") {\n await this.jsm.streams.add(sc);\n }\n }\n }\n static async create(js, name, opts = {}) {\n const jsm = await js.jetstreamManager();\n const os = new ObjectStoreImpl(name, jsm, js);\n await os.init(opts);\n return Promise.resolve(os);\n }\n}\nclass ViewsImpl {\n js;\n constructor(js){\n this.js = js;\n }\n kv(name, opts = {}) {\n const jsi = this.js;\n const { ok, min } = jsi.nc.features.get(Feature.JS_KV);\n if (!ok) {\n return Promise.reject(new Error(`kv is only supported on servers ${min} or better`));\n }\n if (opts.bindOnly) {\n return Bucket.bind(this.js, name, opts);\n }\n return Bucket.create(this.js, name, opts);\n }\n os(name, opts = {}) {\n if (typeof crypto?.subtle?.digest !== \"function\") {\n return Promise.reject(new Error(\"objectstore: unable to calculate hashes - crypto.subtle.digest with sha256 support is required\"));\n }\n const jsi = this.js;\n const { ok, min } = jsi.nc.features.get(Feature.JS_OBJECTSTORE);\n if (!ok) {\n return Promise.reject(new Error(`objectstore is only supported on servers ${min} or better`));\n }\n return ObjectStoreImpl.create(this.js, name, opts);\n }\n}\nclass JetStreamClientImpl extends BaseApiClient {\n consumers;\n streams;\n consumerAPI;\n streamAPI;\n constructor(nc, opts){\n super(nc, opts);\n this.consumerAPI = new ConsumerAPIImpl(nc, opts);\n this.streamAPI = new StreamAPIImpl(nc, opts);\n this.consumers = new ConsumersImpl(this.consumerAPI);\n this.streams = new StreamsImpl(this.streamAPI);\n }\n jetstreamManager(checkAPI) {\n if (checkAPI === undefined) {\n checkAPI = this.opts.checkAPI;\n }\n const opts = Object.assign({}, this.opts, {\n checkAPI\n });\n return this.nc.jetstreamManager(opts);\n }\n get apiPrefix() {\n return this.prefix;\n }\n get views() {\n return new ViewsImpl(this);\n }\n async publish(subj, data = Empty, opts) {\n opts = opts || {};\n opts.expect = opts.expect || {};\n const mh = opts?.headers || headers();\n if (opts) {\n if (opts.msgID) {\n mh.set(PubHeaders.MsgIdHdr, opts.msgID);\n }\n if (opts.expect.lastMsgID) {\n mh.set(PubHeaders.ExpectedLastMsgIdHdr, opts.expect.lastMsgID);\n }\n if (opts.expect.streamName) {\n mh.set(PubHeaders.ExpectedStreamHdr, opts.expect.streamName);\n }\n if (typeof opts.expect.lastSequence === \"number\") {\n mh.set(PubHeaders.ExpectedLastSeqHdr, `${opts.expect.lastSequence}`);\n }\n if (typeof opts.expect.lastSubjectSequence === \"number\") {\n mh.set(PubHeaders.ExpectedLastSubjectSequenceHdr, `${opts.expect.lastSubjectSequence}`);\n }\n }\n const to = opts.timeout || this.timeout;\n const ro = {};\n if (to) {\n ro.timeout = to;\n }\n if (opts) {\n ro.headers = mh;\n }\n let { retries, retry_delay } = opts;\n retries = retries || 1;\n retry_delay = retry_delay || 250;\n let r;\n for(let i = 0; i < retries; i++){\n try {\n r = await this.nc.request(subj, data, ro);\n break;\n } catch (err) {\n const ne = err;\n if (ne.code === \"503\" && i + 1 < retries) {\n await delay(retry_delay);\n } else {\n throw err;\n }\n }\n }\n const pa = this.parseJsResponse(r);\n if (pa.stream === \"\") {\n throw NatsError.errorForCode(ErrorCode.JetStreamInvalidAck);\n }\n pa.duplicate = pa.duplicate ? pa.duplicate : false;\n return pa;\n }\n async pull(stream, durable, expires = 0) {\n validateStreamName(stream);\n validateDurableName(durable);\n let timeout = this.timeout;\n if (expires > timeout) {\n timeout = expires;\n }\n expires = expires < 0 ? 0 : nanos(expires);\n const pullOpts = {\n batch: 1,\n no_wait: expires === 0,\n expires\n };\n const msg = await this.nc.request(`${this.prefix}.CONSUMER.MSG.NEXT.${stream}.${durable}`, this.jc.encode(pullOpts), {\n noMux: true,\n timeout\n });\n const err = checkJsError(msg);\n if (err) {\n throw err;\n }\n return toJsMsg(msg, this.timeout);\n }\n fetch(stream, durable, opts = {}) {\n validateStreamName(stream);\n validateDurableName(durable);\n let timer = null;\n const trackBytes = (opts.max_bytes ?? 0) > 0;\n let receivedBytes = 0;\n const max_bytes = trackBytes ? opts.max_bytes : 0;\n let monitor = null;\n const args = {};\n args.batch = opts.batch || 1;\n if (max_bytes) {\n const fv = this.nc.features.get(Feature.JS_PULL_MAX_BYTES);\n if (!fv.ok) {\n throw new Error(`max_bytes is only supported on servers ${fv.min} or better`);\n }\n args.max_bytes = max_bytes;\n }\n args.no_wait = opts.no_wait || false;\n if (args.no_wait && args.expires) {\n args.expires = 0;\n }\n const expires = opts.expires || 0;\n if (expires) {\n args.expires = nanos(expires);\n }\n if (expires === 0 && args.no_wait === false) {\n throw new Error(\"expires or no_wait is required\");\n }\n const hb = opts.idle_heartbeat || 0;\n if (hb) {\n args.idle_heartbeat = nanos(hb);\n if (opts.delay_heartbeat === true) {\n args.idle_heartbeat = nanos(hb * 4);\n }\n }\n const qi = new QueuedIteratorImpl();\n const wants = args.batch;\n let received = 0;\n qi.protocolFilterFn = (jm, _ingest = false)=>{\n const jsmi = jm;\n if (isHeartbeatMsg(jsmi.msg)) {\n monitor?.work();\n return false;\n }\n return true;\n };\n qi.dispatchedFn = (m)=>{\n if (m) {\n if (trackBytes) {\n receivedBytes += m.data.length;\n }\n received++;\n if (timer && m.info.pending === 0) {\n return;\n }\n if (qi.getPending() === 1 && m.info.pending === 0 || wants === received || max_bytes > 0 && receivedBytes >= max_bytes) {\n qi.stop();\n }\n }\n };\n const inbox = createInbox(this.nc.options.inboxPrefix);\n const sub = this.nc.subscribe(inbox, {\n max: opts.batch,\n callback: (err, msg)=>{\n if (err === null) {\n err = checkJsError(msg);\n }\n if (err !== null) {\n if (timer) {\n timer.cancel();\n timer = null;\n }\n if (isNatsError(err)) {\n qi.stop(hideNonTerminalJsErrors(err) === null ? undefined : err);\n } else {\n qi.stop(err);\n }\n } else {\n monitor?.work();\n qi.received++;\n qi.push(toJsMsg(msg, this.timeout));\n }\n }\n });\n if (expires) {\n timer = timeout(expires);\n timer.catch(()=>{\n if (!sub.isClosed()) {\n sub.drain().catch(()=>{});\n timer = null;\n }\n if (monitor) {\n monitor.cancel();\n }\n });\n }\n (async ()=>{\n try {\n if (hb) {\n monitor = new IdleHeartbeatMonitor(hb, (v)=>{\n qi.push(()=>{\n qi.err = new NatsError(`${Js409Errors.IdleHeartbeatMissed}: ${v}`, ErrorCode.JetStreamIdleHeartBeat);\n });\n return true;\n });\n }\n } catch (_err) {}\n await sub.closed;\n if (timer !== null) {\n timer.cancel();\n timer = null;\n }\n if (monitor) {\n monitor.cancel();\n }\n qi.stop();\n })().catch();\n this.nc.publish(`${this.prefix}.CONSUMER.MSG.NEXT.${stream}.${durable}`, this.jc.encode(args), {\n reply: inbox\n });\n return qi;\n }\n async pullSubscribe(subject, opts = consumerOpts()) {\n const cso = await this._processOptions(subject, opts);\n if (cso.ordered) {\n throw new Error(\"pull subscribers cannot be be ordered\");\n }\n if (cso.config.deliver_subject) {\n throw new Error(\"consumer info specifies deliver_subject - pull consumers cannot have deliver_subject set\");\n }\n const ackPolicy = cso.config.ack_policy;\n if (ackPolicy === AckPolicy.None || ackPolicy === AckPolicy.All) {\n throw new Error(\"ack policy for pull consumers must be explicit\");\n }\n const so = this._buildTypedSubscriptionOpts(cso);\n const sub = new JetStreamPullSubscriptionImpl(this, cso.deliver, so);\n sub.info = cso;\n try {\n await this._maybeCreateConsumer(cso);\n } catch (err) {\n sub.unsubscribe();\n throw err;\n }\n return sub;\n }\n async subscribe(subject, opts = consumerOpts()) {\n const cso = await this._processOptions(subject, opts);\n if (!cso.isBind && !cso.config.deliver_subject) {\n throw new Error(\"push consumer requires deliver_subject\");\n }\n const so = this._buildTypedSubscriptionOpts(cso);\n const sub = new JetStreamSubscriptionImpl(this, cso.deliver, so);\n sub.info = cso;\n try {\n await this._maybeCreateConsumer(cso);\n } catch (err) {\n sub.unsubscribe();\n throw err;\n }\n sub._maybeSetupHbMonitoring();\n return sub;\n }\n async _processOptions(subject, opts = consumerOpts()) {\n const jsi = isConsumerOptsBuilder(opts) ? opts.getOpts() : opts;\n jsi.isBind = isConsumerOptsBuilder(opts) ? opts.isBind : false;\n jsi.flow_control = {\n heartbeat_count: 0,\n fc_count: 0,\n consumer_restarts: 0\n };\n if (jsi.ordered) {\n jsi.ordered_consumer_sequence = {\n stream_seq: 0,\n delivery_seq: 0\n };\n if (jsi.config.ack_policy !== AckPolicy.NotSet && jsi.config.ack_policy !== AckPolicy.None) {\n throw new NatsError(\"ordered consumer: ack_policy can only be set to 'none'\", ErrorCode.ApiError);\n }\n if (jsi.config.durable_name && jsi.config.durable_name.length > 0) {\n throw new NatsError(\"ordered consumer: durable_name cannot be set\", ErrorCode.ApiError);\n }\n if (jsi.config.deliver_subject && jsi.config.deliver_subject.length > 0) {\n throw new NatsError(\"ordered consumer: deliver_subject cannot be set\", ErrorCode.ApiError);\n }\n if (jsi.config.max_deliver !== undefined && jsi.config.max_deliver > 1) {\n throw new NatsError(\"ordered consumer: max_deliver cannot be set\", ErrorCode.ApiError);\n }\n if (jsi.config.deliver_group && jsi.config.deliver_group.length > 0) {\n throw new NatsError(\"ordered consumer: deliver_group cannot be set\", ErrorCode.ApiError);\n }\n jsi.config.deliver_subject = createInbox(this.nc.options.inboxPrefix);\n jsi.config.ack_policy = AckPolicy.None;\n jsi.config.max_deliver = 1;\n jsi.config.flow_control = true;\n jsi.config.idle_heartbeat = jsi.config.idle_heartbeat || nanos(5000);\n jsi.config.ack_wait = nanos(22 * 60 * 60 * 1000);\n jsi.config.mem_storage = true;\n jsi.config.num_replicas = 1;\n }\n if (jsi.config.ack_policy === AckPolicy.NotSet) {\n jsi.config.ack_policy = AckPolicy.All;\n }\n jsi.api = this;\n jsi.config = jsi.config || {};\n jsi.stream = jsi.stream ? jsi.stream : await this.findStream(subject);\n jsi.attached = false;\n if (jsi.config.durable_name) {\n try {\n const info = await this.consumerAPI.info(jsi.stream, jsi.config.durable_name);\n if (info) {\n if (info.config.filter_subject && info.config.filter_subject !== subject) {\n throw new Error(\"subject does not match consumer\");\n }\n const qn = jsi.config.deliver_group ?? \"\";\n if (qn === \"\" && info.push_bound === true) {\n throw new Error(`duplicate subscription`);\n }\n const rqn = info.config.deliver_group ?? \"\";\n if (qn !== rqn) {\n if (rqn === \"\") {\n throw new Error(`durable requires no queue group`);\n } else {\n throw new Error(`durable requires queue group '${rqn}'`);\n }\n }\n jsi.last = info;\n jsi.config = info.config;\n jsi.attached = true;\n if (!jsi.config.durable_name) {\n jsi.name = info.name;\n }\n }\n } catch (err) {\n if (err.code !== \"404\") {\n throw err;\n }\n }\n }\n if (!jsi.attached && jsi.config.filter_subject === undefined && jsi.config.filter_subjects === undefined) {\n jsi.config.filter_subject = subject;\n }\n jsi.deliver = jsi.config.deliver_subject || createInbox(this.nc.options.inboxPrefix);\n return jsi;\n }\n _buildTypedSubscriptionOpts(jsi) {\n const so = {};\n so.adapter = msgAdapter(jsi.callbackFn === undefined, this.timeout);\n so.ingestionFilterFn = JetStreamClientImpl.ingestionFn(jsi.ordered);\n so.protocolFilterFn = (jm, ingest = false)=>{\n const jsmi = jm;\n if (isFlowControlMsg(jsmi.msg)) {\n if (!ingest) {\n jsmi.msg.respond();\n }\n return false;\n }\n return true;\n };\n if (!jsi.mack && jsi.config.ack_policy !== AckPolicy.None) {\n so.dispatchedFn = autoAckJsMsg;\n }\n if (jsi.callbackFn) {\n so.callback = jsi.callbackFn;\n }\n so.max = jsi.max || 0;\n so.queue = jsi.queue;\n return so;\n }\n async _maybeCreateConsumer(jsi) {\n if (jsi.attached) {\n return;\n }\n if (jsi.isBind) {\n throw new Error(`unable to bind - durable consumer ${jsi.config.durable_name} doesn't exist in ${jsi.stream}`);\n }\n jsi.config = Object.assign({\n deliver_policy: DeliverPolicy.All,\n ack_policy: AckPolicy.Explicit,\n ack_wait: nanos(30 * 1000),\n replay_policy: ReplayPolicy.Instant\n }, jsi.config);\n const ci = await this.consumerAPI.add(jsi.stream, jsi.config);\n if (Array.isArray(jsi.config.filter_subjects && !Array.isArray(ci.config.filter_subjects))) {\n throw new Error(`jetstream server doesn't support consumers with multiple filter subjects`);\n }\n jsi.name = ci.name;\n jsi.config = ci.config;\n jsi.last = ci;\n }\n static ingestionFn(ordered) {\n return (jm, ctx)=>{\n const jsub = ctx;\n if (!jm) return {\n ingest: false,\n protocol: false\n };\n const jmi = jm;\n if (!checkJsError(jmi.msg)) {\n jsub.monitor?.work();\n }\n if (isHeartbeatMsg(jmi.msg)) {\n const ingest = ordered ? jsub._checkHbOrderConsumer(jmi.msg) : true;\n if (!ordered) {\n jsub.info.flow_control.heartbeat_count++;\n }\n return {\n ingest,\n protocol: true\n };\n } else if (isFlowControlMsg(jmi.msg)) {\n jsub.info.flow_control.fc_count++;\n return {\n ingest: true,\n protocol: true\n };\n }\n const ingest = ordered ? jsub._checkOrderedConsumer(jm) : true;\n return {\n ingest,\n protocol: false\n };\n };\n }\n}\nclass NatsConnectionImpl {\n options;\n protocol;\n draining;\n listeners;\n _services;\n constructor(opts){\n this.draining = false;\n this.options = parseOptions(opts);\n this.listeners = [];\n }\n static connect(opts = {}) {\n return new Promise((resolve, reject)=>{\n const nc = new NatsConnectionImpl(opts);\n ProtocolHandler.connect(nc.options, nc).then((ph)=>{\n nc.protocol = ph;\n (async function() {\n for await (const s of ph.status()){\n nc.listeners.forEach((l)=>{\n l.push(s);\n });\n }\n })();\n resolve(nc);\n }).catch((err)=>{\n reject(err);\n });\n });\n }\n closed() {\n return this.protocol.closed;\n }\n async close() {\n await this.protocol.close();\n }\n _check(subject, sub, pub) {\n if (this.isClosed()) {\n throw NatsError.errorForCode(ErrorCode.ConnectionClosed);\n }\n if (sub && this.isDraining()) {\n throw NatsError.errorForCode(ErrorCode.ConnectionDraining);\n }\n if (pub && this.protocol.noMorePublishing) {\n throw NatsError.errorForCode(ErrorCode.ConnectionDraining);\n }\n subject = subject || \"\";\n if (subject.length === 0) {\n throw NatsError.errorForCode(ErrorCode.BadSubject);\n }\n }\n publish(subject, data, options) {\n this._check(subject, false, true);\n this.protocol.publish(subject, data, options);\n }\n publishMessage(msg) {\n return this.publish(msg.subject, msg.data, {\n reply: msg.reply,\n headers: msg.headers\n });\n }\n respondMessage(msg) {\n if (msg.reply) {\n this.publish(msg.reply, msg.data, {\n reply: msg.reply,\n headers: msg.headers\n });\n return true;\n }\n return false;\n }\n subscribe(subject, opts = {}) {\n this._check(subject, true, false);\n const sub = new SubscriptionImpl(this.protocol, subject, opts);\n this.protocol.subscribe(sub);\n return sub;\n }\n _resub(s, subject, max) {\n this._check(subject, true, false);\n const si = s;\n si.max = max;\n if (max) {\n si.max = max + si.received;\n }\n this.protocol.resub(si, subject);\n }\n requestMany(subject, data = Empty, opts = {\n maxWait: 1000,\n maxMessages: -1\n }) {\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n try {\n this._check(subject, true, true);\n } catch (err) {\n return Promise.reject(err);\n }\n opts.strategy = opts.strategy || RequestStrategy.Timer;\n opts.maxWait = opts.maxWait || 1000;\n if (opts.maxWait < 1) {\n return Promise.reject(new NatsError(\"timeout\", ErrorCode.InvalidOption));\n }\n const qi = new QueuedIteratorImpl();\n function stop(err) {\n qi.push(()=>{\n qi.stop(err);\n });\n }\n function callback(err, msg) {\n if (err || msg === null) {\n stop(err === null ? undefined : err);\n } else {\n qi.push(msg);\n }\n }\n if (opts.noMux) {\n const stack = asyncTraces ? new Error().stack : null;\n let max = typeof opts.maxMessages === \"number\" && opts.maxMessages > 0 ? opts.maxMessages : -1;\n const sub = this.subscribe(createInbox(this.options.inboxPrefix), {\n callback: (err, msg)=>{\n if (msg?.data?.length === 0 && msg?.headers?.status === ErrorCode.NoResponders) {\n err = NatsError.errorForCode(ErrorCode.NoResponders);\n }\n if (err) {\n if (stack) {\n err.stack += `\\n\\n${stack}`;\n }\n cancel(err);\n return;\n }\n callback(null, msg);\n if (opts.strategy === RequestStrategy.Count) {\n max--;\n if (max === 0) {\n cancel();\n }\n }\n if (opts.strategy === RequestStrategy.JitterTimer) {\n clearTimers();\n timer = setTimeout(()=>{\n cancel();\n }, 300);\n }\n if (opts.strategy === RequestStrategy.SentinelMsg) {\n if (msg && msg.data.length === 0) {\n cancel();\n }\n }\n }\n });\n sub.requestSubject = subject;\n sub.closed.then(()=>{\n stop();\n }).catch((err)=>{\n qi.stop(err);\n });\n const cancel = (err)=>{\n if (err) {\n qi.push(()=>{\n throw err;\n });\n }\n clearTimers();\n sub.drain().then(()=>{\n stop();\n }).catch((_err)=>{\n stop();\n });\n };\n qi.iterClosed.then(()=>{\n clearTimers();\n sub?.unsubscribe();\n }).catch((_err)=>{\n clearTimers();\n sub?.unsubscribe();\n });\n try {\n this.publish(subject, data, {\n reply: sub.getSubject()\n });\n } catch (err) {\n cancel(err);\n }\n let timer = setTimeout(()=>{\n cancel();\n }, opts.maxWait);\n const clearTimers = ()=>{\n if (timer) {\n clearTimeout(timer);\n }\n };\n } else {\n const rmo = opts;\n rmo.callback = callback;\n qi.iterClosed.then(()=>{\n r.cancel();\n }).catch((err)=>{\n r.cancel(err);\n });\n const r = new RequestMany(this.protocol.muxSubscriptions, subject, rmo);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers\n });\n } catch (err) {\n r.cancel(err);\n }\n }\n return Promise.resolve(qi);\n }\n request(subject, data, opts = {\n timeout: 1000,\n noMux: false\n }) {\n try {\n this._check(subject, true, true);\n } catch (err) {\n return Promise.reject(err);\n }\n const asyncTraces = !(this.protocol.options.noAsyncTraces || false);\n opts.timeout = opts.timeout || 1000;\n if (opts.timeout < 1) {\n return Promise.reject(new NatsError(\"timeout\", ErrorCode.InvalidOption));\n }\n if (!opts.noMux && opts.reply) {\n return Promise.reject(new NatsError(\"reply can only be used with noMux\", ErrorCode.InvalidOption));\n }\n if (opts.noMux) {\n const inbox = opts.reply ? opts.reply : createInbox(this.options.inboxPrefix);\n const d = deferred();\n const errCtx = asyncTraces ? new Error() : null;\n const sub = this.subscribe(inbox, {\n max: 1,\n timeout: opts.timeout,\n callback: (err, msg)=>{\n if (err) {\n if (errCtx && err.code !== ErrorCode.Timeout) {\n err.stack += `\\n\\n${errCtx.stack}`;\n }\n sub.unsubscribe();\n d.reject(err);\n } else {\n err = isRequestError(msg);\n if (err) {\n if (errCtx) {\n err.stack += `\\n\\n${errCtx.stack}`;\n }\n d.reject(err);\n } else {\n d.resolve(msg);\n }\n }\n }\n });\n sub.requestSubject = subject;\n this.protocol.publish(subject, data, {\n reply: inbox,\n headers: opts.headers\n });\n return d;\n } else {\n const r = new RequestOne(this.protocol.muxSubscriptions, subject, opts, asyncTraces);\n this.protocol.request(r);\n try {\n this.publish(subject, data, {\n reply: `${this.protocol.muxSubscriptions.baseInbox}${r.token}`,\n headers: opts.headers\n });\n } catch (err) {\n r.cancel(err);\n }\n const p = Promise.race([\n r.timer,\n r.deferred\n ]);\n p.catch(()=>{\n r.cancel();\n });\n return p;\n }\n }\n flush() {\n if (this.isClosed()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionClosed));\n }\n return this.protocol.flush();\n }\n drain() {\n if (this.isClosed()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionClosed));\n }\n if (this.isDraining()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionDraining));\n }\n this.draining = true;\n return this.protocol.drain();\n }\n isClosed() {\n return this.protocol.isClosed();\n }\n isDraining() {\n return this.draining;\n }\n getServer() {\n const srv = this.protocol.getServer();\n return srv ? srv.listen : \"\";\n }\n status() {\n const iter = new QueuedIteratorImpl();\n iter.iterClosed.then(()=>{\n const idx = this.listeners.indexOf(iter);\n this.listeners.splice(idx, 1);\n });\n this.listeners.push(iter);\n return iter;\n }\n get info() {\n return this.protocol.isClosed() ? undefined : this.protocol.info;\n }\n async context() {\n const r = await this.request(`$SYS.REQ.USER.INFO`);\n return r.json((key, value)=>{\n if (key === \"time\") {\n return new Date(Date.parse(value));\n }\n return value;\n });\n }\n stats() {\n return {\n inBytes: this.protocol.inBytes,\n outBytes: this.protocol.outBytes,\n inMsgs: this.protocol.inMsgs,\n outMsgs: this.protocol.outMsgs\n };\n }\n async jetstreamManager(opts = {}) {\n const adm = new JetStreamManagerImpl(this, opts);\n if (opts.checkAPI !== false) {\n try {\n await adm.getAccountInfo();\n } catch (err) {\n const ne = err;\n if (ne.code === ErrorCode.NoResponders) {\n ne.code = ErrorCode.JetStreamNotEnabled;\n }\n throw ne;\n }\n }\n return adm;\n }\n jetstream(opts = {}) {\n return new JetStreamClientImpl(this, opts);\n }\n getServerVersion() {\n const info = this.info;\n return info ? parseSemVer(info.version) : undefined;\n }\n async rtt() {\n if (!this.protocol._closed && !this.protocol.connected) {\n throw NatsError.errorForCode(ErrorCode.Disconnect);\n }\n const start = Date.now();\n await this.flush();\n return Date.now() - start;\n }\n get features() {\n return this.protocol.features;\n }\n get services() {\n if (!this._services) {\n this._services = new ServicesFactory(this);\n }\n return this._services;\n }\n reconnect() {\n if (this.isClosed()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionClosed));\n }\n if (this.isDraining()) {\n return Promise.reject(NatsError.errorForCode(ErrorCode.ConnectionDraining));\n }\n return this.protocol.reconnect();\n }\n}\nclass ServicesFactory {\n nc;\n constructor(nc){\n this.nc = nc;\n }\n add(config) {\n try {\n const s = new ServiceImpl(this.nc, config);\n return s.start();\n } catch (err) {\n return Promise.reject(err);\n }\n }\n client(opts, prefix) {\n return new ServiceClientImpl(this.nc, opts, prefix);\n }\n}\nclass KvStoredEntryImpl {\n bucket;\n sm;\n prefixLen;\n constructor(bucket, prefixLen, sm){\n this.bucket = bucket;\n this.prefixLen = prefixLen;\n this.sm = sm;\n }\n get key() {\n return this.sm.subject.substring(this.prefixLen);\n }\n get value() {\n return this.sm.data;\n }\n get delta() {\n return 0;\n }\n get created() {\n return this.sm.time;\n }\n get revision() {\n return this.sm.seq;\n }\n get operation() {\n return this.sm.header.get(kvOperationHdr) || \"PUT\";\n }\n get length() {\n const slen = this.sm.header.get(JsHeaders.MessageSizeHdr) || \"\";\n if (slen !== \"\") {\n return parseInt(slen, 10);\n }\n return this.sm.data.length;\n }\n json() {\n return this.sm.json();\n }\n string() {\n return this.sm.string();\n }\n}\nclass KvJsMsgEntryImpl {\n bucket;\n key;\n sm;\n constructor(bucket, key, sm){\n this.bucket = bucket;\n this.key = key;\n this.sm = sm;\n }\n get value() {\n return this.sm.data;\n }\n get created() {\n return new Date(millis(this.sm.info.timestampNanos));\n }\n get revision() {\n return this.sm.seq;\n }\n get operation() {\n return this.sm.headers?.get(kvOperationHdr) || \"PUT\";\n }\n get delta() {\n return this.sm.info.pending;\n }\n get length() {\n const slen = this.sm.headers?.get(JsHeaders.MessageSizeHdr) || \"\";\n if (slen !== \"\") {\n return parseInt(slen, 10);\n }\n return this.sm.data.length;\n }\n json() {\n return this.sm.json();\n }\n string() {\n return this.sm.string();\n }\n}\nclass JetStreamSubscriptionImpl extends TypedSubscription {\n js;\n monitor;\n constructor(js, subject, opts){\n super(js.nc, subject, opts);\n this.js = js;\n this.monitor = null;\n this.sub.closed.then(()=>{\n if (this.monitor) {\n this.monitor.cancel();\n }\n });\n }\n set info(info) {\n this.sub.info = info;\n }\n get info() {\n return this.sub.info;\n }\n _resetOrderedConsumer(sseq) {\n if (this.info === null || this.sub.isClosed()) {\n return;\n }\n const newDeliver = createInbox(this.js.nc.options.inboxPrefix);\n const nci = this.js.nc;\n nci._resub(this.sub, newDeliver);\n const info = this.info;\n info.config.name = nuid.next();\n info.ordered_consumer_sequence.delivery_seq = 0;\n info.flow_control.heartbeat_count = 0;\n info.flow_control.fc_count = 0;\n info.flow_control.consumer_restarts++;\n info.deliver = newDeliver;\n info.config.deliver_subject = newDeliver;\n info.config.deliver_policy = DeliverPolicy.StartSequence;\n info.config.opt_start_seq = sseq;\n const req = {};\n req.stream_name = this.info.stream;\n req.config = info.config;\n const subj = `${info.api.prefix}.CONSUMER.CREATE.${info.stream}`;\n this.js._request(subj, req, {\n retries: -1\n }).then((v)=>{\n const ci = v;\n const jinfo = this.sub.info;\n jinfo.last = ci;\n this.info.config = ci.config;\n this.info.name = ci.name;\n }).catch((err)=>{\n const nerr = new NatsError(`unable to recreate ordered consumer ${info.stream} at seq ${sseq}`, ErrorCode.RequestError, err);\n this.sub.callback(nerr, {});\n });\n }\n _maybeSetupHbMonitoring() {\n const ns = this.info?.config?.idle_heartbeat || 0;\n if (ns) {\n this._setupHbMonitoring(millis(ns));\n }\n }\n _setupHbMonitoring(millis, cancelAfter = 0) {\n const opts = {\n cancelAfter: 0,\n maxOut: 2\n };\n if (cancelAfter) {\n opts.cancelAfter = cancelAfter;\n }\n const sub = this.sub;\n const handler = (v)=>{\n const msg = newJsErrorMsg(409, `${Js409Errors.IdleHeartbeatMissed}: ${v}`, this.sub.subject);\n const ordered = this.info?.ordered;\n if (!ordered) {\n this.sub.callback(null, msg);\n } else {\n if (!this.js.nc.protocol.connected) {\n return false;\n }\n const seq = this.info?.ordered_consumer_sequence?.stream_seq || 0;\n this._resetOrderedConsumer(seq + 1);\n this.monitor?.restart();\n return false;\n }\n return !sub.noIterator;\n };\n this.monitor = new IdleHeartbeatMonitor(millis, handler, opts);\n }\n _checkHbOrderConsumer(msg) {\n const rm = msg.headers.get(JsHeaders.ConsumerStalledHdr);\n if (rm !== \"\") {\n const nci = this.js.nc;\n nci.publish(rm);\n }\n const lastDelivered = parseInt(msg.headers.get(JsHeaders.LastConsumerSeqHdr), 10);\n const ordered = this.info.ordered_consumer_sequence;\n this.info.flow_control.heartbeat_count++;\n if (lastDelivered !== ordered.delivery_seq) {\n this._resetOrderedConsumer(ordered.stream_seq + 1);\n }\n return false;\n }\n _checkOrderedConsumer(jm) {\n const ordered = this.info.ordered_consumer_sequence;\n const sseq = jm.info.streamSequence;\n const dseq = jm.info.deliverySequence;\n if (dseq != ordered.delivery_seq + 1) {\n this._resetOrderedConsumer(ordered.stream_seq + 1);\n return false;\n }\n ordered.delivery_seq = dseq;\n ordered.stream_seq = sseq;\n return true;\n }\n async destroy() {\n if (!this.isClosed()) {\n await this.drain();\n }\n const jinfo = this.sub.info;\n const name = jinfo.config.durable_name || jinfo.name;\n const subj = `${jinfo.api.prefix}.CONSUMER.DELETE.${jinfo.stream}.${name}`;\n await jinfo.api._request(subj);\n }\n async consumerInfo() {\n const jinfo = this.sub.info;\n const name = jinfo.config.durable_name || jinfo.name;\n const subj = `${jinfo.api.prefix}.CONSUMER.INFO.${jinfo.stream}.${name}`;\n const ci = await jinfo.api._request(subj);\n jinfo.last = ci;\n return ci;\n }\n}\nclass JetStreamPullSubscriptionImpl extends JetStreamSubscriptionImpl {\n constructor(js, subject, opts){\n super(js, subject, opts);\n }\n pull(opts = {\n batch: 1\n }) {\n const { stream, config, name } = this.sub.info;\n const consumer = config.durable_name ?? name;\n const args = {};\n args.batch = opts.batch || 1;\n args.no_wait = opts.no_wait || false;\n if ((opts.max_bytes ?? 0) > 0) {\n const fv = this.js.nc.features.get(Feature.JS_PULL_MAX_BYTES);\n if (!fv.ok) {\n throw new Error(`max_bytes is only supported on servers ${fv.min} or better`);\n }\n args.max_bytes = opts.max_bytes;\n }\n let expires = 0;\n if (opts.expires && opts.expires > 0) {\n expires = opts.expires;\n args.expires = nanos(expires);\n }\n let hb = 0;\n if (opts.idle_heartbeat && opts.idle_heartbeat > 0) {\n hb = opts.idle_heartbeat;\n args.idle_heartbeat = nanos(hb);\n }\n if (hb && expires === 0) {\n throw new Error(\"idle_heartbeat requires expires\");\n }\n if (hb > expires) {\n throw new Error(\"expires must be greater than idle_heartbeat\");\n }\n if (this.info) {\n if (this.monitor) {\n this.monitor.cancel();\n }\n if (expires && hb) {\n if (!this.monitor) {\n this._setupHbMonitoring(hb, expires);\n } else {\n this.monitor._change(hb, expires);\n }\n }\n const api = this.info.api;\n const subj = `${api.prefix}.CONSUMER.MSG.NEXT.${stream}.${consumer}`;\n const reply = this.sub.subject;\n api.nc.publish(subj, api.jc.encode(args), {\n reply: reply\n });\n }\n }\n}\nfunction msgAdapter(iterator, ackTimeout) {\n if (iterator) {\n return iterMsgAdapter(ackTimeout);\n } else {\n return cbMsgAdapter(ackTimeout);\n }\n}\nfunction cbMsgAdapter(ackTimeout) {\n return (err, msg)=>{\n if (err) {\n return [\n err,\n null\n ];\n }\n err = checkJsError(msg);\n if (err) {\n return [\n err,\n null\n ];\n }\n return [\n null,\n toJsMsg(msg, ackTimeout)\n ];\n };\n}\nfunction iterMsgAdapter(ackTimeout) {\n return (err, msg)=>{\n if (err) {\n return [\n err,\n null\n ];\n }\n const ne = checkJsError(msg);\n if (ne !== null) {\n return [\n hideNonTerminalJsErrors(ne),\n null\n ];\n }\n return [\n null,\n toJsMsg(msg, ackTimeout)\n ];\n };\n}\nfunction hideNonTerminalJsErrors(ne) {\n if (ne !== null) {\n switch(ne.code){\n case ErrorCode.JetStream404NoMessages:\n case ErrorCode.JetStream408RequestTimeout:\n return null;\n case ErrorCode.JetStream409:\n if (isTerminal409(ne)) {\n return ne;\n }\n return null;\n default:\n return ne;\n }\n }\n return null;\n}\nfunction autoAckJsMsg(data) {\n if (data) {\n data.ack();\n }\n}\nfunction parseInfo(s) {\n const tokens = s.split(\".\");\n if (tokens.length === 9) {\n tokens.splice(2, 0, \"_\", \"\");\n }\n if (tokens.length < 11 || tokens[0] !== \"$JS\" || tokens[1] !== \"ACK\") {\n throw new Error(`not js message`);\n }\n const di = {};\n di.domain = tokens[2] === \"_\" ? \"\" : tokens[2];\n di.account_hash = tokens[3];\n di.stream = tokens[4];\n di.consumer = tokens[5];\n di.deliveryCount = parseInt(tokens[6], 10);\n di.redeliveryCount = di.deliveryCount;\n di.redelivered = di.deliveryCount > 1;\n di.streamSequence = parseInt(tokens[7], 10);\n di.deliverySequence = parseInt(tokens[8], 10);\n di.timestampNanos = parseInt(tokens[9], 10);\n di.pending = parseInt(tokens[10], 10);\n return di;\n}\nclass JsMsgImpl {\n msg;\n di;\n didAck;\n timeout;\n constructor(msg, timeout){\n this.msg = msg;\n this.didAck = false;\n this.timeout = timeout;\n }\n get subject() {\n return this.msg.subject;\n }\n get sid() {\n return this.msg.sid;\n }\n get data() {\n return this.msg.data;\n }\n get headers() {\n return this.msg.headers;\n }\n get info() {\n if (!this.di) {\n this.di = parseInfo(this.reply);\n }\n return this.di;\n }\n get redelivered() {\n return this.info.deliveryCount > 1;\n }\n get reply() {\n return this.msg.reply || \"\";\n }\n get seq() {\n return this.info.streamSequence;\n }\n doAck(payload) {\n if (!this.didAck) {\n this.didAck = !this.isWIP(payload);\n this.msg.respond(payload);\n }\n }\n isWIP(p) {\n return p.length === 4 && p[0] === WPI[0] && p[1] === WPI[1] && p[2] === WPI[2] && p[3] === WPI[3];\n }\n async ackAck(opts) {\n opts = opts || {};\n opts.timeout = opts.timeout || this.timeout;\n const d = deferred();\n if (!this.didAck) {\n this.didAck = true;\n if (this.msg.reply) {\n const mi = this.msg;\n const proto = mi.publisher;\n const trace = !(proto.options?.noAsyncTraces || false);\n const r = new RequestOne(proto.muxSubscriptions, this.msg.reply, {\n timeout: opts.timeout\n }, trace);\n proto.request(r);\n try {\n proto.publish(this.msg.reply, ACK, {\n reply: `${proto.muxSubscriptions.baseInbox}${r.token}`\n });\n } catch (err) {\n r.cancel(err);\n }\n try {\n await Promise.race([\n r.timer,\n r.deferred\n ]);\n d.resolve(true);\n } catch (err) {\n r.cancel(err);\n d.reject(err);\n }\n } else {\n d.resolve(false);\n }\n } else {\n d.resolve(false);\n }\n return d;\n }\n ack() {\n this.doAck(ACK);\n }\n nak(millis) {\n let payload = NAK;\n if (millis) {\n payload = StringCodec().encode(`-NAK ${JSON.stringify({\n delay: nanos(millis)\n })}`);\n }\n this.doAck(payload);\n }\n working() {\n this.doAck(WPI);\n }\n next(subj, opts = {\n batch: 1\n }) {\n const args = {};\n args.batch = opts.batch || 1;\n args.no_wait = opts.no_wait || false;\n if (opts.expires && opts.expires > 0) {\n args.expires = nanos(opts.expires);\n }\n const data = JSONCodec().encode(args);\n const payload = DataBuffer.concat(NXT, SPACE, data);\n const reqOpts = subj ? {\n reply: subj\n } : undefined;\n this.msg.respond(payload, reqOpts);\n }\n term(reason = \"\") {\n let term = TERM;\n if (reason?.length > 0) {\n term = StringCodec().encode(`+TERM ${reason}`);\n }\n this.doAck(term);\n }\n json() {\n return this.msg.json();\n }\n string() {\n return this.msg.string();\n }\n}\nexport { checkJsError as checkJsError, isFlowControlMsg as isFlowControlMsg, isHeartbeatMsg as isHeartbeatMsg };\nexport { AckPolicy as AckPolicy, AdvisoryKind as AdvisoryKind, ConsumerDebugEvents as ConsumerDebugEvents, ConsumerEvents as ConsumerEvents, DeliverPolicy as DeliverPolicy, DirectMsgHeaders as DirectMsgHeaders, DiscardPolicy as DiscardPolicy, JsHeaders as JsHeaders, KvWatchInclude as KvWatchInclude, ReplayPolicy as ReplayPolicy, RepublishHeaders as RepublishHeaders, RetentionPolicy as RetentionPolicy, StorageType as StorageType, StoreCompression as StoreCompression };\nexport { consumerOpts as consumerOpts };\nconst VERSION = \"1.30.3\";\nconst LANG = \"nats.ws\";\nclass WsTransport {\n version;\n lang;\n closeError;\n connected;\n done;\n socket;\n options;\n socketClosed;\n encrypted;\n peeked;\n yields;\n signal;\n closedNotification;\n constructor(){\n this.version = VERSION;\n this.lang = LANG;\n this.connected = false;\n this.done = false;\n this.socketClosed = false;\n this.encrypted = false;\n this.peeked = false;\n this.yields = [];\n this.signal = deferred();\n this.closedNotification = deferred();\n }\n async connect(server, options) {\n const connected = false;\n const connLock = deferred();\n if (options.tls) {\n connLock.reject(new NatsError(\"tls\", ErrorCode.InvalidOption));\n return connLock;\n }\n this.options = options;\n const u = server.src;\n if (options.wsFactory) {\n const { socket, encrypted } = await options.wsFactory(server.src, options);\n this.socket = socket;\n this.encrypted = encrypted;\n } else {\n this.encrypted = u.indexOf(\"wss://\") === 0;\n this.socket = new WebSocket(u);\n }\n this.socket.binaryType = \"arraybuffer\";\n this.socket.onopen = ()=>{\n if (this.isDiscarded()) {\n return;\n }\n };\n this.socket.onmessage = (me)=>{\n if (this.isDiscarded()) {\n return;\n }\n this.yields.push(new Uint8Array(me.data));\n if (this.peeked) {\n this.signal.resolve();\n return;\n }\n const t = DataBuffer.concat(...this.yields);\n const pm = extractProtocolMessage(t);\n if (pm !== \"\") {\n const m = INFO.exec(pm);\n if (!m) {\n if (options.debug) {\n console.error(\"!!!\", render(t));\n }\n connLock.reject(new Error(\"unexpected response from server\"));\n return;\n }\n try {\n const info = JSON.parse(m[1]);\n checkOptions(info, this.options);\n this.peeked = true;\n this.connected = true;\n this.signal.resolve();\n connLock.resolve();\n } catch (err) {\n connLock.reject(err);\n return;\n }\n }\n };\n this.socket.onclose = (evt)=>{\n if (this.isDiscarded()) {\n return;\n }\n this.socketClosed = true;\n let reason;\n if (this.done) return;\n if (!evt.wasClean) {\n reason = new Error(evt.reason);\n }\n this._closed(reason);\n };\n this.socket.onerror = (e)=>{\n if (this.isDiscarded()) {\n return;\n }\n const evt = e;\n const err = new NatsError(evt.message, ErrorCode.Unknown, new Error(evt.error));\n if (!connected) {\n connLock.reject(err);\n } else {\n this._closed(err);\n }\n };\n return connLock;\n }\n disconnect() {\n this._closed(undefined, true);\n }\n async _closed(err, internal = true) {\n if (this.isDiscarded()) {\n return;\n }\n if (!this.connected) return;\n if (this.done) return;\n this.closeError = err;\n if (!err) {\n while(!this.socketClosed && this.socket.bufferedAmount > 0){\n await delay(100);\n }\n }\n this.done = true;\n try {\n this.socket.close(err ? 1002 : 1000, err ? err.message : undefined);\n } catch (err) {}\n if (internal) {\n this.closedNotification.resolve(err);\n }\n }\n get isClosed() {\n return this.done;\n }\n [Symbol.asyncIterator]() {\n return this.iterate();\n }\n async *iterate() {\n while(true){\n if (this.isDiscarded()) {\n return;\n }\n if (this.yields.length === 0) {\n await this.signal;\n }\n const yields = this.yields;\n this.yields = [];\n for(let i = 0; i < yields.length; i++){\n if (this.options.debug) {\n console.info(`> ${render(yields[i])}`);\n }\n yield yields[i];\n }\n if (this.done) {\n break;\n } else if (this.yields.length === 0) {\n yields.length = 0;\n this.yields = yields;\n this.signal = deferred();\n }\n }\n }\n isEncrypted() {\n return this.connected && this.encrypted;\n }\n send(frame) {\n if (this.isDiscarded()) {\n return;\n }\n try {\n this.socket.send(frame.buffer);\n if (this.options.debug) {\n console.info(`< ${render(frame)}`);\n }\n return;\n } catch (err) {\n if (this.options.debug) {\n console.error(`!!! ${render(frame)}: ${err}`);\n }\n }\n }\n close(err) {\n return this._closed(err, false);\n }\n closed() {\n return this.closedNotification;\n }\n isDiscarded() {\n if (this.done) {\n this.discard();\n return true;\n }\n return false;\n }\n discard() {\n this.done = true;\n try {\n this.socket?.close();\n } catch (_err) {}\n }\n}\nfunction wsUrlParseFn(u, encrypted) {\n const ut = /^(.*:\\/\\/)(.*)/;\n if (!ut.test(u)) {\n if (typeof encrypted === \"boolean\") {\n u = `${encrypted === true ? \"https\" : \"http\"}://${u}`;\n } else {\n u = `https://${u}`;\n }\n }\n let url = new URL(u);\n const srcProto = url.protocol.toLowerCase();\n if (srcProto === \"ws:\") {\n encrypted = false;\n }\n if (srcProto === \"wss:\") {\n encrypted = true;\n }\n if (srcProto !== \"https:\" && srcProto !== \"http\") {\n u = u.replace(/^(.*:\\/\\/)(.*)/gm, \"$2\");\n url = new URL(`http://${u}`);\n }\n let protocol;\n let port;\n const host = url.hostname;\n const path = url.pathname;\n const search = url.search || \"\";\n switch(srcProto){\n case \"http:\":\n case \"ws:\":\n case \"nats:\":\n port = url.port || \"80\";\n protocol = \"ws:\";\n break;\n case \"https:\":\n case \"wss:\":\n case \"tls:\":\n port = url.port || \"443\";\n protocol = \"wss:\";\n break;\n default:\n port = url.port || encrypted === true ? \"443\" : \"80\";\n protocol = encrypted === true ? \"wss:\" : \"ws:\";\n break;\n }\n return `${protocol}//${host}:${port}${path}${search}`;\n}\nfunction connect(opts = {}) {\n setTransportFactory({\n defaultPort: 443,\n urlParseFn: wsUrlParseFn,\n factory: ()=>{\n return new WsTransport();\n }\n });\n return NatsConnectionImpl.connect(opts);\n}\nexport { connect as connect };\n","/// <reference types=\"vite/client\" />\n\n/**\n * NATS WebSocket connection configuration.\n *\n * Override via environment variables:\n * - VITE_NATS_WS_URL: WebSocket endpoint (default: ws://localhost:9222)\n * - VITE_NATS_TOKEN: Authentication token (default: dev_api_secret)\n */\nexport const NATS_WS_URL = import.meta.env.VITE_NATS_WS_URL || 'ws://localhost:9222';\nexport const NATS_TOKEN = import.meta.env.VITE_NATS_TOKEN || 'dev_api_secret';\nexport const NATS_SUBJECT_PREFIX = 'lt.events';\n","/**\n * Match a NATS-style subject against a pattern with `>` (match-rest) and `*` (single-token) wildcards.\n *\n * Used by both NATS and socket.io transports to dispatch events to\n * pattern-based subscribers.\n *\n * Examples:\n * - `lt.events.task.created` matches `lt.events.>`\n * - `lt.events.task.created` matches `lt.events.task.*`\n * - `lt.events.task.created` matches `lt.events.task.created`\n * - `lt.events.task.created` does NOT match `lt.events.escalation.*`\n */\nexport function subjectMatchesPattern(subject: string, pattern: string): boolean {\n const subjectTokens = subject.split('.');\n const patternTokens = pattern.split('.');\n\n for (let i = 0; i < patternTokens.length; i++) {\n const pt = patternTokens[i];\n\n if (pt === '>') return true; // match-rest: everything from here matches\n if (i >= subjectTokens.length) return false; // pattern longer than subject\n if (pt !== '*' && pt !== subjectTokens[i]) return false; // literal mismatch\n }\n\n // Pattern consumed — subject must also be fully consumed\n return subjectTokens.length === patternTokens.length;\n}\n","import { createContext, useContext, useEffect, useRef } from 'react';\nimport type { NatsEventHandler } from '../lib/nats/types';\n\n/**\n * Unified event context — both NatsProvider and SocketIOProvider\n * write to this so consumer hooks work regardless of transport.\n */\nexport interface EventContextValue {\n connected: boolean;\n subscribe: (pattern: string, handler: NatsEventHandler) => () => void;\n}\n\nexport const EventContext = createContext<EventContextValue>({\n connected: false,\n subscribe: () => () => {},\n});\n\n/** Read connection status from whichever transport is active. */\nexport function useEventStatus(): { connected: boolean } {\n const { connected } = useContext(EventContext);\n return { connected };\n}\n\n/** Subscribe to events matching a pattern. Works with any transport. */\nexport function useEventSubscription(pattern: string, handler: NatsEventHandler): void {\n const { subscribe } = useContext(EventContext);\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n useEffect(() => {\n const stableHandler: NatsEventHandler = (event) => handlerRef.current(event);\n return subscribe(pattern, stableHandler);\n }, [subscribe, pattern]);\n}\n","import {\n useEffect,\n useRef,\n useCallback,\n createContext,\n useContext,\n useState,\n type ReactNode,\n} from 'react';\nimport { connect, type NatsConnection, type Subscription, StringCodec } from 'nats.ws';\n\nimport { NATS_WS_URL, NATS_TOKEN } from '../lib/nats/config';\nimport type { NatsLTEvent, NatsEventHandler } from '../lib/nats/types';\nimport { subjectMatchesPattern } from '../lib/events/matching';\nimport { EventContext } from './useEventContext';\n\n// ── Context ─────────────────────────────────────────────────────────────────\n\ninterface NatsContextValue {\n /** Whether the WebSocket is connected to NATS. */\n connected: boolean;\n /**\n * Register a callback for events matching a subject pattern.\n * Returns an unsubscribe function. Subscriptions are ref-stable.\n *\n * @param pattern — NATS subject pattern (e.g. `lt.events.task.>` or `lt.events.>`)\n * @param handler — called for each matching event\n */\n subscribe: (pattern: string, handler: NatsEventHandler) => () => void;\n}\n\nconst NatsContext = createContext<NatsContextValue>({\n connected: false,\n subscribe: () => () => {},\n});\n\n// ── Hooks ───────────────────────────────────────────────────────────────────\n\n/**\n * Read the NATS connection status from the nearest `NatsProvider`.\n */\nexport function useNatsStatus(): { connected: boolean } {\n const { connected } = useContext(NatsContext);\n return { connected };\n}\n\n/**\n * Subscribe to NATS events matching a subject pattern.\n *\n * The handler is called for every event whose NATS subject matches `pattern`.\n * The subscription is automatically cleaned up when the component unmounts or\n * when the pattern/handler changes.\n *\n * @example\n * ```tsx\n * // Subscribe to all task events\n * useNatsSubscription('lt.events.task.>', (event) => {\n * console.log('Task event:', event.type, event.taskId);\n * });\n *\n * // Subscribe to a specific workflow's events\n * useNatsSubscription(`lt.events.workflow.>`, (event) => {\n * if (event.workflowId === myId) { ... }\n * });\n * ```\n */\nexport function useNatsSubscription(pattern: string, handler: NatsEventHandler): void {\n const { subscribe } = useContext(NatsContext);\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n useEffect(() => {\n const stableHandler: NatsEventHandler = (event) => handlerRef.current(event);\n return subscribe(pattern, stableHandler);\n }, [subscribe, pattern]);\n}\n\n// ── Provider ────────────────────────────────────────────────────────────────\n\nconst sc = StringCodec();\n\n/**\n * Maintains a single NATS WebSocket connection shared across the app.\n *\n * Responsibilities:\n * 1. Connect to NATS via WebSocket with auto-reconnect\n * 2. Subscribe to `lt.events.>` and dispatch to per-page subscribers\n *\n * Cache invalidation is handled by per-page hooks in `useNatsEvents.ts`.\n */\nexport function NatsProvider({ children }: { children: ReactNode }) {\n const ncRef = useRef<NatsConnection | null>(null);\n const subRef = useRef<Subscription | null>(null);\n const [connected, setConnected] = useState(false);\n const reconnectTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Listener registry: pattern → Set<handler>\n const listenersRef = useRef<Map<string, Set<NatsEventHandler>>>(new Map());\n\n const subscribe = useCallback((pattern: string, handler: NatsEventHandler) => {\n const map = listenersRef.current;\n if (!map.has(pattern)) {\n map.set(pattern, new Set());\n }\n map.get(pattern)!.add(handler);\n\n return () => {\n const set = map.get(pattern);\n if (set) {\n set.delete(handler);\n if (set.size === 0) map.delete(pattern);\n }\n };\n }, []);\n\n const dispatchToListeners = useCallback((subject: string, event: NatsLTEvent) => {\n for (const [pattern, handlers] of listenersRef.current) {\n if (subjectMatchesPattern(subject, pattern)) {\n for (const handler of handlers) {\n try {\n handler(event);\n } catch {\n // swallow handler errors\n }\n }\n }\n }\n }, []);\n\n const connectNats = useCallback(async () => {\n try {\n if (ncRef.current) return;\n\n const nc = await connect({\n servers: NATS_WS_URL,\n token: NATS_TOKEN,\n reconnect: true,\n maxReconnectAttempts: -1,\n reconnectTimeWait: 2000,\n });\n\n ncRef.current = nc;\n setConnected(true);\n\n // Subscribe to all Long Tail events and mesh control plane\n const sub = nc.subscribe('lt.>');\n subRef.current = sub;\n\n (async () => {\n for await (const msg of sub) {\n try {\n const event: NatsLTEvent = JSON.parse(sc.decode(msg.data));\n dispatchToListeners(msg.subject, event);\n } catch {\n // ignore malformed messages\n }\n }\n })();\n\n // Monitor connection status\n (async () => {\n for await (const s of nc.status()) {\n if (s.type === 'disconnect' || s.type === 'error') {\n setConnected(false);\n } else if (s.type === 'reconnect') {\n setConnected(true);\n }\n }\n })();\n } catch {\n setConnected(false);\n reconnectTimer.current = setTimeout(connectNats, 3000);\n }\n }, [dispatchToListeners]);\n\n useEffect(() => {\n connectNats();\n\n return () => {\n if (reconnectTimer.current) clearTimeout(reconnectTimer.current);\n if (subRef.current) subRef.current.unsubscribe();\n if (ncRef.current) {\n ncRef.current.close().catch(() => {});\n ncRef.current = null;\n }\n setConnected(false);\n };\n }, [connectNats]);\n\n return (\n <NatsContext.Provider value={{ connected, subscribe }}>\n <EventContext.Provider value={{ connected, subscribe }}>\n {children}\n </EventContext.Provider>\n </NatsContext.Provider>\n );\n}\n\n// Re-export subject matching from shared util so existing imports continue to work\nexport { subjectMatchesPattern };\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + (content || \"\"));\n };\n return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n if (data instanceof Uint8Array) {\n return data;\n }\n else if (data instanceof ArrayBuffer) {\n return new Uint8Array(data);\n }\n else {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n if (withNativeBlob && packet.data instanceof Blob) {\n return packet.data.arrayBuffer().then(toArray).then(callback);\n }\n else if (withNativeArrayBuffer &&\n (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n return callback(toArray(packet.data));\n }\n encodePacket(packet, false, (encoded) => {\n if (!TEXT_ENCODER) {\n TEXT_ENCODER = new TextEncoder();\n }\n callback(TEXT_ENCODER.encode(encoded));\n });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType),\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1),\n }\n : {\n type: PACKET_TYPES_REVERSE[type],\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n if (data instanceof Blob) {\n // from WebSocket + binaryType \"blob\"\n return data;\n }\n else {\n // from HTTP long-polling or WebTransport\n return new Blob([data]);\n }\n case \"arraybuffer\":\n default:\n if (data instanceof ArrayBuffer) {\n // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n return data;\n }\n else {\n // from WebTransport (Uint8Array)\n return data.buffer;\n }\n }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, (encodedPacket) => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport function createPacketEncoderStream() {\n return new TransformStream({\n transform(packet, controller) {\n encodePacketToBinary(packet, (encodedPacket) => {\n const payloadLength = encodedPacket.length;\n let header;\n // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n if (payloadLength < 126) {\n header = new Uint8Array(1);\n new DataView(header.buffer).setUint8(0, payloadLength);\n }\n else if (payloadLength < 65536) {\n header = new Uint8Array(3);\n const view = new DataView(header.buffer);\n view.setUint8(0, 126);\n view.setUint16(1, payloadLength);\n }\n else {\n header = new Uint8Array(9);\n const view = new DataView(header.buffer);\n view.setUint8(0, 127);\n view.setBigUint64(1, BigInt(payloadLength));\n }\n // first bit indicates whether the payload is plain text (0) or binary (1)\n if (packet.data && typeof packet.data !== \"string\") {\n header[0] |= 0x80;\n }\n controller.enqueue(header);\n controller.enqueue(encodedPacket);\n });\n },\n });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n if (chunks[0].length === size) {\n return chunks.shift();\n }\n const buffer = new Uint8Array(size);\n let j = 0;\n for (let i = 0; i < size; i++) {\n buffer[i] = chunks[0][j++];\n if (j === chunks[0].length) {\n chunks.shift();\n j = 0;\n }\n }\n if (chunks.length && j < chunks[0].length) {\n chunks[0] = chunks[0].slice(j);\n }\n return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n if (!TEXT_DECODER) {\n TEXT_DECODER = new TextDecoder();\n }\n const chunks = [];\n let state = 0 /* State.READ_HEADER */;\n let expectedLength = -1;\n let isBinary = false;\n return new TransformStream({\n transform(chunk, controller) {\n chunks.push(chunk);\n while (true) {\n if (state === 0 /* State.READ_HEADER */) {\n if (totalLength(chunks) < 1) {\n break;\n }\n const header = concatChunks(chunks, 1);\n isBinary = (header[0] & 0x80) === 0x80;\n expectedLength = header[0] & 0x7f;\n if (expectedLength < 126) {\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n if (totalLength(chunks) < 2) {\n break;\n }\n const headerArray = concatChunks(chunks, 2);\n expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n if (totalLength(chunks) < 8) {\n break;\n }\n const headerArray = concatChunks(chunks, 8);\n const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n const n = view.getUint32(0);\n if (n > Math.pow(2, 53 - 32) - 1) {\n // the maximum safe integer in JavaScript is 2^53 - 1\n controller.enqueue(ERROR_PACKET);\n break;\n }\n expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n state = 3 /* State.READ_PAYLOAD */;\n }\n else {\n if (totalLength(chunks) < expectedLength) {\n break;\n }\n const data = concatChunks(chunks, expectedLength);\n controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n state = 0 /* State.READ_HEADER */;\n }\n if (expectedLength === 0 || expectedLength > maxPayload) {\n controller.enqueue(ERROR_PACKET);\n break;\n }\n }\n },\n });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return (cb) => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n return (Date.now().toString(36).substring(3) +\n Math.random().toString(36).substring(2, 5));\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} opts - options\n * @protected\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.socket = opts.socket;\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n */\n open() {\n this.readyState = \"opening\";\n this.doOpen();\n return this;\n }\n /**\n * Closes the transport.\n */\n close() {\n if (this.readyState === \"opening\" || this.readyState === \"open\") {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n */\n send(packets) {\n if (this.readyState === \"open\") {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n /**\n * Pauses the transport, in order not to lose packets during an upgrade.\n *\n * @param onPause\n */\n pause(onPause) { }\n createUri(schema, query = {}) {\n return (schema +\n \"://\" +\n this._hostname() +\n this._port() +\n this.opts.path +\n this._query(query));\n }\n _hostname() {\n const hostname = this.opts.hostname;\n return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n }\n _port() {\n if (this.opts.port &&\n ((this.opts.secure && Number(this.opts.port) !== 443) ||\n (!this.opts.secure && Number(this.opts.port) !== 80))) {\n return \":\" + this.opts.port;\n }\n else {\n return \"\";\n }\n }\n _query(query) {\n const encodedQuery = encode(query);\n return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this._polling = false;\n }\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @protected\n */\n doOpen() {\n this._poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n * @package\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this._polling || !this.writable) {\n let total = 0;\n if (this._polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @private\n */\n _poll() {\n this._polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @protected\n */\n onData(data) {\n const callback = (packet) => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this._polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this._poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @protected\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} packets - data packets\n * @protected\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, (data) => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"https\" : \"http\";\n const query = this.query || {};\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n }\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data,\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @package\n */\n constructor(createRequest, uri, opts) {\n super();\n this.createRequest = createRequest;\n installTimerFunctions(this, opts);\n this._opts = opts;\n this._method = opts.method || \"GET\";\n this._uri = uri;\n this._data = undefined !== opts.data ? opts.data : null;\n this._create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @private\n */\n _create() {\n var _a;\n const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this._opts.xd;\n const xhr = (this._xhr = this.createRequest(opts));\n try {\n xhr.open(this._method, this._uri, true);\n try {\n if (this._opts.extraHeaders) {\n // @ts-ignore\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this._opts.extraHeaders) {\n if (this._opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this._method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this._opts.withCredentials;\n }\n if (this._opts.requestTimeout) {\n xhr.timeout = this._opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n var _a;\n if (xhr.readyState === 3) {\n (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n // @ts-ignore\n xhr.getResponseHeader(\"set-cookie\"));\n }\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this._onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this._data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this._onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this._index = Request.requestsCount++;\n Request.requests[this._index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @private\n */\n _onError(err) {\n this.emitReserved(\"error\", err, this._xhr);\n this._cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @private\n */\n _cleanup(fromError) {\n if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n return;\n }\n this._xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this._xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this._index];\n }\n this._xhr = null;\n }\n /**\n * Called upon load.\n *\n * @private\n */\n _onLoad() {\n const data = this._xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this._cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @package\n */\n abort() {\n this._cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\nconst hasXHR2 = (function () {\n const xhr = newRequest({\n xdomain: false,\n });\n return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n constructor(opts) {\n super(opts);\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd }, this.opts);\n return new Request(newRequest, this.uri(), opts);\n }\n}\nfunction newRequest(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n get name() {\n return \"websocket\";\n }\n doOpen() {\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws = this.createSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = (closeEvent) => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent,\n });\n this.ws.onmessage = (ev) => this.onData(ev.data);\n this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n }\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, (data) => {\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n this.doWrite(packet, data);\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.onerror = () => { };\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @private\n */\n uri() {\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n const query = this.query || {};\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = randomString();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n createSocket(uri, protocols, opts) {\n return !isReactNative\n ? protocols\n ? new WebSocketCtor(uri, protocols)\n : new WebSocketCtor(uri)\n : new WebSocketCtor(uri, protocols, opts);\n }\n doWrite(_packet, data) {\n this.ws.send(data);\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n try {\n // @ts-ignore\n this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this._transport.closed\n .then(() => {\n this.onClose();\n })\n .catch((err) => {\n this.onError(\"webtransport error\", err);\n });\n // note: we could have used async/await, but that would require some additional polyfills\n this._transport.ready.then(() => {\n this._transport.createBidirectionalStream().then((stream) => {\n const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n const reader = stream.readable.pipeThrough(decoderStream).getReader();\n const encoderStream = createPacketEncoderStream();\n encoderStream.readable.pipeTo(stream.writable);\n this._writer = encoderStream.writable.getWriter();\n const read = () => {\n reader\n .read()\n .then(({ done, value }) => {\n if (done) {\n return;\n }\n this.onPacket(value);\n read();\n })\n .catch((err) => {\n });\n };\n read();\n const packet = { type: \"open\" };\n if (this.query.sid) {\n packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n }\n this._writer.write(packet).then(() => this.onOpen());\n });\n });\n }\n write(packets) {\n this.writable = false;\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n this._writer.write(packet).then(() => {\n if (lastPacket) {\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n doClose() {\n var _a;\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: XHR,\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n if (str.length > 8000) {\n throw \"URI too long\";\n }\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n // script, so we create one single event listener here which will forward the event to the socket instances\n addEventListener(\"offline\", () => {\n OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri - uri or options\n * @param {Object} opts - options\n */\n constructor(uri, opts) {\n super();\n this.binaryType = defaultBinaryType;\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n this._pingInterval = -1;\n this._pingTimeout = -1;\n this._maxPayload = -1;\n /**\n * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n */\n this._pingTimeoutTime = Infinity;\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n const parsedUri = parse(uri);\n opts.hostname = parsedUri.host;\n opts.secure =\n parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n opts.port = parsedUri.port;\n if (parsedUri.query)\n opts.query = parsedUri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = [];\n this._transportsByName = {};\n opts.transports.forEach((t) => {\n const transportName = t.prototype.name;\n this.transports.push(transportName);\n this._transportsByName[transportName] = t;\n });\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n addTrailingSlash: true,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024,\n },\n transportOptions: {},\n closeOnBeforeunload: false,\n }, opts);\n this.opts.path =\n this.opts.path.replace(/\\/$/, \"\") +\n (this.opts.addTrailingSlash ? \"/\" : \"\");\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n if (withEventListeners) {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this._beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this._offlineEventListener = () => {\n this._onClose(\"transport close\", {\n description: \"network connection lost\",\n });\n };\n OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n }\n }\n if (this.opts.withCredentials) {\n this._cookieJar = createCookieJar();\n }\n this._open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} name - transport name\n * @return {Transport}\n * @private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port,\n }, this.opts.transportOptions[name]);\n return new this._transportsByName[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n _open() {\n if (this.transports.length === 0) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n const transportName = this.opts.rememberUpgrade &&\n SocketWithoutUpgrade.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ? \"websocket\"\n : this.transports[0];\n this.readyState = \"opening\";\n const transport = this.createTransport(transportName);\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this._onDrain.bind(this))\n .on(\"packet\", this._onPacket.bind(this))\n .on(\"error\", this._onError.bind(this))\n .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n }\n /**\n * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n }\n /**\n * Handles a packet.\n *\n * @private\n */\n _onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this._sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n this._resetPingTimeout();\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this._onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this._pingInterval = data.pingInterval;\n this._pingTimeout = data.pingTimeout;\n this._maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this._resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @private\n */\n _resetPingTimeout() {\n this.clearTimeoutFn(this._pingTimeoutTimer);\n const delay = this._pingInterval + this._pingTimeout;\n this._pingTimeoutTime = Date.now() + delay;\n this._pingTimeoutTimer = this.setTimeoutFn(() => {\n this._onClose(\"ping timeout\");\n }, delay);\n if (this.opts.autoUnref) {\n this._pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @private\n */\n _onDrain() {\n this.writeBuffer.splice(0, this._prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this._prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this._getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this._prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n _getWritablePackets() {\n const shouldCheckPayloadSize = this._maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this._maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n *\n * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n * `write()` method then the message would not be buffered by the Socket.IO client.\n *\n * @return {boolean}\n * @private\n */\n /* private */ _hasPingExpired() {\n if (!this._pingTimeoutTime)\n return true;\n const hasExpired = Date.now() > this._pingTimeoutTime;\n if (hasExpired) {\n this._pingTimeoutTime = 0;\n nextTick(() => {\n this._onClose(\"ping timeout\");\n }, this.setTimeoutFn);\n }\n return hasExpired;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n write(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a message. Alias of {@link Socket#write}.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\n */\n send(msg, options, fn) {\n this._sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} type: packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @private\n */\n _sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options,\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n */\n close() {\n const close = () => {\n this._onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @private\n */\n _onError(err) {\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n if (this.opts.tryAllTransports &&\n this.transports.length > 1 &&\n this.readyState === \"opening\") {\n this.transports.shift();\n return this._open();\n }\n this.emitReserved(\"error\", err);\n this._onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @private\n */\n _onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this._pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (withEventListeners) {\n if (this._beforeunloadEventListener) {\n removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this._offlineEventListener) {\n const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n if (i !== -1) {\n OFFLINE_EVENT_LISTENERS.splice(i, 1);\n }\n }\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this._prevBufferLen = 0;\n }\n }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n constructor() {\n super(...arguments);\n this._upgrades = [];\n }\n onOpen() {\n super.onOpen();\n if (\"open\" === this.readyState && this.opts.upgrade) {\n for (let i = 0; i < this._upgrades.length; i++) {\n this._probe(this._upgrades[i]);\n }\n }\n }\n /**\n * Probes a transport.\n *\n * @param {String} name - transport name\n * @private\n */\n _probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n SocketWithoutUpgrade.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", (msg) => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = (err) => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n name !== \"webtransport\") {\n // favor WebTransport\n this.setTimeoutFn(() => {\n if (!failed) {\n transport.open();\n }\n }, 200);\n }\n else {\n transport.open();\n }\n }\n onHandshake(data) {\n this._upgrades = this._filterUpgrades(data.upgrades);\n super.onHandshake(data);\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} upgrades - server upgrades\n * @private\n */\n _filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n for (let i = 0; i < upgrades.length; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n constructor(uri, opts = {}) {\n const o = typeof uri === \"object\" ? uri : opts;\n if (!o.transports ||\n (o.transports && typeof o.transports[0] === \"string\")) {\n o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n .filter((t) => !!t);\n }\n super(uri, o);\n }\n}\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n delete packet.attachments; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n \"connect\", // used on the client side\n \"connect_error\", // used on the client side\n \"disconnect\", // used on both sides\n \"disconnecting\", // used on the server side\n \"newListener\", // used by the Node.js EventEmitter\n \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n return this.encodeAsBinary({\n type: obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK,\n nsp: obj.nsp,\n data: obj.data,\n id: obj.id,\n });\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n */\n constructor(opts) {\n super();\n this.opts = Object.assign({\n reviver: undefined,\n maxAttachments: 10,\n }, typeof opts === \"function\" ? { reviver: opts } : opts);\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n const n = Number(buf);\n if (!isInteger(n) || n < 0) {\n throw new Error(\"Illegal attachments\");\n }\n else if (n > this.opts.maxAttachments) {\n throw new Error(\"too many attachments\");\n }\n p.attachments = n;\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.opts.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n this.reconstructor = null;\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\nfunction isNamespaceValid(nsp) {\n return typeof nsp === \"string\";\n}\n// see https://caniuse.com/mdn-javascript_builtins_number_isinteger\nconst isInteger = Number.isInteger ||\n function (value) {\n return (typeof value === \"number\" &&\n isFinite(value) &&\n Math.floor(value) === value);\n };\nfunction isAckIdValid(id) {\n return id === undefined || isInteger(id);\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}\nfunction isDataValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return payload === undefined || isObject(payload);\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.EVENT:\n return (Array.isArray(payload) &&\n (typeof payload[0] === \"number\" ||\n (typeof payload[0] === \"string\" &&\n RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n case PacketType.ACK:\n return Array.isArray(payload);\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || isObject(payload);\n default:\n return false;\n }\n}\nexport function isPacketValid(packet) {\n return (isNamespaceValid(packet.nsp) &&\n isAckIdValid(packet.id) &&\n isDataValid(packet.type, packet.data));\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n * be transmitted by the server.\n */\n this.recovered = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n /**\n * The queue of packets to be sent with retry in case of failure.\n *\n * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n * @private\n */\n this._queue = [];\n /**\n * A sequence to generate the ID of the {@link QueuedPacket}.\n * @private\n */\n this._queueSeq = 0;\n this.ids = 0;\n /**\n * A map containing acknowledgement handlers.\n *\n * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n *\n * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n * - `const value = await socket.emitWithAck(\"test\")`\n *\n * From those that don't:\n *\n * - `socket.emit(\"test\", (value) => { ... });`\n *\n * In the first case, the handlers will be called with an error when:\n *\n * - the timeout is reached\n * - the socket gets disconnected\n *\n * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n * an acknowledgement from the server.\n *\n * @private\n */\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n this._opts = Object.assign({}, opts);\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n var _a, _b, _c;\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n this._addToQueue(args);\n return this;\n }\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n const discardPacket = this.flags.volatile && !isTransportWritable;\n if (discardPacket) {\n }\n else if (isConnected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n var _a;\n const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n const fn = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, args);\n };\n fn.withError = true;\n this.acks[id] = fn;\n }\n /**\n * Emits an event and waits for an acknowledgement\n *\n * @example\n * // without timeout\n * const response = await socket.emitWithAck(\"hello\", \"world\");\n *\n * // with a specific timeout\n * try {\n * const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n * } catch (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n *\n * @return a Promise that will be fulfilled when the server acknowledges the event\n */\n emitWithAck(ev, ...args) {\n return new Promise((resolve, reject) => {\n const fn = (arg1, arg2) => {\n return arg1 ? reject(arg1) : resolve(arg2);\n };\n fn.withError = true;\n args.push(fn);\n this.emit(ev, ...args);\n });\n }\n /**\n * Add the packet to the queue.\n * @param args\n * @private\n */\n _addToQueue(args) {\n let ack;\n if (typeof args[args.length - 1] === \"function\") {\n ack = args.pop();\n }\n const packet = {\n id: this._queueSeq++,\n tryCount: 0,\n pending: false,\n args,\n flags: Object.assign({ fromQueue: true }, this.flags),\n };\n args.push((err, ...responseArgs) => {\n if (packet !== this._queue[0]) {\n }\n const hasError = err !== null;\n if (hasError) {\n if (packet.tryCount > this._opts.retries) {\n this._queue.shift();\n if (ack) {\n ack(err);\n }\n }\n }\n else {\n this._queue.shift();\n if (ack) {\n ack(null, ...responseArgs);\n }\n }\n packet.pending = false;\n return this._drainQueue();\n });\n this._queue.push(packet);\n this._drainQueue();\n }\n /**\n * Send the first packet of the queue, and wait for an acknowledgement from the server.\n * @param force - whether to resend a packet that has not been acknowledged yet\n *\n * @private\n */\n _drainQueue(force = false) {\n if (!this.connected || this._queue.length === 0) {\n return;\n }\n const packet = this._queue[0];\n if (packet.pending && !force) {\n return;\n }\n packet.pending = true;\n packet.tryCount++;\n this.flags = packet.flags;\n this.emit.apply(this, packet.args);\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this._sendConnectPacket(data);\n });\n }\n else {\n this._sendConnectPacket(this.auth);\n }\n }\n /**\n * Sends a CONNECT packet to initiate the Socket.IO session.\n *\n * @param data\n * @private\n */\n _sendConnectPacket(data) {\n this.packet({\n type: PacketType.CONNECT,\n data: this._pid\n ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n : data,\n });\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n this._clearAcks();\n }\n /**\n * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n * the server.\n *\n * @private\n */\n _clearAcks() {\n Object.keys(this.acks).forEach((id) => {\n const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n if (!isBuffered) {\n // note: handlers that do not accept an error as first argument are ignored here\n const ack = this.acks[id];\n delete this.acks[id];\n if (ack.withError) {\n ack.call(this, new Error(\"socket has been disconnected\"));\n }\n }\n });\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n this.onconnect(packet.data.sid, packet.data.pid);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n this._lastOffset = args[args.length - 1];\n }\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowledgement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (typeof ack !== \"function\") {\n return;\n }\n delete this.acks[packet.id];\n // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n if (ack.withError) {\n packet.data.unshift(null);\n }\n // @ts-ignore\n ack.apply(this, packet.data);\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id, pid) {\n this.id = id;\n this.recovered = pid && this._pid === pid;\n this._pid = pid; // defined only if connection state recovery is enabled\n this.connected = true;\n this.emitBuffered();\n this._drainQueue(true);\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n if (!v) {\n this.skipReconnect = true;\n }\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n const onError = (err) => {\n this.cleanup();\n this._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n this.maybeReconnectOnOpen();\n }\n };\n // emit `error`\n const errorSub = on(socket, \"error\", onError);\n if (false !== this._timeout) {\n const timeout = this._timeout;\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n onError(new Error(\"timeout\"));\n socket.close();\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n // @ts-ignore\n on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n else if (this._autoConnect && !socket.active) {\n socket.connect();\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called when:\n *\n * - the low-level engine is closed\n * - the parser encountered a badly formatted packet\n * - all sockets are disconnected\n *\n * @private\n */\n onclose(reason, description) {\n var _a;\n this.cleanup();\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(() => {\n this.clearTimeoutFn(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","import {\n useEffect,\n useRef,\n useCallback,\n createContext,\n useContext,\n useState,\n type ReactNode,\n} from 'react';\nimport { io, type Socket } from 'socket.io-client';\n\nimport { subjectMatchesPattern } from '../lib/events/matching';\nimport type { NatsLTEvent, NatsEventHandler } from '../lib/nats/types';\nimport { EventContext } from './useEventContext';\n\n// ── Context ─────────────────────────────────────────────────────────────────\n\ninterface SocketIOContextValue {\n /** Whether the socket.io connection is active. */\n connected: boolean;\n /**\n * Register a callback for events matching a subject pattern.\n * Returns an unsubscribe function. Same API as NatsProvider.\n *\n * @param pattern — NATS-style subject pattern (e.g. `lt.events.task.>`)\n * @param handler — called for each matching event\n */\n subscribe: (pattern: string, handler: NatsEventHandler) => () => void;\n}\n\nconst SocketIOContext = createContext<SocketIOContextValue>({\n connected: false,\n subscribe: () => () => {},\n});\n\n// ── Hooks ───────────────────────────────────────────────────────────────────\n\n/**\n * Read the socket.io connection status from the nearest `SocketIOProvider`.\n */\nexport function useSocketIOStatus(): { connected: boolean } {\n const { connected } = useContext(SocketIOContext);\n return { connected };\n}\n\n/**\n * Subscribe to socket.io events matching a subject pattern.\n * Same API as `useNatsSubscription`.\n */\nexport function useSocketIOSubscription(pattern: string, handler: NatsEventHandler): void {\n const { subscribe } = useContext(SocketIOContext);\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n useEffect(() => {\n const stableHandler: NatsEventHandler = (event) => handlerRef.current(event);\n return subscribe(pattern, stableHandler);\n }, [subscribe, pattern]);\n}\n\n// ── Provider ────────────────────────────────────────────────────────────────\n\n/**\n * Maintains a single socket.io connection shared across the app.\n *\n * The server emits events as `lt.events.{type}` (e.g. `lt.events.task.created`).\n * This provider listens for all `lt.events.*` events and dispatches them to\n * registered pattern-based handlers, matching the NatsProvider API.\n */\nexport function SocketIOProvider({ children }: { children: ReactNode }) {\n const socketRef = useRef<Socket | null>(null);\n const [connected, setConnected] = useState(false);\n\n // Listener registry: pattern -> Set<handler>\n const listenersRef = useRef<Map<string, Set<NatsEventHandler>>>(new Map());\n\n const subscribe = useCallback((pattern: string, handler: NatsEventHandler) => {\n const map = listenersRef.current;\n if (!map.has(pattern)) {\n map.set(pattern, new Set());\n }\n map.get(pattern)!.add(handler);\n\n return () => {\n const set = map.get(pattern);\n if (set) {\n set.delete(handler);\n if (set.size === 0) map.delete(pattern);\n }\n };\n }, []);\n\n const dispatchToListeners = useCallback((subject: string, event: NatsLTEvent) => {\n for (const [pattern, handlers] of listenersRef.current) {\n if (subjectMatchesPattern(subject, pattern)) {\n for (const handler of handlers) {\n try {\n handler(event);\n } catch {\n // swallow handler errors\n }\n }\n }\n }\n }, []);\n\n useEffect(() => {\n // Connect to same origin. Works for both:\n // - Production: dashboard served from same Express server\n // - Dev (Vite): proxy in vite.config.ts forwards /socket.io to backend\n const socket = io({\n path: '/socket.io',\n transports: ['polling', 'websocket'],\n upgrade: true,\n reconnection: true,\n reconnectionAttempts: Infinity,\n reconnectionDelay: 2000,\n });\n\n socketRef.current = socket;\n console.log('[lt-socketio] connecting...');\n\n socket.on('connect', () => {\n console.log('[lt-socketio] connected, id:', socket.id);\n setConnected(true);\n });\n\n socket.on('disconnect', (reason) => {\n console.log('[lt-socketio] disconnected:', reason);\n setConnected(false);\n });\n\n socket.on('connect_error', (err) => {\n console.warn('[lt-socketio] connect error:', err.message);\n setConnected(false);\n });\n\n // Listen for all Long Tail events.\n // The server emits events with the full subject as the event name,\n // e.g. socket.emit('lt.events.task.created', payload).\n // We use a catch-all listener to handle any lt.* event.\n socket.onAny((eventName: string, data: unknown) => {\n if (!eventName.startsWith('lt.')) return;\n\n try {\n const event: NatsLTEvent = typeof data === 'string' ? JSON.parse(data) : data as NatsLTEvent;\n dispatchToListeners(eventName, event);\n } catch {\n // ignore malformed messages\n }\n });\n\n return () => {\n socket.removeAllListeners();\n socket.disconnect();\n socketRef.current = null;\n setConnected(false);\n };\n }, [dispatchToListeners]);\n\n return (\n <SocketIOContext.Provider value={{ connected, subscribe }}>\n <EventContext.Provider value={{ connected, subscribe }}>\n {children}\n </EventContext.Provider>\n </SocketIOContext.Provider>\n );\n}\n","import { useEffect, useState, type ReactNode } from 'react';\n\nimport { NatsProvider } from './useNats';\nimport { SocketIOProvider } from './useSocketIO';\n\ntype Transport = 'nats' | 'socketio' | null;\n\n/**\n * Auto-detecting event transport provider.\n *\n * On mount, fetches `/api/settings` to check `events.transport`.\n * - `'nats'` — wraps children in `<NatsProvider>`\n * - `'socketio'` or default — wraps children in `<SocketIOProvider>`\n * - While loading — renders children without a provider (events disabled until detected)\n */\nexport function EventTransportProvider({ children }: { children: ReactNode }) {\n const [transport, setTransport] = useState<Transport>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n async function detect() {\n try {\n console.log('[lt-transport] detecting event transport...');\n const res = await fetch('/api/settings');\n if (!res.ok) {\n console.warn('[lt-transport] settings fetch failed, falling back to socketio');\n if (!cancelled) setTransport('socketio');\n return;\n }\n const data = await res.json();\n const value = data?.events?.transport;\n console.log('[lt-transport] server reports:', value);\n if (!cancelled) {\n setTransport(value === 'nats' ? 'nats' : 'socketio');\n }\n } catch (err) {\n console.warn('[lt-transport] settings fetch error, falling back to socketio', err);\n if (!cancelled) setTransport('socketio');\n }\n }\n\n detect();\n return () => { cancelled = true; };\n }, []);\n\n if (transport === 'nats') {\n return <NatsProvider>{children}</NatsProvider>;\n }\n\n if (transport === 'socketio') {\n return <SocketIOProvider>{children}</SocketIOProvider>;\n }\n\n // Still detecting — render children without event provider\n return <>{children}</>;\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useState,\n type ReactNode,\n} from 'react';\n\ninterface SidebarContextValue {\n collapsed: boolean;\n toggle: () => void;\n}\n\nconst SidebarContext = createContext<SidebarContextValue | null>(null);\n\nconst STORAGE_KEY = 'lt_sidebar_collapsed';\n\nexport function SidebarProvider({ children }: { children: ReactNode }) {\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n try {\n return localStorage.getItem(STORAGE_KEY) === 'true';\n } catch {\n return false;\n }\n });\n\n const toggle = useCallback(() => {\n setCollapsed((prev) => {\n const next = !prev;\n try {\n localStorage.setItem(STORAGE_KEY, String(next));\n } catch {\n // localStorage unavailable\n }\n return next;\n });\n }, []);\n\n return (\n <SidebarContext.Provider value={{ collapsed, toggle }}>\n {children}\n </SidebarContext.Provider>\n );\n}\n\nexport function useSidebar(): SidebarContextValue {\n const ctx = useContext(SidebarContext);\n if (!ctx) throw new Error('useSidebar must be used within SidebarProvider');\n return ctx;\n}\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\nimport type { LTEscalationRecord } from './types';\n\ninterface EscalationListResponse {\n escalations: LTEscalationRecord[];\n total: number;\n}\n\ninterface EscalationFilters {\n status?: string;\n role?: string;\n type?: string;\n subtype?: string;\n assigned_to?: string;\n priority?: number;\n limit?: number;\n offset?: number;\n sort_by?: string;\n order?: string;\n}\n\nexport interface EscalationStats {\n pending: number;\n claimed: number;\n created: number;\n resolved: number;\n by_role: { role: string; pending: number; claimed: number }[];\n by_type: { type: string; pending: number; claimed: number; resolved: number }[];\n}\n\nexport function useEscalationStats(period?: string) {\n const params = period ? `?period=${period}` : '';\n return useQuery<EscalationStats>({\n queryKey: ['escalationStats', period],\n queryFn: () => apiFetch(`/escalations/stats${params}`),\n });\n}\n\nexport function useEscalationTypes() {\n return useQuery<{ types: string[] }>({\n queryKey: ['escalationTypes'],\n queryFn: () => apiFetch('/escalations/types'),\n });\n}\n\nexport function useEscalations(filters: EscalationFilters) {\n const params = new URLSearchParams();\n if (filters.status) params.set('status', filters.status);\n if (filters.role) params.set('role', filters.role);\n if (filters.type) params.set('type', filters.type);\n if (filters.subtype) params.set('subtype', filters.subtype);\n if (filters.assigned_to) params.set('assigned_to', filters.assigned_to);\n if (filters.priority) params.set('priority', String(filters.priority));\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n if (filters.sort_by) params.set('sort_by', filters.sort_by);\n if (filters.order) params.set('order', filters.order);\n\n return useQuery<EscalationListResponse>({\n queryKey: ['escalations', filters],\n queryFn: () => apiFetch(`/escalations?${params}`),\n });\n}\n\nexport function useAvailableEscalations(filters: Omit<EscalationFilters, 'status'>) {\n const params = new URLSearchParams();\n if (filters.role) params.set('role', filters.role);\n if (filters.type) params.set('type', filters.type);\n if (filters.subtype) params.set('subtype', filters.subtype);\n if (filters.priority) params.set('priority', String(filters.priority));\n if (filters.limit) params.set('limit', String(filters.limit));\n if (filters.offset !== undefined) params.set('offset', String(filters.offset));\n if (filters.sort_by) params.set('sort_by', filters.sort_by);\n if (filters.order) params.set('order', filters.order);\n\n return useQuery<EscalationListResponse>({\n queryKey: ['escalations', 'available', filters],\n queryFn: () => apiFetch(`/escalations/available?${params}`),\n });\n}\n\nexport function useEscalationsByWorkflowId(workflowId: string | undefined) {\n return useQuery<{ escalations: LTEscalationRecord[] }>({\n queryKey: ['escalations', 'by-workflow', workflowId],\n queryFn: () => apiFetch(`/escalations/by-workflow/${workflowId}`),\n enabled: !!workflowId,\n });\n}\n\nexport function useEscalation(id: string) {\n return useQuery<LTEscalationRecord>({\n queryKey: ['escalations', id],\n queryFn: () => apiFetch(`/escalations/${id}`),\n enabled: !!id,\n });\n}\n\nexport function useClaimEscalation() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, durationMinutes }: { id: string; durationMinutes: number }) =>\n apiFetch(`/escalations/${id}/claim`, {\n method: 'POST',\n body: JSON.stringify({ durationMinutes }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useReleaseEscalation() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: (id: string) =>\n apiFetch(`/escalations/${id}/release`, { method: 'POST' }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useResolveEscalation() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n id,\n resolverPayload,\n }: {\n id: string;\n resolverPayload: Record<string, unknown>;\n }) =>\n apiFetch(`/escalations/${id}/resolve`, {\n method: 'POST',\n body: JSON.stringify({ resolverPayload }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['tasks'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['jobs'], refetchType: 'all' });\n },\n });\n}\n\nexport function useEscalateToRole() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ id, targetRole }: { id: string; targetRole: string }) =>\n apiFetch(`/escalations/${id}/escalate`, {\n method: 'PATCH',\n body: JSON.stringify({ targetRole }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useSetEscalationPriority() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ ids, priority }: { ids: string[]; priority: 1 | 2 | 3 | 4 }) =>\n apiFetch<{ updated: number }>('/escalations/priority', {\n method: 'PATCH',\n body: JSON.stringify({ ids, priority }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useBulkClaimEscalations() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ ids, durationMinutes }: { ids: string[]; durationMinutes: number }) =>\n apiFetch<{ claimed: number; skipped: number }>('/escalations/bulk-claim', {\n method: 'POST',\n body: JSON.stringify({ ids, durationMinutes }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useBulkAssignEscalations() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({\n ids,\n targetUserId,\n durationMinutes,\n }: {\n ids: string[];\n targetUserId: string;\n durationMinutes: number;\n }) =>\n apiFetch<{ assigned: number; skipped: number }>('/escalations/bulk-assign', {\n method: 'POST',\n body: JSON.stringify({ ids, targetUserId, durationMinutes }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useBulkEscalateToRole() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ ids, targetRole }: { ids: string[]; targetRole: string }) =>\n apiFetch<{ updated: number }>('/escalations/bulk-escalate', {\n method: 'PATCH',\n body: JSON.stringify({ ids, targetRole }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n\nexport function useBulkTriageEscalations() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ ids, hint }: { ids: string[]; hint?: string }) =>\n apiFetch<{ triaged: number; workflows: string[] }>('/escalations/bulk-triage', {\n method: 'POST',\n body: JSON.stringify({ ids, ...(hint ? { hint } : {}) }),\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['escalations'], refetchType: 'all' });\n queryClient.invalidateQueries({ queryKey: ['escalationStats'], refetchType: 'all' });\n },\n });\n}\n","import { useQueryClient } from '@tanstack/react-query';\nimport { useAuth } from './useAuth';\nimport { useEscalations } from '../api/escalations';\nimport { useEventSubscription } from './useEventContext';\nimport { NATS_SUBJECT_PREFIX } from '../lib/nats/config';\n\n/**\n * Returns the number of active (non-expired) escalations assigned to the current user.\n * Mirrors the queue page's filtering: excludes claims where assigned_until has passed.\n * Stays live via escalation events that invalidate the query.\n */\nexport function useMyEscalationCount(): number {\n const { user } = useAuth();\n const userId = user?.userId;\n const qc = useQueryClient();\n\n const { data } = useEscalations({\n assigned_to: userId,\n status: 'pending',\n });\n\n useEventSubscription(`${NATS_SUBJECT_PREFIX}.escalation.>`, () => {\n if (userId) {\n qc.invalidateQueries({ queryKey: ['escalations'] });\n }\n });\n\n // Exclude expired claims — same filter as the queue page\n const now = new Date();\n const active = (data?.escalations ?? []).filter(\n (e) => e.assigned_until && new Date(e.assigned_until) > now,\n );\n\n return active.length;\n}\n","import { Radio } from 'lucide-react';\nimport { useEventStatus } from '../../../hooks/useEventContext';\n\ninterface NatsStatusProps {\n className?: string;\n onClick?: () => void;\n}\n\n/**\n * Icon indicator showing the NATS WebSocket connection status.\n * Displays a Radio icon with a green/gray status dot.\n */\nexport function NatsStatus({ className = '', onClick }: NatsStatusProps) {\n const { connected } = useEventStatus();\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`relative text-text-tertiary hover:text-accent transition-colors ${className}`}\n title={connected ? 'Live events enabled' : 'Live events disconnected'}\n aria-label={connected ? 'Live events enabled' : 'Live events disconnected'}\n >\n <Radio className=\"w-4 h-4\" strokeWidth={1.5} />\n <span\n className={`absolute -top-1 -right-1 w-2 h-2 rounded-full ${connected ? 'bg-emerald-500' : 'bg-text-tertiary'}`}\n data-testid=\"nats-status-dot\"\n />\n </button>\n );\n}\n","interface AppLogoProps {\n size?: 'sm' | 'lg';\n /** Hide the wordmark (used during login launch animation). */\n hideLabel?: boolean;\n}\n\n/**\n * Shared branding mark used in the header toolbar and login page.\n *\n * The logo image is rendered large + rotated behind the wordmark,\n * creating a watermark effect. The `size` prop scales the pair:\n * - `sm` (default) — toolbar height\n * - `lg` — login page hero\n */\nexport function AppLogo({ size = 'sm', hideLabel = false }: AppLogoProps) {\n const isLarge = size === 'lg';\n\n const imgClass = isLarge\n ? 'w-[16rem] h-[16rem] -rotate-[120deg] opacity-40 -ml-10'\n : 'w-[12.5rem] h-[12.5rem] -rotate-[120deg] opacity-40 -ml-8';\n\n const textClass = isLarge\n ? 'text-[44px] font-normal text-text-primary tracking-[0.15em] -ml-[12.5rem]'\n : 'text-[36px] font-normal text-text-primary tracking-[0.15em] -ml-[9.75rem]';\n\n return (\n <div className=\"flex items-center\" style={{ height: '50px' }}>\n <img\n src=\"/logo512.png\"\n alt=\"LongTail\"\n className={`shrink-0 z-0 ${imgClass}`}\n />\n <span className={`z-[1] transition-opacity duration-300 ${textClass} ${hideLabel ? 'opacity-0' : ''}`}>\n LongTail\n </span>\n </div>\n );\n}\n","import { useState, useRef, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Inbox, User } from 'lucide-react';\nimport { useAuth } from '../../hooks/useAuth';\nimport { useMyEscalationCount } from '../../hooks/useMyEscalationCount';\nimport { NatsStatus } from '../common/display/NatsStatus';\nimport { AppLogo } from '../common/display/AppLogo';\n\nexport function Header({ onToggleEventFeed }: { onToggleEventFeed?: () => void }) {\n const { user, logout } = useAuth();\n const pendingCount = useMyEscalationCount();\n const [menuOpen, setMenuOpen] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n if (!menuOpen) return;\n const handler = (e: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n setMenuOpen(false);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [menuOpen]);\n\n return (\n <header className=\"h-14 shrink-0 border-b border-surface-border bg-surface-raised flex items-center justify-between px-5 relative z-30\">\n <Link to=\"/\" aria-label=\"Home\">\n <AppLogo />\n </Link>\n\n {/* Right: inbox, NATS indicator + user menu */}\n <div className=\"flex items-center gap-4\">\n <Link\n to=\"/escalations/queue\"\n className=\"relative text-text-tertiary hover:text-accent transition-colors\"\n aria-label=\"Escalation inbox\"\n title=\"Escalation inbox\"\n >\n <Inbox className=\"w-4 h-4\" strokeWidth={1.5} />\n <span className={`absolute -top-1 -right-1 w-2 h-2 rounded-full ${pendingCount > 0 ? 'bg-status-warning' : 'bg-text-tertiary'}`} />\n <span className={`absolute -top-2.5 -right-3 text-[8px] font-bold tabular-nums ${pendingCount > 0 ? 'text-status-warning' : 'text-text-tertiary'}`}>{pendingCount}</span>\n </Link>\n <NatsStatus onClick={onToggleEventFeed} />\n {user && (\n <div className=\"relative\" ref={menuRef}>\n <button\n onClick={() => setMenuOpen((o) => !o)}\n className=\"btn-ghost text-xs flex items-center gap-1\"\n >\n <User className=\"w-3.5 h-3.5 text-accent/75\" strokeWidth={1.5} />\n {user.displayName || user.username || user.userId}\n <svg className=\"w-3 h-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n {menuOpen && (\n <div className=\"absolute right-0 top-full mt-1 w-48 bg-surface-raised border border-surface-border rounded-md shadow-lg py-1 z-50\">\n <Link\n to=\"/credentials\"\n onClick={() => setMenuOpen(false)}\n className=\"block px-3 py-2 text-xs text-text-secondary hover:bg-surface-hover\"\n >\n Credentials\n </Link>\n <button\n onClick={() => { setMenuOpen(false); logout(); }}\n className=\"block w-full text-left px-3 py-2 text-xs text-text-secondary hover:bg-surface-hover\"\n >\n Sign Out\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </header>\n );\n}\n","import { useState, useEffect, type ReactNode } from 'react';\n\nexport function Collapsible({ open, children }: { open: boolean; children: ReactNode }) {\n const [render, setRender] = useState(open);\n\n useEffect(() => {\n if (open) setRender(true);\n }, [open]);\n\n return (\n <div\n className={`grid transition-[grid-template-rows] duration-300 ease-out ${open ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'}`}\n onTransitionEnd={() => { if (!open) setRender(false); }}\n >\n <div className=\"overflow-hidden\">\n {render ? children : null}\n </div>\n </div>\n );\n}\n","import { useState } from 'react';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport type { LucideIcon } from 'lucide-react';\nimport { Collapsible } from '../common/layout/Collapsible';\nimport { useSidebar } from '../../hooks/useSidebar';\n\nexport interface NavItem {\n kind?: 'link';\n to: string;\n label: string;\n end?: boolean;\n icon?: LucideIcon;\n}\n\nexport interface NavGroup {\n kind: 'group';\n label: string;\n matchPaths: string[];\n items: NavItem[];\n icon?: LucideIcon;\n}\n\nexport type NavEntry = NavItem | NavGroup;\n\ninterface SidebarNavProps {\n heading: string;\n entries: NavEntry[];\n}\n\nfunction getLinkClass(collapsed: boolean) {\n return ({ isActive }: { isActive: boolean }) => {\n const base = 'flex items-center rounded-md transition-colors duration-150';\n const active = 'bg-surface-hover text-text-primary font-medium';\n const inactive = 'text-text-secondary hover:text-text-primary hover:bg-surface-hover';\n\n if (collapsed) {\n return `${base} justify-center w-10 h-10 mx-auto ${isActive ? active : inactive}`;\n }\n return `${base} gap-3 px-4 py-2 text-sm ${isActive ? active : inactive}`;\n };\n}\n\nfunction getSubLinkClass() {\n return ({ isActive }: { isActive: boolean }) => {\n const base = 'flex items-center gap-3 pl-11 pr-4 py-1.5 text-xs rounded-md transition-colors duration-150';\n const active = 'text-text-primary font-medium';\n const inactive = 'text-text-secondary hover:text-text-primary';\n return `${base} ${isActive ? active : inactive}`;\n };\n}\n\nfunction NavGroupSection({ group, collapsed }: { group: NavGroup; collapsed: boolean }) {\n const { pathname } = useLocation();\n const isChildActive = group.matchPaths.some((p) => pathname.startsWith(p));\n const [expanded, setExpanded] = useState(isChildActive);\n\n const open = expanded || isChildActive;\n\n // Collapsed: render each sub-item individually\n if (collapsed) {\n return (\n <>\n {group.items.map((sub) => (\n <NavLink\n key={sub.to}\n to={sub.to}\n className={getLinkClass(true)}\n title={sub.label}\n >\n {sub.icon && <sub.icon className=\"w-5 h-5 shrink-0 text-accent/75\" strokeWidth={1.5} />}\n </NavLink>\n ))}\n </>\n );\n }\n\n return (\n <div>\n <button\n onClick={() => setExpanded((v) => !v)}\n className=\"w-full flex items-center justify-between px-4 py-2 text-sm rounded-md transition-colors duration-150 text-text-secondary hover:text-text-primary hover:bg-surface-hover\"\n >\n <span className=\"flex items-center gap-3\">\n {group.icon && <group.icon className=\"w-5 h-5 shrink-0 text-accent/75\" strokeWidth={1.5} />}\n <span>{group.label}</span>\n </span>\n <svg\n className={`w-3.5 h-3.5 text-text-tertiary transition-transform duration-150 ${open ? 'rotate-90' : ''}`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n <Collapsible open={open}>\n {group.items.map((sub) => (\n <NavLink key={sub.to} to={sub.to} end={sub.end} className={getSubLinkClass()}>\n {sub.icon && <sub.icon className=\"w-4 h-4 shrink-0 text-accent/75\" strokeWidth={1.5} />}\n <span>{sub.label}</span>\n </NavLink>\n ))}\n </Collapsible>\n </div>\n );\n}\n\nfunction isGroup(entry: NavEntry): entry is NavGroup {\n return entry.kind === 'group';\n}\n\n/**\n * Query-param-aware nav link. When `to` contains a query string,\n * active state requires both the pathname and query params to match.\n */\nfunction NavItemLink({ entry, collapsed }: { entry: NavItem; collapsed: boolean }) {\n const { pathname, search } = useLocation();\n const hasQuery = entry.to.includes('?');\n\n if (hasQuery) {\n const [entryPath, entrySearch] = entry.to.split('?');\n const isActive = pathname === entryPath && search === `?${entrySearch}`;\n const cls = getLinkClass(collapsed)({ isActive });\n\n return (\n <NavLink to={entry.to} className={cls} title={collapsed ? entry.label : undefined}>\n {entry.icon && <entry.icon className=\"w-5 h-5 shrink-0 text-accent/75\" strokeWidth={1.5} />}\n {!collapsed && <span>{entry.label}</span>}\n </NavLink>\n );\n }\n\n return (\n <NavLink\n to={entry.to}\n end={entry.end}\n className={getLinkClass(collapsed)}\n title={collapsed ? entry.label : undefined}\n >\n {entry.icon && <entry.icon className=\"w-5 h-5 shrink-0 text-accent/75\" strokeWidth={1.5} />}\n {!collapsed && <span>{entry.label}</span>}\n </NavLink>\n );\n}\n\nexport function SidebarNav({ heading, entries }: SidebarNavProps) {\n const { collapsed } = useSidebar();\n\n return (\n <div className=\"space-y-1\">\n {collapsed ? (\n <div className=\"h-px bg-surface-border mx-3 my-2\" title={heading} />\n ) : (\n <p className=\"px-4 py-2 text-[10px] font-semibold uppercase tracking-widest text-text-tertiary\">\n {heading}\n </p>\n )}\n {entries.map((entry) =>\n isGroup(entry) ? (\n <NavGroupSection key={entry.label} group={entry} collapsed={collapsed} />\n ) : (\n <NavItemLink key={entry.to} entry={entry} collapsed={collapsed} />\n ),\n )}\n </div>\n );\n}\n","import {\n Users,\n Wrench,\n Tag,\n Activity,\n} from 'lucide-react';\nimport { SidebarNav, type NavEntry } from './SidebarNav';\n\nconst entries: NavEntry[] = [\n { to: '/admin/users', label: 'Accounts', icon: Users },\n { to: '/admin/roles', label: 'Roles & Permissions', icon: Tag },\n { to: '/admin/maintenance', label: 'DB Maintenance', icon: Wrench },\n { to: '/admin/controlplane', label: 'Task Queues', icon: Activity },\n];\n\nexport function AdminSidebar() {\n return <SidebarNav heading=\"Admin\" entries={entries} />;\n}\n","import { ListChecks, Play, Settings, UserCheck } from 'lucide-react';\nimport { SidebarNav, type NavEntry } from './SidebarNav';\n\nconst entries: NavEntry[] = [\n { to: '/workflows/registry', label: 'Workflow Registry', icon: Settings },\n { to: '/workflows/start', label: 'Invoke Workflow', icon: Play },\n { to: '/escalations/available', label: 'All Escalations', icon: UserCheck },\n { to: '/workflows/executions', label: 'Durable Executions', icon: ListChecks },\n];\n\nexport function EngineerSidebar() {\n return <SidebarNav heading=\"Durable Workflows\" entries={entries} />;\n}\n","import { Server, Workflow, ListChecks, Wand2 } from 'lucide-react';\nimport { SidebarNav, type NavEntry } from './SidebarNav';\n\nconst entries: NavEntry[] = [\n { to: '/mcp/servers', label: 'MCP Server Tools', icon: Server },\n { to: '/mcp/workflows', label: 'MCP Pipeline Tools', icon: Workflow },\n { to: '/mcp/queries', label: 'Pipeline Designer', icon: Wand2 },\n { to: '/mcp/executions', label: 'Pipeline Executions', icon: ListChecks },\n];\n\nexport function McpSidebar() {\n return <SidebarNav heading=\"MCP Workflows\" entries={entries} />;\n}\n","import type { ReactNode } from 'react';\n\ninterface SectionLabelProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function SectionLabel({ children, className = '' }: SectionLabelProps) {\n return (\n <p className={`text-[10px] font-semibold uppercase tracking-widest text-text-tertiary ${className}`}>\n {children}\n </p>\n );\n}\n","export function TreeIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 6h16M4 12h8M4 18h12\" />\n </svg>\n );\n}\n\nexport function CodeIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7l-5 5 5 5M16 7l5 5-5 5\" />\n </svg>\n );\n}\n\nexport function CopyIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3\" />\n </svg>\n );\n}\n\nexport function CheckIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n );\n}\n\nexport function CollapseIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 9V4.5M9 9H4.5M9 9L3.5 3.5M9 15v4.5M9 15H4.5M9 15l-5.5 5.5M15 9h4.5M15 9V4.5M15 9l5.5-5.5M15 15h4.5M15 15v4.5m0-4.5l5.5 5.5\" />\n </svg>\n );\n}\n\nexport function ExpandIcon({ className }: { className?: string }) {\n return (\n <svg className={className} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5v-4m0 4h-4m4 0l-5-5\" />\n </svg>\n );\n}\n","import { useState, useCallback, type ReactNode } from 'react';\nimport { SectionLabel } from '../layout/SectionLabel';\n\n// ---------------------------------------------------------------------------\n// JSON view — raw, collapsible syntax tree (existing)\n// ---------------------------------------------------------------------------\n\nfunction JsonNode({ data, depth = 0, generation }: { data: unknown; depth?: number; generation?: number }) {\n // Odd generation = fully expanded; even = collapsed (beyond depth 0).\n // generation 0 = default (collapsed). First click → gen 1 → expand all.\n const isExpandedGen = generation !== undefined && generation > 0 && generation % 2 === 1;\n const defaultCollapsed = isExpandedGen ? false : depth > 0;\n const [collapsed, setCollapsed] = useState(defaultCollapsed);\n const [lastGen, setLastGen] = useState(generation);\n\n // Reset local collapse state when global generation changes\n if (generation !== undefined && generation !== lastGen) {\n setLastGen(generation);\n setCollapsed(generation % 2 === 0 && depth > 0);\n }\n\n if (data === null || data === undefined) {\n return <span className=\"text-text-tertiary italic\">null</span>;\n }\n\n if (typeof data === 'string') {\n return <span className=\"text-text-primary\">&quot;{data}&quot;</span>;\n }\n\n if (typeof data === 'number' || typeof data === 'boolean') {\n return <span className=\"text-text-primary font-medium\">{String(data)}</span>;\n }\n\n if (Array.isArray(data)) {\n if (data.length === 0) return <span className=\"text-text-tertiary\">[]</span>;\n\n if (collapsed) {\n return (\n <button\n onClick={() => setCollapsed(false)}\n className=\"text-text-secondary hover:text-text-primary\"\n >\n [{data.length} items]\n </button>\n );\n }\n\n return (\n <span>\n <button\n onClick={() => setCollapsed(true)}\n className=\"text-text-tertiary hover:text-text-primary\"\n >\n [\n </button>\n <div className=\"pl-4 border-l border-surface-border ml-1\">\n {data.map((item, i) => (\n <div key={i}>\n <JsonNode data={item} depth={depth + 1} generation={generation} />\n {i < data.length - 1 && <span className=\"text-text-tertiary\">,</span>}\n </div>\n ))}\n </div>\n <span className=\"text-text-tertiary\">]</span>\n </span>\n );\n }\n\n if (typeof data === 'object') {\n const entries = Object.entries(data as Record<string, unknown>);\n if (entries.length === 0) return <span className=\"text-text-tertiary\">{'{}'}</span>;\n\n if (collapsed) {\n return (\n <button\n onClick={() => setCollapsed(false)}\n className=\"text-text-secondary hover:text-text-primary\"\n >\n {'{'}...{'}'}\n </button>\n );\n }\n\n return (\n <span>\n <button\n onClick={() => setCollapsed(true)}\n className=\"text-text-tertiary hover:text-text-primary\"\n >\n {'{'}\n </button>\n <div className=\"pl-4 border-l border-surface-border ml-1\">\n {entries.map(([key, value], i) => (\n <div key={key}>\n <span className=\"text-text-secondary\">{key}</span>\n <span className=\"text-text-tertiary\">: </span>\n <JsonNode data={value} depth={depth + 1} generation={generation} />\n {i < entries.length - 1 && <span className=\"text-text-tertiary\">,</span>}\n </div>\n ))}\n </div>\n <span className=\"text-text-tertiary\">{'}'}</span>\n </span>\n );\n }\n\n return <span>{String(data)}</span>;\n}\n\n// ---------------------------------------------------------------------------\n// Tree / outline view — readable, document-like\n// ---------------------------------------------------------------------------\n\nfunction TreeNode({ data, depth = 0 }: { data: unknown; depth?: number }) {\n if (data === null || data === undefined) {\n return <span className=\"text-text-tertiary italic\">null</span>;\n }\n\n if (typeof data === 'string') {\n return <span className=\"text-text-primary\">{data}</span>;\n }\n\n if (typeof data === 'number' || typeof data === 'boolean') {\n return <span className=\"text-text-primary font-medium\">{String(data)}</span>;\n }\n\n if (Array.isArray(data)) {\n if (data.length === 0) return <span className=\"text-text-tertiary italic\">empty list</span>;\n return (\n <div className=\"space-y-2\">\n {data.map((item, i) => (\n <div key={i} className=\"flex items-baseline gap-2\">\n <span className=\"text-text-tertiary text-[10px] shrink-0\">{i + 1}.</span>\n <div className=\"flex-1\">\n <TreeNode data={item} depth={depth + 1} />\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n if (typeof data === 'object') {\n const entries = Object.entries(data as Record<string, unknown>);\n if (entries.length === 0) return <span className=\"text-text-tertiary italic\">empty</span>;\n return (\n <div className={depth > 0 ? 'pl-4 border-l border-surface-border space-y-3' : 'space-y-3'}>\n {entries.map(([key, value]) => {\n const isLeaf = value === null || typeof value !== 'object';\n return (\n <div key={key}>\n <p className=\"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary mb-0.5\">\n {key.replace(/[_-]/g, ' ')}\n </p>\n {isLeaf ? (\n <p className=\"text-sm text-text-primary\">\n <TreeNode data={value} depth={depth + 1} />\n </p>\n ) : (\n <TreeNode data={value} depth={depth + 1} />\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return <span>{String(data)}</span>;\n}\n\nimport { TreeIcon, CodeIcon, CopyIcon, CheckIcon, CollapseIcon, ExpandIcon } from './JsonViewerIcons';\n\n// ---------------------------------------------------------------------------\n// Public component\n// ---------------------------------------------------------------------------\n\ntype ViewMode = 'json' | 'tree';\n\nexport function JsonViewer({\n data,\n label,\n variant,\n defaultCollapsed = false,\n defaultMode,\n}: {\n data: unknown;\n label?: ReactNode;\n /** Optional visual variant. `panel` adds a lavender border and lighter background. */\n variant?: 'default' | 'panel';\n /** Start with all nodes collapsed (default: false — root expanded, children collapsed). */\n defaultCollapsed?: boolean;\n /** Initial view mode. Defaults to 'json'. */\n defaultMode?: ViewMode;\n}) {\n const [mode, setMode] = useState<ViewMode>(defaultMode ?? 'json');\n const [copied, setCopied] = useState(false);\n // Bumping generation forces all JsonNodes to re-evaluate collapse state.\n // Even (incl. 0) = collapsed, odd = fully expanded.\n const [generation, setGeneration] = useState(defaultCollapsed ? 0 : 0);\n const isGlobalCollapsed = generation % 2 === 0;\n const toggleGlobalCollapse = useCallback(() => setGeneration((g) => g + 1), []);\n\n let parsed = data;\n if (typeof data === 'string') {\n try {\n parsed = JSON.parse(data);\n } catch {\n // Not JSON, display as string\n }\n }\n\n const handleCopy = async () => {\n const text = typeof data === 'string' ? data : JSON.stringify(parsed, null, 2);\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n const iconBtn = 'p-1.5 rounded text-text-tertiary hover:text-text-primary hover:bg-surface-raised transition-colors duration-150';\n\n const isPanel = variant === 'panel';\n const wrapperClass = isPanel\n ? 'border border-accent-muted/40 rounded-lg p-3 bg-surface-hover/30'\n : '';\n const contentClass = isPanel\n ? 'font-mono text-xs leading-relaxed bg-white rounded-md p-4 overflow-x-auto'\n : 'font-mono text-xs leading-relaxed bg-surface-sunken rounded-md p-4 overflow-x-auto';\n\n return (\n <div className={wrapperClass}>\n <div className=\"flex items-center justify-between mb-2\">\n {label ? <SectionLabel>{label}</SectionLabel> : <span />}\n <div className=\"flex items-center gap-1\">\n {mode === 'json' && (\n <button\n onClick={toggleGlobalCollapse}\n className={iconBtn}\n title={isGlobalCollapsed ? 'Expand all' : 'Collapse all'}\n >\n {isGlobalCollapsed ? (\n <ExpandIcon className=\"w-3.5 h-3.5\" />\n ) : (\n <CollapseIcon className=\"w-3.5 h-3.5\" />\n )}\n </button>\n )}\n <button\n onClick={() => setMode(mode === 'json' ? 'tree' : 'json')}\n className={iconBtn}\n title={mode === 'json' ? 'Switch to outline view' : 'Switch to JSON view'}\n >\n {mode === 'json' ? (\n <TreeIcon className=\"w-3.5 h-3.5\" />\n ) : (\n <CodeIcon className=\"w-3.5 h-3.5\" />\n )}\n </button>\n <button\n onClick={handleCopy}\n className={iconBtn}\n title=\"Copy to clipboard\"\n >\n {copied ? (\n <CheckIcon className=\"w-3.5 h-3.5 text-status-success\" />\n ) : (\n <CopyIcon className=\"w-3.5 h-3.5\" />\n )}\n </button>\n </div>\n </div>\n <div className={contentClass}>\n {mode === 'json' ? <JsonNode data={parsed} generation={generation} /> : <TreeNode data={parsed} />}\n </div>\n </div>\n );\n}\n","import { useState, useCallback, useRef, useEffect } from 'react';\nimport { ChevronUp, ChevronDown, Eraser } from 'lucide-react';\nimport { useEventSubscription } from '../../hooks/useEventContext';\nimport { JsonViewer } from '../common/data/JsonViewer';\nimport { Collapsible } from '../common/layout/Collapsible';\n\nconst MAX_EVENTS = 100;\nconst DEDUP_WINDOW_MS = 500;\nlet counter = 0;\n\ninterface FeedEvent {\n id: number;\n type: string;\n timestamp: string;\n data: Record<string, unknown>;\n}\n\nconst TYPE_COLORS: Record<string, string> = {\n 'escalation.created': 'text-status-warning',\n 'escalation.claimed': 'text-blue-400',\n 'escalation.released': 'text-text-tertiary',\n 'escalation.resolved': 'text-status-success',\n 'task.created': 'text-accent',\n 'task.completed': 'text-status-success',\n 'task.failed': 'text-status-error',\n 'task.escalated': 'text-status-warning',\n 'workflow.started': 'text-accent',\n 'workflow.completed': 'text-status-success',\n 'workflow.failed': 'text-status-error',\n 'activity.started': 'text-blue-400',\n 'activity.completed': 'text-status-success',\n 'activity.failed': 'text-status-error',\n milestone: 'text-violet-400',\n};\n\nfunction EventRow({ event }: { event: FeedEvent }) {\n const [expanded, setExpanded] = useState(false);\n const color = TYPE_COLORS[event.type] || 'text-text-tertiary';\n\n return (\n <div className=\"border-b border-surface-border/30 last:border-b-0\">\n <button\n onClick={() => setExpanded(!expanded)}\n className=\"flex items-center gap-2 py-1 w-full text-left hover:bg-surface-hover/50 transition-colors px-3\"\n >\n <span className=\"text-[9px] font-mono text-text-tertiary whitespace-nowrap tabular-nums shrink-0\">\n {new Date(event.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' })}\n </span>\n <span className={`text-[9px] font-medium px-1 py-0.5 rounded ${color} bg-surface-sunken whitespace-nowrap shrink-0`}>\n {event.type}\n </span>\n <span className=\"text-[9px] text-text-tertiary font-mono flex-1 min-w-0 truncate\">\n {event.data?.workflowId ? String(event.data.workflowId) : ''}\n {event.data?.escalationId ? ` esc:${String(event.data.escalationId).slice(0, 12)}` : ''}\n </span>\n <svg\n className={`w-2.5 h-2.5 text-text-tertiary shrink-0 transition-transform duration-150 ${expanded ? 'rotate-180' : ''}`}\n fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n <Collapsible open={expanded}>\n <div className=\"pb-2 px-3\">\n <JsonViewer data={event.data} />\n </div>\n </Collapsible>\n </div>\n );\n}\n\nexport function EventFeed({ open, onToggle }: { open: boolean; onToggle: () => void }) {\n const [events, setEvents] = useState<FeedEvent[]>([]);\n const scrollRef = useRef<HTMLDivElement>(null);\n const recentRef = useRef<Map<string, number>>(new Map());\n\n useEventSubscription('lt.events.>', useCallback((raw: any) => {\n const type = String(raw.type || 'unknown');\n if (type.startsWith('mesh.')) return;\n\n // Deduplicate: same type+timestamp within window (StrictMode double-mount)\n const fingerprint = `${type}:${raw.timestamp || ''}:${raw.escalationId || raw.workflowId || raw.taskId || ''}`;\n const now = Date.now();\n const lastSeen = recentRef.current.get(fingerprint);\n if (lastSeen && now - lastSeen < DEDUP_WINDOW_MS) return;\n recentRef.current.set(fingerprint, now);\n\n // Prune old fingerprints periodically\n if (recentRef.current.size > 200) {\n for (const [key, ts] of recentRef.current) {\n if (now - ts > DEDUP_WINDOW_MS * 2) recentRef.current.delete(key);\n }\n }\n\n setEvents((prev) => {\n const next = [{\n id: ++counter,\n type,\n timestamp: raw.timestamp || new Date().toISOString(),\n data: raw,\n }, ...prev];\n return next.slice(0, MAX_EVENTS);\n });\n }, []));\n\n // Auto-scroll to top on new events when open\n useEffect(() => {\n if (open && scrollRef.current) {\n scrollRef.current.scrollTop = 0;\n }\n }, [events.length, open]);\n\n return (\n <div className=\"fixed bottom-0 left-0 right-0 z-40 border-t border-surface-border bg-surface-raised\">\n {/* Toggle bar */}\n <button\n onClick={onToggle}\n className=\"flex items-center gap-2 w-full px-4 py-1.5 text-left hover:bg-surface-hover transition-colors\"\n >\n {open ? <ChevronDown className=\"w-3 h-3 text-text-tertiary\" /> : <ChevronUp className=\"w-3 h-3 text-text-tertiary\" />}\n <span className=\"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary\">\n Event Stream\n </span>\n {events.length > 0 && (\n <span className=\"text-[9px] text-text-tertiary\">\n {events.length} events\n </span>\n )}\n {events.length > 0 && !open && (\n <span className={`text-[9px] font-medium px-1 py-0.5 rounded ${TYPE_COLORS[events[0].type] || 'text-text-tertiary'} bg-surface-sunken`}>\n {events[0].type}\n </span>\n )}\n {events.length > 0 && (\n <span\n className=\"ml-auto text-text-tertiary hover:text-text-primary p-0.5\"\n title=\"Clear events\"\n onClick={(e) => { e.stopPropagation(); setEvents([]); }}\n >\n <Eraser className=\"w-3 h-3\" />\n </span>\n )}\n </button>\n\n {/* Event list */}\n <Collapsible open={open}>\n <div ref={scrollRef} className=\"h-48 overflow-y-auto\">\n {events.length === 0 ? (\n <p className=\"text-[10px] text-text-tertiary py-4 text-center\">Waiting for events...</p>\n ) : (\n events.map((evt) => <EventRow key={evt.id} event={evt} />)\n )}\n </div>\n </Collapsible>\n </div>\n );\n}\n","import { useState, useRef, useEffect } from 'react';\nimport { Navigate, Outlet, useLocation } from 'react-router-dom';\nimport { PanelLeftClose, PanelLeftOpen } from 'lucide-react';\nimport { useAuth } from '../../hooks/useAuth';\nimport { SidebarProvider, useSidebar } from '../../hooks/useSidebar';\nimport { Header } from './Header';\nimport { AdminSidebar } from './AdminSidebar';\nimport { EngineerSidebar } from './EngineerSidebar';\nimport { McpSidebar } from './McpSidebar';\nimport { EventFeed } from './EventFeed';\n\nfunction ShellLayout() {\n const { isSuperAdmin, hasRoleType, hasRole } = useAuth();\n const { collapsed, toggle } = useSidebar();\n const [feedOpen, setFeedOpen] = useState(false);\n const location = useLocation();\n const contentRef = useRef<HTMLDivElement>(null);\n\n // Cross-fade on route change\n useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n el.classList.remove('animate-page-in');\n void el.offsetWidth;\n el.classList.add('animate-page-in');\n }, [location.pathname]);\n\n return (\n <div className=\"h-screen bg-surface flex flex-col\" style={{ '--feed-height': feedOpen ? '224px' : '32px' } as React.CSSProperties}>\n {/* Full-width header */}\n <Header onToggleEventFeed={() => setFeedOpen((v) => !v)} />\n\n {/* Sidebar + Content */}\n <div className=\"flex flex-1 overflow-hidden\">\n {/* Sidebar */}\n <aside\n className={`${\n collapsed ? 'w-16' : 'w-60'\n } shrink-0 bg-surface-raised border-r border-surface-border flex flex-col transition-[width] duration-200 ease-out overflow-hidden relative z-20`}\n >\n {/* Nav */}\n <nav className=\"flex-1 px-3 pt-[36px] pb-4 space-y-2 overflow-y-auto overflow-x-hidden\">\n {(isSuperAdmin || hasRoleType('admin') || hasRole('engineer')) && <EngineerSidebar />}\n {(isSuperAdmin || hasRoleType('admin') || hasRole('engineer')) && <McpSidebar />}\n {(isSuperAdmin || hasRoleType('admin')) && <AdminSidebar />}\n </nav>\n\n {/* Collapse / Expand toggle */}\n <button\n onClick={toggle}\n className={`shrink-0 py-3 text-text-tertiary hover:text-text-secondary transition-colors duration-150 ${\n collapsed ? 'flex justify-center' : 'flex items-center px-7'\n }`}\n aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n >\n {collapsed ? (\n <PanelLeftOpen className=\"w-4 h-4 text-accent-muted\" strokeWidth={1.5} />\n ) : (\n <PanelLeftClose className=\"w-4 h-4 text-accent-muted\" strokeWidth={1.5} />\n )}\n </button>\n </aside>\n\n {/* Main content */}\n <main className=\"flex-1 overflow-y-auto\">\n <div ref={contentRef} className={`max-w-dashboard mx-auto px-10 py-10 animate-page-in ${feedOpen ? 'pb-60' : 'pb-16'}`}>\n <Outlet />\n </div>\n </main>\n </div>\n\n {/* Global event feed */}\n <EventFeed open={feedOpen} onToggle={() => setFeedOpen((v) => !v)} />\n </div>\n );\n}\n\nexport function Shell() {\n const { isAuthenticated } = useAuth();\n const location = useLocation();\n\n if (!isAuthenticated) {\n return <Navigate to=\"/login\" state={{ from: location.pathname }} replace />;\n }\n\n return (\n <SidebarProvider>\n <ShellLayout />\n </SidebarProvider>\n );\n}\n","interface OAuthIconProps {\n provider: string;\n className?: string;\n}\n\nexport function OAuthIcon({ provider, className = 'w-5 h-5' }: OAuthIconProps) {\n switch (provider) {\n case 'google':\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z\" fill=\"#4285F4\"/>\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"/>\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\" fill=\"#FBBC05\"/>\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"/>\n </svg>\n );\n case 'github':\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z\"/>\n </svg>\n );\n case 'microsoft':\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M3 3h8.5v8.5H3z\" fill=\"#F25022\"/>\n <path d=\"M12.5 3H21v8.5h-8.5z\" fill=\"#7FBA00\"/>\n <path d=\"M3 12.5h8.5V21H3z\" fill=\"#00A4EF\"/>\n <path d=\"M12.5 12.5H21V21h-8.5z\" fill=\"#FFB900\"/>\n </svg>\n );\n case 'anthropic':\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M13.827 3.52h3.603L24 20.48h-3.603l-6.57-16.96zm-7.258 0h3.767L16.906 20.48h-3.674l-1.343-3.461H6.396l-1.34 3.461H1.5l5.07-16.96zm2.327 5.14l-2.065 5.326h4.108l-2.043-5.326z\"/>\n </svg>\n );\n default:\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <path d=\"M12 8v4l3 3\"/>\n </svg>\n );\n }\n}\n","import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { apiFetch } from './client';\n\nexport interface OAuthProvider {\n provider: string;\n name: string;\n}\n\nexport interface OAuthConnection {\n provider: string;\n label: string;\n email: string | null;\n scopes: string[];\n expires_at: string | null;\n credential_type: string | null;\n}\n\nexport async function fetchOAuthProviders(): Promise<OAuthProvider[]> {\n return apiFetch<OAuthProvider[]>('/auth/oauth/providers');\n}\n\nexport async function disconnectOAuthProvider(provider: string, label?: string): Promise<{ deleted: boolean }> {\n const params = label ? `?label=${encodeURIComponent(label)}` : '';\n return apiFetch(`/auth/oauth/connections/${provider}${params}`, { method: 'DELETE' });\n}\n\nexport function useOAuthConnections() {\n return useQuery<{ connections: OAuthConnection[] }>({\n queryKey: ['oauth-connections'],\n queryFn: () => apiFetch('/auth/oauth/connections'),\n });\n}\n\nexport function useDisconnectOAuth() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: ({ provider, label }: { provider: string; label?: string }) =>\n disconnectOAuthProvider(provider, label),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['oauth-connections'] });\n },\n });\n}\n","import { useState, useEffect, useRef, type FormEvent } from 'react';\nimport { Navigate, useNavigate, useLocation } from 'react-router-dom';\nimport { useAuth } from '../hooks/useAuth';\nimport { AppLogo } from '../components/common/display/AppLogo';\nimport { OAuthIcon } from '../components/common/OAuthIcon';\nimport { fetchOAuthProviders, type OAuthProvider } from '../api/oauth';\n\nexport function LoginPage() {\n const { login, isAuthenticated } = useAuth();\n const navigate = useNavigate();\n const location = useLocation();\n\n const params = new URLSearchParams(location.search);\n const oauthToken = params.get('token');\n const oauthError = params.get('error');\n const returnTo = (location.state as { from?: string })?.from\n ?? params.get('returnTo')\n ?? '/';\n\n // Process the OAuth token immediately on first render (not in an effect)\n const oauthHandled = useRef(false);\n if (oauthToken && !oauthHandled.current) {\n oauthHandled.current = true;\n login(oauthToken, undefined, {\n displayName: params.get('displayName'),\n username: params.get('username'),\n });\n }\n\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState(oauthError || '');\n const [loading, setLoading] = useState(false);\n const [launched, setLaunched] = useState(!!oauthToken);\n const [oauthProviders, setOauthProviders] = useState<OAuthProvider[]>([]);\n\n // Fetch available OAuth providers on mount\n useEffect(() => {\n if (oauthToken) return; // skip fetch during OAuth callback\n fetchOAuthProviders()\n .then(setOauthProviders)\n .catch(() => {});\n }, []);\n\n // Navigate after the comet animation completes\n useEffect(() => {\n if (!launched) return;\n const timer = setTimeout(() => navigate(returnTo, { replace: true }), 1500);\n return () => clearTimeout(timer);\n }, [launched]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Already authenticated (e.g., navigated to /login while logged in) — skip animation\n if (isAuthenticated && !launched) {\n return <Navigate to={returnTo} replace />;\n }\n\n const handleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n setError('');\n if (!username.trim() || !password) {\n setError('Username and password are required');\n return;\n }\n\n setLoading(true);\n try {\n const res = await fetch('/api/auth/login', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ username: username.trim(), password }),\n });\n const data = await res.json();\n if (!res.ok) {\n setError(data.error || 'Login failed');\n return;\n }\n\n setLaunched(true);\n login(\n data.token,\n { username: username.trim(), password },\n { displayName: data.user?.display_name, username: data.user?.external_id },\n );\n } catch {\n setError('Unable to connect to server');\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"min-h-screen bg-surface flex items-center justify-center overflow-hidden\">\n <div className=\"w-full max-w-md p-10\">\n <div\n className={`mb-10 transition-all duration-[1500ms] ease-in ${\n launched\n ? 'translate-x-[120vw] -translate-y-[60vh] scale-[3] opacity-0'\n : ''\n }`}\n >\n <AppLogo size=\"lg\" hideLabel={launched} />\n </div>\n\n <form\n onSubmit={handleSubmit}\n className={`space-y-5 transition-opacity duration-300 ${launched ? 'opacity-0' : ''}`}\n >\n <div>\n <label\n htmlFor=\"username\"\n className=\"block text-sm font-medium text-text-secondary mb-2\"\n >\n Username\n </label>\n <input\n id=\"username\"\n type=\"text\"\n value={username}\n onChange={(e) => setUsername(e.target.value)}\n className=\"input\"\n placeholder=\"Enter your username\"\n autoFocus={!launched}\n autoComplete=\"username\"\n />\n </div>\n\n <div>\n <label\n htmlFor=\"password\"\n className=\"block text-sm font-medium text-text-secondary mb-2\"\n >\n Password\n </label>\n <input\n id=\"password\"\n type=\"password\"\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n className=\"input\"\n placeholder=\"Enter your password\"\n autoComplete=\"current-password\"\n />\n </div>\n\n {error && <p className=\"text-sm text-status-error\">{error}</p>}\n\n <button type=\"submit\" className=\"btn-primary w-full\" disabled={loading || launched}>\n {loading ? 'Signing in...' : 'Sign In'}\n </button>\n\n {oauthProviders.length > 0 && (\n <>\n <div className=\"flex items-center gap-3 mt-6\">\n <div className=\"flex-1 h-px bg-border\" />\n <span className=\"text-xs text-text-tertiary\">or continue with</span>\n <div className=\"flex-1 h-px bg-border\" />\n </div>\n <div className=\"space-y-2\">\n {oauthProviders.filter((p) => p.provider !== 'anthropic').map((p) => (\n <a\n key={p.provider}\n href={`/api/auth/oauth/${p.provider}?returnTo=${encodeURIComponent(returnTo)}`}\n className=\"btn-secondary w-full flex items-center justify-center gap-2\"\n >\n <OAuthIcon provider={p.provider} />\n Sign in with {p.name}\n </a>\n ))}\n </div>\n </>\n )}\n </form>\n </div>\n </div>\n );\n}\n","import { useState, useEffect, type FormEvent } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { useAuth } from '../hooks/useAuth';\nimport { AppLogo } from '../components/common/display/AppLogo';\nimport { OAuthIcon } from '../components/common/OAuthIcon';\n\n/**\n * Credential entry page for the Anthropic provider.\n *\n * Accepts either:\n * - An OAuth token from `claude setup-token` (sk-ant-oat01-...) — uses your subscription\n * - An API key from console.anthropic.com (sk-ant-api03-...) — billed per-token\n *\n * The credential is sent to the OAuth callback as the \"code\" parameter,\n * where it's validated and stored encrypted.\n *\n * Requires authentication — the user must be logged in first.\n */\nexport function ConnectAnthropicPage() {\n const { isAuthenticated } = useAuth();\n const navigate = useNavigate();\n const location = useLocation();\n const params = new URLSearchParams(location.search);\n const state = params.get('state') || '';\n\n // Redirect to login if not authenticated\n useEffect(() => {\n if (!isAuthenticated) {\n navigate(`/login?returnTo=${encodeURIComponent(location.pathname + location.search)}`);\n }\n }, [isAuthenticated]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const [token, setToken] = useState('');\n const [label, setLabel] = useState(params.get('label') || 'default');\n const [error, setError] = useState('');\n const [submitting, setSubmitting] = useState(false);\n\n const isOAuthToken = token.trim().startsWith('sk-ant-oat');\n const isApiKey = token.trim().startsWith('sk-ant-api');\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n const trimmed = token.trim();\n\n if (!trimmed) {\n setError('A token or API key is required');\n return;\n }\n\n if (!trimmed.startsWith('sk-ant-')) {\n setError('Invalid format. Must start with \"sk-ant-oat\" (OAuth token) or \"sk-ant-api\" (API key)');\n return;\n }\n\n setSubmitting(true);\n setError('');\n\n // Redirect to the OAuth callback with the credential as the \"code\"\n const callbackUrl = `/api/auth/oauth/anthropic/callback?code=${encodeURIComponent(trimmed)}&state=${encodeURIComponent(state)}`;\n window.location.href = callbackUrl;\n };\n\n return (\n <div className=\"min-h-screen bg-surface flex items-center justify-center\">\n <div className=\"w-full max-w-md p-10\">\n <div className=\"mb-10\">\n <AppLogo size=\"lg\" />\n </div>\n\n <div className=\"flex items-center gap-2 mb-6\">\n <OAuthIcon provider=\"anthropic\" className=\"w-6 h-6\" />\n <h2 className=\"text-lg font-semibold text-text-primary\">\n Connect Anthropic\n </h2>\n </div>\n\n <p className=\"text-sm text-text-secondary mb-4\">\n Connect your Anthropic account so Claude Code tasks run under\n your credentials. Your token is encrypted at rest.\n </p>\n\n <form onSubmit={handleSubmit} className=\"space-y-5\">\n <div>\n <label\n htmlFor=\"token\"\n className=\"block text-sm font-medium text-text-secondary mb-2\"\n >\n OAuth Token or API Key\n </label>\n <input\n id=\"token\"\n type=\"password\"\n value={token}\n onChange={(e) => setToken(e.target.value)}\n className=\"input\"\n placeholder=\"sk-ant-oat01-... or sk-ant-api03-...\"\n autoFocus\n autoComplete=\"off\"\n />\n {isOAuthToken && (\n <p className=\"text-xs text-status-success mt-1\">\n OAuth token detected — uses your Claude subscription (flat rate)\n </p>\n )}\n {isApiKey && (\n <p className=\"text-xs text-status-warning mt-1\">\n API key detected — billed per-token from your Anthropic API account\n </p>\n )}\n </div>\n\n <div>\n <label\n htmlFor=\"label\"\n className=\"block text-sm font-medium text-text-secondary mb-2\"\n >\n Label\n </label>\n <input\n id=\"label\"\n type=\"text\"\n value={label}\n onChange={(e) => setLabel(e.target.value.replace(/\\s+/g, '-').toLowerCase())}\n className=\"input\"\n placeholder=\"default\"\n autoComplete=\"off\"\n />\n <p className=\"text-xs text-text-tertiary mt-1\">\n A name for this credential. Use different labels to store multiple\n credentials (e.g., \"subscription\", \"api-batch\").\n </p>\n </div>\n\n {error && <p className=\"text-sm text-status-error\">{error}</p>}\n\n <button\n type=\"submit\"\n className=\"btn-primary w-full\"\n disabled={submitting}\n >\n {submitting ? 'Validating...' : 'Connect'}\n </button>\n\n <a\n href=\"/\"\n className=\"block text-center text-sm text-text-tertiary hover:text-text-secondary\"\n >\n Cancel\n </a>\n </form>\n\n <div className=\"mt-6 space-y-3 text-xs text-text-tertiary\">\n <div>\n <span className=\"font-medium text-text-secondary\">Recommended:</span>{' '}\n Run{' '}\n <code className=\"px-1 py-0.5 bg-surface-sunken rounded text-[11px]\">claude setup-token</code>{' '}\n in your terminal to generate an OAuth token that uses your subscription.\n </div>\n <div>\n <span className=\"font-medium text-text-secondary\">Alternative:</span>{' '}\n Use an API key from{' '}\n <a\n href=\"https://console.anthropic.com/settings/keys\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-accent-secondary hover:underline\"\n >\n console.anthropic.com\n </a>{' '}\n (billed per-token).\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { Navigate, Outlet } from 'react-router-dom';\nimport { useAuth } from '../../hooks/useAuth';\nimport type { LTRoleType } from '../../api/types';\n\ninterface RequireRoleProps {\n /** User must have at least one of these role types */\n roleTypes?: LTRoleType[];\n /** User must have at least one of these role names */\n roleNames?: string[];\n /** Where to redirect when unauthorized. Defaults to '/' */\n redirectTo?: string;\n}\n\nexport function RequireRole({ roleTypes, roleNames, redirectTo = '/' }: RequireRoleProps) {\n const { isSuperAdmin, hasRole, hasRoleType } = useAuth();\n\n // Superadmin bypasses all role checks\n if (isSuperAdmin) return <Outlet />;\n\n // Check role types\n if (roleTypes && roleTypes.some((t) => hasRoleType(t))) return <Outlet />;\n\n // Check role names\n if (roleNames && roleNames.some((r) => hasRole(r))) return <Outlet />;\n\n return <Navigate to={redirectTo} replace />;\n}\n","import { lazy, Suspense } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom';\nimport { AuthProvider } from './hooks/useAuth';\nimport { EventTransportProvider } from './hooks/useEventTransport';\nimport { Shell } from './components/layout/Shell';\nimport { LoginPage } from './pages/LoginPage';\nimport { ConnectAnthropicPage } from './pages/ConnectAnthropicPage';\nimport { RequireRole } from './components/layout/RequireRole';\n\n// ---------------------------------------------------------------------------\n// Lazy-loaded route sections\n// ---------------------------------------------------------------------------\n\n// Process pages (all authenticated users)\nconst ProcessesListPage = lazy(() =>\n import('./pages/processes/ProcessesListPage').then((m) => ({ default: m.ProcessesListPage })),\n);\nconst ProcessDetailPage = lazy(() =>\n import('./pages/processes/ProcessDetailPage').then((m) => ({ default: m.ProcessDetailPage })),\n);\n// MCP pages (engineer, admin, or superadmin)\nconst McpOverview = lazy(() =>\n import('./pages/mcp/McpOverview').then((m) => ({ default: m.McpOverview })),\n);\n// McpToolsPage removed — tools are now inline in the Servers page\nconst McpRunsPage = lazy(() =>\n import('./pages/mcp/McpRunsPage').then((m) => ({ default: m.McpRunsPage })),\n);\nconst McpRunDetailPage = lazy(() =>\n import('./pages/mcp/McpRunDetailPage').then((m) => ({ default: m.McpRunDetailPage })),\n);\nconst McpQueryPage = lazy(() =>\n import('./pages/mcp/McpQueryPage').then((m) => ({ default: m.McpQueryPage })),\n);\nconst McpQueryDetailPage = lazy(() =>\n import('./pages/mcp/mcp-query-detail/McpQueryDetailPage').then((m) => ({ default: m.McpQueryDetailPage })),\n);\n\n// Escalation pages (all authenticated users)\nconst EscalationsOverview = lazy(() =>\n import('./pages/operator/EscalationsOverview').then((m) => ({ default: m.EscalationsOverview })),\n);\nconst AvailableEscalationsPage = lazy(() =>\n import('./pages/operator/AvailableEscalationsPage').then((m) => ({ default: m.AvailableEscalationsPage })),\n);\nconst OperatorDashboard = lazy(() =>\n import('./pages/operator/OperatorDashboard').then((m) => ({ default: m.OperatorDashboard })),\n);\nconst EscalationDetailPage = lazy(() =>\n import('./pages/operator/escalation-detail').then((m) => ({ default: m.EscalationDetailPage })),\n);\n\n// Workflow pages (engineer role)\nconst WorkflowsOverview = lazy(() =>\n import('./pages/workflows/WorkflowsOverview').then((m) => ({ default: m.WorkflowsOverview })),\n);\nconst StartWorkflowPage = lazy(() =>\n import('./pages/workflows/start').then((m) => ({ default: m.StartWorkflowPage })),\n);\nconst DurableInvokePage = lazy(() =>\n import('./pages/workflows/start').then((m) => ({ default: m.DurableInvokePage })),\n);\nconst DurableExecutionsPage = lazy(() =>\n import('./pages/workflows/WorkflowsDashboard').then((m) => ({\n default: () => m.WorkflowsDashboard({ tier: 'durable' }),\n })),\n);\nconst CertifiedExecutionsPage = lazy(() =>\n import('./pages/workflows/WorkflowsDashboard').then((m) => ({\n default: () => m.WorkflowsDashboard({ tier: 'all' }),\n })),\n);\nconst YamlWorkflowsPage = lazy(() =>\n import('./pages/workflows/YamlWorkflowsPage').then((m) => ({ default: m.YamlWorkflowsPage })),\n);\nconst YamlWorkflowDetailPage = lazy(() =>\n import('./pages/workflows/yaml-workflow-detail/YamlWorkflowDetailPage').then((m) => ({ default: m.YamlWorkflowDetailPage })),\n);\nconst TasksListPage = lazy(() =>\n import('./pages/workflows/TasksListPage').then((m) => ({ default: m.TasksListPage })),\n);\nconst TaskDetailPage = lazy(() =>\n import('./pages/workflows/TaskDetailPage').then((m) => ({ default: m.TaskDetailPage })),\n);\nconst WorkflowExecutionPage = lazy(() =>\n import('./pages/workflows/WorkflowExecutionPage').then((m) => ({ default: m.WorkflowExecutionPage })),\n);\n\n// Admin pages (admin or superadmin)\nconst AdminDashboard = lazy(() =>\n import('./pages/admin/AdminDashboard').then((m) => ({ default: m.AdminDashboard })),\n);\nconst WorkersPage = lazy(() =>\n import('./pages/workflows/workers').then((m) => ({ default: m.WorkersPage })),\n);\nconst WorkflowConfigsPage = lazy(() =>\n import('./pages/workflows/registry').then((m) => ({ default: m.WorkflowConfigsPage })),\n);\nconst WorkflowConfigDetailPage = lazy(() =>\n import('./pages/workflows/registry').then((m) => ({ default: m.WorkflowConfigDetailPage })),\n);\nconst McpServersPage = lazy(() =>\n import('./pages/mcp/servers').then((m) => ({ default: m.McpServersPage })),\n);\nconst UsersPage = lazy(() =>\n import('./pages/admin/users').then((m) => ({ default: m.UsersPage })),\n);\nconst RolesPage = lazy(() =>\n import('./pages/admin/roles/RolesPage').then((m) => ({ default: m.RolesPage })),\n);\nconst MaintenancePage = lazy(() =>\n import('./pages/admin/maintenance').then((m) => ({ default: m.MaintenancePage })),\n);\nconst ControlPlanePage = lazy(() =>\n import('./pages/admin/controlplane').then((m) => ({ default: m.ControlPlanePage })),\n);\n// BotsPage is now embedded in the unified Accounts page (UsersPage)\nconst CredentialsPage = lazy(() =>\n import('./pages/settings/CredentialsPage').then((m) => ({ default: m.CredentialsPage })),\n);\n\n// ---------------------------------------------------------------------------\n// Suspense fallback\n// ---------------------------------------------------------------------------\n\nfunction PageLoader() {\n return (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-8 bg-surface-sunken rounded w-48\" />\n <div className=\"h-40 bg-surface-sunken rounded\" />\n </div>\n );\n}\n\nfunction Lazy({ children }: { children: React.ReactNode }) {\n return (\n <Suspense fallback={<PageLoader />}>\n <div className=\"animate-page-enter\">{children}</div>\n </Suspense>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Router & App\n// ---------------------------------------------------------------------------\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 10_000,\n retry: (failureCount, error) => {\n // Don't retry auth errors — apiFetch handles refresh internally\n if (error instanceof Error && error.message === 'Session expired') return false;\n return failureCount < 1;\n },\n },\n },\n});\n\n// Force immediate redirect on auth failure — don't wait for React state batching.\n// This prevents the \"empty pages\" scenario where queries error silently and\n// components render `data?.items ?? []` as empty arrays before logout propagates.\nwindow.addEventListener('auth:unauthorized', () => {\n queryClient.clear();\n sessionStorage.removeItem('lt_token');\n sessionStorage.removeItem('lt_credentials');\n sessionStorage.removeItem('lt_user_info');\n if (window.location.pathname !== '/login') {\n window.location.href = `/login?returnTo=${encodeURIComponent(window.location.pathname)}`;\n }\n});\n\nconst router = createBrowserRouter([\n { path: '/login', element: <LoginPage /> },\n { path: '/connect/anthropic', element: <ConnectAnthropicPage /> },\n { path: '/connect/:provider', element: <ConnectAnthropicPage /> },\n {\n path: '/',\n element: <Shell />,\n children: [\n // Default -> processes overview (home page)\n { index: true, element: <Lazy><ProcessesListPage /></Lazy> },\n\n // Processes section (all authenticated users)\n { path: 'processes/all', element: <Lazy><ProcessesListPage /></Lazy> },\n { path: 'processes/detail/:originId', element: <Lazy><ProcessDetailPage /></Lazy> },\n\n // Credentials (all authenticated users) — legacy path redirects\n { path: 'credentials', element: <Lazy><CredentialsPage /></Lazy> },\n { path: 'connections', element: <Navigate to=\"/credentials\" replace /> },\n\n // Escalation section (all authenticated users)\n { path: 'escalations', element: <Lazy><EscalationsOverview /></Lazy> },\n { path: 'escalations/available', element: <Lazy><AvailableEscalationsPage /></Lazy> },\n { path: 'escalations/queue', element: <Lazy><OperatorDashboard /></Lazy> },\n { path: 'escalations/detail/:id', element: <Lazy><EscalationDetailPage /></Lazy> },\n\n // Workflows section (engineer, admin, or superadmin)\n {\n element: <RequireRole roleTypes={['admin', 'superadmin']} roleNames={['engineer']} />,\n children: [\n { path: 'workflows', element: <Lazy><WorkflowsOverview /></Lazy> },\n { path: 'workflows/executions', element: <Lazy><CertifiedExecutionsPage /></Lazy> },\n { path: 'workflows/durable/executions', element: <Lazy><DurableExecutionsPage /></Lazy> },\n { path: 'workflows/durable/executions/:workflowId', element: <Lazy><WorkflowExecutionPage /></Lazy> },\n { path: 'workflows/tasks', element: <Lazy><TasksListPage /></Lazy> },\n { path: 'workflows/tasks/detail/:id', element: <Lazy><TaskDetailPage /></Lazy> },\n { path: 'workflows/executions/:workflowId', element: <Lazy><WorkflowExecutionPage /></Lazy> },\n { path: 'workflows/start', element: <Lazy><StartWorkflowPage /></Lazy> },\n { path: 'workflows/durable/invoke', element: <Lazy><DurableInvokePage /></Lazy> },\n { path: 'workflows/cron', element: <Navigate to=\"/workflows/start?mode=schedule\" replace /> },\n { path: 'workflows/workers', element: <Lazy><WorkersPage /></Lazy> },\n { path: 'workflows/registry', element: <Lazy><WorkflowConfigsPage /></Lazy> },\n { path: 'workflows/registry/new', element: <Lazy><WorkflowConfigDetailPage /></Lazy> },\n { path: 'workflows/registry/:workflowType', element: <Lazy><WorkflowConfigDetailPage /></Lazy> },\n ],\n },\n\n // MCP section (engineer, admin, or superadmin)\n {\n element: <RequireRole roleTypes={['admin', 'superadmin']} roleNames={['engineer']} />,\n children: [\n { path: 'mcp', element: <Lazy><McpOverview /></Lazy> },\n { path: 'mcp/queries', element: <Lazy><McpQueryPage /></Lazy> },\n { path: 'mcp/queries/:workflowId', element: <Lazy><McpQueryDetailPage /></Lazy> },\n { path: 'mcp/tools', element: <Navigate to=\"/mcp/servers\" replace /> },\n { path: 'mcp/servers', element: <Lazy><McpServersPage /></Lazy> },\n { path: 'mcp/workflows', element: <Lazy><YamlWorkflowsPage /></Lazy> },\n { path: 'mcp/workflows/:id', element: <Lazy><YamlWorkflowDetailPage /></Lazy> },\n { path: 'mcp/executions', element: <Lazy><McpRunsPage /></Lazy> },\n { path: 'mcp/executions/:jobId', element: <Lazy><McpRunDetailPage /></Lazy> },\n ],\n },\n\n // Admin section (admin or superadmin)\n {\n element: <RequireRole roleTypes={['admin', 'superadmin']} />,\n children: [\n { path: 'admin', element: <Lazy><AdminDashboard /></Lazy> },\n { path: 'admin/users', element: <Lazy><UsersPage /></Lazy> },\n { path: 'admin/bots', element: <Navigate to=\"/admin/users?tab=service-accounts\" replace /> },\n { path: 'admin/escalation-chains', element: <Navigate to=\"/admin/roles\" replace /> },\n { path: 'admin/roles', element: <Lazy><RolesPage /></Lazy> },\n { path: 'admin/maintenance', element: <Lazy><MaintenancePage /></Lazy> },\n { path: 'admin/controlplane', element: <Lazy><ControlPlanePage /></Lazy> },\n ],\n },\n ],\n },\n]);\n\nexport function App() {\n return (\n <QueryClientProvider client={queryClient}>\n <EventTransportProvider>\n <AuthProvider>\n <RouterProvider router={router} />\n </AuthProvider>\n </EventTransportProvider>\n </QueryClientProvider>\n );\n}\n","import { StrictMode } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { App } from './App';\nimport './styles/globals.css';\n\ncreateRoot(document.getElementById('root')!).render(\n <StrictMode>\n <App />\n </StrictMode>,\n);\n"],"file":"assets/index-D8VH6K8B.js"}