numpy-ts 1.1.0 → 1.3.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 (456) hide show
  1. package/README.md +3 -11
  2. package/dist/esm/common/broadcasting.js +1 -1
  3. package/dist/esm/common/dtype.js +1 -1
  4. package/dist/esm/common/float16-conv.js +1 -0
  5. package/dist/esm/common/internal/compute.js +1 -1
  6. package/dist/esm/common/internal/indexing.js +1 -1
  7. package/dist/esm/common/ndarray-core.js +1 -1
  8. package/dist/esm/common/ops/advanced.js +1 -1
  9. package/dist/esm/common/ops/arithmetic.js +1 -1
  10. package/dist/esm/common/ops/bitwise.js +1 -1
  11. package/dist/esm/common/ops/comparison.js +1 -1
  12. package/dist/esm/common/ops/complex.js +1 -1
  13. package/dist/esm/common/ops/exponential.js +1 -1
  14. package/dist/esm/common/ops/fft.js +1 -1
  15. package/dist/esm/common/ops/formatting.js +1 -1
  16. package/dist/esm/common/ops/gradient.js +1 -1
  17. package/dist/esm/common/ops/hyperbolic.js +1 -1
  18. package/dist/esm/common/ops/linalg.js +2 -2
  19. package/dist/esm/common/ops/logic.js +1 -1
  20. package/dist/esm/common/ops/random.js +1 -1
  21. package/dist/esm/common/ops/reduction.js +1 -1
  22. package/dist/esm/common/ops/rounding.js +1 -1
  23. package/dist/esm/common/ops/sets.js +1 -1
  24. package/dist/esm/common/ops/shape.js +1 -1
  25. package/dist/esm/common/ops/sorting.js +1 -1
  26. package/dist/esm/common/ops/statistics.js +1 -1
  27. package/dist/esm/common/ops/trig.js +1 -1
  28. package/dist/esm/common/storage.js +1 -1
  29. package/dist/esm/common/wasm/abs.js +1 -1
  30. package/dist/esm/common/wasm/add.js +1 -1
  31. package/dist/esm/common/wasm/all_finite.js +1 -0
  32. package/dist/esm/common/wasm/arccos.js +1 -1
  33. package/dist/esm/common/wasm/arcsin.js +1 -1
  34. package/dist/esm/common/wasm/arctan.js +1 -1
  35. package/dist/esm/common/wasm/arctan2.js +1 -0
  36. package/dist/esm/common/wasm/argpartition.js +1 -1
  37. package/dist/esm/common/wasm/argsort.js +1 -1
  38. package/dist/esm/common/wasm/bins/abs.wasm.js +1 -1
  39. package/dist/esm/common/wasm/bins/add.wasm.js +1 -1
  40. package/dist/esm/common/wasm/bins/all_finite.wasm.js +1 -0
  41. package/dist/esm/common/wasm/bins/alloc.wasm.js +1 -0
  42. package/dist/esm/common/wasm/bins/arccos.wasm.js +1 -1
  43. package/dist/esm/common/wasm/bins/arcsin.wasm.js +1 -1
  44. package/dist/esm/common/wasm/bins/arctan.wasm.js +1 -1
  45. package/dist/esm/common/wasm/bins/arctan2.wasm.js +1 -0
  46. package/dist/esm/common/wasm/bins/argpartition.wasm.js +1 -1
  47. package/dist/esm/common/wasm/bins/argsort.wasm.js +1 -1
  48. package/dist/esm/common/wasm/bins/bitwise_and.wasm.js +1 -1
  49. package/dist/esm/common/wasm/bins/bitwise_count.wasm.js +1 -1
  50. package/dist/esm/common/wasm/bins/bitwise_not.wasm.js +1 -1
  51. package/dist/esm/common/wasm/bins/bitwise_or.wasm.js +1 -1
  52. package/dist/esm/common/wasm/bins/bitwise_xor.wasm.js +1 -1
  53. package/dist/esm/common/wasm/bins/cholesky.wasm.js +1 -1
  54. package/dist/esm/common/wasm/bins/clip.wasm.js +1 -1
  55. package/dist/esm/common/wasm/bins/convolve.wasm.js +1 -1
  56. package/dist/esm/common/wasm/bins/copysign.wasm.js +1 -1
  57. package/dist/esm/common/wasm/bins/correlate.wasm.js +1 -1
  58. package/dist/esm/common/wasm/bins/cos.wasm.js +1 -1
  59. package/dist/esm/common/wasm/bins/cosh.wasm.js +1 -1
  60. package/dist/esm/common/wasm/bins/cross.wasm.js +1 -1
  61. package/dist/esm/common/wasm/bins/diff.wasm.js +1 -1
  62. package/dist/esm/common/wasm/bins/divide.wasm.js +1 -1
  63. package/dist/esm/common/wasm/bins/divmod.wasm.js +1 -0
  64. package/dist/esm/common/wasm/bins/dot_float-relaxed.wasm.js +1 -0
  65. package/dist/esm/common/wasm/bins/dot_float.wasm.js +1 -0
  66. package/dist/esm/common/wasm/bins/dot_int.wasm.js +1 -0
  67. package/dist/esm/common/wasm/bins/exp.wasm.js +1 -1
  68. package/dist/esm/common/wasm/bins/exp2.wasm.js +1 -1
  69. package/dist/esm/common/wasm/bins/fft.wasm.js +1 -1
  70. package/dist/esm/common/wasm/bins/frexp.wasm.js +1 -1
  71. package/dist/esm/common/wasm/bins/gather.wasm.js +1 -1
  72. package/dist/esm/common/wasm/bins/gcd.wasm.js +1 -1
  73. package/dist/esm/common/wasm/bins/gradient.wasm.js +1 -1
  74. package/dist/esm/common/wasm/bins/heaviside.wasm.js +1 -1
  75. package/dist/esm/common/wasm/bins/hypot.wasm.js +1 -1
  76. package/dist/esm/common/wasm/bins/indices.wasm.js +1 -1
  77. package/dist/esm/common/wasm/bins/inner_float-relaxed.wasm.js +1 -0
  78. package/dist/esm/common/wasm/bins/inner_float.wasm.js +1 -0
  79. package/dist/esm/common/wasm/bins/inner_int.wasm.js +1 -0
  80. package/dist/esm/common/wasm/bins/isfinite.wasm.js +1 -0
  81. package/dist/esm/common/wasm/bins/isnan.wasm.js +1 -0
  82. package/dist/esm/common/wasm/bins/kron.wasm.js +1 -1
  83. package/dist/esm/common/wasm/bins/ldexp.wasm.js +1 -1
  84. package/dist/esm/common/wasm/bins/left_shift.wasm.js +1 -1
  85. package/dist/esm/common/wasm/bins/lexsort.wasm.js +1 -1
  86. package/dist/esm/common/wasm/bins/logaddexp.wasm.js +1 -1
  87. package/dist/esm/common/wasm/bins/logical_and.wasm.js +1 -1
  88. package/dist/esm/common/wasm/bins/logical_not.wasm.js +1 -1
  89. package/dist/esm/common/wasm/bins/logical_or.wasm.js +1 -1
  90. package/dist/esm/common/wasm/bins/logical_xor.wasm.js +1 -1
  91. package/dist/esm/common/wasm/bins/lu.wasm.js +1 -0
  92. package/dist/esm/common/wasm/bins/matmul_float-relaxed.wasm.js +1 -0
  93. package/dist/esm/common/wasm/bins/matmul_float.wasm.js +1 -0
  94. package/dist/esm/common/wasm/bins/matmul_int.wasm.js +1 -0
  95. package/dist/esm/common/wasm/bins/matvec_float-relaxed.wasm.js +1 -0
  96. package/dist/esm/common/wasm/bins/matvec_float.wasm.js +1 -0
  97. package/dist/esm/common/wasm/bins/matvec_int.wasm.js +1 -0
  98. package/dist/esm/common/wasm/bins/max.wasm.js +1 -1
  99. package/dist/esm/common/wasm/bins/min.wasm.js +1 -1
  100. package/dist/esm/common/wasm/bins/mul.wasm.js +1 -1
  101. package/dist/esm/common/wasm/bins/neg.wasm.js +1 -1
  102. package/dist/esm/common/wasm/bins/outer.wasm.js +1 -1
  103. package/dist/esm/common/wasm/bins/pad.wasm.js +1 -1
  104. package/dist/esm/common/wasm/bins/partition.wasm.js +1 -1
  105. package/dist/esm/common/wasm/bins/power.wasm.js +1 -1
  106. package/dist/esm/common/wasm/bins/qr.wasm.js +1 -1
  107. package/dist/esm/common/wasm/bins/reciprocal.wasm.js +1 -1
  108. package/dist/esm/common/wasm/bins/reduce_all.wasm.js +1 -1
  109. package/dist/esm/common/wasm/bins/reduce_any.wasm.js +1 -1
  110. package/dist/esm/common/wasm/bins/reduce_argmax.wasm.js +1 -1
  111. package/dist/esm/common/wasm/bins/reduce_argmin.wasm.js +1 -1
  112. package/dist/esm/common/wasm/bins/reduce_count_nz.wasm.js +1 -1
  113. package/dist/esm/common/wasm/bins/reduce_max.wasm.js +1 -1
  114. package/dist/esm/common/wasm/bins/reduce_mean.wasm.js +1 -1
  115. package/dist/esm/common/wasm/bins/reduce_min.wasm.js +1 -1
  116. package/dist/esm/common/wasm/bins/reduce_nanmax.wasm.js +1 -1
  117. package/dist/esm/common/wasm/bins/reduce_nanmin.wasm.js +1 -1
  118. package/dist/esm/common/wasm/bins/reduce_nansum.wasm.js +1 -1
  119. package/dist/esm/common/wasm/bins/reduce_prod.wasm.js +1 -1
  120. package/dist/esm/common/wasm/bins/reduce_std.wasm.js +1 -1
  121. package/dist/esm/common/wasm/bins/reduce_sum.wasm.js +1 -1
  122. package/dist/esm/common/wasm/bins/reduce_var.wasm.js +1 -1
  123. package/dist/esm/common/wasm/bins/repeat.wasm.js +1 -1
  124. package/dist/esm/common/wasm/bins/right_shift.wasm.js +1 -1
  125. package/dist/esm/common/wasm/bins/rng.wasm.js +1 -0
  126. package/dist/esm/common/wasm/bins/roll.wasm.js +1 -1
  127. package/dist/esm/common/wasm/bins/searchsorted.wasm.js +1 -1
  128. package/dist/esm/common/wasm/bins/sign.wasm.js +1 -1
  129. package/dist/esm/common/wasm/bins/signbit.wasm.js +1 -0
  130. package/dist/esm/common/wasm/bins/sin.wasm.js +1 -0
  131. package/dist/esm/common/wasm/bins/sinh.wasm.js +1 -1
  132. package/dist/esm/common/wasm/bins/sort.wasm.js +1 -1
  133. package/dist/esm/common/wasm/bins/sqrt.wasm.js +1 -1
  134. package/dist/esm/common/wasm/bins/square.wasm.js +1 -1
  135. package/dist/esm/common/wasm/bins/sub.wasm.js +1 -1
  136. package/dist/esm/common/wasm/bins/svd.wasm.js +1 -1
  137. package/dist/esm/common/wasm/bins/tan.wasm.js +1 -1
  138. package/dist/esm/common/wasm/bins/tanh.wasm.js +1 -1
  139. package/dist/esm/common/wasm/bins/tile.wasm.js +1 -1
  140. package/dist/esm/common/wasm/bins/unravel_index.wasm.js +1 -0
  141. package/dist/esm/common/wasm/bins/vdot.wasm.js +1 -1
  142. package/dist/esm/common/wasm/bins/vecdot_float-relaxed.wasm.js +1 -0
  143. package/dist/esm/common/wasm/bins/vecdot_float.wasm.js +1 -0
  144. package/dist/esm/common/wasm/bins/vecdot_int.wasm.js +1 -0
  145. package/dist/esm/common/wasm/bins/vecmat_float-relaxed.wasm.js +1 -0
  146. package/dist/esm/common/wasm/bins/vecmat_float.wasm.js +1 -0
  147. package/dist/esm/common/wasm/bins/vecmat_int.wasm.js +1 -0
  148. package/dist/esm/common/wasm/bins/vector_norm-relaxed.wasm.js +1 -0
  149. package/dist/esm/common/wasm/bins/vector_norm.wasm.js +1 -0
  150. package/dist/esm/common/wasm/bitwise_and.js +1 -1
  151. package/dist/esm/common/wasm/bitwise_count.js +1 -1
  152. package/dist/esm/common/wasm/bitwise_not.js +1 -1
  153. package/dist/esm/common/wasm/bitwise_or.js +1 -1
  154. package/dist/esm/common/wasm/bitwise_xor.js +1 -1
  155. package/dist/esm/common/wasm/cholesky.js +1 -1
  156. package/dist/esm/common/wasm/clip.js +1 -1
  157. package/dist/esm/common/wasm/config.js +1 -1
  158. package/dist/esm/common/wasm/convolve.js +1 -1
  159. package/dist/esm/common/wasm/copysign.js +1 -1
  160. package/dist/esm/common/wasm/correlate.js +1 -1
  161. package/dist/esm/common/wasm/cos.js +1 -1
  162. package/dist/esm/common/wasm/cosh.js +1 -1
  163. package/dist/esm/common/wasm/cross.js +1 -1
  164. package/dist/esm/common/wasm/detect.js +1 -0
  165. package/dist/esm/common/wasm/diff.js +1 -1
  166. package/dist/esm/common/wasm/divide.js +1 -1
  167. package/dist/esm/common/wasm/divmod.js +1 -0
  168. package/dist/esm/common/wasm/dot.js +1 -1
  169. package/dist/esm/common/wasm/exp.js +1 -1
  170. package/dist/esm/common/wasm/exp2.js +1 -1
  171. package/dist/esm/common/wasm/fft.js +1 -1
  172. package/dist/esm/common/wasm/frexp.js +1 -1
  173. package/dist/esm/common/wasm/gather.js +1 -1
  174. package/dist/esm/common/wasm/gcd.js +1 -1
  175. package/dist/esm/common/wasm/gradient.js +1 -1
  176. package/dist/esm/common/wasm/heaviside.js +1 -1
  177. package/dist/esm/common/wasm/hypot.js +1 -1
  178. package/dist/esm/common/wasm/indices.js +1 -1
  179. package/dist/esm/common/wasm/inner.js +1 -1
  180. package/dist/esm/common/wasm/isfinite.js +1 -0
  181. package/dist/esm/common/wasm/isnan.js +1 -0
  182. package/dist/esm/common/wasm/kron.js +1 -1
  183. package/dist/esm/common/wasm/ldexp.js +1 -1
  184. package/dist/esm/common/wasm/left_shift.js +1 -1
  185. package/dist/esm/common/wasm/lexsort.js +1 -1
  186. package/dist/esm/common/wasm/logaddexp.js +1 -1
  187. package/dist/esm/common/wasm/logical_and.js +1 -1
  188. package/dist/esm/common/wasm/logical_not.js +1 -1
  189. package/dist/esm/common/wasm/logical_or.js +1 -1
  190. package/dist/esm/common/wasm/logical_xor.js +1 -1
  191. package/dist/esm/common/wasm/lu.js +1 -0
  192. package/dist/esm/common/wasm/matmul.js +1 -1
  193. package/dist/esm/common/wasm/matvec.js +1 -1
  194. package/dist/esm/common/wasm/max.js +1 -1
  195. package/dist/esm/common/wasm/min.js +1 -1
  196. package/dist/esm/common/wasm/mul.js +1 -1
  197. package/dist/esm/common/wasm/neg.js +1 -1
  198. package/dist/esm/common/wasm/outer.js +1 -1
  199. package/dist/esm/common/wasm/pad.js +1 -1
  200. package/dist/esm/common/wasm/partition.js +1 -1
  201. package/dist/esm/common/wasm/power.js +1 -1
  202. package/dist/esm/common/wasm/qr.js +1 -1
  203. package/dist/esm/common/wasm/reciprocal.js +1 -1
  204. package/dist/esm/common/wasm/reduce_all.js +1 -1
  205. package/dist/esm/common/wasm/reduce_any.js +1 -1
  206. package/dist/esm/common/wasm/reduce_argmax.js +1 -1
  207. package/dist/esm/common/wasm/reduce_argmin.js +1 -1
  208. package/dist/esm/common/wasm/reduce_count_nz.js +1 -1
  209. package/dist/esm/common/wasm/reduce_max.js +1 -1
  210. package/dist/esm/common/wasm/reduce_mean.js +1 -1
  211. package/dist/esm/common/wasm/reduce_min.js +1 -1
  212. package/dist/esm/common/wasm/reduce_nanmax.js +1 -1
  213. package/dist/esm/common/wasm/reduce_nanmin.js +1 -1
  214. package/dist/esm/common/wasm/reduce_nansum.js +1 -1
  215. package/dist/esm/common/wasm/reduce_prod.js +1 -1
  216. package/dist/esm/common/wasm/reduce_quantile.js +1 -1
  217. package/dist/esm/common/wasm/reduce_std.js +1 -1
  218. package/dist/esm/common/wasm/reduce_sum.js +1 -1
  219. package/dist/esm/common/wasm/reduce_var.js +1 -1
  220. package/dist/esm/common/wasm/repeat.js +1 -1
  221. package/dist/esm/common/wasm/right_shift.js +1 -1
  222. package/dist/esm/common/wasm/rng.js +1 -0
  223. package/dist/esm/common/wasm/roll.js +1 -1
  224. package/dist/esm/common/wasm/runtime.js +1 -1
  225. package/dist/esm/common/wasm/searchsorted.js +1 -1
  226. package/dist/esm/common/wasm/sign.js +1 -1
  227. package/dist/esm/common/wasm/signbit.js +1 -0
  228. package/dist/esm/common/wasm/sin.js +1 -0
  229. package/dist/esm/common/wasm/sinh.js +1 -1
  230. package/dist/esm/common/wasm/sort.js +1 -1
  231. package/dist/esm/common/wasm/sqrt.js +1 -1
  232. package/dist/esm/common/wasm/square.js +1 -1
  233. package/dist/esm/common/wasm/sub.js +1 -1
  234. package/dist/esm/common/wasm/svd.js +1 -1
  235. package/dist/esm/common/wasm/tan.js +1 -1
  236. package/dist/esm/common/wasm/tanh.js +1 -1
  237. package/dist/esm/common/wasm/tile.js +1 -1
  238. package/dist/esm/common/wasm/unravel_index.js +1 -0
  239. package/dist/esm/common/wasm/vdot.js +1 -1
  240. package/dist/esm/common/wasm/vecdot.js +1 -1
  241. package/dist/esm/common/wasm/vecmat.js +1 -1
  242. package/dist/esm/common/wasm/vector_norm.js +1 -0
  243. package/dist/esm/core/advanced.js +1 -1
  244. package/dist/esm/core/arithmetic.js +1 -1
  245. package/dist/esm/core/bitwise.js +1 -1
  246. package/dist/esm/core/complex.js +1 -1
  247. package/dist/esm/core/creation.js +1 -1
  248. package/dist/esm/core/formatting.js +1 -1
  249. package/dist/esm/core/gradient.js +1 -1
  250. package/dist/esm/core/index.js +1 -1
  251. package/dist/esm/core/linalg.js +1 -1
  252. package/dist/esm/core/logic.js +1 -1
  253. package/dist/esm/core/polynomial.js +1 -1
  254. package/dist/esm/core/reduction.js +1 -1
  255. package/dist/esm/core/rounding.js +1 -1
  256. package/dist/esm/core/sets.js +1 -1
  257. package/dist/esm/core/shape-extra.js +1 -1
  258. package/dist/esm/core/shape.js +1 -1
  259. package/dist/esm/core/sorting.js +1 -1
  260. package/dist/esm/core/statistics.js +1 -1
  261. package/dist/esm/core/trig.js +1 -1
  262. package/dist/esm/core/typechecking.js +1 -1
  263. package/dist/esm/core/types.js +1 -1
  264. package/dist/esm/core/utility.js +1 -1
  265. package/dist/esm/core.js +1 -1
  266. package/dist/esm/full/index.js +1 -1
  267. package/dist/esm/full/ndarray.js +1 -1
  268. package/dist/esm/index.js +1 -1
  269. package/dist/esm/io/file-ops.js +1 -0
  270. package/dist/esm/io/filesystem.js +1 -0
  271. package/dist/esm/io/index.js +1 -1
  272. package/dist/esm/io/npy/format.js +1 -1
  273. package/dist/esm/io/npy/index.js +1 -1
  274. package/dist/esm/io/npy/parser.js +1 -1
  275. package/dist/esm/io/npy/serializer.js +2 -2
  276. package/dist/esm/io/npz/index.js +1 -1
  277. package/dist/esm/io/npz/parser.js +1 -1
  278. package/dist/esm/io/npz/serializer.js +1 -1
  279. package/dist/esm/io/txt/index.js +1 -1
  280. package/dist/esm/io/txt/parser.js +1 -1
  281. package/dist/esm/io/zip/index.js +1 -1
  282. package/dist/esm/io/zip/reader.js +1 -1
  283. package/dist/esm/io/zip/writer.js +1 -1
  284. package/dist/esm/node.js +1 -1
  285. package/dist/numpy-ts.browser.js +6 -6
  286. package/dist/types/common/dtype.d.ts +55 -4
  287. package/dist/types/common/float16-conv.d.ts +27 -0
  288. package/dist/types/common/internal/indexing.d.ts +9 -21
  289. package/dist/types/common/ndarray-core.d.ts +20 -0
  290. package/dist/types/common/ops/advanced.d.ts +17 -2
  291. package/dist/types/common/ops/complex.d.ts +19 -1
  292. package/dist/types/common/ops/linalg.d.ts +1 -1
  293. package/dist/types/common/ops/random.d.ts +10 -5
  294. package/dist/types/common/ops/reduction.d.ts +2 -2
  295. package/dist/types/common/ops/sets.d.ts +2 -1
  296. package/dist/types/common/ops/shape.d.ts +2 -2
  297. package/dist/types/common/ops/statistics.d.ts +2 -1
  298. package/dist/types/common/storage.d.ts +54 -2
  299. package/dist/types/common/wasm/all_finite.d.ts +8 -0
  300. package/dist/types/common/wasm/arccos.d.ts +4 -2
  301. package/dist/types/common/wasm/arcsin.d.ts +4 -2
  302. package/dist/types/common/wasm/arctan.d.ts +4 -2
  303. package/dist/types/common/wasm/arctan2.d.ts +17 -0
  304. package/dist/types/common/wasm/argpartition.d.ts +8 -3
  305. package/dist/types/common/wasm/argsort.d.ts +8 -3
  306. package/dist/types/common/wasm/bins/abs.wasm.d.ts +1 -0
  307. package/dist/types/common/wasm/bins/all_finite.wasm.d.ts +4 -0
  308. package/dist/types/common/wasm/bins/alloc.wasm.d.ts +6 -0
  309. package/dist/types/common/wasm/bins/arccos.wasm.d.ts +8 -2
  310. package/dist/types/common/wasm/bins/arcsin.wasm.d.ts +8 -2
  311. package/dist/types/common/wasm/bins/arctan.wasm.d.ts +8 -2
  312. package/dist/types/common/wasm/bins/arctan2.wasm.d.ts +11 -0
  313. package/dist/types/common/wasm/bins/convolve.wasm.d.ts +6 -0
  314. package/dist/types/common/wasm/bins/copysign.wasm.d.ts +2 -0
  315. package/dist/types/common/wasm/bins/correlate.wasm.d.ts +6 -0
  316. package/dist/types/common/wasm/bins/cos.wasm.d.ts +8 -0
  317. package/dist/types/common/wasm/bins/cosh.wasm.d.ts +8 -2
  318. package/dist/types/common/wasm/bins/divmod.wasm.d.ts +11 -0
  319. package/dist/types/common/wasm/bins/dot_float-relaxed.wasm.d.ts +5 -0
  320. package/dist/types/common/wasm/bins/dot_float.wasm.d.ts +5 -0
  321. package/dist/types/common/wasm/bins/dot_int.wasm.d.ts +5 -0
  322. package/dist/types/common/wasm/bins/exp.wasm.d.ts +8 -2
  323. package/dist/types/common/wasm/bins/exp2.wasm.d.ts +8 -2
  324. package/dist/types/common/wasm/bins/fft.wasm.d.ts +11 -0
  325. package/dist/types/common/wasm/bins/frexp.wasm.d.ts +1 -0
  326. package/dist/types/common/wasm/bins/gather.wasm.d.ts +0 -1
  327. package/dist/types/common/wasm/bins/gcd.wasm.d.ts +8 -0
  328. package/dist/types/common/wasm/bins/indices.wasm.d.ts +6 -2
  329. package/dist/types/common/wasm/bins/inner_float-relaxed.wasm.d.ts +5 -0
  330. package/dist/types/common/wasm/bins/inner_float.wasm.d.ts +5 -0
  331. package/dist/types/common/wasm/bins/inner_int.wasm.d.ts +5 -0
  332. package/dist/types/common/wasm/bins/isfinite.wasm.d.ts +4 -0
  333. package/dist/types/common/wasm/bins/isnan.wasm.d.ts +4 -0
  334. package/dist/types/common/wasm/bins/lexsort.wasm.d.ts +4 -4
  335. package/dist/types/common/wasm/bins/logical_and.wasm.d.ts +2 -0
  336. package/dist/types/common/wasm/bins/logical_not.wasm.d.ts +1 -0
  337. package/dist/types/common/wasm/bins/logical_or.wasm.d.ts +2 -0
  338. package/dist/types/common/wasm/bins/logical_xor.wasm.d.ts +2 -0
  339. package/dist/types/common/wasm/bins/lu.wasm.d.ts +7 -0
  340. package/dist/types/common/wasm/bins/matmul_float-relaxed.wasm.d.ts +5 -0
  341. package/dist/types/common/wasm/bins/matmul_float.wasm.d.ts +5 -0
  342. package/dist/types/common/wasm/bins/matmul_int.wasm.d.ts +5 -0
  343. package/dist/types/common/wasm/bins/matvec_float-relaxed.wasm.d.ts +5 -0
  344. package/dist/types/common/wasm/bins/matvec_float.wasm.d.ts +5 -0
  345. package/dist/types/common/wasm/bins/matvec_int.wasm.d.ts +5 -0
  346. package/dist/types/common/wasm/bins/neg.wasm.d.ts +1 -0
  347. package/dist/types/common/wasm/bins/qr.wasm.d.ts +0 -1
  348. package/dist/types/common/wasm/bins/reciprocal.wasm.d.ts +8 -4
  349. package/dist/types/common/wasm/bins/reduce_argmax.wasm.d.ts +8 -0
  350. package/dist/types/common/wasm/bins/reduce_argmin.wasm.d.ts +8 -0
  351. package/dist/types/common/wasm/bins/reduce_max.wasm.d.ts +1 -0
  352. package/dist/types/common/wasm/bins/reduce_min.wasm.d.ts +1 -0
  353. package/dist/types/common/wasm/bins/reduce_prod.wasm.d.ts +2 -0
  354. package/dist/types/common/wasm/bins/reduce_sum.wasm.d.ts +8 -2
  355. package/dist/types/common/wasm/bins/rng.wasm.d.ts +57 -0
  356. package/dist/types/common/wasm/bins/sign.wasm.d.ts +1 -0
  357. package/dist/types/common/wasm/bins/signbit.wasm.d.ts +8 -0
  358. package/dist/types/common/wasm/bins/sin.wasm.d.ts +11 -0
  359. package/dist/types/common/wasm/bins/sinh.wasm.d.ts +8 -2
  360. package/dist/types/common/wasm/bins/sort.wasm.d.ts +6 -4
  361. package/dist/types/common/wasm/bins/sqrt.wasm.d.ts +2 -2
  362. package/dist/types/common/wasm/bins/svd.wasm.d.ts +1 -0
  363. package/dist/types/common/wasm/bins/tan.wasm.d.ts +8 -0
  364. package/dist/types/common/wasm/bins/tanh.wasm.d.ts +8 -2
  365. package/dist/types/common/wasm/bins/unravel_index.wasm.d.ts +4 -0
  366. package/dist/types/common/wasm/bins/vecdot_float-relaxed.wasm.d.ts +5 -0
  367. package/dist/types/common/wasm/bins/vecdot_float.wasm.d.ts +5 -0
  368. package/dist/types/common/wasm/bins/vecdot_int.wasm.d.ts +5 -0
  369. package/dist/types/common/wasm/bins/vecmat_float-relaxed.wasm.d.ts +5 -0
  370. package/dist/types/common/wasm/bins/vecmat_float.wasm.d.ts +5 -0
  371. package/dist/types/common/wasm/bins/vecmat_int.wasm.d.ts +5 -0
  372. package/dist/types/common/wasm/bins/vector_norm-relaxed.wasm.d.ts +3 -0
  373. package/dist/types/common/wasm/bins/vector_norm.wasm.d.ts +3 -0
  374. package/dist/types/common/wasm/config.d.ts +25 -0
  375. package/dist/types/common/wasm/convolve.d.ts +1 -1
  376. package/dist/types/common/wasm/cos.d.ts +4 -2
  377. package/dist/types/common/wasm/cosh.d.ts +4 -2
  378. package/dist/types/common/wasm/detect.d.ts +17 -0
  379. package/dist/types/common/wasm/divide.d.ts +4 -0
  380. package/dist/types/common/wasm/divmod.d.ts +13 -0
  381. package/dist/types/common/wasm/exp.d.ts +4 -2
  382. package/dist/types/common/wasm/exp2.d.ts +4 -2
  383. package/dist/types/common/wasm/fft.d.ts +36 -0
  384. package/dist/types/common/wasm/frexp.d.ts +1 -0
  385. package/dist/types/common/wasm/gather.d.ts +4 -0
  386. package/dist/types/common/wasm/gcd.d.ts +1 -0
  387. package/dist/types/common/wasm/heaviside.d.ts +2 -2
  388. package/dist/types/common/wasm/hypot.d.ts +4 -2
  389. package/dist/types/common/wasm/indices.d.ts +2 -1
  390. package/dist/types/common/wasm/isfinite.d.ts +7 -0
  391. package/dist/types/common/wasm/isnan.d.ts +7 -0
  392. package/dist/types/common/wasm/lexsort.d.ts +3 -1
  393. package/dist/types/common/wasm/logaddexp.d.ts +4 -2
  394. package/dist/types/common/wasm/lu.d.ts +27 -0
  395. package/dist/types/common/wasm/partition.d.ts +3 -1
  396. package/dist/types/common/wasm/reduce_argmax.d.ts +5 -0
  397. package/dist/types/common/wasm/reduce_argmin.d.ts +5 -0
  398. package/dist/types/common/wasm/reduce_prod.d.ts +4 -0
  399. package/dist/types/common/wasm/reduce_quantile.d.ts +11 -3
  400. package/dist/types/common/wasm/reduce_sum.d.ts +10 -0
  401. package/dist/types/common/wasm/rng.d.ts +75 -0
  402. package/dist/types/common/wasm/runtime.d.ts +117 -23
  403. package/dist/types/common/wasm/searchsorted.d.ts +3 -1
  404. package/dist/types/common/wasm/signbit.d.ts +14 -0
  405. package/dist/types/common/wasm/sin.d.ts +17 -0
  406. package/dist/types/common/wasm/sinh.d.ts +4 -2
  407. package/dist/types/common/wasm/sort.d.ts +4 -1
  408. package/dist/types/common/wasm/sqrt.d.ts +4 -2
  409. package/dist/types/common/wasm/svd.d.ts +6 -0
  410. package/dist/types/common/wasm/tan.d.ts +4 -2
  411. package/dist/types/common/wasm/tanh.d.ts +4 -2
  412. package/dist/types/common/wasm/unravel_index.d.ts +12 -0
  413. package/dist/types/common/wasm/vector_norm.d.ts +11 -0
  414. package/dist/types/core/advanced.d.ts +10 -2
  415. package/dist/types/core/creation.d.ts +1 -1
  416. package/dist/types/core/index.d.ts +96 -2
  417. package/dist/types/core/linalg.d.ts +1 -1
  418. package/dist/types/core/rounding.d.ts +0 -2
  419. package/dist/types/core/sets.d.ts +4 -1
  420. package/dist/types/core/statistics.d.ts +2 -1
  421. package/dist/types/full/index.d.ts +19 -6
  422. package/dist/types/index.d.ts +20 -4
  423. package/dist/types/io/file-ops.d.ts +269 -0
  424. package/dist/types/io/filesystem.d.ts +21 -0
  425. package/dist/types/node.d.ts +3 -275
  426. package/package.json +52 -62
  427. package/dist/esm/common/wasm/bins/dot.wasm.js +0 -1
  428. package/dist/esm/common/wasm/bins/flip.wasm.js +0 -1
  429. package/dist/esm/common/wasm/bins/inner.wasm.js +0 -1
  430. package/dist/esm/common/wasm/bins/matmul.wasm.js +0 -1
  431. package/dist/esm/common/wasm/bins/matvec.wasm.js +0 -1
  432. package/dist/esm/common/wasm/bins/reduce_quantile.wasm.js +0 -1
  433. package/dist/esm/common/wasm/bins/rot90.wasm.js +0 -1
  434. package/dist/esm/common/wasm/bins/vecdot.wasm.js +0 -1
  435. package/dist/esm/common/wasm/bins/vecmat.wasm.js +0 -1
  436. package/dist/esm/common/wasm/flip.js +0 -1
  437. package/dist/esm/common/wasm/lstsq.js +0 -1
  438. package/dist/esm/common/wasm/rot90.js +0 -1
  439. package/dist/numpy-ts.node-io.cjs +0 -8
  440. package/dist/numpy-ts.node-io.cjs.map +0 -7
  441. package/dist/numpy-ts.node-io.mjs +0 -8
  442. package/dist/numpy-ts.node-io.mjs.map +0 -7
  443. package/dist/numpy-ts.node.cjs +0 -8
  444. package/dist/numpy-ts.node.cjs.map +0 -7
  445. package/dist/types/common/wasm/bins/dot.wasm.d.ts +0 -9
  446. package/dist/types/common/wasm/bins/flip.wasm.d.ts +0 -7
  447. package/dist/types/common/wasm/bins/inner.wasm.d.ts +0 -9
  448. package/dist/types/common/wasm/bins/matmul.wasm.d.ts +0 -9
  449. package/dist/types/common/wasm/bins/matvec.wasm.d.ts +0 -9
  450. package/dist/types/common/wasm/bins/reduce_quantile.wasm.d.ts +0 -2
  451. package/dist/types/common/wasm/bins/rot90.wasm.d.ts +0 -7
  452. package/dist/types/common/wasm/bins/vecdot.wasm.d.ts +0 -9
  453. package/dist/types/common/wasm/bins/vecmat.wasm.d.ts +0 -9
  454. package/dist/types/common/wasm/flip.d.ts +0 -13
  455. package/dist/types/common/wasm/lstsq.d.ts +0 -14
  456. package/dist/types/common/wasm/rot90.d.ts +0 -14
@@ -1,8 +0,0 @@
1
- "use strict";var ca=Object.defineProperty;var G_=Object.getOwnPropertyDescriptor;var S_=Object.getOwnPropertyNames;var R_=Object.prototype.hasOwnProperty;var k_=(A,r)=>{for(var I in r)ca(A,I,{get:r[I],enumerable:!0})},q_=(A,r,I,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of S_(r))!R_.call(A,t)&&t!==I&&ca(A,t,{get:()=>r[t],enumerable:!(e=G_(r,t))||e.enumerable});return A};var M_=A=>q_(ca({},"__esModule",{value:!0}),A);var _T={};k_(_T,{Complex:()=>T,DTYPE_TO_DESCR:()=>na,InvalidNpyError:()=>jA,NDArray:()=>sA,NDArrayCore:()=>AA,SUPPORTED_DTYPES:()=>bD,UnsupportedDTypeError:()=>Ur,__version__:()=>HT,abs:()=>MD,absolute:()=>MD,acos:()=>PD,acosh:()=>OD,add:()=>TJ,all:()=>RL,allclose:()=>ZI,amax:()=>Go,amin:()=>Ro,angle:()=>vU,any:()=>kL,append:()=>nH,apply_along_axis:()=>vJ,apply_over_axes:()=>XJ,arange:()=>WU,arccos:()=>PD,arccosh:()=>OD,arcsin:()=>TD,arcsinh:()=>WD,arctan:()=>KD,arctan2:()=>VD,arctanh:()=>ZD,argmax:()=>bL,argmin:()=>dL,argpartition:()=>JH,argsort:()=>qH,argwhere:()=>HH,around:()=>YD,array:()=>VU,array2string:()=>vQ,array_equal:()=>GQ,array_equiv:()=>SQ,array_repr:()=>XQ,array_split:()=>Fg,array_str:()=>ee,asanyarray:()=>n2,asarray:()=>A2,asarray_chkfinite:()=>Q2,ascontiguousarray:()=>i2,asfortranarray:()=>g2,asin:()=>TD,asinh:()=>WD,atan:()=>KD,atan2:()=>VD,atanh:()=>ZD,atleast_1d:()=>kg,atleast_2d:()=>qg,atleast_3d:()=>Mg,average:()=>SL,base_repr:()=>_Q,binary_repr:()=>YQ,bincount:()=>vH,bindex:()=>SJ,bitwise_and:()=>qU,bitwise_count:()=>HU,bitwise_invert:()=>xD,bitwise_left_shift:()=>JD,bitwise_not:()=>xD,bitwise_or:()=>MU,bitwise_right_shift:()=>UD,bitwise_xor:()=>xU,block:()=>hH,broadcast_arrays:()=>lQ,broadcast_shapes:()=>hQ,broadcast_to:()=>bJ,byteswap:()=>OQ,can_cast:()=>hi,cbrt:()=>aU,ceil:()=>VL,choose:()=>NJ,clip:()=>dU,column_stack:()=>lH,common_type:()=>Aa,compress:()=>FJ,concat:()=>XD,concatenate:()=>XD,conj:()=>LD,conjugate:()=>LD,convolve:()=>PH,copy:()=>o2,copysign:()=>j2,copyto:()=>wQ,corrcoef:()=>VH,correlate:()=>TH,cos:()=>ZH,cosh:()=>t9,count_nonzero:()=>tQ,cov:()=>KH,cross:()=>U2,cumprod:()=>_D,cumsum:()=>HD,cumulative_prod:()=>_D,cumulative_sum:()=>HD,deg2rad:()=>r9,degrees:()=>$H,delete:()=>vD,delete_:()=>vD,diag:()=>B2,diag_indices:()=>xJ,diag_indices_from:()=>JJ,diagflat:()=>s2,diagonal:()=>w2,diff:()=>h2,digitize:()=>XH,divide:()=>nU,divmod:()=>sU,dot:()=>b2,dsplit:()=>Rg,dstack:()=>yH,ediff1d:()=>d2,einsum:()=>Dg,einsum_path:()=>fg,empty:()=>PU,empty_like:()=>e2,equal:()=>nL,exp:()=>WJ,exp2:()=>OJ,expand_dims:()=>CH,expm1:()=>ZJ,extract:()=>YH,eye:()=>jU,fabs:()=>BU,fft:()=>LT,fill:()=>jQ,fill_diagonal:()=>FQ,fix:()=>WL,flatnonzero:()=>_H,flatten:()=>aH,flip:()=>wH,fliplr:()=>NH,flipud:()=>FH,float_power:()=>cU,floor:()=>OL,floor_divide:()=>iU,fmax:()=>wU,fmin:()=>NU,fmod:()=>DU,format_float_positional:()=>LQ,format_float_scientific:()=>HQ,frexp:()=>fU,frombuffer:()=>D2,fromfile:()=>l2,fromfunction:()=>f2,fromiter:()=>m2,fromregex:()=>JT,fromstring:()=>y2,full:()=>KU,full_like:()=>t2,gcd:()=>mU,genfromtxt:()=>xT,geomspace:()=>zU,get_printoptions:()=>JQ,geterr:()=>qQ,gradient:()=>yQ,greater:()=>IL,greater_equal:()=>eL,heaviside:()=>uU,histogram:()=>cQ,histogram2d:()=>DQ,histogram_bin_edges:()=>mQ,histogramdd:()=>fQ,hsplit:()=>Sg,hstack:()=>mH,hypot:()=>jH,i0:()=>kU,identity:()=>$U,iindex:()=>GJ,imag:()=>YU,in1d:()=>jL,indices:()=>kJ,inner:()=>G2,insert:()=>iH,interp:()=>GU,intersect1d:()=>$L,invert:()=>JU,isclose:()=>gL,iscomplex:()=>O2,iscomplexobj:()=>Og,isdtype:()=>AQ,isfinite:()=>X2,isfortran:()=>zg,isin:()=>AH,isinf:()=>T2,isnan:()=>P2,isnat:()=>K2,isneginf:()=>V2,isposinf:()=>W2,isreal:()=>Z2,isrealobj:()=>Zg,isscalar:()=>jg,issubdtype:()=>ea,item:()=>KQ,iterable:()=>$g,ix_:()=>NQ,kron:()=>N2,lcm:()=>yU,ldexp:()=>lU,left_shift:()=>JD,less:()=>tL,less_equal:()=>oL,lexsort:()=>MH,linalg:()=>bg,linspace:()=>OU,loadNpz:()=>kT,loadNpzSync:()=>qT,log:()=>zJ,log10:()=>$J,log1p:()=>AU,log2:()=>jJ,logaddexp:()=>rU,logaddexp2:()=>IU,logical_and:()=>H2,logical_not:()=>Y2,logical_or:()=>_2,logical_xor:()=>v2,logspace:()=>ZU,mask_indices:()=>YJ,matmul:()=>L2,matrix_transpose:()=>q2,matvec:()=>x2,max:()=>Go,maximum:()=>bU,may_share_memory:()=>RQ,mean:()=>yL,median:()=>NL,meshgrid:()=>kD,min:()=>Ro,min_scalar_type:()=>Ia,minimum:()=>pU,mintypecode:()=>oa,mod:()=>oU,modf:()=>hU,moveaxis:()=>uH,multiply:()=>KJ,nan_to_num:()=>FU,nanargmax:()=>YL,nanargmin:()=>_L,nancumprod:()=>XL,nancumsum:()=>vL,nanmax:()=>HL,nanmean:()=>xL,nanmedian:()=>TL,nanmin:()=>LL,nanpercentile:()=>KL,nanprod:()=>ML,nanquantile:()=>PL,nanstd:()=>UL,nansum:()=>qL,nanvar:()=>JL,ndim:()=>TQ,negative:()=>eU,nextafter:()=>AL,nonzero:()=>LH,not_equal:()=>iL,ones:()=>TU,ones_like:()=>I2,outer:()=>S2,packbits:()=>UU,pad:()=>gH,parseNpy:()=>NT,parseNpyData:()=>GT,parseNpyHeader:()=>FT,parseNpz:()=>ST,parseNpzSync:()=>RT,parseTxt:()=>MT,partition:()=>xH,percentile:()=>FL,permute_dims:()=>M2,place:()=>bQ,poly:()=>QL,polyadd:()=>aL,polyder:()=>BL,polydiv:()=>sL,polyfit:()=>CL,polyint:()=>EL,polymul:()=>uL,polysub:()=>cL,polyval:()=>DL,positive:()=>gU,pow:()=>qD,power:()=>qD,printoptions:()=>UQ,prod:()=>lL,promote_types:()=>rQ,ptp:()=>hL,put:()=>Ie,put_along_axis:()=>dQ,putmask:()=>pQ,quantile:()=>GL,rad2deg:()=>I9,radians:()=>A9,random:()=>UT,ravel:()=>BH,ravel_multi_index:()=>qJ,real:()=>_U,real_if_close:()=>z2,reciprocal:()=>QU,remainder:()=>EU,repeat:()=>pH,require:()=>a2,reshape:()=>QH,resize:()=>RH,result_type:()=>ra,right_shift:()=>UD,rint:()=>ZL,roll:()=>SH,rollaxis:()=>cH,roots:()=>fL,rot90:()=>GH,round:()=>YD,round_:()=>BQ,row_stack:()=>wg,searchsorted:()=>jI,select:()=>RJ,serializeNpy:()=>bi,serializeNpz:()=>DJ,serializeNpzSync:()=>fJ,serializeTxt:()=>dJ,set_printoptions:()=>xQ,setdiff1d:()=>rH,seterr:()=>MQ,setxor1d:()=>IH,shape:()=>yi,shares_memory:()=>kQ,sign:()=>tU,signbit:()=>$2,sin:()=>OH,sinc:()=>RU,sinh:()=>e9,size:()=>PQ,sort:()=>kH,sort_complex:()=>UH,spacing:()=>rL,split:()=>Ng,sqrt:()=>VJ,square:()=>CU,squeeze:()=>sH,stack:()=>DH,std:()=>wL,subtract:()=>PJ,sum:()=>mL,swapaxes:()=>EH,take:()=>pJ,take_along_axis:()=>wJ,tan:()=>zH,tanh:()=>o9,tensordot:()=>R2,tile:()=>bH,tobytes:()=>WQ,tofile:()=>zQ,tolist:()=>VQ,trace:()=>p2,transpose:()=>F2,trapezoid:()=>WH,tri:()=>C2,tril:()=>E2,tril_indices:()=>UJ,tril_indices_from:()=>LJ,trim_zeros:()=>tH,triu:()=>u2,triu_indices:()=>HJ,triu_indices_from:()=>_J,true_divide:()=>Ig,trunc:()=>zL,typename:()=>ta,union1d:()=>eH,unique:()=>sQ,unique_all:()=>CQ,unique_counts:()=>EQ,unique_inverse:()=>uQ,unique_values:()=>oH,unpackbits:()=>LU,unravel_index:()=>MJ,unstack:()=>dH,unwrap:()=>SU,vander:()=>c2,var:()=>Vg,variance:()=>pL,vdot:()=>mg,vecdot:()=>k2,vecmat:()=>J2,view:()=>ZQ,vsplit:()=>Gg,vstack:()=>fH,wasmConfig:()=>Y,where:()=>eQ,zeros:()=>XU,zeros_like:()=>r2});module.exports=M_(_T);var T=class A{constructor(r,I=0){this.re=r,this.im=I}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new A(this.re,-this.im)}add(r){return typeof r=="number"?new A(this.re+r,this.im):new A(this.re+r.re,this.im+r.im)}sub(r){return typeof r=="number"?new A(this.re-r,this.im):new A(this.re-r.re,this.im-r.im)}mul(r){return typeof r=="number"?new A(this.re*r,this.im*r):new A(this.re*r.re-this.im*r.im,this.re*r.im+this.im*r.re)}div(r){if(typeof r=="number")return new A(this.re/r,this.im/r);let I=r.re*r.re+r.im*r.im;return new A((this.re*r.re+this.im*r.im)/I,(this.im*r.re-this.re*r.im)/I)}neg(){return new A(-this.re,-this.im)}equals(r){return this.re===r.re&&this.im===r.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(r){if(r instanceof A)return r;if(typeof r=="number")return new A(r,0);if(Array.isArray(r))return new A(r[0]??0,r[1]??0);if(typeof r=="object"&&r!==null&&"re"in r)return new A(r.re??0,r.im??0);throw new Error(`Cannot convert ${r} to Complex`)}static isComplex(r){return r instanceof A||typeof r=="object"&&r!==null&&"re"in r&&"im"in r}};function Cf(A){return A instanceof T||typeof A=="object"&&A!==null&&"re"in A}var BA="float64";function nA(A){switch(A){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${A}`)}}function Hr(A){switch(A){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${A}`)}}function pA(A){return A==="int64"||A==="int32"||A==="int16"||A==="int8"||A==="uint64"||A==="uint32"||A==="uint16"||A==="uint8"}function fA(A){return A==="float64"||A==="float32"}function L(A){return A==="int64"||A==="uint64"}function k(A){return A==="complex64"||A==="complex128"}function eA(A,r,I){if(k(A)){let e=I?` ${I}`:"";throw new TypeError(`ufunc '${r}' not supported for complex dtype '${A}'.${e}`)}}function ne(A){if(A==="complex128")return"float64";if(A==="complex64")return"float32";throw new Error(`${A} is not a complex dtype`)}function IA(A,r){if(A===r)return A;if(A==="bool")return r;if(r==="bool")return A;if(k(A)||k(r)){if(k(A)&&k(r))return A==="complex128"||r==="complex128"?"complex128":"complex64";let Q=k(A)?A:r,a=k(A)?r:A;return Q==="complex128"||a==="float64"||a==="int64"||a==="uint64"||a==="int32"||a==="uint32"?"complex128":"complex64"}if(fA(A)||fA(r)){if(A==="float64"||r==="float64")return"float64";if(A==="float32"){let Q=r;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}if(r==="float32"){let Q=A;return Q==="int32"||Q==="int64"||Q==="uint32"||Q==="uint64"?"float64":"float32"}return"float32"}let I=A.startsWith("int"),e=r.startsWith("int"),t=A.startsWith("uint"),o=r.startsWith("uint"),n=Q=>Q.includes("64")?64:Q.includes("32")?32:Q.includes("16")?16:Q.includes("8")?8:0,g=n(A),i=n(r);if(A==="int64"&&r==="uint64"||A==="uint64"&&r==="int64")return"float64";if(I&&o&&g===i){if(g===8)return"int16";if(g===16)return"int32";if(g===32)return"int64"}if(t&&e&&g===i){if(i===8)return"int16";if(i===16)return"int32";if(i===32)return"int64"}if(I&&e||t&&o){let Q=Math.max(g,i);return I?Q===64?"int64":Q===32?"int32":Q===16?"int16":"int8":Q===64?"uint64":Q===32?"uint32":Q===16?"uint16":"uint8"}return I&&o?g>i?A:i===8?"int16":i===16?"int32":i===32?"int64":"float64":t&&e?i>g?r:g===8?"int16":g===16?"int32":g===32?"int64":"float64":"float64"}var xi=64,d=class A{constructor(r,I,e,t,o){this._isCContiguous=-1;this._data=r,this._shape=I,this._strides=e,this._offset=t,this._dtype=o}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((r,I)=>r*I,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){if(this._isCContiguous!==-1)return this._isCContiguous===1;let r=this._shape,I=this._strides,e=r.length,t;if(e===0)t=!0;else if(e===1)t=I[0]===1;else{t=!0;let o=1;for(let n=e-1;n>=0;n--){if(I[n]!==o){t=!1;break}o*=r[n]}}return this._isCContiguous=t?1:0,t}get isFContiguous(){let r=this._shape,I=this._strides,e=r.length;if(e===0)return!0;if(e===1)return I[0]===1;let t=1;for(let o=0;o<e;o++){if(I[o]!==t)return!1;t*=r[o]}return!0}iget(r){let I=this._shape,e=this._strides,t=I.length,o=k(this._dtype),n;if(t===0)n=this._offset;else{let g=r;n=this._offset;for(let i=0;i<t;i++){let Q=1;for(let B=i+1;B<t;B++)Q*=I[B];let a=Math.floor(g/Q);g=g%Q,n+=a*e[i]}}if(o){let g=n*2,i=this._data[g],Q=this._data[g+1];return new T(i,Q)}return this._data[n]}iset(r,I){let e=this._shape,t=this._strides,o=e.length,n=k(this._dtype),g;if(o===0)g=this._offset;else{let i=r;g=this._offset;for(let Q=0;Q<o;Q++){let a=1;for(let s=Q+1;s<o;s++)a*=e[s];let B=Math.floor(i/a);i=i%a,g+=B*t[Q]}}if(n){let i=g*2,Q,a;I instanceof T?(Q=I.re,a=I.im):typeof I=="object"&&I!==null&&"re"in I?(Q=I.re,a=I.im??0):(Q=Number(I),a=0),this._data[i]=Q,this._data[i+1]=a}else this._data[g]=I}get(...r){let I=this._strides,e=this._offset;for(let t=0;t<r.length;t++)e+=r[t]*I[t];if(k(this._dtype)){let t=e*2,o=this._data[t],n=this._data[t+1];return new T(o,n)}return this._data[e]}set(r,I){let e=this._strides,t=this._offset;for(let o=0;o<r.length;o++)t+=r[o]*e[o];if(k(this._dtype)){let o=t*2,n,g;I instanceof T?(n=I.re,g=I.im):typeof I=="object"&&I!==null&&"re"in I?(n=I.re,g=I.im??0):(n=Number(I),g=0),this._data[o]=n,this._data[o+1]=g}else this._data[t]=I}copy(){let r=Array.from(this._shape),I=this._dtype,e=this.size,t=k(I),o=nA(I);if(!o)throw new Error(`Cannot copy array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(this.isCContiguous&&this._offset===0)g.set(this._data.subarray(0,n));else if(L(I)){let i=g;for(let Q=0;Q<e;Q++)i[Q]=this.iget(Q)}else if(t){let i=g;for(let Q=0;Q<e;Q++){let a=this.iget(Q);i[Q*2]=a.re,i[Q*2+1]=a.im}}else for(let i=0;i<e;i++)g[i]=this.iget(i);return new A(g,r,A._computeStrides(r),0,I)}static fromData(r,I,e,t,o){if(I.length>xi)throw new Error(`maximum supported dimension for an ndarray is currently ${xi}, found ${I.length}`);let n=t??A._computeStrides(I),g=o??0;return new A(r,I,n,g,e)}static zeros(r,I=BA){if(r.length>xi)throw new Error(`maximum supported dimension for an ndarray is currently ${xi}, found ${r.length}`);let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);return new A(g,r,A._computeStrides(r),0,I)}static ones(r,I=BA){let e=r.reduce((i,Q)=>i*Q,1),t=k(I),o=nA(I);if(!o)throw new Error(`Cannot create array with dtype ${I}`);let n=t?e*2:e,g=new o(n);if(L(I))g.fill(BigInt(1));else if(t){let i=g;for(let Q=0;Q<e;Q++)i[Q*2]=1,i[Q*2+1]=0}else g.fill(1);return new A(g,r,A._computeStrides(r),0,I)}static _computeStrides(r){let I=new Array(r.length),e=1;for(let t=r.length-1;t>=0;t--)I[t]=e,e*=r[t];return I}};function HA(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}var Y={thresholdMultiplier:1,wasmCallCount:0};var Da=null,fa=0,Ji=0;function K(){return Da||(Da=new WebAssembly.Memory({initial:17})),Da}function J(A){let r=K(),I=Ji+A,e=r.buffer.byteLength;if(I>e){let t=Math.ceil((I-e)/65536);r.grow(t)}}function U(A=Ji){fa=A,Y.wasmCallCount++}function W(A){A>Ji&&(Ji=A)}function _(A){let r=fa+7&-8;return fa=r+A,r}function q(A){let r=_(A.byteLength),I=K();return new Uint8Array(I.buffer,r,A.byteLength).set(new Uint8Array(A.buffer,A.byteOffset,A.byteLength)),r}function v(A,r,I){let e=K(),t=new I(new ArrayBuffer(r*I.BYTES_PER_ELEMENT),0,r);return new Uint8Array(t.buffer,0,t.byteLength).set(new Uint8Array(e.buffer,A,t.byteLength)),t}var x_="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",ie=null;function DI(){if(ie)return ie;let A=atob(x_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ie=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ie.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ie}function Ef(A,r,I){DI().exports.flip_f64(A,r,I)}function uf(A,r,I){DI().exports.flip_f32(A,r,I)}function ma(A,r,I){DI().exports.flip_i64(A,r,I)}function ya(A,r,I){DI().exports.flip_i32(A,r,I)}function la(A,r,I){DI().exports.flip_i16(A,r,I)}function ha(A,r,I){DI().exports.flip_i8(A,r,I)}var J_=64,U_={float64:Ef,float32:uf,int64:ma,uint64:ma,int32:ya,uint32:ya,int16:la,uint16:la,int8:ha,uint8:ha},L_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function da(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J_*Y.thresholdMultiplier)return null;let I=A.dtype,e=U_[I],t=L_[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var H_="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",ge=null;function fI(){if(ge)return ge;let A=atob(H_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ge}function cf(A,r,I,e,t,o){fI().exports.tile_2d_f64(A,r,I,e,t,o)}function Df(A,r,I,e,t,o){fI().exports.tile_2d_f32(A,r,I,e,t,o)}function ba(A,r,I,e,t,o){fI().exports.tile_2d_i64(A,r,I,e,t,o)}function pa(A,r,I,e,t,o){fI().exports.tile_2d_i32(A,r,I,e,t,o)}function wa(A,r,I,e,t,o){fI().exports.tile_2d_i16(A,r,I,e,t,o)}function Na(A,r,I,e,t,o){fI().exports.tile_2d_i8(A,r,I,e,t,o)}var __=64,Y_={float64:cf,float32:Df,int64:ba,uint64:ba,int32:pa,uint32:pa,int16:wa,uint16:wa,int8:Na,uint8:Na},v_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Fa(A,r,I){if(!A.isCContiguous||A.shape.length!==2)return null;let e=A.size;if(e<__*Y.thresholdMultiplier)return null;let t=A.dtype,o=Y_[t],n=v_[t];if(!o||!n)return null;let g=A.shape[0],i=A.shape[1],Q=g*r*i*I,a=n.BYTES_PER_ELEMENT,B=e*a,s=Q*a;J(B+s),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),f=_(s);o(u,f,g,i,r,I);let m=v(f,Q,n);return d.fromData(m,[g*r,i*I],t)}var X_="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",Qe=null;function mI(){if(Qe)return Qe;let A=atob(X_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qe}function ff(A,r,I,e){mI().exports.roll_f64(A,r,I,e)}function mf(A,r,I,e){mI().exports.roll_f32(A,r,I,e)}function Ga(A,r,I,e){mI().exports.roll_i64(A,r,I,e)}function Sa(A,r,I,e){mI().exports.roll_i32(A,r,I,e)}function Ra(A,r,I,e){mI().exports.roll_i16(A,r,I,e)}function ka(A,r,I,e){mI().exports.roll_i8(A,r,I,e)}var T_=64,P_={float64:ff,float32:mf,int64:Ga,uint64:Ga,int32:Sa,uint32:Sa,int16:Ra,uint16:Ra,int8:ka,uint8:ka},K_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function yf(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<T_*Y.thresholdMultiplier)return null;let e=A.dtype,t=P_[e],o=K_[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var V_="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",ae=null;function yI(){if(ae)return ae;let A=atob(V_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ae=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ae.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ae}function lf(A,r,I,e){yI().exports.rot90_f64(A,r,I,e)}function hf(A,r,I,e){yI().exports.rot90_f32(A,r,I,e)}function qa(A,r,I,e){yI().exports.rot90_i64(A,r,I,e)}function Ma(A,r,I,e){yI().exports.rot90_i32(A,r,I,e)}function xa(A,r,I,e){yI().exports.rot90_i16(A,r,I,e)}function Ja(A,r,I,e){yI().exports.rot90_i8(A,r,I,e)}var W_=64,O_={float64:lf,float32:hf,int64:qa,uint64:qa,int32:Ma,uint32:Ma,int16:xa,uint16:xa,int8:Ja,uint8:Ja},Z_={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function df(A){if(!A.isCContiguous||A.shape.length!==2)return null;let r=A.size;if(r<W_*Y.thresholdMultiplier)return null;let I=A.dtype,e=O_[I],t=Z_[I];if(!e||!t)return null;let o=A.shape[0],n=A.shape[1],g=t.BYTES_PER_ELEMENT,i=r*g,Q=r*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+r),s=q(B),C=_(Q);e(s,C,o,n);let E=v(C,r,t);return d.fromData(E,[n,o],I)}var z_="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADBwYAAAAAAAAGCQF/AUGAgMAACwdOBgpyZXBlYXRfZjY0AAAKcmVwZWF0X2YzMgABCnJlcGVhdF9pNjQAAgpyZXBlYXRfaTMyAAMKcmVwZWF0X2kxNgAECXJlcGVhdF9pOAAFCt4JBsIBBQR/AXwBfwF7AX8CQCACRQ0AIANFDQAgA0EDdCEEIANBfnEhBUEAIQYgA0ECSSEHA0AgACAGQQN0aisDACEIQQAhCQJAAkAgBw0AIAj9FCEKIAUhCyABIQkDQCAJIAr9CwMAIAlBEGohCSALQX5qIgsNAAsgBSEJIAMgBUYNAQsgAyAJayELIAEgCUEDdGohCQNAIAkgCDkDACAJQQhqIQkgC0F/aiILDQALCyABIARqIQEgBkEBaiIGIAJHDQALCwvCAQUEfwF9AX8BewF/AkAgAkUNACADRQ0AIANBAnQhBCADQXxxIQVBACEGIANBBEkhBwNAIAAgBkECdGoqAgAhCEEAIQkCQAJAIAcNACAI/RMhCiAFIQsgASEJA0AgCSAK/QsCACAJQRBqIQkgC0F8aiILDQALIAUhCSADIAVGDQELIAMgCWshCyABIAlBAnRqIQkDQCAJIAg4AgAgCUEEaiEJIAtBf2oiCw0ACwsgASAEaiEBIAZBAWoiBiACRw0ACwsLwgEFBH8BfgF/AXsBfwJAIAJFDQAgA0UNACADQQN0IQQgA0F+cSEFQQAhBiADQQJJIQcDQCAAIAZBA3RqKQMAIQhBACEJAkACQCAHDQAgCP0SIQogBSELIAEhCQNAIAkgCv0LAwAgCUEQaiEJIAtBfmoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQN0aiEJA0AgCSAINwMAIAlBCGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQJ0IQQgA0F8cSEFQQAhBiADQQRJIQcDQCAAIAZBAnRqKAIAIQhBACEJAkACQCAHDQAgCP0RIQogBSELIAEhCQNAIAkgCv0LAgAgCUEQaiEJIAtBfGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQJ0aiEJA0AgCSAINgIAIAlBBGohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC74BAwZ/AXsBfwJAIAJFDQAgA0UNACADQQF0IQQgA0F4cSEFQQAhBiADQQhJIQcDQCAAIAZBAXRqLwEAIQhBACEJAkACQCAHDQAgCP0QIQogBSELIAEhCQNAIAkgCv0LAQAgCUEQaiEJIAtBeGoiCw0ACyAFIQkgAyAFRg0BCyADIAlrIQsgASAJQQF0aiEJA0AgCSAIOwEAIAlBAmohCSALQX9qIgsNAAsLIAEgBGohASAGQQFqIgYgAkcNAAsLC48CAQh/AkAgAkUNACADRQ0AIAJBA3EhBEEAIQUCQCACQX9qQQNJDQAgA0EBdCEGIANBAnQhByADQQNsIQggAkF8cSEJQQAhBSABIQIDQCAAIAVqIQoCQCADRSILDQAgAiAKLQAAIAP8CwALAkAgCw0AIAIgA2ogCkEBai0AACAD/AsACwJAIAsNACACIAZqIApBAmotAAAgA/wLAAsCQCALDQAgAiAIaiAKQQNqLQAAIAP8CwALIAIgB2ohAiAJIAVBBGoiBUcNAAsLIARFDQAgACAFaiECIAEgBSADbGohCwNAAkAgA0UNACALIAItAAAgA/wLAAsgCyADaiELIAJBAWohAiAEQX9qIgQNAAsLCw==",Be=null;function lI(){if(Be)return Be;let A=atob(z_),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Be}function bf(A,r,I,e){lI().exports.repeat_f64(A,r,I,e)}function pf(A,r,I,e){lI().exports.repeat_f32(A,r,I,e)}function Ua(A,r,I,e){lI().exports.repeat_i64(A,r,I,e)}function La(A,r,I,e){lI().exports.repeat_i32(A,r,I,e)}function Ha(A,r,I,e){lI().exports.repeat_i16(A,r,I,e)}function _a(A,r,I,e){lI().exports.repeat_i8(A,r,I,e)}var j_=64,$_={float64:bf,float32:pf,int64:Ua,uint64:Ua,int32:La,uint32:La,int16:Ha,uint16:Ha,int8:_a,uint8:_a},A4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wf(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<j_*Y.thresholdMultiplier)return null;let e=A.dtype,t=$_[e],o=A4[e];if(!t||!o)return null;let n=I*r,g=o.BYTES_PER_ELEMENT,i=I*g,Q=n*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+I),s=q(B),C=_(Q);t(s,C,I,r);let E=v(C,n,o);return d.fromData(E,[n],e)}function Nf(A){if(!A.includes(":")){if(A.includes("."))throw new Error(`Invalid slice index: "${A}" (must be integer)`);let o=parseInt(A,10);if(isNaN(o))throw new Error(`Invalid slice index: "${A}"`);return{start:o,stop:null,step:1,isIndex:!0}}let r=A.split(":");if(r.length>3)throw new Error(`Invalid slice notation: "${A}" (too many colons)`);let I=r[0]===""?null:parseInt(r[0],10),e=r[1]===""||r[1]===void 0?null:parseInt(r[1],10),t=r[2]===""||r[2]===void 0?1:parseInt(r[2],10);if(I!==null&&isNaN(I))throw new Error(`Invalid start index in slice: "${A}"`);if(e!==null&&isNaN(e))throw new Error(`Invalid stop index in slice: "${A}"`);if(isNaN(t))throw new Error(`Invalid step in slice: "${A}"`);if(t===0)throw new Error("Slice step cannot be zero");return{start:I,stop:e,step:t,isIndex:!1}}function Ff(A,r){let{start:I,stop:e}=A,{step:t,isIndex:o}=A;if(o){if(I===null)throw new Error("Index cannot be null");let n=I<0?r+I:I;if(n<0||n>=r)throw new Error(`Index ${I} is out of bounds for size ${r}`);return{start:n,stop:n+1,step:1,isIndex:!0}}return t>0?(I===null&&(I=0),e===null&&(e=r)):(I===null&&(I=r-1),e===null&&(e=-r-1)),I<0&&(I=r+I),e<0&&(e=r+e),I=Math.max(0,Math.min(I,r)),e=Math.max(-1,Math.min(e,r)),{start:I,stop:e,step:t,isIndex:!1}}function Gf(A,...r){if(r.length===0)return A;if(r.length>A.ndim)throw new Error(`Too many indices for array: array is ${A.ndim}-dimensional, but ${r.length} were indexed`);let I=r.map((n,g)=>{let i=Nf(n);return Ff(i,A.shape[g])});for(;I.length<A.ndim;)I.push({start:0,stop:A.shape[I.length],step:1,isIndex:!1});let e=[],t=[],o=A.offset;for(let n=0;n<I.length;n++){let g=I[n];if(o+=g.start*A.strides[n],g.isIndex)continue;let i=Math.max(0,Math.ceil((g.stop-g.start)/g.step));e.push(i),t.push(A.strides[n]*g.step)}return d.fromData(A.data,e,A.dtype,t,o)}function EA(A,r){let I=A.size,e=A.dtype,t=r.indexOf(-1),o;if(t!==-1){let Q=r.reduce((B,s,C)=>C===t?B:B*s,1),a=I/Q;if(!Number.isInteger(a))throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(r)}`);o=r.map((B,s)=>s===t?a:B)}else o=r;if(o.reduce((Q,a)=>Q*a,1)!==I)throw new Error(`cannot reshape array of size ${I} into shape ${JSON.stringify(o)}`);if(A.isCContiguous){let Q=A.data;return d.fromData(Q,o,e,HA(o),0)}let i=A.copy().data;return d.fromData(i,o,e,HA(o),0)}function gI(A){let r=A.size,I=A.dtype,e=nA(I);if(!e)throw new Error(`Cannot flatten array with dtype ${I}`);let t=k(I),o=t?r*2:r;if(A.isCContiguous){let i=A.data,Q=t?A.offset*2:A.offset,a=i.slice(Q,Q+o);return d.fromData(a,[r],I,[1],0)}let n=new e(o),g=L(I);if(t)for(let i=0;i<r;i++){let Q=A.iget(i);n[i*2]=Q.re,n[i*2+1]=Q.im}else for(let i=0;i<r;i++){let Q=A.iget(i);n[i]=Q}return d.fromData(n,[r],I,[1],0)}function hI(A){let r=A.size,I=A.dtype;if(A.isCContiguous){let e=A.data;return d.fromData(e,[r],I,[1],0)}return gI(A)}function Ya(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g;if(r===void 0)g=Array.from({length:e},(B,s)=>e-1-s);else{if(r.length!==e)throw new Error(`axes must have length ${e}, got ${r.length}`);let B=new Set;for(let s of r){let C=s<0?e+s:s;if(C<0||C>=e)throw new Error(`axis ${s} is out of bounds for array of dimension ${e}`);if(B.has(C))throw new Error("repeated axis in transpose");B.add(C)}g=r.map(s=>s<0?e+s:s)}let i=g.map(B=>I[B]),Q=Array.from(t),a=g.map(B=>Q[B]);return d.fromData(o,i,n,a,A.offset)}function Sf(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype;if(r===void 0){let g=[],i=[];for(let Q=0;Q<e;Q++)I[Q]!==1&&(g.push(I[Q]),i.push(t[Q]));return d.fromData(o,g,n,i,A.offset)}else{let g=r<0?e+r:r;if(g<0||g>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);if(I[g]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${r} has size ${I[g]})`);let i=[],Q=[];for(let a=0;a<e;a++)a!==g&&(i.push(I[a]),Q.push(t[a]));return d.fromData(o,i,n,Q,A.offset)}}function iI(A,r){let I=A.shape,e=I.length,t=A.strides,o=A.data,n=A.dtype,g=r;if(g<0&&(g=e+r+1),g<0||g>e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e+1}`);let i=[...Array.from(I)];i.splice(g,0,1);let Q=[...Array.from(t)],a=g<e?t[g]*(I[g]||1):1;return Q.splice(g,0,a),d.fromData(o,i,n,Q,A.offset)}function Rf(A,r,I){let e=A.shape,t=e.length,o=A.strides,n=A.data,g=A.dtype,i=r<0?t+r:r,Q=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis1 ${r} is out of bounds for array of dimension ${t}`);if(Q<0||Q>=t)throw new Error(`axis2 ${I} is out of bounds for array of dimension ${t}`);if(i===Q)return d.fromData(n,Array.from(e),g,Array.from(o),A.offset);let a=Array.from(e),B=Array.from(o);return[a[i],a[Q]]=[a[Q],a[i]],[B[i],B[Q]]=[B[Q],B[i]],d.fromData(n,a,g,B,A.offset)}function va(A,r,I){let e=A.ndim,t=Array.isArray(r)?r:[r],o=Array.isArray(I)?I:[I];if(t.length!==o.length)throw new Error("source and destination must have the same number of elements");let n=t.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`source axis ${Q} is out of bounds for array of dimension ${e}`);return a}),g=o.map(Q=>{let a=Q<0?e+Q:Q;if(a<0||a>=e)throw new Error(`destination axis ${Q} is out of bounds for array of dimension ${e}`);return a});if(new Set(n).size!==n.length)throw new Error("repeated axis in source");if(new Set(g).size!==g.length)throw new Error("repeated axis in destination");let i=[];for(let Q=0;Q<e;Q++)n.includes(Q)||i.push(Q);for(let Q=0;Q<n.length;Q++){let a=g[Q];i.splice(a,0,n[Q])}return Ya(A,i)}function _r(A,r=0){if(A.length===0)throw new Error("need at least one array to concatenate");if(A.length===1)return A[0].copy();let I=A[0],e=I.ndim,t=I.dtype,o=r<0?e+r:r;if(o<0||o>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);for(let C=1;C<A.length;C++){let E=A[C];if(E.ndim!==e)throw new Error("all the input arrays must have same number of dimensions");for(let u=0;u<e;u++)if(u!==o&&E.shape[u]!==I.shape[u])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let n=Array.from(I.shape),g=I.shape[o];for(let C=1;C<A.length;C++)g+=A[C].shape[o];n[o]=g;let i=n.reduce((C,E)=>C*E,1),Q=nA(t);if(!Q)throw new Error(`Cannot concatenate arrays with dtype ${t}`);let a=new Q(i),B=HA(n),s=0;for(let C of A){let E=C.shape[o];r4(C,a,n,B,o,s,t),s+=E}return d.fromData(a,n,t)}function r4(A,r,I,e,t,o,n){let g=A.shape,i=g.length,Q=A.size,a=n==="int64"||n==="uint64";if(t===0&&A.isCContiguous&&i>0){let C=o*e[0],E=A.data,u=A.offset,f=u+Q;r.set(E.subarray(u,f),C);return}if(t===1&&i===2&&A.isCContiguous){let C=g[0],E=g[1],u=I[1],f=A.data,m=A.offset;for(let c=0;c<C;c++){let D=m+c*E,y=c*u+o;r.set(f.subarray(D,D+E),y)}return}let B=new Array(i).fill(0),s=o*e[t];for(let C=0;C<Q;C++){let E=A.iget(C),u=s;for(let f=0;f<i;f++)u+=B[f]*e[f];r[u]=E;for(let f=i-1;f>=0&&(B[f]++,!(B[f]<g[f]));f--)B[f]=0}}function kf(A,r=0){if(A.length===0)throw new Error("need at least one array to stack");let I=A[0],e=I.shape,t=I.ndim,o=r<0?t+1+r:r;if(o<0||o>t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t+1}`);for(let g=1;g<A.length;g++){let i=A[g];if(i.ndim!==t)throw new Error("all input arrays must have the same shape");for(let Q=0;Q<t;Q++)if(i.shape[Q]!==e[Q])throw new Error("all input arrays must have the same shape")}let n=A.map(g=>iI(g,o));return _r(n,o)}function qf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[1,I.shape[0]]):I);return _r(r,0)}function Xa(A){if(A.length===0)throw new Error("need at least one array to stack");return A.every(I=>I.ndim===1)?_r(A,0):_r(A,1)}function Mf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(iI(EA(I,[1,I.shape[0]]),2),[1,I.shape[0],1]):I.ndim===2?iI(I,2):I);return _r(r,2)}function xf(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){if(n%r!==0)throw new Error("array split does not result in an equal division");let i=n/r;g=[];for(let Q=1;Q<r;Q++)g.push(Q*i)}else g=r;return Jf(A,g,o)}function se(A,r,I=0){let e=A.shape,t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let n=e[o],g;if(typeof r=="number"){let i=r,Q=Math.floor(n/i),a=n%i;g=[];let B=0;for(let s=0;s<i-1;s++)B+=Q+(s<a?1:0),g.push(B)}else g=r;return Jf(A,g,o)}function Jf(A,r,I){let e=A.shape,t=e[I],o=[0,...r,t],n=[];for(let g=0;g<o.length-1;g++){let i=o[g],Q=o[g+1];if(i>Q)throw new Error("split indices must be in ascending order");let a=Array.from(e);a[I]=Q-i;let B=A.offset+i*A.strides[I];n.push(d.fromData(A.data,a,A.dtype,Array.from(A.strides),B))}return n}function Uf(A,r){if(A.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return se(A,r,0)}function Lf(A,r){if(A.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let I=A.ndim===1?0:1;return se(A,r,I)}function Hf(A,r){let I=A.shape,e=I.length,t=A.dtype,o=Array.isArray(r)?r:[r];if(e===2&&o.length===2&&A.isCContiguous){let c=Fa(A,o[0],o[1]);if(c)return c}if(e===1&&o.length===1&&A.isCContiguous){let c=Fa(A,1,o[0]);if(c)return d.fromData(c.data,[A.size*o[0]],A.dtype)}let n=Math.max(e,o.length),g=new Array(n).fill(1),i=new Array(n).fill(1);for(let c=0;c<e;c++)g[n-e+c]=I[c];for(let c=0;c<o.length;c++)i[n-o.length+c]=o[c];let Q=g.map((c,D)=>c*i[D]),a=Q.reduce((c,D)=>c*D,1),B=nA(t);if(!B)throw new Error(`Cannot tile array with dtype ${t}`);let s=new B(a),C=HA(Q),E=A;e<n&&(E=EA(A,g));let u=t==="int64"||t==="uint64",f=E.strides,m=new Array(n).fill(0);for(let c=0;c<a;c++){let D=E.offset;for(let h=0;h<n;h++){let b=m[h]%g[h];D+=b*f[h]}let y=E.data[D],l=0;for(let h=0;h<n;h++)l+=m[h]*C[h];s[l]=y;for(let h=n-1;h>=0&&(m[h]++,!(m[h]<Q[h]));h--)m[h]=0}return d.fromData(s,Q,t)}function _f(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){if(typeof r=="number"&&A.isCContiguous){let p=wf(A,r);if(p)return p}let c=n,D=Array.isArray(r)?r:new Array(c).fill(r);if(D.length!==c)throw new Error(`operands could not be broadcast together with shape (${c},) (${D.length},)`);let y=D.reduce((p,w)=>p+w,0),l=nA(o);if(!l)throw new Error(`Cannot repeat array with dtype ${o}`);let h=new l(y),b=0;for(let p=0;p<c;p++){let w=A.iget(p),N=D[p];for(let F=0;F<N;F++)h[b++]=w}return d.fromData(h,[y],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Array.isArray(r)?r:new Array(i).fill(r);if(Q.length!==i)throw new Error(`operands could not be broadcast together with shape (${i},) (${Q.length},)`);let a=Array.from(e);a[g]=Q.reduce((c,D)=>c+D,0);let B=a.reduce((c,D)=>c*D,1),s=nA(o);if(!s)throw new Error(`Cannot repeat array with dtype ${o}`);let C=new s(B),E=HA(a),u=new Array(t).fill(0),f=o==="int64"||o==="uint64",m=[0];for(let c=0;c<i;c++)m.push(m[c]+Q[c]);for(let c=0;c<n;c++){let D=A.iget(c),y=u[g],l=Q[y],h=0;for(let w=0;w<t;w++)w!==g&&(h+=u[w]*E[w]);let b=E[g],p=m[y];for(let w=0;w<l;w++){let N=h+(p+w)*b;C[N]=D}for(let w=t-1;w>=0&&(u[w]++,!(u[w]<e[w]));w--)u[w]=0}return d.fromData(C,a,o)}function Yf(A,r){let I=A.shape,e=I.length,t=A.dtype,o=A.size,n;if(r===void 0)n=new Set(Array.from({length:e},(s,C)=>C));else if(typeof r=="number"){let s=r<0?e+r:r;if(s<0||s>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);n=new Set([s])}else n=new Set(r.map(s=>{let C=s<0?e+s:s;if(C<0||C>=e)throw new Error(`axis ${s} is out of bounds for array of dimension ${e}`);return C}));let g=nA(t);if(!g)throw new Error(`Cannot flip array with dtype ${t}`);let i=L(t);if(n.size===e&&A.isCContiguous&&!k(t)){let s=da(A);if(s)return s}let Q=new g(o);if(e===1&&A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<o;E++)Q[E]=s[C+o-1-E];return d.fromData(Q,[...I],t)}if(e===2&&A.isCContiguous){let s=I[0],C=I[1],E=A.data,u=A.offset;if(n.size===2){for(let f=0;f<o;f++)Q[f]=E[u+o-1-f];return d.fromData(Q,[...I],t)}if(n.size===1){if(n.has(0)){for(let f=0;f<s;f++){let m=u+(s-1-f)*C,c=f*C;for(let D=0;D<C;D++)Q[c+D]=E[m+D]}return d.fromData(Q,[...I],t)}else if(n.has(1)){for(let f=0;f<s;f++){let m=u+f*C,c=f*C;for(let D=0;D<C;D++)Q[c+D]=E[m+C-1-D]}return d.fromData(Q,[...I],t)}}}let a=new Array(e),B=new Array(e).fill(0);for(let s=0;s<o;s++){for(let u=0;u<e;u++)a[u]=n.has(u)?I[u]-1-B[u]:B[u];let C=A.offset;for(let u=0;u<e;u++)C+=a[u]*A.strides[u];let E=A.data[C];Q[s]=E;for(let u=e-1;u>=0&&(B[u]++,!(B[u]<I[u]));u--)B[u]=0}return d.fromData(Q,[...I],t)}function vf(A,r=1,I=[0,1]){let e=A.shape,t=e.length,o=A.dtype;if(t<2)throw new Error("Input must be at least 2-D");let n=I[0]<0?t+I[0]:I[0],g=I[1]<0?t+I[1]:I[1];if(n<0||n>=t||g<0||g>=t)throw new Error(`Axes are out of bounds for array of dimension ${t}`);if(n===g)throw new Error("Axes must be different");if(r=(r%4+4)%4,r===0)return A.copy();if(t===2&&n===0&&g===1&&A.isCContiguous){if(r===1){let c=df(A);if(c)return c}else if(r===2){let c=da(A);if(c)return c}}let i=nA(o);if(!i)throw new Error(`Cannot rotate array with dtype ${o}`);let Q=[...e];(r===1||r===3)&&([Q[n],Q[g]]=[Q[g],Q[n]]);let a=Q.reduce((c,D)=>c*D,1),B=new i(a),s=L(o),C=A.data;if(t===2&&n===0&&g===1){let c=e[0],D=e[1];if(r===1){let y=D,l=c;if(s){let h=C,b=B;for(let p=0;p<y;p++){let w=p*l,N=D-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*D+N]}}else{let h=C,b=B;for(let p=0;p<y;p++){let w=p*l,N=D-1-p;for(let F=0;F<l;F++)b[w+F]=h[F*D+N]}}}else if(r===2)if(s){let y=C,l=B;for(let h=0;h<c;h++){let b=h*D,p=(c-1-h)*D;for(let w=0;w<D;w++)l[b+w]=y[p+(D-1-w)]}}else{let y=C,l=B;for(let h=0;h<c;h++){let b=h*D,p=(c-1-h)*D;for(let w=0;w<D;w++)l[b+w]=y[p+(D-1-w)]}}else{let y=D,l=c;if(s){let h=C,b=B;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*D+p]}}else{let h=C,b=B;for(let p=0;p<y;p++){let w=p*l;for(let N=0;N<l;N++)b[w+N]=h[(c-1-N)*D+p]}}}return d.fromData(B,Q,o)}let E=HA(Q),u=HA(e),f=new Array(t).fill(0),m=new Array(t);for(let c=0;c<A.size;c++){for(let b=0;b<t;b++)m[b]=f[b];let D,y;r===1?(D=e[g]-1-f[g],y=f[n]):r===2?(D=e[n]-1-f[n],y=e[g]-1-f[g],m[n]=D,m[g]=y):(D=f[g],y=e[n]-1-f[n]),r!==2&&(m[n]=D,m[g]=y);let l=0;for(let b=0;b<t;b++)l+=m[b]*E[b];let h=0;for(let b=0;b<t;b++)h+=f[b]*u[b];if(s){let b=C,p=B;p[l]=b[h]}else{let b=C,p=B;p[l]=b[h]}for(let b=t-1;b>=0&&(f[b]++,!(f[b]<e[b]));b--)f[b]=0}return d.fromData(B,Q,o)}function Xf(A,r,I){let e=A.shape,t=e.length,o=A.dtype,n=A.size;if(I===void 0){let E=Array.isArray(r)?r.reduce((D,y)=>D+y,0):r;if(A.isCContiguous){let D=yf(A,E);if(D)return D}let u=gI(A),f=nA(o);if(!f)throw new Error(`Cannot roll array with dtype ${o}`);let m=new f(n),c=L(o);for(let D=0;D<n;D++){let y=((D-E)%n+n)%n,l=u.iget(y);m[D]=l}return d.fromData(m,[...e],o)}let g=Array.isArray(r)?r:[r],i=Array.isArray(I)?I:[I];if(g.length!==i.length)throw new Error("shift and axis must have the same length");let Q=i.map(E=>{let u=E<0?t+E:E;if(u<0||u>=t)throw new Error(`axis ${E} is out of bounds for array of dimension ${t}`);return u}),a=nA(o);if(!a)throw new Error(`Cannot roll array with dtype ${o}`);let B=new a(n),s=L(o),C=new Array(t).fill(0);for(let E=0;E<n;E++){let u=[...C];for(let c=0;c<Q.length;c++){let D=Q[c],y=e[D],l=g[c];u[D]=((u[D]-l)%y+y)%y}let f=A.offset;for(let c=0;c<t;c++)f+=u[c]*A.strides[c];let m=A.data[f];B[E]=m;for(let c=t-1;c>=0&&(C[c]++,!(C[c]<e[c]));c--)C[c]=0}return d.fromData(B,[...e],o)}function Tf(A,r,I=0){let e=A.ndim,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I<0?e+I:I;if(o<0||o>e)throw new Error(`start ${I} is out of bounds`);return t<o&&o--,t===o?d.fromData(A.data,Array.from(A.shape),A.dtype,Array.from(A.strides),A.offset):va(A,t,o)}function Pf(A,r){if(A.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return se(A,r,2)}function Kf(A){if(A.length===0)throw new Error("need at least one array to stack");let r=A.map(I=>I.ndim===1?EA(I,[I.shape[0],1]):I);return Xa(r)}function Vf(A,r){let I=A.dtype,e=r.reduce((i,Q)=>i*Q,1),t=A.size,o=nA(I);if(!o)throw new Error(`Cannot resize array with dtype ${I}`);let n=new o(e),g=L(I);for(let i=0;i<e;i++){let Q=i%t,a=A.iget(Q);n[i]=a}return d.fromData(n,r,I)}function Wf(A){return A.map(r=>r.ndim===0?EA(r,[1]):r)}function Of(A){return A.map(r=>r.ndim===0?EA(r,[1,1]):r.ndim===1?EA(r,[1,r.shape[0]]):r)}function Zf(A){return A.map(r=>r.ndim===0?EA(r,[1,1,1]):r.ndim===1?EA(r,[1,r.shape[0],1]):r.ndim===2?EA(r,[r.shape[0],r.shape[1],1]):r)}function zf(A,r=0){let I=A.shape,e=I.length,t=r<0?e+r:r;if(t<0||t>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let o=I[t],n=new Array(o),g=A.data,i=A.dtype,Q=A.strides,a=A.offset,B=[],s=[];for(let E=0;E<e;E++)E!==t&&(B.push(I[E]),s.push(Q[E]));let C=Q[t];for(let E=0;E<o;E++)n[E]=d.fromData(g,B,i,s,a+E*C);return n}function jf(A,r=1){if(A.length===0)throw new Error("need at least one array to block");return A.length===1?A[0].copy():_r(A,-1)}var I4={threshold:1e3,edgeitems:3,precision:8,linewidth:75,floatmode:"maxprec",suppress:!0,separator:" ",prefix:"",suffix:"",nanstr:"nan",infstr:"inf",sign:"-",legacy:!1},wA={...I4};function rm(A){wA={...wA,...A}}function Im(){return{...wA}}function em(A){let r=null,I={_savedOptions:null,enter(){r={...wA},I._savedOptions=r,wA={...wA,...A}},exit(){r&&(wA=r,r=null,I._savedOptions=null)},apply(e){I.enter();try{return e()}finally{I.exit()}}};return I}function Ee(A,r=null,I=!0,e=!0,t="k",o="-",n=null,g=null,i=null){let Q=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let a;if(I&&r===null?(a=A.toString(),e&&!a.includes(".")&&!a.includes("e")&&(a+=".0")):a=A.toFixed(Q),i!==null){let B=a.indexOf(".");if(B!==-1){let s=a.length-B-1;s<i&&(a+="0".repeat(i-s))}else e&&(a+="."+"0".repeat(i))}if(t!=="k"&&a.includes(".")){if(t==="."||t==="0"||t==="-"){let B=a.length;for(;B>0&&a[B-1]==="0";)B--;a=a.slice(0,B)}t==="0"&&a.endsWith(".")&&(a+="0"),t==="-"&&a.endsWith(".")&&(a=a.slice(0,-1))}if(A>=0&&!Object.is(A,-0)&&(o==="+"?a="+"+a:o===" "&&(a=" "+a)),n!==null&&a.length<n&&(a=" ".repeat(n-a.length)+a),g!==null){let B=a.indexOf(".");if(B!==-1){let s=a.length-B-1;s<g&&(a+="0".repeat(g-s))}}return a}function Ce(A,r=null,I=!0,e="k",t="-",o=null,n=2,g=null){let i=r??wA.precision;if(!Number.isFinite(A))return Number.isNaN(A)?wA.nanstr:(A>0?"":"-")+wA.infstr;let Q=A.toExponential(i);if(g!==null){let u=Q.indexOf("e"),f=Q.slice(0,u),m=Q.slice(u),c=f.indexOf(".");if(c!==-1){let D=f.length-c-1;D<g&&(Q=f+"0".repeat(g-D)+m)}}if(e!=="k"){let u=Q.indexOf("e"),f=Q.slice(0,u),m=Q.slice(u);f.includes(".")&&((e==="."||e==="0"||e==="-")&&(f=f.replace(/0+$/,"")),e==="0"&&f.endsWith(".")&&(f+="0"),e==="-"&&(f=f.replace(/\.$/,""))),Q=f+m}let a=Q.indexOf("e"),B=Q.slice(0,a),s=Q.slice(a+1),C=s[0]==="-"?"-":"+",E=s.replace(/^[+-]/,"");for(;E.length<n;)E="0"+E;return Q=B+"e"+C+E,A>=0&&!Object.is(A,-0)&&(t==="+"?Q="+"+Q:t===" "&&(Q=" "+Q)),o!==null&&Q.length<o&&(Q=" ".repeat(o-Q.length)+Q),Q}function tm(A,r=2,I=0){if(r<2||r>36)throw new Error("base must be between 2 and 36");A=Math.trunc(A);let e;if(A<0?e="-"+Math.abs(A).toString(r).toUpperCase():e=A.toString(r).toUpperCase(),I>0){let t="0".repeat(I);e.startsWith("-")?e="-"+t+e.slice(1):e=t+e}return e}function om(A,r=null){if(A=Math.trunc(A),r!==null&&A<0){if(A=Math.pow(2,r)+A,A<0)throw new Error("width too small for negative number");let t=A.toString(2);return t.length<r&&(t="0".repeat(r-t.length)+t),t}let I;return A<0?I="-"+Math.abs(A).toString(2):I=A.toString(2),r!==null&&I.length<r&&(I="0".repeat(r-I.length)+I),I}function Hi(A,r,I){if(A instanceof T){let e=Hi(A.re,"float64",I),t=Hi(Math.abs(A.im),"float64",I),o=A.im>=0?"+":"-";return`${e}${o}${t}j`}return typeof A=="boolean"?A?" True":"False":typeof A=="bigint"?A.toString():Number.isFinite(A)?r==="float32"||r==="float64"?I.suppress&&Math.abs(A)<1e-10&&A!==0?"0.":Ee(A,I.precision,!1,!0,"k",I.sign):A.toString():Number.isNaN(A)?I.nanstr:(A>0?"":"-")+I.infstr}function e4(A,r){let I=[],e=A.shape,t=e.length,o=A.strides;function n(g,i){if(i===t){let s=0;for(let C=0;C<t;C++)s+=g[C]*o[C];I.push(A.iget(s));return}let Q=e[i];if(e.reduce((s,C)=>s*C,1)>r.threshold&&Q>2*r.edgeitems){for(let s=0;s<r.edgeitems;s++)g[i]=s,n(g,i+1);for(let s=Q-r.edgeitems;s<Q;s++)g[i]=s,n(g,i+1)}else for(let s=0;s<Q;s++)g[i]=s,n(g,i+1)}return t>0?n(new Array(t).fill(0),0):I.push(A.iget(0)),I}function $f(A,r){return A<0||Object.is(A,-0)?"-"+Math.abs(A).toString()+".":r==="+"?"+"+A.toString()+".":r===" "?" "+A.toString()+".":A.toString()+"."}function dI(A,r,I){let e=A.indexOf(".");if(e===-1)return A.padStart(r+(I>0?1+I:0));let t=A.slice(0,e),o=A.slice(e+1),n=t.padStart(r),g=I>0?o.padEnd(I):o;return n+"."+g}function Am(A){let r=0,I=0;for(let e of A){let t=e.indexOf(".");t===-1?r=Math.max(r,e.length):(r=Math.max(r,t),I=Math.max(I,e.length-t-1))}return{maxLeft:r,maxRight:I}}function Ta(A,r){let I=A.filter(s=>Number.isFinite(s));if(I.length===0){let s=A.map(E=>Number.isNaN(E)?r.nanstr:(E>0?"":"-")+r.infstr),C=s.length>0?Math.max(...s.map(E=>E.length)):1;return E=>Number.isNaN(E)?r.nanstr.padStart(C):Number.isFinite(E)?E.toString().padStart(C):((E>0?"":"-")+r.infstr).padStart(C)}let e=r.suppress?I.map(s=>Math.abs(s)<1e-10&&s!==0?0:s):I,t=e.map(Math.abs).filter(s=>s>0),o=t.length>0?Math.max(...t):0,n=t.length>0?Math.min(...t):0;if(o>=1e16||n>0&&n<1e-4||n>0&&o/n>1e3){let s=e.map(D=>Ce(D,r.precision,!1,".",r.sign)),C=0;for(let D of s){let y=D.indexOf("e"),l=y!==-1?D.slice(0,y):D,h=l.indexOf(".");h!==-1&&(C=Math.max(C,l.length-h-1))}let E=Math.max(C,0),u=Math.max(E,1),f=E===0?".":"k",m=e.map(D=>Ce(D,u,!1,f,r.sign));for(let D of A)Number.isFinite(D)||m.push(Number.isNaN(D)?r.nanstr:(D>0?"":"-")+r.infstr);let c=Math.max(...m.map(D=>D.length));return D=>(r.suppress&&Math.abs(D)<1e-10&&D!==0&&Number.isFinite(D)&&(D=0),Number.isNaN(D)?r.nanstr.padStart(c):Number.isFinite(D)?Ce(D,u,!1,f,r.sign).padStart(c):((D>0?"":"-")+r.infstr).padStart(c))}if(e.every(s=>Number.isInteger(s))){let s=e.map(u=>$f(u,r.sign));for(let u of A)Number.isFinite(u)||s.push(Number.isNaN(u)?r.nanstr:(u>0?"":"-")+r.infstr);let{maxLeft:C,maxRight:E}=Am(s);return u=>(r.suppress&&Math.abs(u)<1e-10&&u!==0&&Number.isFinite(u)&&(u=0),Number.isNaN(u)?dI(r.nanstr,C,E):Number.isFinite(u)?dI($f(u,r.sign),C,E):dI((u>0?"":"-")+r.infstr,C,E))}let Q=e.map(s=>Ee(s,r.precision,!1,!0,".",r.sign));for(let s of A)Number.isFinite(s)||Q.push(Number.isNaN(s)?r.nanstr:(s>0?"":"-")+r.infstr);let{maxLeft:a,maxRight:B}=Am(Q);return s=>(r.suppress&&Math.abs(s)<1e-10&&s!==0&&Number.isFinite(s)&&(s=0),Number.isNaN(s)?dI(r.nanstr,a,B):Number.isFinite(s)?dI(Ee(s,r.precision,!1,!0,".",r.sign),a,B):dI((s>0?"":"-")+r.infstr,a,B))}function t4(A,r){let I=A.dtype,e=e4(A,r);if(e.length===0)return o=>Hi(o,I,r);if(I==="bool")return o=>o?" True":"False";if(I==="int64"||I==="uint64"){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I.startsWith("int")||I.startsWith("uint")){let o=e.map(g=>g.toString()),n=Math.max(...o.map(g=>g.length));return g=>g.toString().padStart(n)}if(I==="complex64"||I==="complex128"){let o=e.map(Q=>Q.re),n=e.map(Q=>Math.abs(Q.im)),g=Ta(o,r),i=Ta(n,r);return Q=>{let a=Q,B=g(a.re),s=i(Math.abs(a.im)),C=a.im>=0?"+":"-";return`${B}${C}${s}j`}}let t=Ta(e,r);return o=>t(o)}function Li(A,r,I,e,t,o){let n=A.shape,g=n.length;if(I===g){let u=0,f=A.strides;for(let c=0;c<g;c++)u+=r[c]*f[c];let m=A.iget(u);return t(m)}let i=n[I],Q=e.threshold,a=e.edgeitems,s=n.reduce((u,f)=>u*f,1)>Q&&i>2*a,C=[],E=[...r];if(s){for(let u=0;u<a;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1));C.push("...");for(let u=i-a;u<i;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1))}else for(let u=0;u<i;u++)E[I]=u,C.push(Li(A,E,I+1,e,t,o+1));if(I===g-1){let u="["+C.join(e.separator)+"]";if(o+u.length<e.linewidth)return u;let f=" ".repeat(o+1),m=e.linewidth-o-1,c=[],D="";for(let y=0;y<C.length;y++){let l=C[y];if(D==="")D=l;else{let h=D+e.separator+l;h.length<m?D=h:(c.push(D),D=l)}}return D&&c.push(D),"["+c.join(`
2
- `+f)+"]"}else{let u=" ".repeat(o+1),f=g-I-2,m=`
3
- `+`
4
- `.repeat(Math.max(0,f))+u;return"["+C.join(m)+"]"}}function _i(A,r=null,I=null,e=null,t=" ",o="",n="",g=null,i=null,Q=null,a=null){let B={...wA,linewidth:r??wA.linewidth,precision:I??wA.precision,suppress:e??wA.suppress,separator:t,prefix:o,suffix:n,threshold:g??wA.threshold,edgeitems:i??wA.edgeitems,floatmode:Q??wA.floatmode,sign:a??wA.sign};if(A.ndim===0){let u=A.iget(0);return Hi(u,A.dtype,B)}let s=t4(A,B),C=B.prefix.length,E=Li(A,new Array(A.ndim).fill(0),0,B,s,C);return B.prefix+E+B.suffix}function nm(A,r=null,I=null,e=null){let o="array("+_i(A,r,I,e,", ");return A.dtype!=="float64"&&(o+=`, dtype='${A.dtype}'`),o+=")",o}function Yi(A,r=null,I=null,e=null){return _i(A,r,I,e)}var im=2**63,gm={int8:-1,int16:-1,uint8:255,uint16:65535},n4={int8:0,int16:0,uint8:0,uint16:0},Qm={int32:[-2147483648,2147483647],uint32:[0,4294967295]};function i4(A,r){if(isNaN(A))return 0;if(r in gm)return A>=im||A===1/0?gm[r]:A<=-im||A===-1/0?n4[r]:Math.trunc(A);if(r in Qm){let[I,e]=Qm[r];return A>=e||A===1/0?e:A<=I||A===-1/0?I:Math.trunc(A)}return Math.trunc(A)}var AA=class A{static{this._proxyHandler={get(r,I,e){if(typeof I=="string"){let t=parseInt(I,10);if(!isNaN(t)&&String(t)===I){let o=r._storage.ndim>0?r._storage.shape[0]:1,n=t<0?o+t:t;return r._storage.ndim<=1?r._storage.iget(n):r.slice(I)}}return Reflect.get(r,I,e)},set(r,I,e,t){if(typeof I=="string"){let o=parseInt(I,10);if(!isNaN(o)&&String(o)===I){let n=r._storage.shape[0],g=o<0?n+o:o;if(r._storage.ndim===1)return r.set([g],e),!0;let i=r.slice(String(o)),Q=i.size;if(typeof e=="number"||typeof e=="bigint")i.fill(e);else if(e instanceof T)for(let a=0;a<Q;a++)i._storage.iset(a,e);else if(e instanceof A){if(e.size!==Q)throw new Error(`Cannot assign array of size ${e.size} into slice of size ${Q}`);for(let a=0;a<Q;a++)i._storage.iset(a,e._storage.iget(a))}else if(Array.isArray(e)){let a=e.flat(1/0);if(a.length!==Q)throw new Error(`Cannot assign array of length ${a.length} into slice of size ${Q}`);for(let B=0;B<Q;B++)i._storage.iset(B,a[B])}else throw new Error(`Cannot assign value of type ${typeof e} via bracket operator`);return!0}}return Reflect.set(r,I,e,t)}}}constructor(r,I){return this._storage=r,this._base=I,new Proxy(this,A._proxyHandler)}get storage(){return this._storage}static fromStorage(r,I){return new A(r,I)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get itemsize(){return Hr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}iget(r){return this._storage.iget(r)}iset(r,I){this._storage.iset(r,I)}copy(){return new A(this._storage.copy())}astype(r,I=!0){let e=this.dtype;if(e===r&&!I)return this;if(e===r&&I)return this.copy();let t=Array.from(this.shape),o=this.size,n=nA(r);if(!n)throw new Error(`Cannot convert to dtype ${r}`);let g=k(e),i=k(r);if(g&&i){let s=new n(o*2),C=this.data,E=s;for(let f=0;f<o*2;f++)E[f]=C[f];let u=d.fromData(s,t,r);return new A(u)}if(!g&&i){let s=new n(o*2),C=s;for(let u=0;u<o;u++)C[u*2]=Number(this.data[u]),C[u*2+1]=0;let E=d.fromData(s,t,r);return new A(E)}if(g&&!i){let s=new n(o),C=this.data;if(L(r))for(let u=0;u<o;u++)s[u]=BigInt(Math.trunc(C[u*2]));else for(let u=0;u<o;u++)s[u]=C[u*2];let E=d.fromData(s,t,r);return new A(E)}let Q=new n(o),a=this.data;if(L(e)&&!L(r)){let s=a;if(r==="bool")for(let C=0;C<o;C++)Q[C]=s[C]!==BigInt(0)?1:0;else for(let C=0;C<o;C++)Q[C]=Number(s[C])}else if(!L(e)&&L(r)){let s=a;if(fA(e)){let E=r==="int64",u=BigInt(E?"9223372036854775807":"18446744073709551615"),f=E?BigInt("-9223372036854775808"):0n;for(let m=0;m<o;m++){let c=Number(s[m]);isNaN(c)?Q[m]=0n:!isFinite(c)||c>=Number(u)?Q[m]=c<0?f:u:c<=Number(f)?Q[m]=f:Q[m]=BigInt(Math.trunc(c))}}else for(let E=0;E<o;E++)Q[E]=BigInt(Math.round(Number(s[E])))}else if(r==="bool"){let s=a;for(let C=0;C<o;C++)Q[C]=s[C]!==0?1:0}else if(e==="bool"&&!L(r)){let s=a;for(let C=0;C<o;C++)Q[C]=s[C]}else if(!L(e)&&!L(r)){let s=a;if(fA(e)&&!fA(r))for(let E=0;E<o;E++)Q[E]=i4(s[E],r);else for(let E=0;E<o;E++)Q[E]=s[E]}else{let s=a;for(let C=0;C<o;C++)Q[C]=s[C]}let B=d.fromData(Q,t,r);return new A(B)}slice(...r){let I=Gf(this._storage,...r);if(I===this._storage)return this;let e=this._base??this;return new this.constructor(I,e)}toString(){return Yi(this._storage)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}};function G(A){return A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d?A.storage:A}function R(A,r){return AA.fromStorage(A,r)}function $A(A,r){let I=r.base??r;return AA.fromStorage(A,I)}function dr(A){return A.map(r=>R(r))}function bI(A,r){return A.map(I=>$A(I,r))}function vi(A){return[R(A[0]),R(A[1])]}function Pa(A){return new AA(A)}function g4(A){return!!(A instanceof AA||A&&typeof A=="object"&&"storage"in A&&A.storage instanceof d)}function er(A,r=BA){let I=d.zeros(A,r);return new AA(I)}function Xi(A,r=BA){let I=d.ones(A,r);return new AA(I)}function Ti(A,r=BA){return er(A,r)}function Pi(A,r,I){let e=I;e||(typeof r=="bigint"?e="int64":typeof r=="boolean"?e="bool":Number.isInteger(r)?e="int32":e=BA);let t=nA(e);if(!t)throw new Error(`Cannot create full array with dtype ${e}`);let o=A.reduce((i,Q)=>i*Q,1),n=new t(o);if(L(e)){let i=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));n.fill(i)}else e==="bool"?n.fill(r?1:0):n.fill(Number(r));let g=d.fromData(n,A,e);return new AA(g)}function Q4(A){let r=[],I=A;for(;Array.isArray(I);)r.push(I.length),I=I[0];return r}function am(A){return typeof A=="bigint"?!0:Array.isArray(A)?A.some(r=>am(r)):!1}function Bm(A){return Cf(A)?!0:Array.isArray(A)?A.some(r=>Bm(r)):!1}function a4(A){let r=[];function I(e){Array.isArray(e)?e.forEach(t=>I(t)):r.push(e)}return I(A),r}function QA(A,r){if(A instanceof AA)return!r||A.dtype===r?A.copy():A.astype(r);let I=am(A),e=Bm(A),t=Q4(A),o=t.reduce((C,E)=>C*E,1),n=r;n||(e?n="complex128":I?n="int64":n=BA);let g=k(n),i=nA(n);if(!i)throw new Error(`Cannot create array with dtype ${n}`);let Q=g?o*2:o,a=new i(Q),B=a4(A);if(L(n)){let C=a;for(let E=0;E<o;E++){let u=B[E];C[E]=typeof u=="bigint"?u:BigInt(Math.round(Number(u)))}}else if(n==="bool"){let C=a;for(let E=0;E<o;E++)C[E]=B[E]?1:0}else if(g){let C=a;for(let E=0;E<o;E++){let u=B[E],f,m;u instanceof T?(f=u.re,m=u.im):typeof u=="object"&&u!==null&&"re"in u?(f=u.re,m=u.im??0):(f=Number(u),m=0),C[E*2]=f,C[E*2+1]=m}}else{let C=a;for(let E=0;E<o;E++){let u=B[E];C[E]=Number(u)}}let s=d.fromData(a,t,n);return new AA(s)}function Ka(A,r,I=1,e=BA){let t=A,o=r;if(r===void 0&&(t=0,o=A),o===void 0)throw new Error("stop is required");let n=Math.max(0,Math.ceil((o-t)/I)),g=nA(e);if(!g)throw new Error(`Cannot create arange array with dtype ${e}`);let i=new g(n);if(L(e))for(let a=0;a<n;a++)i[a]=BigInt(Math.round(t+a*I));else if(e==="bool")for(let a=0;a<n;a++)i[a]=t+a*I!==0?1:0;else for(let a=0;a<n;a++)i[a]=t+a*I;let Q=d.fromData(i,[n],e);return new AA(Q)}function Va(A,r,I=50,e=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],e);if(I===1)return QA([A],e);let t=nA(e);if(!t)throw new Error(`Cannot create linspace array with dtype ${e}`);let o=new t(I),n=(r-A)/(I-1);if(L(e))for(let i=0;i<I;i++)o[i]=BigInt(Math.round(A+i*n));else if(e==="bool")for(let i=0;i<I;i++)o[i]=A+i*n!==0?1:0;else for(let i=0;i<I;i++)o[i]=A+i*n;let g=d.fromData(o,[I],e);return new AA(g)}function Wa(A,r,I=50,e=10,t=BA){if(I<0)throw new Error("num must be non-negative");if(I===0)return QA([],t);if(I===1)return QA([Math.pow(e,A)],t);let o=nA(t);if(!o)throw new Error(`Cannot create logspace array with dtype ${t}`);let n=new o(I),g=(r-A)/(I-1);if(L(t))for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=BigInt(Math.round(Math.pow(e,a)))}else if(t==="bool")for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)!==0?1:0}else for(let Q=0;Q<I;Q++){let a=A+Q*g;n[Q]=Math.pow(e,a)}let i=d.fromData(n,[I],t);return new AA(i)}function Oa(A,r,I=50,e=BA){if(I<0)throw new Error("num must be non-negative");if(A===0||r===0)throw new Error("Geometric sequence cannot include zero");if(I===0)return QA([],e);if(I===1)return QA([A],e);let t=Math.sign(A),o=Math.sign(r);if(t!==o)throw new Error("Geometric sequence cannot contain both positive and negative values");let n=nA(e);if(!n)throw new Error(`Cannot create geomspace array with dtype ${e}`);let g=new n(I),i=Math.log(Math.abs(A)),a=(Math.log(Math.abs(r))-i)/(I-1);if(L(e))for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=BigInt(Math.round(C))}else if(e==="bool")for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=C!==0?1:0}else for(let s=0;s<I;s++){let C=t*Math.exp(i+s*a);g[s]=C}let B=d.fromData(g,[I],e);return new AA(B)}function Ki(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;if(L(e)){let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=BigInt(1))}}else{let g=n;for(let i=0;i<A;i++){let Q=i+I;Q>=0&&Q<t&&(g[i*t+Q]=1)}}return o}function Za(A,r=BA){return Ki(A,A,0,r)}function QI(A,r){return g4(A)?!r||A.dtype===r?A:A.astype(r):QA(A,r)}function za(A,r){return er(Array.from(A.shape),r??A.dtype)}function ja(A,r){return Xi(Array.from(A.shape),r??A.dtype)}function $a(A,r){return Ti(Array.from(A.shape),r??A.dtype)}function AB(A,r,I){return Pi(Array.from(A.shape),r,I??A.dtype)}function rB(A){return A.copy()}function IB(A,r){return QI(A,r)}function eB(A,r){return QI(A,r).copy()}function tB(A,r){return QI(A,r).copy()}function oB(A,r){let I=QI(A,r),e=I.data;if(e instanceof Float64Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length*2),o=2146435072;for(let n=1;n<t.length;n+=2)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}else if(e instanceof Float32Array){let t=new Uint32Array(e.buffer,e.byteOffset,e.length),o=2139095040;for(let n=0;n<t.length;n++)if((t[n]&o)===o)throw new Error("array must not contain infs or NaNs")}return I}function nB(A,r,I){let e=A;return r&&r!==A.dtype&&(e=e.astype(r)),e}function B4(A){let r=A.data,I=d.fromData(r.slice(),[r.length],A.dtype);return Pa(I)}function Vi(A,r=0){let I=A.shape,e=A.data,t=A.dtype;if(I.length===1){let o=I[0],n=o+Math.abs(r),g=er([n,n],t),i=g.data;for(let Q=0;Q<o;Q++){let a=r>=0?Q:Q-r,B=r>=0?Q+r:Q;a>=0&&a<n&&B>=0&&B<n&&(i[a*n+B]=e[Q])}return g}else if(I.length===2){let o=I[0],n=I[1],g=Math.min(r>=0?Math.min(o,n-r):Math.min(o+r,n),Math.max(0,r>=0?n-r:o+r));if(g<=0)return QA([],t);let i=[];for(let Q=0;Q<g;Q++){let a=r>=0?Q:Q-r,B=r>=0?Q+r:Q;a>=0&&a<o&&B>=0&&B<n&&i.push(e[a*n+B])}return QA(i,t)}throw new Error("Input must be 1-D or 2-D")}function iB(A,r=0){let I=B4(A);return Vi(I,r)}function gB(A,r,I=0,e=BA){let t=r??A,o=er([A,t],e),n=o.data;for(let g=0;g<A;g++)for(let i=0;i<=Math.min(g+I,t-1);i++)i>=0&&(n[g*t+i]=1);return o}function QB(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,B)=>a*B,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let B=a*i;for(let s=0;s<o;s++){let C=B+s*n+Math.max(0,Math.min(s+r+1,n)),E=B+s*n+n;C<E&&t.fill(Q?0n:0,C,E)}}return e}function aB(A,r=0){let I=A.shape;if(I.length<2)throw new Error("Input must be at least 2-D");let e=A.copy(),t=e.data,o=I[I.length-2],n=I[I.length-1],g=I.slice(0,-2).reduce((a,B)=>a*B,1),i=o*n,Q=t instanceof BigInt64Array||t instanceof BigUint64Array;for(let a=0;a<g;a++){let B=a*i;for(let s=0;s<o;s++){let C=B+s*n+Math.max(0,Math.min(s+r,n)),E=B+s*n;E<C&&t.fill(Q?0n:0,E,C)}}return e}function BB(A,r,I=!1){let e=A.size,t=r??e,o=A.data,n=er([e,t],A.dtype),g=n.data;for(let i=0;i<e;i++){let Q=o[i];for(let a=0;a<t;a++){let B=I?a:t-1-a;g[i*t+a]=Math.pow(Q,B)}}return n}function sB(A,r=BA,I=-1,e=0){let t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o;if(A instanceof ArrayBuffer){let g=e,i=I<0?(A.byteLength-g)/t.BYTES_PER_ELEMENT:I;o=new t(A,g,i)}else{let g=e,i=I<0?A.length:e+I,Q=Array.from(A.slice(g,i));o=new t(Q.length);for(let a=0;a<Q.length;a++)o[a]=Q[a]}let n=d.fromData(o,[o.length],r);return Pa(n)}function CB(A,r,I=BA){let e=r.reduce((Q,a)=>Q*a,1),t=nA(I);if(!t)throw new Error(`Unsupported dtype: ${I}`);let o=new t(e),n=[],g=1;for(let Q=r.length-1;Q>=0;Q--)n.unshift(g),g*=r[Q];for(let Q=0;Q<e;Q++){let a=[],B=Q;for(let s=0;s<r.length;s++)a.push(Math.floor(B/n[s])),B=B%n[s];o[Q]=A(...a)}let i=d.fromData(o,r,I);return Pa(i)}function EB(A,r=BA,I=-1){let e=[],t=0;for(let o of A){if(I>=0&&t>=I)break;e.push(o),t++}return QA(e,r)}function uB(A,r=BA,I=-1,e){let t=e??/\s+/,n=A.split(t).filter(i=>i.trim()!=="").map(i=>parseFloat(i.trim())),g=I>=0?n.slice(0,I):n;return QA(g,r)}function cB(A,r=BA,I=-1,e=""){throw new Error("fromfile requires Node.js file system access")}function Yr(A,r){let I=A.length,e=r.length,t=Math.max(I,e),o=new Array(t);for(let n=0;n<t;n++){let g=n<t-I?1:A[n-(t-I)],i=n<t-e?1:r[n-(t-e)];if(g===i)o[n]=g;else if(g===1)o[n]=i;else if(i===1)o[n]=g;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(A))} ${JSON.stringify(Array.from(r))}`)}return o}function s4(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function Wi(A,r){let I=s4(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function yA(A,r,I,e){let t=IA(A.dtype,r.dtype),o=A.shape,n=r.shape;if(o.length===n.length&&o.every((E,u)=>E===n[u])&&A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!L(t)){let E=A.size,u=d.zeros(Array.from(o),t),f=u.data,m=A.data,c=r.data,D=A.offset,y=r.offset;if(D===0&&y===0)for(let l=0;l<E;l++)f[l]=I(m[l],c[l]);else for(let l=0;l<E;l++)f[l]=I(m[D+l],c[y+l]);return u}let i=Yr(A.shape,r.shape),Q=Wi(A,i),a=Wi(r,i),B=d.zeros(i,t),s=B.data,C=B.size;if(L(t)){let E=s;for(let u=0;u<C;u++){let f=Q.iget(u),m=a.iget(u),c=f instanceof T?f.re:f,D=m instanceof T?m.re:m,y=typeof c=="bigint"?c:BigInt(Math.round(c)),l=typeof D=="bigint"?D:BigInt(Math.round(D));e==="add"?E[u]=y+l:e==="subtract"?E[u]=y-l:e==="multiply"?E[u]=y*l:e==="divide"?E[u]=y/l:E[u]=BigInt(Math.round(I(Number(y),Number(l))))}}else{let E=L(A.dtype)||L(r.dtype);for(let u=0;u<C;u++){let f=Q.iget(u),m=a.iget(u),c=Number(f),D=Number(m);s[u]=I(c,D)}}return B}function tr(A,r,I){let e=Yr(A.shape,r.shape),t=Wi(A,e),o=Wi(r,e),n=e.reduce((Q,a)=>Q*a,1),g=new Uint8Array(n),i=L(A.dtype)||L(r.dtype);for(let Q=0;Q<n;Q++){let a=t.iget(Q),B=o.iget(Q),s=Number(a),C=Number(B);g[Q]=I(s,C)?1:0}return d.fromData(g,e,"bool")}function mA(A,r,I=!0){let e=A.dtype,t=Array.from(A.shape),o=A.size,g=I?e:e!=="float32"&&e!=="float64"?"float64":e,i=d.zeros(t,g),Q=i.data,a=A.data,B=A.offset,s=A.isCContiguous;if(L(e))if(L(g)){let C=Q;if(s)for(let E=0;E<o;E++){let u=Number(a[B+E]);C[E]=BigInt(Math.round(r(u)))}else for(let E=0;E<o;E++)C[E]=BigInt(Math.round(r(Number(A.iget(E)))))}else if(s)for(let C=0;C<o;C++)Q[C]=r(Number(a[B+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));else if(s)if(B===0)for(let C=0;C<o;C++)Q[C]=r(Number(a[C]));else for(let C=0;C<o;C++)Q[C]=r(Number(a[B+C]));else for(let C=0;C<o;C++)Q[C]=r(Number(A.iget(C)));return i}var C4="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",ue=null;function YA(){if(ue)return ue;let A=atob(C4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ue}function sm(A,r,I,e){YA().exports.add_f64(A,r,I,e)}function Cm(A,r,I,e){YA().exports.add_scalar_f64(A,r,I,e)}function Em(A,r,I,e){YA().exports.add_f32(A,r,I,e)}function um(A,r,I,e){YA().exports.add_scalar_f32(A,r,I,e)}function cm(A,r,I,e){YA().exports.add_c128(A,r,I,e)}function Dm(A,r,I,e){YA().exports.add_scalar_c128(A,r,I,e)}function fm(A,r,I,e){YA().exports.add_c64(A,r,I,e)}function mm(A,r,I,e){YA().exports.add_scalar_c64(A,r,I,e)}function DB(A,r,I,e){YA().exports.add_i64(A,r,I,e)}function fB(A,r,I,e){YA().exports.add_scalar_i64(A,r,I,BigInt(Math.round(e)))}function mB(A,r,I,e){YA().exports.add_i32(A,r,I,e)}function yB(A,r,I,e){YA().exports.add_scalar_i32(A,r,I,e)}function lB(A,r,I,e){YA().exports.add_i16(A,r,I,e)}function hB(A,r,I,e){YA().exports.add_scalar_i16(A,r,I,e)}function dB(A,r,I,e){YA().exports.add_i8(A,r,I,e)}function bB(A,r,I,e){YA().exports.add_scalar_i8(A,r,I,e)}var ym=64,E4={float64:sm,float32:Em,int64:DB,uint64:DB,int32:mB,uint32:mB,int16:lB,uint16:lB,int8:dB,uint8:dB,complex128:cm,complex64:fm},u4={float64:Cm,float32:um,int64:fB,uint64:fB,int32:yB,uint32:yB,int16:hB,uint16:hB,int8:bB,uint8:bB,complex128:Dm,complex64:mm},lm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},hm={complex128:2,complex64:2};function dm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<ym*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=E4[e],o=lm[e];if(!t||!o)return null;let n=hm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function bm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<ym*Y.thresholdMultiplier)return null;let e=A.dtype,t=u4[e],o=lm[e];if(!t||!o)return null;let n=hm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var c4="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",ce=null;function vA(){if(ce)return ce;let A=atob(c4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ce=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ce.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ce}function pm(A,r,I,e){vA().exports.sub_f64(A,r,I,e)}function wm(A,r,I,e){vA().exports.sub_scalar_f64(A,r,I,e)}function Nm(A,r,I,e){vA().exports.sub_f32(A,r,I,e)}function Fm(A,r,I,e){vA().exports.sub_scalar_f32(A,r,I,e)}function Gm(A,r,I,e){vA().exports.sub_c128(A,r,I,e)}function Sm(A,r,I,e){vA().exports.sub_scalar_c128(A,r,I,e)}function Rm(A,r,I,e){vA().exports.sub_c64(A,r,I,e)}function km(A,r,I,e){vA().exports.sub_scalar_c64(A,r,I,e)}function pB(A,r,I,e){vA().exports.sub_i64(A,r,I,e)}function wB(A,r,I,e){vA().exports.sub_scalar_i64(A,r,I,BigInt(Math.round(e)))}function NB(A,r,I,e){vA().exports.sub_i32(A,r,I,e)}function FB(A,r,I,e){vA().exports.sub_scalar_i32(A,r,I,e)}function GB(A,r,I,e){vA().exports.sub_i16(A,r,I,e)}function SB(A,r,I,e){vA().exports.sub_scalar_i16(A,r,I,e)}function RB(A,r,I,e){vA().exports.sub_i8(A,r,I,e)}function kB(A,r,I,e){vA().exports.sub_scalar_i8(A,r,I,e)}var qm=64,D4={float64:pm,float32:Nm,int64:pB,uint64:pB,int32:NB,uint32:NB,int16:GB,uint16:GB,int8:RB,uint8:RB,complex128:Gm,complex64:Rm},f4={float64:wm,float32:Fm,int64:wB,uint64:wB,int32:FB,uint32:FB,int16:SB,uint16:SB,int8:kB,uint8:kB,complex128:Sm,complex64:km},Mm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},xm={complex128:2,complex64:2};function Jm(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<qm*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=D4[e],o=Mm[e];if(!t||!o)return null;let n=xm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function Um(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<qm*Y.thresholdMultiplier)return null;let e=A.dtype,t=f4[e],o=Mm[e];if(!t||!o)return null;let n=xm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var m4="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",De=null;function XA(){if(De)return De;let A=atob(m4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);De=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=De.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),De}function Lm(A,r,I,e){XA().exports.mul_f64(A,r,I,e)}function Hm(A,r,I,e){XA().exports.mul_scalar_f64(A,r,I,e)}function _m(A,r,I,e){XA().exports.mul_f32(A,r,I,e)}function Ym(A,r,I,e){XA().exports.mul_scalar_f32(A,r,I,e)}function vm(A,r,I,e){XA().exports.mul_c128(A,r,I,e)}function Xm(A,r,I,e){XA().exports.mul_scalar_c128(A,r,I,e)}function Tm(A,r,I,e){XA().exports.mul_c64(A,r,I,e)}function Pm(A,r,I,e){XA().exports.mul_scalar_c64(A,r,I,e)}function qB(A,r,I,e){XA().exports.mul_i64(A,r,I,e)}function MB(A,r,I,e){XA().exports.mul_scalar_i64(A,r,I,BigInt(Math.round(e)))}function xB(A,r,I,e){XA().exports.mul_i32(A,r,I,e)}function JB(A,r,I,e){XA().exports.mul_scalar_i32(A,r,I,e)}function UB(A,r,I,e){XA().exports.mul_i16(A,r,I,e)}function LB(A,r,I,e){XA().exports.mul_scalar_i16(A,r,I,e)}function HB(A,r,I,e){XA().exports.mul_i8(A,r,I,e)}function _B(A,r,I,e){XA().exports.mul_scalar_i8(A,r,I,e)}var Km=64,y4={float64:Lm,float32:_m,int64:qB,uint64:qB,int32:xB,uint32:xB,int16:UB,uint16:UB,int8:HB,uint8:HB,complex128:vm,complex64:Tm},l4={float64:Hm,float32:Ym,int64:MB,uint64:MB,int32:JB,uint32:JB,int16:LB,uint16:LB,int8:_B,uint8:_B,complex128:Xm,complex64:Pm},Vm={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},Wm={complex128:2,complex64:2};function Om(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Km*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=y4[e],o=Vm[e];if(!t||!o)return null;let n=Wm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g,B=i*g;J(Q+a+B),U();let s=A.offset*n,C=r.offset*n,E=A.data.subarray(s,s+i),u=r.data.subarray(C,C+i),f=q(E),m=q(u),c=_(B);t(f,m,c,I);let D=v(c,i,o);return d.fromData(D,Array.from(A.shape),e)}function Zm(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Km*Y.thresholdMultiplier)return null;let e=A.dtype,t=l4[e],o=Vm[e];if(!t||!o)return null;let n=Wm[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n,Q=i*g,a=i*g;J(Q+a),U();let B=A.offset*n,s=A.data.subarray(B,B+i),C=q(s),E=_(a);t(C,E,I,r);let u=v(E,i,o);return d.fromData(u,Array.from(A.shape),e)}var h4="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",fe=null;function bA(){if(fe)return fe;let A=atob(h4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fe}function zm(A,r,I,e){bA().exports.div_f64(A,r,I,e)}function jm(A,r,I,e){bA().exports.div_f32(A,r,I,e)}function $m(A,r,I,e){bA().exports.div_i64_f64(A,r,I,e)}function Ay(A,r,I,e){bA().exports.div_u64_f64(A,r,I,e)}function ry(A,r,I,e){bA().exports.div_i32_f64(A,r,I,e)}function Iy(A,r,I,e){bA().exports.div_u32_f64(A,r,I,e)}function ey(A,r,I,e){bA().exports.div_i16_f64(A,r,I,e)}function ty(A,r,I,e){bA().exports.div_u16_f64(A,r,I,e)}function oy(A,r,I,e){bA().exports.div_i8_f64(A,r,I,e)}function ny(A,r,I,e){bA().exports.div_u8_f64(A,r,I,e)}function iy(A,r,I,e){bA().exports.div_c128(A,r,I,e)}function gy(A,r,I,e){bA().exports.div_c64(A,r,I,e)}function Qy(A,r,I,e){bA().exports.div_scalar_f64(A,r,I,e)}function ay(A,r,I,e){bA().exports.div_scalar_f32(A,r,I,e)}function By(A,r,I,e){bA().exports.div_scalar_i64_f64(A,r,I,e)}function sy(A,r,I,e){bA().exports.div_scalar_u64_f64(A,r,I,e)}function Cy(A,r,I,e){bA().exports.div_scalar_i32_f64(A,r,I,e)}function Ey(A,r,I,e){bA().exports.div_scalar_u32_f64(A,r,I,e)}function uy(A,r,I,e){bA().exports.div_scalar_i16_f64(A,r,I,e)}function cy(A,r,I,e){bA().exports.div_scalar_u16_f64(A,r,I,e)}function Dy(A,r,I,e){bA().exports.div_scalar_i8_f64(A,r,I,e)}function fy(A,r,I,e){bA().exports.div_scalar_u8_f64(A,r,I,e)}var my=64,d4={float64:zm,float32:jm,complex128:iy,complex64:gy},b4={float64:Qy,float32:ay},p4={int64:$m,uint64:Ay,int32:ry,uint32:Iy,int16:ey,uint16:ty,int8:oy,uint8:ny},w4={int64:By,uint64:sy,int32:Cy,uint32:Ey,int16:uy,uint16:cy,int8:Dy,uint8:fy},Oi={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zi(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<my*Y.thresholdMultiplier||A.dtype!==r.dtype)return null;let e=A.dtype,t=d4[e];if(t){let s=Oi[e],C=k(e)?2:1,E=s.BYTES_PER_ELEMENT,u=I*C;J(u*E*3),U();let f=q(A.data.subarray(A.offset*C,(A.offset+I)*C)),m=q(r.data.subarray(r.offset*C,(r.offset+I)*C)),c=_(u*E);t(f,m,c,I);let D=v(c,u,s);return d.fromData(D,Array.from(A.shape),e)}let o=p4[e],n=Oi[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g*2+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=q(r.data.subarray(r.offset,r.offset+I)),a=_(I*8);o(i,Q,a,I);let B=v(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}function yy(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<my*Y.thresholdMultiplier)return null;let e=A.dtype,t=b4[e];if(t){let B=Oi[e],s=B.BYTES_PER_ELEMENT;J(I*s*2),U();let C=q(A.data.subarray(A.offset,A.offset+I)),E=_(I*s);t(C,E,I,r);let u=v(E,I,B);return d.fromData(u,Array.from(A.shape),e)}let o=w4[e],n=Oi[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(I*g+I*8),U();let i=q(A.data.subarray(A.offset,A.offset+I)),Q=_(I*8);o(i,Q,I,r);let a=v(Q,I,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var N4="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",me=null;function vr(){if(me)return me;let A=atob(N4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),me}function ly(A,r,I){vr().exports.neg_f64(A,r,I)}function hy(A,r,I){vr().exports.neg_f32(A,r,I)}function dy(A,r,I){vr().exports.neg_c128(A,r,I)}function by(A,r,I){vr().exports.neg_c64(A,r,I)}function YB(A,r,I){vr().exports.neg_i64(A,r,I)}function vB(A,r,I){vr().exports.neg_i32(A,r,I)}function XB(A,r,I){vr().exports.neg_i16(A,r,I)}function TB(A,r,I){vr().exports.neg_i8(A,r,I)}var F4=64,G4={float64:ly,float32:hy,int64:YB,uint64:YB,int32:vB,uint32:vB,int16:XB,uint16:XB,int8:TB,uint8:TB,complex128:dy,complex64:by},S4={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},R4={complex128:2,complex64:2};function py(A){if(!A.isCContiguous)return null;let r=A.size;if(r<F4*Y.thresholdMultiplier)return null;let I=A.dtype,e=G4[I],t=S4[I];if(!e||!t)return null;let o=R4[I]??1,n=t.BYTES_PER_ELEMENT,g=r*o,i=g*n,Q=g*n;J(i+Q),U();let a=A.offset*o,B=A.data.subarray(a,a+g),s=q(B),C=_(Q);e(s,C,r);let E=v(C,g,t);return d.fromData(E,Array.from(A.shape),I)}var k4="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",ye=null;function pI(){if(ye)return ye;let A=atob(k4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ye=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ye.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ye}function wy(A,r,I){pI().exports.abs_f64(A,r,I)}function Ny(A,r,I){pI().exports.abs_f32(A,r,I)}function Fy(A,r,I){pI().exports.abs_i64(A,r,I)}function Gy(A,r,I){pI().exports.abs_i32(A,r,I)}function Sy(A,r,I){pI().exports.abs_i16(A,r,I)}function Ry(A,r,I){pI().exports.abs_i8(A,r,I)}var q4=64,M4={float64:wy,float32:Ny,int64:Fy,int32:Gy,int16:Sy,int8:Ry},ky={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qy(A){if(!A.isCContiguous)return null;let r=A.size;if(r<q4*Y.thresholdMultiplier)return null;let I=A.dtype;if(I==="uint8"||I==="uint16"||I==="uint32"||I==="uint64"){let C=ky[I],E=A.offset,u=A.data.subarray(E,E+r),f=new C(u);return d.fromData(f,Array.from(A.shape),I)}let e=M4[I],t=ky[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var x4="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",le=null;function wI(){if(le)return le;let A=atob(x4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);le=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=le.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),le}function My(A,r,I){wI().exports.sign_f64(A,r,I)}function xy(A,r,I){wI().exports.sign_f32(A,r,I)}function Jy(A,r,I){wI().exports.sign_i64(A,r,I)}function Uy(A,r,I){wI().exports.sign_i32(A,r,I)}function Ly(A,r,I){wI().exports.sign_i16(A,r,I)}function Hy(A,r,I){wI().exports.sign_i8(A,r,I)}var J4=64,U4={float64:My,float32:xy,int64:Jy,int32:Uy,int16:Ly,int8:Hy},L4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function _y(A){if(!A.isCContiguous)return null;let r=A.size;if(r<J4*Y.thresholdMultiplier)return null;let I=A.dtype,e=U4[I],t=L4[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var H4="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",he=null;function NA(){if(he)return he;let A=atob(H4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);he=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=he.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),he}function Yy(A,r,I,e){NA().exports.min_f64(A,r,I,e)}function vy(A,r,I,e){NA().exports.min_scalar_f64(A,r,I,e)}function Xy(A,r,I,e){NA().exports.min_f32(A,r,I,e)}function Ty(A,r,I,e){NA().exports.min_scalar_f32(A,r,I,e)}function Py(A,r,I,e){NA().exports.min_i64(A,r,I,e)}function Ky(A,r,I,e){NA().exports.min_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Vy(A,r,I,e){NA().exports.min_u64(A,r,I,e)}function Wy(A,r,I,e){NA().exports.min_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Oy(A,r,I,e){NA().exports.min_i32(A,r,I,e)}function Zy(A,r,I,e){NA().exports.min_scalar_i32(A,r,I,e)}function zy(A,r,I,e){NA().exports.min_u32(A,r,I,e)}function jy(A,r,I,e){NA().exports.min_scalar_u32(A,r,I,e)}function $y(A,r,I,e){NA().exports.min_i16(A,r,I,e)}function Al(A,r,I,e){NA().exports.min_scalar_i16(A,r,I,e)}function rl(A,r,I,e){NA().exports.min_u16(A,r,I,e)}function Il(A,r,I,e){NA().exports.min_scalar_u16(A,r,I,e)}function el(A,r,I,e){NA().exports.min_i8(A,r,I,e)}function tl(A,r,I,e){NA().exports.min_scalar_i8(A,r,I,e)}function ol(A,r,I,e){NA().exports.min_u8(A,r,I,e)}function nl(A,r,I,e){NA().exports.min_scalar_u8(A,r,I,e)}var il=64,_4={float64:Yy,float32:Xy,int64:Py,uint64:Vy,int32:Oy,uint32:zy,int16:$y,uint16:rl,int8:el,uint8:ol},Y4={float64:vy,float32:Ty,int64:Ky,uint64:Wy,int32:Zy,uint32:jy,int16:Al,uint16:Il,int8:tl,uint8:nl},gl={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function PB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<il*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=_4[e],o=gl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function de(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<il*Y.thresholdMultiplier)return null;let e=A.dtype,t=Y4[e],o=gl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var v4="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",be=null;function FA(){if(be)return be;let A=atob(v4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);be=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=be.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),be}function Ql(A,r,I,e){FA().exports.max_f64(A,r,I,e)}function al(A,r,I,e){FA().exports.max_scalar_f64(A,r,I,e)}function Bl(A,r,I,e){FA().exports.max_f32(A,r,I,e)}function sl(A,r,I,e){FA().exports.max_scalar_f32(A,r,I,e)}function Cl(A,r,I,e){FA().exports.max_i64(A,r,I,e)}function El(A,r,I,e){FA().exports.max_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ul(A,r,I,e){FA().exports.max_u64(A,r,I,e)}function cl(A,r,I,e){FA().exports.max_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Dl(A,r,I,e){FA().exports.max_i32(A,r,I,e)}function fl(A,r,I,e){FA().exports.max_scalar_i32(A,r,I,e)}function ml(A,r,I,e){FA().exports.max_u32(A,r,I,e)}function yl(A,r,I,e){FA().exports.max_scalar_u32(A,r,I,e)}function ll(A,r,I,e){FA().exports.max_i16(A,r,I,e)}function hl(A,r,I,e){FA().exports.max_scalar_i16(A,r,I,e)}function dl(A,r,I,e){FA().exports.max_u16(A,r,I,e)}function bl(A,r,I,e){FA().exports.max_scalar_u16(A,r,I,e)}function pl(A,r,I,e){FA().exports.max_i8(A,r,I,e)}function wl(A,r,I,e){FA().exports.max_scalar_i8(A,r,I,e)}function Nl(A,r,I,e){FA().exports.max_u8(A,r,I,e)}function Fl(A,r,I,e){FA().exports.max_scalar_u8(A,r,I,e)}var Gl=64,X4={float64:Ql,float32:Bl,int64:Cl,uint64:ul,int32:Dl,uint32:ml,int16:ll,uint16:dl,int8:pl,uint8:Nl},T4={float64:al,float32:sl,int64:El,uint64:cl,int32:fl,uint32:yl,int16:hl,uint16:bl,int8:wl,uint8:Fl},Sl={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function KB(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Gl*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=X4[e],o=Sl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=q(r.data.subarray(r.offset,r.offset+I)),Q=_(I*n);t(g,i,Q,I);let a=v(Q,I,o);return d.fromData(a,Array.from(A.shape),e)}function pe(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Gl*Y.thresholdMultiplier)return null;let e=A.dtype,t=T4[e],o=Sl[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var P4="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",we=null;function br(){if(we)return we;let A=atob(P4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);we=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=we.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),we}function Rl(A,r,I,e,t){br().exports.clip_f64(A,r,I,e,t)}function kl(A,r,I,e,t){br().exports.clip_f32(A,r,I,e,t)}function ql(A,r,I,e,t){br().exports.clip_i64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function Ml(A,r,I,e,t){br().exports.clip_u64(A,r,I,BigInt(Math.round(e)),BigInt(Math.round(t)))}function xl(A,r,I,e,t){br().exports.clip_i32(A,r,I,e,t)}function Jl(A,r,I,e,t){br().exports.clip_u32(A,r,I,e,t)}function Ul(A,r,I,e,t){br().exports.clip_i16(A,r,I,e,t)}function Ll(A,r,I,e,t){br().exports.clip_u16(A,r,I,e,t)}function Hl(A,r,I,e,t){br().exports.clip_i8(A,r,I,e,t)}function _l(A,r,I,e,t){br().exports.clip_u8(A,r,I,e,t)}var K4=64,V4={float64:Rl,float32:kl,int64:ql,uint64:Ml,int32:xl,uint32:Jl,int16:Ul,uint16:Ll,int8:Hl,uint8:_l},W4={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Yl(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<K4*Y.thresholdMultiplier)return null;let t=A.dtype,o=V4[t],n=W4[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT;J(e*g*2),U();let i=q(A.data.subarray(A.offset,A.offset+e)),Q=_(e*g);o(i,Q,e,r,I);let a=v(Q,e,n);return d.fromData(a,Array.from(A.shape),t)}var O4="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",Ne=null;function Xr(){if(Ne)return Ne;let A=atob(O4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ne=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ne.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ne}function vl(A,r,I){Xr().exports.square_f64(A,r,I)}function Xl(A,r,I){Xr().exports.square_f32(A,r,I)}function Tl(A,r,I){Xr().exports.square_c128(A,r,I)}function Pl(A,r,I){Xr().exports.square_c64(A,r,I)}function VB(A,r,I){Xr().exports.square_i64(A,r,I)}function WB(A,r,I){Xr().exports.square_i32(A,r,I)}function OB(A,r,I){Xr().exports.square_i16(A,r,I)}function ZB(A,r,I){Xr().exports.square_i8(A,r,I)}var Z4=64,z4={float64:vl,float32:Xl,complex128:Tl,complex64:Pl,int64:VB,uint64:VB,int32:WB,uint32:WB,int16:OB,uint16:OB,int8:ZB,uint8:ZB},j4={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Kl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Z4*Y.thresholdMultiplier)return null;let I=A.dtype,e=z4[I],t=j4[I];if(!e||!t)return null;let o=k(I)?2:1,n=t.BYTES_PER_ELEMENT,g=r*o;J(g*n*2),U();let i=q(A.data.subarray(A.offset*o,(A.offset+r)*o)),Q=_(g*n);e(i,Q,r);let a=v(Q,g,t);return d.fromData(a,Array.from(A.shape),I)}var $4="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",Fe=null;function NI(){if(Fe)return Fe;let A=atob($4),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Fe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Fe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Fe}function Vl(A,r,I){NI().exports.reciprocal_f64(A,r,I)}function Wl(A,r,I){NI().exports.reciprocal_f32(A,r,I)}function zB(A,r,I){NI().exports.reciprocal_i64_f64(A,r,I)}function jB(A,r,I){NI().exports.reciprocal_i32_f64(A,r,I)}function $B(A,r,I){NI().exports.reciprocal_i16_f64(A,r,I)}function As(A,r,I){NI().exports.reciprocal_i8_f64(A,r,I)}var AY=64,rY={float64:Vl,float32:Wl},IY={int64:zB,uint64:zB,int32:jB,uint32:jB,int16:$B,uint16:$B,int8:As,uint8:As},Ol={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zl(A){if(!A.isCContiguous)return null;let r=A.size;if(r<AY*Y.thresholdMultiplier)return null;let I=A.dtype,e=rY[I];if(e){let a=Ol[I],B=a.BYTES_PER_ELEMENT;J(r*B*2),U();let s=q(A.data.subarray(A.offset,A.offset+r)),C=_(r*B);e(s,C,r);let E=v(C,r,a);return d.fromData(E,Array.from(A.shape),I)}let t=IY[I],o=Ol[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(r*n+r*8),U();let g=q(A.data.subarray(A.offset,A.offset+r)),i=_(r*8);t(g,i,r);let Q=v(i,r,Float64Array);return d.fromData(Q,Array.from(A.shape),"float64")}var eY="AGFzbQEAAAABFgNgBH9/f3wAYAR/f399AGAEf39/fwACDwEDZW52Bm1lbW9yeQIAEAMFBAABAgIGCQF/AUGAgMAACwdPBBRoZWF2aXNpZGVfc2NhbGFyX2Y2NAAAFGhlYXZpc2lkZV9zY2FsYXJfZjMyAAENaGVhdmlzaWRlX2Y2NAACDWhlYXZpc2lkZV9mMzIAAwrbCwSwAwUBfwF7A38CewF8QQAhBAJAAkACQCACDgICAQALIAEgAGtBEEkNACAD/RQhBSACQX5xIgQhBiABIQcgACEIA0AgB/0MAAAAAAAAAAAAAAAAAAAAACIJIAX9DAAAAAAAAPA/AAAAAAAA8D8gCSAI/QADACIK/Uf9UiAKIAn9Sf1S/QsDACAHQRBqIQcgCEEQaiEIIAZBfmoiBg0ACyACIARGDQELIARBAXIhBwJAIAJBAXFFDQAgASAEQQN0IghqRAAAAAAAAAAAIANEAAAAAAAA8D8gACAIaisDACILRAAAAAAAAAAAYRsgC0QAAAAAAAAAAGMbOQMAIAchBAsgAiAHRg0AIAIgBGshBiAAIARBA3QiCGohByABIAhqIQgDQCAIRAAAAAAAAAAAIANEAAAAAAAA8D8gBysDACILRAAAAAAAAAAAYRsgC0QAAAAAAAAAAGMbOQMAIAhBCGpEAAAAAAAAAAAgA0QAAAAAAADwPyAHQQhqKwMAIgtEAAAAAAAAAABhGyALRAAAAAAAAAAAYxs5AwAgB0EQaiEHIAhBEGohCCAGQX5qIgYNAAsLC4IDBQF/AXsDfwJ7AX0CQCACRQ0AQQAhBAJAIAJBBEkNACABIABrQRBJDQAgA/0TIQUgAkF8cSIEIQYgASEHIAAhCANAIAf9DAAAAAAAAAAAAAAAAAAAAAAiCSAF/QwAAIA/AACAPwAAgD8AAIA/IAkgCP0AAgAiCv1B/VIgCiAJ/UP9Uv0LAgAgB0EQaiEHIAhBEGohCCAGQXxqIgYNAAsgAiAERg0BCyAEQQFyIQcCQCACQQFxRQ0AIAEgBEECdCIIakMAAAAAIANDAACAPyAAIAhqKgIAIgtDAAAAAFsbIAtDAAAAAF0bOAIAIAchBAsgAiAHRg0AIAIgBGshBiAAIARBAnQiCGohByABIAhqIQgDQCAIQwAAAAAgA0MAAIA/IAcqAgAiC0MAAAAAWxsgC0MAAAAAXRs4AgAgCEEEakMAAAAAIANDAACAPyAHQQRqKgIAIgtDAAAAAFsbIAtDAAAAAF0bOAIAIAdBCGohByAIQQhqIQggBkF+aiIGDQALCwvoAgIFfwJ8AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAIhAyAAIQgDQEQAAAAAAAAAACEJAkAgCCsDACIKRAAAAAAAAAAAYw0AAkAgCkQAAAAAAAAAAGENAEQAAAAAAADwPyEJDAELIAcrAwAhCQsgAyAJOQMARAAAAAAAAAAAIQkCQCAIQQhqKwMAIgpEAAAAAAAAAABjDQACQCAKRAAAAAAAAAAAYQ0ARAAAAAAAAPA/IQkMAQsgB0EIaisDACEJCyADQQhqIAk5AwAgB0EQaiEHIANBEGohAyAIQRBqIQggBiAFQQJqIgVHDQALCyAERQ0AIAIgBUEDdCIDaiEIRAAAAAAAAAAAIQkCQCAAIANqKwMAIgpEAAAAAAAAAABjDQACQCAKRAAAAAAAAAAAYQ0ARAAAAAAAAPA/IQkMAQsgASAFQQN0aisDACEJCyAIIAk5AwALC7gCAgV/An0CQCADRQ0AIANBAXEhBEEAIQUCQCADQQFGDQAgA0F+cSEGQQAhBSABIQcgAiEDIAAhCANAQwAAAAAhCQJAIAgqAgAiCkMAAAAAXQ0AAkAgCkMAAAAAWw0AQwAAgD8hCQwBCyAHKgIAIQkLIAMgCTgCAEMAAAAAIQkCQCAIQQRqKgIAIgpDAAAAAF0NAAJAIApDAAAAAFsNAEMAAIA/IQkMAQsgB0EEaioCACEJCyADQQRqIAk4AgAgB0EIaiEHIANBCGohAyAIQQhqIQggBiAFQQJqIgVHDQALCyAERQ0AIAIgBUECdCIDaiEIQwAAAAAhCQJAIAAgA2oqAgAiCkMAAAAAXQ0AAkAgCkMAAAAAWw0AQwAAgD8hCQwBCyABIAVBAnRqKgIAIQkLIAggCTgCAAsL",Ge=null;function zi(){if(Ge)return Ge;let A=atob(eY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ge=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ge.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ge}function zl(A,r,I,e){zi().exports.heaviside_scalar_f64(A,r,I,e)}function jl(A,r,I,e){zi().exports.heaviside_scalar_f32(A,r,I,e)}function $l(A,r,I,e){zi().exports.heaviside_f64(A,r,I,e)}function A0(A,r,I,e){zi().exports.heaviside_f32(A,r,I,e)}var r0=64,tY={float64:zl,float32:jl},oY={float64:$l,float32:A0},I0={float64:Float64Array,float32:Float32Array};function e0(A,r,I){if(!A.isCContiguous)return null;let e=A.size;if(e<r0*Y.thresholdMultiplier)return null;let t=tY[I],o=I0[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=_(e*n);t(g,i,e,r);let Q=v(i,e,o);return d.fromData(Q,Array.from(A.shape),I)}function t0(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size;if(e<r0*Y.thresholdMultiplier)return null;let t=oY[I],o=I0[I];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(e*n*3),U();let g=q(A.data.subarray(A.offset,A.offset+e)),i=q(r.data.subarray(r.offset,r.offset+e)),Q=_(e*n);t(g,i,Q,e);let a=v(Q,e,o);return d.fromData(a,Array.from(A.shape),I)}var nY="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IAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C6ECAQR/AkACQCAAIABcDQAgALwiAkH/////B3FBgICA/AdPDQAgAkGAgICAeHEhA0EIIAJBAXQiBGdrIARBGHYgBEGAgIAISRshBAJAIAFBAEgNAAJAIAFB/gEgBGtMDQBDAACAfyAAmA8LAkAgBCABaiIFQQBKDQAgAiABdCADcr4PCwJAIARBAEoNACACQQEgBGt0Qf///wNxIAVBF3RyIANyvg8LIAFBF3QgAmq+DwsgAUEAIARrSg0BAkAgAUFpIARrTg0AIAO+DwsgBEEASkEXdCACQf///wNxckEAIAFrIgNBASABIARqayIBIAMgAUgbQX9qIgF2QQFqQQF2IAJoIAFBH3FGQX9zcb4gAJghAAsgAA8LIAFBF3QgAmq+C84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAatQjSGhCADhL8PCyABrUI0hiACfL8PC0EAIAFrIQYgAUEAIAVrSg0BAkAgAUFMIAVrTg0AIAO/DwsgBUEASq1CNIYgAkL/////////B4OEIAZBASABIAVqayIBIAYgAUgbQX9qQT9xrSIEiEIBfEIBiCACeiAEUa1Cf4WDvyAApiEACyAADwsgAiAGrUI0hn2/C9cCAgN/A30CQAJAIAAgAFwNACAAvCIBQR92IQICQAJAAkACQAJAAkACQCABQf////8HcSIDQc/YupUESw0AIANBmOTF9QNNDQEgA0GSq5T8A00NAgwECyADQYCAgPwHSw0GAkAgAUEASA0AIANBmOTFlQRJDQAgAEMAAAB/lA8LIAFBf0oNA0MAAAAAIQQgA0G047+WBEsNBwwDCyADQYCAgMgDTQ0BQQAhA0MAAAAAIQUgACEEDAQLIAJBAXMgAmshAwwCCyAAQwAAgD+SDwsgAEM7qrg/lCACQQJ0QYCAwIAAaioCAJL8ACEDCyAAIAOyIgRDAHIxv5SSIgAgBEOOvr81lCIFkyEECyAAIAQgBCAEIASUIgYgBkMVUjW7lEOPqio+kpSTIgaUQwAAAEAgBpOVIAWTkkMAAIA/kiEEIANFDQEgBCADEISAgIAADwsgACEECyAEC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYiAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEIWAgIAADwsgAAsLIQEAQYCAwAALGAAAAD8AAAC/AAAAAAAA4D8AAAAAAADgvw==",Se=null;function o0(){if(Se)return Se;let A=atob(nY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Se=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Se.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Se}function n0(A,r,I,e){o0().exports.ldexp_scalar_f64(A,r,I,e)}function i0(A,r,I,e){o0().exports.ldexp_scalar_f32(A,r,I,e)}var iY=64,gY={float64:n0,float32:i0},QY={float64:Float64Array,float32:Float32Array};function g0(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<iY*Y.thresholdMultiplier)return null;let e=A.dtype,t=gY[e],o=QY[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT;J(I*n*2),U();let g=q(A.data.subarray(A.offset,A.offset+I)),i=_(I*n);t(g,i,I,r);let Q=v(i,I,o);return d.fromData(Q,Array.from(A.shape),e)}var aY="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAgEABgkBfwFBgIDAAAsHDQEJZnJleHBfZjY0AAAKqgIBpwIDAXwBfgJ/AkAgA0UNAANAAkACQAJAIAArAwAiBEQAAAAAAAAAAGENACAEvSIFQv///////////wCDQoCAgICAgID4/wBUDQELIAEgBDkDAEEAIQYMAQtBACEGAkACQCAFQjSIp0H/D3EiB0H/D0YNACAHDQEgBUL/////////B4NQDQAgBUKAgICAgICAgIB/gyAFIAVCDIZ5pyIGQQFqrYZC/////////weDQgAgBkE/cUEzSRuEQoCAgICAgIDwP4QhBUGCeCAGayEGCyABIAU3AwAMAQsgB0GCeGohBiABIAVC/////////4eAf4NCgICAgICAgPA/hDcDAAsgAiAGNgIAIABBCGohACABQQhqIQEgAkEEaiECIANBf2oiAw0ACwsL",Re=null;function BY(){if(Re)return Re;let A=atob(aY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Re=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Re.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Re}function Q0(A,r,I,e){BY().exports.frexp_f64(A,r,I,e)}var sY=64;function a0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<sY*Y.thresholdMultiplier)return null;let I=A.dtype;if(I!=="float64"&&I!=="float32")return null;let e=8,t=4;J(r*e+r*e+r*t),U();let o;if(I==="float32"){let C=A.data.subarray(A.offset,A.offset+r),E=new Float64Array(r);for(let u=0;u<r;u++)E[u]=C[u];o=E}else o=A.data.subarray(A.offset,A.offset+r);let n=q(o),g=_(r*e),i=_(r*t);Q0(n,g,i,r);let Q=v(g,r,Float64Array),a=v(i,r,Int32Array),B=d.fromData(Q,Array.from(A.shape),"float64"),s=d.fromData(a,Array.from(A.shape),"int32");return[B,s]}var CY="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxwCDmdjZF9zY2FsYXJfaTMyAAAHZ2NkX2kzMgABCvsDAvYCAQV/AkAgAkUNAAJAIANFDQAgAyADQR91IgRzIARrIQVBACEGA0AgACAGQQJ0IgdqKAIAIgMgA0EfdSIDcyADayEEIAUhAwNAIAQgAyIIcCEDIAghBCADDQALIAEgB2ogCDYCACAGQQFqIgYgAkcNAAwCCwtBACEGAkAgAkEESQ0AIAEgAGtBEEkNACACQXxxIgYhCCABIQMgACEEA0AgAyAE/QACAP2gAf0LAgAgA0EQaiEDIARBEGohBCAIQXxqIggNAAsgAiAGRg0BCyAGQQFyIQMCQCACQQFxRQ0AIAEgBkECdCIEaiAAIARqKAIAIgQgBEEfdSIEcyAEazYCACADIQYLIAIgA0YNACACIAZrIQggACAGQQJ0IgRqIQMgASAEaiEEA0AgBCADKAIAIgYgBkEfdSIGcyAGazYCACAEQQRqIANBBGooAgAiBiAGQR91IgZzIAZrNgIAIANBCGohAyAEQQhqIQQgCEF+aiIIDQALCwuAAQEFfwJAIANFDQBBACEEA0AgACAEQQJ0IgVqKAIAIgYgBkEfdSIGcyAGayEHAkACQCABIAVqKAIAIgYNACAHIQgMAQsgBiAGQR91IghzIAhrIQYDQCAHIAYiCHAhBiAIIQcgBg0ACwsgAiAFaiAINgIAIARBAWoiBCADRw0ACwsL",ke=null;function B0(){if(ke)return ke;let A=atob(CY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ke=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ke.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ke}function s0(A,r,I,e){B0().exports.gcd_scalar_i32(A,r,I,e)}function C0(A,r,I,e){B0().exports.gcd_i32(A,r,I,e)}var E0=64;function rs(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<E0*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="int32"&&e!=="int16"&&e!=="int8"&&e!=="uint16"&&e!=="uint8")return null;let t=4;J(I*t*2),U();let o=A.data.subarray(A.offset,A.offset+I),n=new Int32Array(I);for(let a=0;a<I;a++)n[a]=Number(o[a]);let g=q(n),i=_(I*t);s0(g,i,I,Math.abs(Math.trunc(r)));let Q=v(i,I,Int32Array);return d.fromData(Q,Array.from(A.shape),"int32")}function u0(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<E0*Y.thresholdMultiplier)return null;let e=A.dtype,t=r.dtype,o=["int32","int16","int8","uint16","uint8"];if(!o.includes(e)||!o.includes(t))return null;let n=4;J(I*n*3),U();let g=A.data.subarray(A.offset,A.offset+I),i=r.data.subarray(r.offset,r.offset+I),Q=new Int32Array(I),a=new Int32Array(I);for(let u=0;u<I;u++)Q[u]=Number(g[u]),a[u]=Number(i[u]);let B=q(Q),s=q(a),C=_(I*n);C0(B,s,C,I);let E=v(C,I,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}function fr(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function Ar(A,r){return[A[r*2],A[r*2+1]]}function WA(A,r,I,e){A[r*2]=I,A[r*2+1]=e}function y0(A,r){if(typeof r=="number")return c0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return c0(A,I)}if(fr(A,r)){let I=dm(A,r);return I||EY(A,r)}return yA(A,r,(I,e)=>I+e,"add")}function EY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E+f,u+m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C+E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]+C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s+C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]+n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]+n[Q+B];return e}function l0(A,r){if(typeof r=="number")return D0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return D0(A,I)}if(fr(A,r)){let I=Jm(A,r);return I||uY(A,r)}return yA(A,r,(I,e)=>I-e,"subtract")}function uY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0];WA(a,C,E-f,u-m)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C-E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]-C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s-C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]-n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]-n[Q+B];return e}function h0(A,r){if(typeof r=="number")return f0(A,r);if(r.size===1&&!k(r.dtype)&&A.dtype===r.dtype){let I=Number(r.iget(0));return f0(A,I)}if(fr(A,r)){let I=Om(A,r);return I||cY(A,r)}return yA(A,r,(I,e)=>I*e,"multiply")}function cY(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=e.data,i=A.offset,Q=r.offset;if(k(I)){let a=g,B=k(A.dtype),s=k(r.dtype);for(let C=0;C<t;C++){let[E,u]=B?Ar(o,i+C):[Number(o[i+C]),0],[f,m]=s?Ar(n,Q+C):[Number(n[Q+C]),0],c=E*f-u*m,D=E*m+u*f;WA(a,C,c,D)}return e}if(L(I)){let a=g;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[i+s]=="bigint"?o[i+s]:BigInt(Math.round(Number(o[i+s]))),E=typeof n[Q+s]=="bigint"?n[Q+s]:BigInt(Math.round(Number(n[Q+s])));a[s]=C*E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[i+E]*C[Q+E]}}else if(L(A.dtype)||L(r.dtype))for(let B=0;B<t;B++){let s=typeof o[i+B]=="bigint"?Number(o[i+B]):o[i+B],C=typeof n[Q+B]=="bigint"?Number(n[Q+B]):n[Q+B];g[B]=s*C}else if(i===0&&Q===0)for(let B=0;B<t;B++)g[B]=o[B]*n[B];else for(let B=0;B<t;B++)g[B]=o[i+B]*n[Q+B];return e}function d0(A,r){if(typeof r=="number")return m0(A,r);if(r.size===1&&!k(r.dtype)&&!k(A.dtype)){let B=Number(r.iget(0));return m0(A,B)}let I=k(A.dtype),e=k(r.dtype);if(I||e){let B=IA(A.dtype,r.dtype);if(I&&e&&A.dtype===r.dtype&&fr(A,r)){let D=Zi(A,r);if(D)return D}let s=d.zeros(Array.from(A.shape),B),C=s.data,E=A.size,u=A.data,f=r.data,m=A.offset,c=r.offset;for(let D=0;D<E;D++){let[y,l]=I?Ar(u,m+D):[Number(u[m+D]),0],[h,b]=e?Ar(f,c+D):[Number(f[c+D]),0],p=h*h+b*b,w=(y*h+l*b)/p,N=(l*h-y*b)/p;WA(C,D,w,N)}return s}if(A.dtype===r.dtype&&fr(A,r)){let B=Zi(A,r);if(B)return B}let t=A.dtype==="float64",o=r.dtype==="float64",n=A.dtype==="float32",g=r.dtype==="float32",i;n&&g||(n||g)&&!t&&!o?i="float32":i="float64";let Q=A.dtype===i?A:FI(A,i),a=r.dtype===i?r:FI(r,i);if(fr(Q,a)){let B=Zi(Q,a);if(B)return B}return yA(Q,a,(B,s)=>B/s,"divide")}function FI(A,r){let I=d.zeros(Array.from(A.shape),r),e=A.size,t=I.data;if(A.isCContiguous){let o=A.data,n=A.offset;for(let g=0;g<e;g++)t[g]=Number(o[n+g])}else for(let o=0;o<e;o++)t[o]=Number(A.iget(o));return I}function c0(A,r){let I=bm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E+r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u+r,f)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]+s}else for(let C=0;C<n;C++)B[C]=A.iget(C)+s}else if(i)if(g===0)for(let B=0;B<n;B++)a[B]=Number(o[B])+r;else for(let B=0;B<n;B++)a[B]=Number(o[g+B])+r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))+r;return Q}function D0(A,r){let I=Um(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E-r,u)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u-r,f)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]-s}else for(let C=0;C<n;C++)B[C]=A.iget(C)-s}else if(i)for(let B=0;B<n;B++)a[B]=Number(o[g+B])-r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))-r;return Q}function f0(A,r){let I=Zm(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.data,n=A.size,g=A.offset,i=A.isCContiguous,Q=d.zeros(t,e),a=Q.data;if(k(e)){let B=o,s=a;if(i)for(let C=0;C<n;C++){let[E,u]=Ar(B,g+C);WA(s,C,E*r,u*r)}else for(let C=0;C<n;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;WA(s,C,u*r,f*r)}}else if(L(e)){let B=a,s=BigInt(Math.round(r));if(i){let C=o;for(let E=0;E<n;E++)B[E]=C[g+E]*s}else for(let C=0;C<n;C++)B[C]=A.iget(C)*s}else if(i)if(g===0)for(let B=0;B<n;B++)a[B]=Number(o[B])*r;else for(let B=0;B<n;B++)a[B]=Number(o[g+B])*r;else for(let B=0;B<n;B++)a[B]=Number(A.iget(B))*r;return Q}function m0(A,r){let I=A.dtype;if(k(I)){let s=Array.from(A.shape),C=A.data,E=A.size,u=A.offset,f=A.isCContiguous,m=d.zeros(s,I),c=m.data;if(f){let D=C;for(let y=0;y<E;y++){let[l,h]=Ar(D,u+y);WA(c,y,l/r,h/r)}}else for(let D=0;D<E;D++){let y=A.iget(D),l=y.re??Number(y),h=y.im??0;WA(c,D,l/r,h/r)}return m}let e=yy(A,r);if(e)return e;let o=I==="float32"||I==="float64"?A:FI(A,"float64"),n=Array.from(o.shape),g=o.size,i=d.zeros(n,o.dtype),Q=i.data,a=o.data,B=o.offset;if(o.isCContiguous)for(let s=0;s<g;s++)Q[s]=a[B+s]/r;else for(let s=0;s<g;s++)Q[s]=Number(o.iget(s))/r;return i}function b0(A){let r=qy(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let a=ne(I),B=d.zeros(e,a),s=B.data;if(g){let C=t;for(let E=0;E<o;E++){let u=C[(n+E)*2],f=C[(n+E)*2+1];s[E]=Math.sqrt(u*u+f*f)}}else for(let C=0;C<o;C++){let E=A.iget(C),u=E.re??Number(E),f=E.im??0;s[C]=Math.sqrt(u*u+f*f)}return B}let i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let C=B[n+s];a[s]=C<0n?-C:C}}else for(let B=0;B<o;B++){let s=A.iget(B);a[B]=s<0n?-s:s}}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(t[n+a]));else for(let a=0;a<o;a++)Q[a]=Math.abs(Number(A.iget(a)));return i}function p0(A){let r=py(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(k(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let[C,E]=Ar(B,n+s);WA(a,s,-C,-E)}}else for(let B=0;B<o;B++){let s=A.iget(B),C=s.re??Number(s),E=s.im??0;WA(a,B,-C,-E)}}else if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++)a[s]=-B[n+s]}else for(let B=0;B<o;B++)a[B]=-A.iget(B)}else if(g)if(n===0)for(let a=0;a<o;a++)Q[a]=-Number(t[a]);else for(let a=0;a<o;a++)Q[a]=-Number(t[n+a]);else for(let a=0;a<o;a++)Q[a]=-Number(A.iget(a));return i}function w0(A){eA(A.dtype,"sign","Sign is not defined for complex numbers.");let r=_y(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;for(let s=0;s<o;s++){let C=B[n+s];a[s]=C>0n?1n:C<0n?-1n:0n}}else for(let B=0;B<o;B++){let s=A.iget(B);a[B]=s>0n?1n:s<0n?-1n:0n}}else if(g)for(let a=0;a<o;a++){let B=Number(t[n+a]);Q[a]=B>0?1:B<0?-1:0}else for(let a=0;a<o;a++){let B=Number(A.iget(a));Q[a]=B>0?1:B<0?-1:0}return i}function ji(A,r){return eA(A.dtype,"mod","Modulo is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof r=="number"?DY(A,r):yA(A,r,(I,e)=>(I%e+e)%e,"mod")}function DY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;for(let C=0;C<o;C++){let E=s[n+C];a[C]=(E%B+B)%B}}else for(let s=0;s<o;s++){let C=A.iget(s);a[s]=(C%B+B)%B}}else if(g)for(let a=0;a<o;a++){let B=Number(t[n+a]);Q[a]=(B%r+r)%r}else for(let a=0;a<o;a++){let B=Number(A.iget(a));Q[a]=(B%r+r)%r}return i}function Is(A,r){return eA(A.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof r=="number"?fY(A,r):yA(A,r,(I,e)=>Math.floor(I/e),"floor_divide")}function fY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;for(let C=0;C<o;C++)a[C]=s[n+C]/B}else for(let s=0;s<o;s++)a[s]=A.iget(s)/B}else if(g)for(let a=0;a<o;a++)Q[a]=Math.floor(Number(t[n+a])/r);else for(let a=0;a<o;a++)Q[a]=Math.floor(Number(A.iget(a))/r);return i}function N0(A){let r=A.dtype,I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=A.isCContiguous,g=d.zeros(I,r),i=g.data;if(k(r)){let Q=i;if(n){let a=e;Q.set(a.subarray(o*2,(o+t)*2))}else for(let a=0;a<t;a++){let B=A.iget(a);Q[a*2]=B.re??Number(B),Q[a*2+1]=B.im??0}}else if(n)i.set(e.subarray(o,o+t));else for(let Q=0;Q<t;Q++)i[Q]=A.iget(Q);return g}function F0(A){let r=Zl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(k(I)){let s=d.zeros(e,I),C=s.data;if(g){let E=t;for(let u=0;u<o;u++){let f=E[(n+u)*2],m=E[(n+u)*2+1],c=f*f+m*m;C[u*2]=f/c,C[u*2+1]=-m/c}}else for(let E=0;E<o;E++){let u=A.iget(E),f=u.re??Number(u),m=u.im??0,c=f*f+m*m;C[E*2]=f/c,C[E*2+1]=-m/c}return s}let Q=I!=="float32"&&I!=="float64"?"float64":I,a=d.zeros(e,Q),B=a.data;if(g)if(n===0)for(let s=0;s<o;s++)B[s]=1/Number(t[s]);else for(let s=0;s<o;s++)B[s]=1/Number(t[n+s]);else for(let s=0;s<o;s++)B[s]=1/Number(A.iget(s));return a}function G0(A){let r=A.dtype;eA(r,"cbrt","cbrt is not supported for complex numbers.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,g=r!=="float32"&&r!=="float64"?"float64":r,i=d.zeros(I,g),Q=i.data;if(A.isCContiguous)for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(e[o+a]));else for(let a=0;a<t;a++)Q[a]=Math.cbrt(Number(A.iget(a)));return i}function S0(A){let r=A.dtype;eA(r,"fabs","fabs is only for real numbers. Use absolute() for complex.");let I=Array.from(A.shape),e=A.data,t=A.size,o=A.offset,n=r==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data;if(A.isCContiguous)if(o===0)for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(e[o+Q]));else for(let Q=0;Q<t;Q++)i[Q]=Math.abs(Number(A.iget(Q)));return g}function R0(A,r){let I=Is(A,r),e=ji(A,r);return[I,e]}function k0(A){let r=Kl(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=d.zeros(e,I),g=n.data;if(k(I)){let i=t,Q=g;for(let a=0;a<o;a++){let B=i[a*2],s=i[a*2+1];Q[a*2]=B*B-s*s,Q[a*2+1]=2*B*s}}else if(L(I)){let i=t,Q=g;for(let a=0;a<o;a++)Q[a]=i[a]*i[a]}else for(let i=0;i<o;i++){let Q=Number(t[i]);g[i]=Q*Q}return n}function q0(A,r){return ji(A,r)}function es(A,r){eA(A.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=A.dtype===o?A:FI(A,o);if(typeof r!="number"&&r.size===1)return es(A,Number(r.iget(0)));if(typeof r=="number"){let g=e0(n,r,o);if(g)return g;let i=d.zeros(e,o),Q=i.data;if(n.isCContiguous){let a=n.data,B=n.offset;for(let s=0;s<t;s++){let C=a[B+s];Q[s]=C<0?0:C===0?r:1}}else for(let a=0;a<t;a++){let B=Number(A.iget(a));Q[a]=B<0?0:B===0?r:1}return i}else{let g=r.shape,i=r.dtype===o?r:FI(r,o);if(e.every((Q,a)=>Q===g[a])){let Q=t0(n,i,o);if(Q)return Q;let a=d.zeros(e,o),B=a.data;if(n.isCContiguous&&i.isCContiguous){let s=n.data,C=n.offset,E=i.data,u=i.offset;for(let f=0;f<t;f++){let m=s[C+f];B[f]=m<0?0:m===0?E[u+f]:1}}else for(let s=0;s<t;s++){let C=Number(A.iget(s));B[s]=C<0?0:C===0?Number(r.iget(s)):1}return a}else{let Q=d.zeros(e,o),a=Q.data;for(let B=0;B<t;B++){let s=Number(A.iget(B)),C=B%r.size;a[B]=s<0?0:s===0?Number(r.iget(C)):1}return Q}}}function M0(A,r){let I=A.dtype;if(k(I)){let e=A.size,t=d.zeros(Array.from(A.shape),I),o=t.data;if(typeof r=="number")if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let Q=n[(g+i)*2],a=n[(g+i)*2+1],B=Math.hypot(Q,a),s=Math.atan2(a,Q),C=Math.pow(B,r),E=s*r;o[i*2]=C*Math.cos(E),o[i*2+1]=C*Math.sin(E)}}else for(let n=0;n<e;n++){let g=A.iget(n),i=Math.hypot(g.re,g.im),Q=Math.atan2(g.im,g.re),a=Math.pow(i,r),B=Q*r;o[n*2]=a*Math.cos(B),o[n*2+1]=a*Math.sin(B)}else{let n=k(r.dtype);if(A.isCContiguous&&r.isCContiguous){let g=A.data,i=A.offset,Q=r.data,a=r.offset;for(let B=0;B<e;B++){let s=g[(i+B)*2],C=g[(i+B)*2+1],E,u;if(n){let b=Q;E=b[(a+B)*2],u=b[(a+B)*2+1]}else E=Number(Q[a+B]),u=0;let f=Math.hypot(s,C),m=Math.atan2(C,s),c=Math.log(f),D=m,y=E*c-u*D,l=E*D+u*c,h=Math.exp(y);o[B*2]=h*Math.cos(l),o[B*2+1]=h*Math.sin(l)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q,a;if(n){let c=r.iget(g);Q=c.re,a=c.im}else Q=Number(r.iget(g)),a=0;let B=Math.hypot(i.re,i.im),s=Math.atan2(i.im,i.re),C=Math.log(B),E=s,u=Q*C-a*E,f=Q*E+a*C,m=Math.exp(u);o[g*2]=m*Math.cos(f),o[g*2+1]=m*Math.sin(f)}}return t}if(typeof r=="number"){let e=d.zeros(Array.from(A.shape),"float64"),t=e.data,o=A.size;if(A.isCContiguous){let n=A.data,g=A.offset;for(let i=0;i<o;i++)t[i]=Math.pow(Number(n[g+i]),r)}else for(let n=0;n<o;n++)t[n]=Math.pow(Number(A.iget(n)),r);return e}return yA(A,r,(e,t)=>Math.pow(e,t),"float_power")}function x0(A,r){if(eA(A.dtype,"fmod","fmod is not defined for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof r=="number"){let I=A.copy(),e=I.data,t=A.size;for(let o=0;o<t;o++){let n=Number(e[o]);e[o]=n-Math.trunc(n/r)*r}return I}return yA(A,r,(I,e)=>I-Math.trunc(I/e)*e,"fmod")}function J0(A){eA(A.dtype,"frexp","frexp is not defined for complex numbers.");let r=a0(A);if(r)return r;let I=d.zeros(Array.from(A.shape),"float64"),e=d.zeros(Array.from(A.shape),"int32"),t=I.data,o=e.data,n=A.size;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<n;Q++){let a=Number(g[i+Q]);if(a===0||!isFinite(a))t[Q]=a,o[Q]=0;else{let B=Math.floor(Math.log2(Math.abs(a)))+1;t[Q]=a/Math.pow(2,B),o[Q]=B}}}else for(let g=0;g<n;g++){let i=Number(A.iget(g));if(i===0||!isFinite(i))t[g]=i,o[g]=0;else{let Q=Math.floor(Math.log2(Math.abs(i)))+1;t[g]=i/Math.pow(2,Q),o[g]=Q}}return[I,e]}function U0(A,r){eA(A.dtype,"gcd","GCD is only defined for integers."),typeof r!="number"&&eA(r.dtype,"gcd","GCD is only defined for integers.");let I=(g,i)=>{for(g=Math.abs(Math.trunc(g)),i=Math.abs(Math.trunc(i));i!==0;){let Q=i;i=g%i,g=Q}return g};if(typeof r=="number"){let g=rs(A,r);if(g)return g;let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,B=Math.abs(Math.trunc(r));if(A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=I(Number(s[C+E]),B)}else for(let s=0;s<a;s++)Q[s]=I(Number(A.iget(s)),B);return i}if(typeof r!="number"&&r.size===1){let g=Number(r.iget(0)),i=rs(A,g);if(i)return i}if(typeof r!="number"&&fr(A,r)){let g=u0(A,r);if(g)return g}let e=yA(A,r,I,"gcd"),t=d.zeros(Array.from(e.shape),"int32"),o=t.data,n=e.size;if(e.isCContiguous){let g=e.data,i=e.offset;for(let Q=0;Q<n;Q++)o[Q]=Math.round(Number(g[i+Q]))}else for(let g=0;g<n;g++)o[g]=Math.round(Number(e.iget(g)));return t}function L0(A,r){eA(A.dtype,"lcm","LCM is only defined for integers."),typeof r!="number"&&eA(r.dtype,"lcm","LCM is only defined for integers.");let I=(i,Q)=>{for(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q));Q!==0;){let a=Q;Q=i%Q,i=a}return i},e=(i,Q)=>(i=Math.abs(Math.trunc(i)),Q=Math.abs(Math.trunc(Q)),i===0||Q===0?0:i*Q/I(i,Q));if(typeof r=="number"){let i=d.zeros(Array.from(A.shape),"int32"),Q=i.data,a=A.size,B=Math.abs(Math.trunc(r));if(A.isCContiguous){let s=A.data,C=A.offset;for(let E=0;E<a;E++)Q[E]=e(Number(s[C+E]),B)}else for(let s=0;s<a;s++)Q[s]=e(Number(A.iget(s)),B);return i}let t=yA(A,r,e,"lcm"),o=d.zeros(Array.from(t.shape),"int32"),n=o.data,g=t.size;if(t.isCContiguous){let i=t.data,Q=t.offset;for(let a=0;a<g;a++)n[a]=Math.round(Number(i[Q+a]))}else for(let i=0;i<g;i++)n[i]=Math.round(Number(t.iget(i)));return o}function ts(A,r){if(eA(A.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof r!="number"&&(eA(r.dtype,"ldexp","ldexp is not defined for complex numbers."),r.size===1))return ts(A,Number(r.iget(0)));if(typeof r=="number"){let I=A.dtype==="float32"?"float32":"float64",e=A.dtype===I?A:FI(A,I),t=g0(e,r);if(t)return t;let o=d.zeros(Array.from(A.shape),"float64"),n=o.data,g=A.size,i=Math.pow(2,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let B=0;B<g;B++)n[B]=Number(Q[a+B])*i}else for(let Q=0;Q<g;Q++)n[Q]=Number(A.iget(Q))*i;return o}return yA(A,r,(I,e)=>I*Math.pow(2,e),"ldexp")}function H0(A){eA(A.dtype,"modf","modf is not defined for complex numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=d.zeros(Array.from(A.shape),"float64"),e=r.data,t=I.data,o=A.size;for(let n=0;n<o;n++){let g=Number(A.iget(n)),i=Math.trunc(g);t[n]=i,e[n]=g-i}return[r,I]}function _0(A,r,I){if(eA(A.dtype,"clip","clip is not supported for complex numbers."),(r===null||typeof r=="number")&&(I===null||typeof I=="number")){let w=Yl(A,r===null?-1/0:r,I===null?1/0:I);if(w)return w}let e=A.dtype,t=Array.from(A.shape),o=A.size,n=d.zeros(t,e),g=n.data,i=r===null||typeof r=="number",Q=I===null||typeof I=="number",a=r===null?-1/0:typeof r=="number"?r:null,B=I===null?1/0:typeof I=="number"?I:null,s=A.isCContiguous,C=A.data,E=A.offset,u=!i&&r.isCContiguous,f=i?null:r.data,m=i?0:r.offset,c=i?0:r.size,D=!Q&&I.isCContiguous,y=Q?null:I.data,l=Q?0:I.offset,h=Q?0:I.size;if(L(e)){let b=g;if(s&&(i||u)&&(Q||D)){let p=C,w=f,N=y;for(let F=0;F<o;F++){let S=p[E+F],x=i?a===-1/0?S:BigInt(Math.round(a)):w[m+F%c],H=Q?B===1/0?S:BigInt(Math.round(B)):N[l+F%h];S<x&&(S=x),S>H&&(S=H),b[F]=S}}else for(let p=0;p<o;p++){let w=A.iget(p),N=i?a===-1/0?w:BigInt(Math.round(a)):r.iget(p%r.size),F=Q?B===1/0?w:BigInt(Math.round(B)):I.iget(p%I.size);w<N&&(w=N),w>F&&(w=F),b[p]=w}}else if(s&&(i||u)&&(Q||D))for(let b=0;b<o;b++){let p=Number(C[E+b]),w=i?a:Number(f[m+b%c]),N=Q?B:Number(y[l+b%h]);p<w&&(p=w),p>N&&(p=N),g[b]=p}else for(let b=0;b<o;b++){let p=Number(A.iget(b)),w=i?a:Number(r.iget(b%r.size)),N=Q?B:Number(I.iget(b%I.size));p<w&&(p=w),p>N&&(p=N),g[b]=p}return n}function Y0(A,r){if(eA(A.dtype,"maximum","maximum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=KB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]>a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.max(I,e),"maximum")}function v0(A,r){if(eA(A.dtype,"minimum","minimum is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=PB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]<a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);n[i]=isNaN(Q)||isNaN(r)?NaN:Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)||isNaN(e)?NaN:Math.min(I,e),"minimum")}function X0(A,r){if(eA(A.dtype,"fmax","fmax is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof r=="number"){let I=pe(A,r);if(I)return I}else if(r.size===1){let I=pe(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=KB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]>a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.max(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.max(I,e),"fmax")}function T0(A,r){if(eA(A.dtype,"fmin","fmin is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof r=="number"){let I=de(A,r);if(I)return I}else if(r.size===1){let I=de(A,Number(r.iget(0)));if(I)return I}else if(fr(A,r)){let I=PB(A,r);if(I)return I}if(typeof r=="number"){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,I),n=o.data,g=A.data;if(L(I)){let i=n,Q=g,a=BigInt(Math.round(r));for(let B=0;B<t;B++)i[B]=Q[B]<a?Q[B]:a}else for(let i=0;i<t;i++){let Q=Number(g[i]);isNaN(Q)?n[i]=r:isNaN(r)?n[i]=Q:n[i]=Math.min(Q,r)}return o}return yA(A,r,(I,e)=>isNaN(I)?e:isNaN(e)?I:Math.min(I,e),"fmin")}function P0(A,r=0,I,e){eA(A.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let t=A.dtype,o=Array.from(A.shape),n=A.size,g=I!==void 0?I:Number.MAX_VALUE,i=e!==void 0?e:-Number.MAX_VALUE,Q=d.zeros(o,t),a=Q.data,B=A.data;if(pA(t))a.set(B.subarray(A.offset,A.offset+n));else for(let s=0;s<n;s++){let C=Number(B[s]);isNaN(C)?a[s]=r:C===1/0?a[s]=g:C===-1/0?a[s]=i:a[s]=C}return Q}function K0(A,r,I,e,t){eA(A.dtype,"interp","interp is not supported for complex numbers."),eA(r.dtype,"interp","interp is not supported for complex numbers."),eA(I.dtype,"interp","interp is not supported for complex numbers.");let o=Array.from(A.shape),n=A.size,g=d.zeros(o,"float64"),i=g.data,Q=A.data,a=r.data,B=I.data,s=r.size,C=e!==void 0?e:Number(B[0]),E=t!==void 0?t:Number(B[s-1]);for(let u=0;u<n;u++){let f=Number(Q[u]);if(f<=Number(a[0])){i[u]=C;continue}if(f>=Number(a[s-1])){i[u]=E;continue}let m=0,c=s-1;for(;c-m>1;){let p=Math.floor((m+c)/2);Number(a[p])<=f?m=p:c=p}let D=Number(a[m]),y=Number(a[c]),l=Number(B[m]),h=Number(B[c]),b=(f-D)/(y-D);i[u]=l+b*(h-l)}return g}function V0(A,r=Math.PI,I=-1,e=2*Math.PI){eA(A.dtype,"unwrap","unwrap is not supported for complex numbers.");let t=Array.from(A.shape),o=t.length;if(I<0&&(I+=o),I<0||I>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);if(o===1){let Q=A.size,a=d.zeros(t,"float64"),B=a.data,s=A.data;if(Q===0)return a;B[0]=Number(s[0]);let C=0;for(let E=1;E<Q;E++){let u=Number(s[E-1]),f=Number(s[E]),m=f-u;m=(m+e/2)%e-e/2,m===-e/2&&f-u>0&&(m=e/2),Math.abs(m)>r&&(C-=Math.round((f-u-m)/e)*e),B[E]=f+C}return a}let n=d.zeros(t,"float64"),g=n.data,i=A.data;for(let Q=0;Q<A.size;Q++)g[Q]=Number(i[Q]);if(o===2){let[Q,a]=t;if(I===0)for(let B=0;B<a;B++){let s=0;for(let C=1;C<Q;C++){let E=(C-1)*a+B,u=C*a+B,f=g[E],m=g[u],c=m-f;c=(c+e/2)%e-e/2,c===-e/2&&m-f>0&&(c=e/2),Math.abs(c)>r&&(s-=Math.round((m-f-c)/e)*e),g[u]=m+s}}else for(let B=0;B<Q;B++){let s=0;for(let C=1;C<a;C++){let E=B*a+(C-1),u=B*a+C,f=g[E],m=g[u],c=m-f;c=(c+e/2)%e-e/2,c===-e/2&&m-f>0&&(c=e/2),Math.abs(c)>r&&(s-=Math.round((m-f-c)/e)*e),g[u]=m+s}}}return n}function W0(A){eA(A.dtype,"sinc","sinc is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Number(o[n]);if(g===0)t[n]=1;else{let i=Math.PI*g;t[n]=Math.sin(i)/i}}return e}function O0(A){eA(A.dtype,"i0","i0 is not supported for complex numbers.");let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++){let g=Math.abs(Number(o[n]));t[n]=mY(g)}return e}function mY(A){let r=Math.abs(A);if(r<3.75){let I=A/3.75,e=I*I;return 1+e*(3.5156229+e*(3.0899424+e*(1.2067492+e*(.2659732+e*(.0360768+e*.0045813)))))}else{let I=3.75/r;return Math.exp(r)/Math.sqrt(r)*(.39894228+I*(.01328592+I*(.00225319+I*(-.00157565+I*(.00916281+I*(-.02057706+I*(.02635537+I*(-.01647633+I*.00392377))))))))}}var lY="AGFzbQEAAAABBwFgA39/fwACDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB0IGCHNxcnRfZjY0AAAIc3FydF9mMzIAAQhzcXJ0X2k2NAACCHNxcnRfaTMyAAMIc3FydF9pMTYABAdzcXJ0X2k4AAUKoBkGzAQBBn8CQAJAIAJBfnEiAw0AQQAhBAwBCyADQX9qQQF2QQFqIgVBA3EhBgJAAkAgA0EHTw0AQQAhBAwBCyAFQXxxIgdBAXQhBEEAIQMDQCABIANqIgUgACADaiII/QADAP3vAf0LAwAgBUEQaiAIQRBq/QADAP3vAf0LAwAgBUEgaiAIQSBq/QADAP3vAf0LAwAgBUEwaiAIQTBq/QADAP3vAf0LAwAgA0HAAGohAyAHQXxqIgcNAAsLIAZFDQAgBCAGQQF0aiEIIAAgBEEDdCIFaiEDIAEgBWohBQNAIAUgA/0AAwD97wH9CwMAIANBEGohAyAFQRBqIQUgBkF/aiIGDQALIAghBAsCQCACIARNDQACQCACIARrIgZBBEkNACABIABrQRBJDQAgACAEQQN0IgVqIQMgASAFaiEFIAQgBkF+cSIHaiEEIAchCANAIAUgA/0AAwD97wH9CwMAIANBEGohAyAFQRBqIQUgCEF+aiIIDQALIAYgB0YNAQsgBCEGAkAgAiAEa0EDcSIIRQ0AIAQgCGohBiABIARBA3QiBWohAyAAIAVqIQUDQCADIAUrAwCfOQMAIANBCGohAyAFQQhqIQUgCEF/aiIIDQALCyAEIAJrQXxLDQAgBkEDdCEIIAIgBmshBgNAIAEgCGoiAyAAIAhqIgUrAwCfOQMAIANBCGogBUEIaisDAJ85AwAgA0EQaiAFQRBqKwMAnzkDACADQRhqIAVBGGorAwCfOQMAIAFBIGohASAAQSBqIQAgBkF8aiIGDQALCwvQBAEGfwJAAkAgAkF8cSIDDQBBACEEDAELIANBf2pBAnZBAWoiBUEDcSEGAkACQCADQQ1PDQBBACEEDAELIAVB/P///wdxIgdBAnQhBEEAIQMDQCABIANqIgUgACADaiII/QACAP3jAf0LAgAgBUEQaiAIQRBq/QACAP3jAf0LAgAgBUEgaiAIQSBq/QACAP3jAf0LAgAgBUEwaiAIQTBq/QACAP3jAf0LAgAgA0HAAGohAyAHQXxqIgcNAAsLIAZFDQAgBCAGQQJ0aiEIIAAgBEECdCIFaiEDIAEgBWohBQNAIAUgA/0AAgD94wH9CwIAIANBEGohAyAFQRBqIQUgBkF/aiIGDQALIAghBAsCQCACIARNDQACQCACIARrIgZBBEkNACABIABrQRBJDQAgACAEQQJ0IgVqIQMgASAFaiEFIAQgBkF8cSIHaiEEIAchCANAIAUgA/0AAgD94wH9CwIAIANBEGohAyAFQRBqIQUgCEF8aiIIDQALIAYgB0YNAQsgBCEGAkAgAiAEa0EDcSIIRQ0AIAQgCGohBiABIARBAnQiBWohAyAAIAVqIQUDQCADIAUqAgCROAIAIANBBGohAyAFQQRqIQUgCEF/aiIIDQALCyAEIAJrQXxLDQAgBkECdCEIIAIgBmshBgNAIAEgCGoiAyAAIAhqIgUqAgCROAIAIANBBGogBUEEaioCAJE4AgAgA0EIaiAFQQhqKgIAkTgCACADQQxqIAVBDGoqAgCROAIAIAFBEGohASAAQRBqIQAgBkF8aiIGDQALCwvMAgMEfwF7AX8CQCACRQ0AQQAhAwJAIAJBBEkNACABIABrQRBJDQAgAkF+cSIDIQQgACEFIAEhBgNAIAYgBf0AAwAiB/0dALn9FCAH/R0Buf0iAf3vAf0LAwAgBUEQaiEFIAZBEGohBiAEQX5qIgQNAAsgAiADRg0BCyADIQgCQCACIANrQQNxIgRFDQAgAyAEaiEIIAEgA0EDdCIGaiEFIAAgBmohBgNAIAUgBikDALmfOQMAIAVBCGohBSAGQQhqIQYgBEF/aiIEDQALCyADIAJrQXxLDQAgCEEDdCEEIAIgCGshAgNAIAEgBGoiBSAAIARqIgYpAwC5nzkDACAFQQhqIAZBCGopAwC5nzkDACAFQRBqIAZBEGopAwC5nzkDACAFQRhqIAZBGGopAwC5nzkDACABQSBqIQEgAEEgaiEAIAJBfGoiAg0ACwsLvwQBBn8CQAJAIAJBfnEiAw0AQQAhBAwBCwJAAkAgA0F/aiIFQQFHDQBBACEEDAELIAVBAXZBAWpBfnEiBkEBdCEEIAEhByAAIQMDQCAHIAMoAgC3/RQgA0EEaigCALf9IgH97wH9CwMAIAdBEGogA0EIaigCALf9FCADQQxqKAIAt/0iAf3vAf0LAwAgB0EgaiEHIANBEGohAyAGQX5qIgYNAAsLIAVBAnENACABIARBA3RqIAAgBEECdGoiAygCALf9FCADQQRqKAIAt/0iAf3vAf0LAwAgBEECaiEECwJAIAIgBE0NAAJAIAIgBGsiBUEWSQ0AIAAgBEECdGohAwJAIAEgBEEDdGoiByAAIAJBAnRqTw0AIAMgASACQQN0akkNAQsgBCAFQX5xIghqIQQgCCEGA0AgByAD/V0CAP3+Af3vAf0LAwAgA0EIaiEDIAdBEGohByAGQX5qIgYNAAsgBSAIRg0BCyAEIQUCQCACIARrQQNxIgZFDQAgBCAGaiEFIAEgBEEDdGohAyAAIARBAnRqIQcDQCADIAcoAgC3nzkDACADQQhqIQMgB0EEaiEHIAZBf2oiBg0ACwsgBCACa0F8Sw0AIAIgBWshBiABIAVBA3RqIQMgACAFQQJ0aiEHA0AgAyAHKAIAt585AwAgA0EIaiAHQQRqKAIAt585AwAgA0EQaiAHQQhqKAIAt585AwAgA0EYaiAHQQxqKAIAt585AwAgA0EgaiEDIAdBEGohByAGQXxqIgYNAAsLC8IEAQZ/AkACQCACQX5xIgMNAEEAIQQMAQsCQAJAIANBf2oiBUEBRw0AQQAhBAwBCyAFQQF2QQFqQX5xIgZBAXQhBCABIQcgACEDA0AgByADLgEAt/0UIANBAmouAQC3/SIB/e8B/QsDACAHQRBqIANBBGouAQC3/RQgA0EGai4BALf9IgH97wH9CwMAIAdBIGohByADQQhqIQMgBkF+aiIGDQALCyAFQQJxDQAgASAEQQN0aiAAIARBAXRqIgMuAQC3/RQgA0ECai4BALf9IgH97wH9CwMAIARBAmohBAsCQCACIARNDQACQCACIARrIgVBFkkNACAAIARBAXRqIQMCQCABIARBA3RqIgcgACACQQF0ak8NACADIAEgAkEDdGpJDQELIAQgBUF+cSIIaiEEIAghBgNAIAcgA/1cAQD9pwH9/gH97wH9CwMAIANBBGohAyAHQRBqIQcgBkF+aiIGDQALIAUgCEYNAQsgBCEFAkAgAiAEa0EDcSIGRQ0AIAQgBmohBSABIARBA3RqIQMgACAEQQF0aiEHA0AgAyAHLgEAt585AwAgA0EIaiEDIAdBAmohByAGQX9qIgYNAAsLIAQgAmtBfEsNACACIAVrIQYgASAFQQN0aiEDIAAgBUEBdGohBwNAIAMgBy4BALefOQMAIANBCGogB0ECai4BALefOQMAIANBEGogB0EEai4BALefOQMAIANBGGogB0EGai4BALefOQMAIANBIGohAyAHQQhqIQcgBkF8aiIGDQALCwuqBAEGfwJAAkAgAkF+cSIDDQBBACEEDAELAkACQCADQX9qIgVBAUcNAEEAIQQMAQsgBUEBdkEBakF+cSEGQQAhBCABIQMDQCADIAAgBGoiBywAALf9FCAHQQFqLAAAt/0iAf3vAf0LAwAgA0EQaiAHQQJqLAAAt/0UIAdBA2osAAC3/SIB/e8B/QsDACADQSBqIQMgBEEEaiEEIAZBfmoiBg0ACwsgBUECcQ0AIAEgBEEDdGogACAEaiIDLAAAt/0UIANBAWosAAC3/SIB/e8B/QsDACAEQQJqIQQLAkAgAiAETQ0AAkAgAiAEayIFQRJJDQAgACAEaiEDAkAgASAEQQN0aiIHIAAgAmpPDQAgAyABIAJBA3RqSQ0BCyAEIAVBfnEiCGohBCAIIQYDQCAHIAMvAAD9EP2HAf2nAf3+Af3vAf0LAwAgA0ECaiEDIAdBEGohByAGQX5qIgYNAAsgBSAIRg0BCyAEIQcCQCACIARrQQNxIgZFDQAgASAEQQN0aiEDIAQhBwNAIAMgACAHaiwAALefOQMAIANBCGohAyAHQQFqIQcgBkF/aiIGDQALCyAEIAJrQXxLDQAgASAHQQN0aiEDA0AgAyAAIAdqIgQsAAC3nzkDACADQQhqIARBAWosAAC3nzkDACADQRBqIARBAmosAAC3nzkDACADQRhqIARBA2osAAC3nzkDACADQSBqIQMgAEEEaiEAIAcgAkF8aiICRw0ACwsL",qe=null;function GI(){if(qe)return qe;let A=atob(lY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qe}function Z0(A,r,I){GI().exports.sqrt_f64(A,r,I)}function z0(A,r,I){GI().exports.sqrt_f32(A,r,I)}function os(A,r,I){GI().exports.sqrt_i64(A,r,I)}function ns(A,r,I){GI().exports.sqrt_i32(A,r,I)}function is(A,r,I){GI().exports.sqrt_i16(A,r,I)}function gs(A,r,I){GI().exports.sqrt_i8(A,r,I)}var hY=64,dY={float64:Z0,float32:z0},bY={int64:os,uint64:os,int32:ns,uint32:ns,int16:is,uint16:is,int8:gs,uint8:gs},j0={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function $0(A){if(!A.isCContiguous)return null;let r=A.size;if(r<hY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=dY[I];if(e){let o=j0[I],n=o.BYTES_PER_ELEMENT;J(r*n*2),U();let g=A.data.subarray(A.offset,A.offset+r),i=q(g),Q=_(r*n);e(i,Q,r);let a=v(Q,r,o);return d.fromData(a,Array.from(A.shape),I)}let t=bY[I];if(t){let n=j0[I].BYTES_PER_ELEMENT,g=8;J(r*n+r*g),U();let i=A.data.subarray(A.offset,A.offset+r),Q=q(i),a=_(r*g);t(Q,a,r);let B=v(a,r,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}return null}var pY="AGFzbQEAAAABMwhgBH9/f38AYAJ8fAF8YAJ/fABgAnx/AXxgBH9/f3wAYAR/f399AGAEf39/fgBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAxMSAAECAwQABQAGAAAAAAAAAwcHBgkBfwFBgIDAAAsHuQEMCXBvd2VyX2Y2NAAAEHBvd2VyX3NjYWxhcl9mNjQABAlwb3dlcl9mMzIABRBwb3dlcl9zY2FsYXJfZjMyAAYJcG93ZXJfaTY0AAcQcG93ZXJfc2NhbGFyX2k2NAAICXBvd2VyX2kzMgAJEHBvd2VyX3NjYWxhcl9pMzIACglwb3dlcl9pMTYACxBwb3dlcl9zY2FsYXJfaTE2AAwIcG93ZXJfaTgADQ9wb3dlcl9zY2FsYXJfaTgADgq4KBJAAAJAIANFDQADQCACIAArAwAgASsDABCBgICAADkDACACQQhqIQIgAEEIaiEAIAFBCGohASADQX9qIgMNAAsLC40IBgF/AXwBfwJ8AX4DfyOAgICAAEEQayICJICAgIAARAAAAAAAAPA/IQMCQCABRAAAAAAAAAAAYQ0AIABEAAAAAAAA8D9hDQBEAAAAAAAA+H8hAyAAIABiIAEgAWIiBHINAAJAIAFEAAAAAAAA8D9iDQAgACEDDAELAkACQAJAAkAgAEQAAAAAAAAAAGENACABmSIFRAAAAAAAAPB/YQ0BIACZRAAAAAAAAPB/Yg0DIABEAAAAAAAA8P9iDQJEAAAAAAAAAIAhAEQAAAAAAAD4f0QAAAAAAAAAgCAEGyEDIAQNBCABRAAAAAAAAPC/YQ0EIAGaIQELIAGZIQMCQCABRAAAAAAAAAAAY0UNAAJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAPB/IQMMBQtEAAAAAAAA8H8gAKZEAAAAAAAA8H8gAZ0iAPwGp0EBcRtEAAAAAAAA8H8gASAAYRshAwwECwJAIANEAAAAAAAAQENmRQ0ARAAAAAAAAAAAIQMMBAsgAEQAAAAAAAAAACABnSID/AanQQFxG0QAAAAAAAAAACABIANhGyEDDAMLAkAgAEQAAAAAAADwv2INAEQAAAAAAADwPyEDDAMLRAAAAAAAAAAARAAAAAAAAPB/IACZRAAAAAAAAPA/YyABRAAAAAAAAPB/YnMbIQMMAgtEAAAAAAAAAAAhAyABRAAAAAAAAAAAYw0BIAFEAAAAAAAAAABkRQ0ARAAAAAAAAPB/IQMMAQsCQCABRAAAAAAAAOA/YQ0AAkAgAUQAAAAAAADgv2INAEQAAAAAAADwPyAAn6MhAwwCCwJAIAUgBZ0iBqEiBUQAAAAAAAAAAGENAEQAAAAAAAD4fyEDIABEAAAAAAAAAABjDQILAkAgBkQAAAAAAADgQ2ZFDQAgASAAEJGAgIAAohCQgICAACEDDAILAkACQCAFRAAAAAAAAAAAYg0ARAAAAAAAAPA/IQMMAQsgBkQAAAAAAADwP6AgBiAFRAAAAAAAAOA/ZCIEGyEGIAAQkYCAgAAgBUQAAAAAAADwv6AgBSAEG6IQkICAgAAhAwsgAiAAEIKAgIAAAkACQCAG/AYiB1BFDQBBACEIDAELIAIoAgghBCACKwMAIQBBACEIA0ACQCAEQf9fakH+v39LDQAgCCAEaiEIDAILIAMgACADoiAHQgGDUCIJGyEDIAAgAKIiACAAoCAAIABEAAAAAAAA4D9jIgobIQAgCEEAIAQgCRtqIQggB0ICVCEJIARBAXQgCmshBCAHQgGHIQcgCUUNAAsLAkAgAUQAAAAAAAAAAGNFDQBBACAIayEIRAAAAAAAAPA/IAOjIQMLIAMgCBCDgICAACEDDAELIACfIQMLIAJBEGokgICAgAAgAwvJAQMBfwF+An9BACECAkACQAJAIAG9IgNCNIinIgRB/w9xIgVFDQAgBUH/D0cNAQwCCyADQv////////8Hg1ANASADQoCAgICAgICAgH+DIAMgA0IMhnmnIgJBAWqthkL/////////B4NCACACQT9xQTNJG4RCgICAgICAgPA/hCEDQYJ4IAJrIQIMAQsgA0L/////////h4B/g0KAgICAgICA8D+EIQMgBEH/D3FBgnhqIQILIABBADYCDCAAIAI2AgggACADNwMAC84CAgN+An8CQAJAIAAgAGINACAAvSICQv///////////wCDQoCAgICAgID4/wBaDQAgAkKAgICAgICAgIB/gyEDQQsgAkIBhiIEeadrIARCNYinIARCgICAgICAgBBUGyEFAkAgAUEASA0AAkAgAUH+DyAFa0wNAEQAAAAAAADwfyAApg8LAkAgBSABaiIGQQBKDQAgAiABrYYgA4S/DwsCQCAFQQBKDQAgAkEBIAVrrYZC/////////weDIAat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",Me=null;function or(){if(Me)return Me;let A=atob(pY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Me=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Me.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Me}function Ah(A,r,I,e){or().exports.power_f64(A,r,I,e)}function Qs(A,r,I,e){or().exports.power_scalar_f64(A,r,I,e)}function rh(A,r,I,e){or().exports.power_f32(A,r,I,e)}function Ih(A,r,I,e){or().exports.power_scalar_f32(A,r,I,e)}function as(A,r,I,e){or().exports.power_i64(A,r,I,e)}function Bs(A,r,I,e){or().exports.power_scalar_i64(A,r,I,BigInt(Math.round(e)))}function ss(A,r,I,e){or().exports.power_i32(A,r,I,e)}function Cs(A,r,I,e){or().exports.power_scalar_i32(A,r,I,e)}function Es(A,r,I,e){or().exports.power_i16(A,r,I,e)}function us(A,r,I,e){or().exports.power_scalar_i16(A,r,I,e)}function cs(A,r,I,e){or().exports.power_i8(A,r,I,e)}function Ds(A,r,I,e){or().exports.power_scalar_i8(A,r,I,e)}var eh=64,wY={float64:Ah,float32:rh,int64:as,uint64:as,int32:ss,uint32:ss,int16:Es,uint16:Es,int8:cs,uint8:cs},NY={float64:Qs,float32:Ih,int64:Bs,uint64:Bs,int32:Cs,uint32:Cs,int16:us,uint16:us,int8:Ds,uint8:Ds},th={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function oh(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<eh*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=wY[e],o=th[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function nh(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<eh*Y.thresholdMultiplier)return null;let e=A.dtype;if(e!=="float32"&&e!=="float64"&&(r<0||!Number.isInteger(r))){J(I*8*2),U();let f=A.offset,m=A.data,c=new Float64Array(I);if(L(e))for(let h=0;h<I;h++)c[h]=Number(m[f+h]);else for(let h=0;h<I;h++)c[h]=m[f+h];let D=q(c),y=_(I*8);Qs(D,y,I,r);let l=v(y,I,Float64Array);return d.fromData(l,Array.from(A.shape),"float64")}let o=NY[e],n=th[e];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=I*g,Q=I*g;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+I),s=q(B),C=_(Q);o(s,C,I,r);let E=v(C,I,n);return d.fromData(E,Array.from(A.shape),e)}var FY="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",xe=null;function $i(){if(xe)return xe;let A=atob(FY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xe=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xe.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xe}function fs(A,r,I){$i().exports.exp_f64(A,r,I)}function ih(A,r,I){$i().exports.exp_f32(A,r,I)}function gh(A,r,I){$i().exports.exp_i64(A,r,I)}function Qh(A,r,I){$i().exports.exp_u64(A,r,I)}var GY=64,SY={float64:fs,float32:ih};function ah(A){if(!A.isCContiguous)return null;let r=A.size;if(r<GY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=SY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?gh:Qh)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);fs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var RY="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",Je=null;function Ag(){if(Je)return Je;let A=atob(RY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Je=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Je.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Je}function ms(A,r,I){Ag().exports.exp2_f64(A,r,I)}function Bh(A,r,I){Ag().exports.exp2_f32(A,r,I)}function sh(A,r,I){Ag().exports.exp2_i64(A,r,I)}function Ch(A,r,I){Ag().exports.exp2_u64(A,r,I)}var kY=64,qY={float64:ms,float32:Bh};function Eh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<kY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=qY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?sh:Ch)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);ms(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var MY="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BiACIAYgBCAFEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUECaiEBIAJBCGohAiADQX9qIgMNAAsLC2YBA3wCQCADRQ0AA0AgACwAALciBCABLAAAtyIFEJaAgIAAIQYgAiAGIAQgBRCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBAWohASACQQhqIQIgA0F/aiIDDQALCwtmAQN8AkAgA0UNAANAIAAtAAC4IgQgAS0AALgiBRCWgICAACEGIAIgBiAEIAUQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAWohACABQQFqIQEgAkEIaiECIANBf2oiAw0ACwsLWAECfAJAIAJFDQADQCAAKwMAIgQgAxCWgICAACEFIAEgBSAEIAMQmICAgAAgBaEQl4CAgAAQgYCAgACgOQMAIABBCGohACABQQhqIQEgAkF/aiICDQALCwtfAQN8AkAgAkUNACADuyEEA0AgACoCALsiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKC2OAIAIABBBGohACABQQRqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuSEEA0AgACkDALkiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEIaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO6IQQDQCAAKQMAuiIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQhqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7chBANAIAAoAgC3IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBBGohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADuCEEA0AgACgCALgiBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEEaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO3IQQDQCAALgEAtyIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQJqIQAgAUEIaiEBIAJBf2oiAg0ACwsLXgEDfAJAIAJFDQAgA7ghBANAIAAvAQC4IgUgBBCWgICAACEGIAEgBiAFIAQQmICAgAAgBqEQl4CAgAAQgYCAgACgOQMAIABBAmohACABQQhqIQEgAkF/aiICDQALCwteAQN8AkAgAkUNACADtyEEA0AgACwAALciBSAEEJaAgIAAIQYgASAGIAUgBBCYgICAACAGoRCXgICAABCBgICAAKA5AwAgAEEBaiEAIAFBCGohASACQX9qIgINAAsLC14BA3wCQCACRQ0AIAO4IQQDQCAALQAAuCIFIAQQloCAgAAhBiABIAYgBSAEEJiAgIAAIAahEJeAgIAAEIGAgIAAoDkDACAAQQFqIQAgAUEIaiEBIAJBf2oiAg0ACwsLzgICA34CfwJAAkAgACAAYg0AIAC9IgJC////////////AINCgICAgICAgPj/AFoNACACQoCAgICAgICAgH+DIQNBCyACQgGGIgR5p2sgBEI1iKcgBEKAgICAgICAEFQbIQUCQCABQQBIDQACQCABQf4PIAVrTA0ARAAAAAAAAPB/IACmDwsCQCAFIAFqIgZBAEoNACACIAGthiADhL8PCwJAIAVBAEoNACACQQEgBWuthkL/////////B4MgBq1CNIaEIAOEvw8LIAGtQjSGIAJ8vw8LQQAgAWshBiABQQAgBWtKDQECQCABQUwgBWtODQAgA78PCyAFQQBKrUI0hiACQv////////8Hg4QgBkEBIAEgBWprIgEgBiABSBtBf2pBP3GtIgSIQgF8QgGIIAJ6IARRrUJ/hYO/IACmIQALIAAPCyACIAatQjSGfb8LRQEBfgJAIAAgAGINAAJAIAEgAWENACAADwsCQCABvSAAvSIChUJ/VQ0AIAEgACACQgBTGw8LIAEgACAAIAFjGyEBCyABC68DAwF+AX8DfAJAIAAgAGINACAAvSIBQj+IpyECAkACQAJAAkACQAJAAkAgAUIgiEL/////B4MiAUKqxpiEBFYNACABQsLc2P4DWA0BIAFCssXC/wNYDQIMBAsgAUKAgMD/B1YNBgJAIABE7zn6/kIuhkBkRQ0ARAAAAAAAAPB/DwsgAETSvHrdKyOGwGNFDQMgAERRMC3VEEmHwGNFDQNEAAAAAAAAAAAPCyABQoCAwPEDWA0BQQAhAkQAAAAAAAAAACEDIAAhBAwECyACQQFzIAJrIQIMAgsgAEQAAAAAAADwP6AhAAwDCyAARP6CK2VHFfc/oiACQQN0QYCAwIAAaisDAKD8AiECCyAAIAK3IgREAADg/kIu5r+ioCIAIAREdjx5Ne856j2iIgOhIQQLIAAgBCAEIAQgBKIiBSAFIAUgBSAFRNCkvnJpN2Y+okTxa9LFQb27vqCiRCzeJa9qVhE/oKJEk72+FmzBZr+gokQ+VVVVVVXFP6CioSIFokQAAAAAAAAAQCAFoaMgA6GgRAAAAAAAAPA/oCEAIAJFDQAgACACEJWAgIAADwsgAAtFAQF+AkAgACAAYg0AAkAgASABYQ0AIAAPCwJAIAG9IAC9IgKFQn9VDQAgACABIAJCAFMbDwsgACABIAAgAWMbIQELIAELCxkBAEGAgMAACxAAAAAAAADgPwAAAAAAAOC/",Ue=null;function GA(){if(Ue)return Ue;let A=atob(MY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ue=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ue.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ue}function uh(A,r,I,e){GA().exports.logaddexp_f64(A,r,I,e)}function ch(A,r,I,e){GA().exports.logaddexp_f32(A,r,I,e)}function Dh(A,r,I,e){GA().exports.logaddexp_i64(A,r,I,e)}function fh(A,r,I,e){GA().exports.logaddexp_u64(A,r,I,e)}function mh(A,r,I,e){GA().exports.logaddexp_i32(A,r,I,e)}function yh(A,r,I,e){GA().exports.logaddexp_u32(A,r,I,e)}function lh(A,r,I,e){GA().exports.logaddexp_i16(A,r,I,e)}function hh(A,r,I,e){GA().exports.logaddexp_u16(A,r,I,e)}function dh(A,r,I,e){GA().exports.logaddexp_i8(A,r,I,e)}function bh(A,r,I,e){GA().exports.logaddexp_u8(A,r,I,e)}function ph(A,r,I,e){GA().exports.logaddexp_scalar_f64(A,r,I,e)}function wh(A,r,I,e){GA().exports.logaddexp_scalar_f32(A,r,I,e)}function Nh(A,r,I,e){GA().exports.logaddexp_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Fh(A,r,I,e){GA().exports.logaddexp_scalar_u64(A,r,I,BigInt(Math.round(e)))}function Gh(A,r,I,e){GA().exports.logaddexp_scalar_i32(A,r,I,e)}function Sh(A,r,I,e){GA().exports.logaddexp_scalar_u32(A,r,I,e)}function Rh(A,r,I,e){GA().exports.logaddexp_scalar_i16(A,r,I,e)}function kh(A,r,I,e){GA().exports.logaddexp_scalar_u16(A,r,I,e)}function qh(A,r,I,e){GA().exports.logaddexp_scalar_i8(A,r,I,e)}function Mh(A,r,I,e){GA().exports.logaddexp_scalar_u8(A,r,I,e)}var xh=64,xY={float64:uh,float32:ch},JY={float64:ph,float32:wh},UY={int64:Dh,uint64:fh,int32:mh,uint32:yh,int16:lh,uint16:hh,int8:dh,uint8:bh},LY={int64:Nh,uint64:Fh,int32:Gh,uint32:Sh,int16:Rh,uint16:kh,int8:qh,uint8:Mh},rg={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Jh(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<xh*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=xY[e];if(t){let n=rg[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),B=q(Q),s=_(I*g);t(a,B,s,I);let C=v(s,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=UY[e];if(o){let g=rg[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),B=q(Q),s=q(a),C=_(I*i);o(B,s,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function Uh(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<xh*Y.thresholdMultiplier)return null;let e=A.dtype,t=JY[e];if(t){let n=rg[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let B=v(a,I,n);return d.fromData(B,Array.from(A.shape),e)}let o=LY[e];if(o){let g=rg[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),B=_(I*i);o(a,B,I,r);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}return null}function Lh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.sqrt((C+B)/2),u=(s>=0?1:-1)*Math.sqrt((C-B)/2);g[a*2]=E,g[a*2+1]=u}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.sqrt((s+a)/2),E=(B>=0?1:-1)*Math.sqrt((s-a)/2);g[i*2]=C,g[i*2+1]=E}return n}let I=$0(A);return I||mA(A,Math.sqrt,!1)}function Hh(A,r){if(typeof r=="number")return _Y(A,r);let I=k(A.dtype),e=k(r.dtype);if(I||e)return HY(A,r);let t=oh(A,r);return t||yA(A,r,Math.pow,"power")}function HY(A,r){let I=k(A.dtype),e=k(r.dtype),t=A.dtype==="complex128"||r.dtype==="complex128"||r.dtype==="float64"?"complex128":"complex64",o=Array.from(A.shape),n=A.size,g=d.zeros(o,t),i=g.data,Q=A.isCContiguous,a=r.isCContiguous,B=A.offset,s=r.offset;for(let C=0;C<n;C++){let E,u;if(I)if(Q){let p=A.data;E=p[(B+C)*2],u=p[(B+C)*2+1]}else{let p=A.iget(C);E=p.re,u=p.im}else E=Number(A.iget(C)),u=0;let f,m;if(e)if(a){let p=r.data;f=p[(s+C)*2],m=p[(s+C)*2+1]}else{let p=r.iget(C);f=p.re,m=p.im}else f=Number(r.iget(C)),m=0;let c=Math.sqrt(E*E+u*u),D=Math.atan2(u,E),y=Math.log(c),l=f*y-m*D,h=f*D+m*y,b=Math.exp(l);i[C*2]=b*Math.cos(h),i[C*2+1]=b*Math.sin(h)}return g}function _Y(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.size,n=A.offset,g=A.isCContiguous;if(!k(I)){let C=nh(A,r);if(C)return C}if(k(I)){let C=d.zeros(e,I),E=C.data;if(g){let u=t;for(let f=0;f<o;f++){let m=u[(n+f)*2],c=u[(n+f)*2+1],D=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(D,r),h=y*r;E[f*2]=l*Math.cos(h),E[f*2+1]=l*Math.sin(h)}}else for(let u=0;u<o;u++){let f=A.iget(u),m=f.re,c=f.im,D=Math.sqrt(m*m+c*c),y=Math.atan2(c,m),l=Math.pow(D,r),h=y*r;E[u*2]=l*Math.cos(h),E[u*2+1]=l*Math.sin(h)}return C}let a=I!=="float32"&&I!=="float64"&&(r<0||!Number.isInteger(r))?"float64":I,B=d.zeros(e,a),s=B.data;if(L(I))if(L(a)&&Number.isInteger(r)&&r>=0)if(g){let C=t,E=s;for(let u=0;u<o;u++)E[u]=C[n+u]**BigInt(r)}else{let C=s;for(let E=0;E<o;E++)C[E]=A.iget(E)**BigInt(r)}else if(g)for(let C=0;C<o;C++)s[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)s[C]=Math.pow(Number(A.iget(C)),r);else if(g)for(let C=0;C<o;C++)s[C]=Math.pow(Number(t[n+C]),r);else for(let C=0;C<o;C++)s[C]=Math.pow(Number(A.iget(C)),r);return B}function _h(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.exp(B);g[a*2]=C*Math.cos(s),g[a*2+1]=C*Math.sin(s)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.exp(a);g[i*2]=s*Math.cos(B),g[i*2+1]=s*Math.sin(B)}return n}let I=ah(A);return I||mA(A,Math.exp,!1)}function Yh(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=Math.LN2,g=d.zeros(e,r),i=g.data;if(o){let Q=A.data,a=A.offset;for(let B=0;B<t;B++){let s=Q[(a+B)*2],C=Q[(a+B)*2+1],E=Math.exp(s*n),u=C*n;i[B*2]=E*Math.cos(u),i[B*2+1]=E*Math.sin(u)}}else for(let Q=0;Q<t;Q++){let a=A.iget(Q),B=a.re,s=a.im,C=Math.exp(B*n),E=s*n;i[Q*2]=C*Math.cos(E),i[Q*2+1]=C*Math.sin(E)}return g}let I=Eh(A);return I||mA(A,e=>Math.pow(2,e),!1)}function vh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=Math.exp(a);n[Q*2]=s*Math.cos(B)-1,n[Q*2+1]=s*Math.sin(B)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=Math.exp(Q);n[g*2]=B*Math.cos(a)-1,n[g*2+1]=B*Math.sin(a)}return o}return mA(A,Math.expm1,!1)}function Xh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);n[Q*2]=Math.log(s),n[Q*2+1]=C}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=Math.sqrt(Q*Q+a*a),s=Math.atan2(a,Q);n[g*2]=Math.log(B),n[g*2+1]=s}return o}return mA(A,Math.log,!1)}function Th(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN2,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.atan2(s,B);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);g[i*2]=Math.log(s)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log2,!1)}function Ph(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=1/Math.LN10,n=d.zeros(I,r),g=n.data;if(t){let i=A.data,Q=A.offset;for(let a=0;a<e;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.sqrt(B*B+s*s),E=Math.atan2(s,B);g[a*2]=Math.log(C)*o,g[a*2+1]=E*o}}else for(let i=0;i<e;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.sqrt(a*a+B*B),C=Math.atan2(B,a);g[i*2]=Math.log(s)*o,g[i*2+1]=C*o}return n}return mA(A,Math.log10,!1)}function Kh(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1],s=1+a,C=Math.sqrt(s*s+B*B),E=Math.atan2(B,s);n[Q*2]=Math.log(C),n[Q*2+1]=E}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im,B=1+Q,s=Math.sqrt(B*B+a*a),C=Math.atan2(a,B);n[g*2]=Math.log(s),n[g*2+1]=C}return o}return mA(A,Math.log1p,!1)}function Vh(A,r){return eA(A.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof r=="number"?vY(A,r):YY(A,r)}function YY(A,r){let I=Jh(A,r);if(I)return I;let e=Yr(A.shape,r.shape),t=e.reduce((B,s)=>B*s,1),o=A.dtype,n=r.dtype,g=B=>B==="float32"||B==="int8"||B==="uint8"||B==="int16"||B==="uint16",i=g(o)&&g(n)?"float32":"float64",Q=d.zeros(e,i),a=Q.data;for(let B=0;B<t;B++){let s=(L(o),Number(A.iget(B))),C=(L(n),Number(r.iget(B))),E=Math.max(s,C),u=Math.min(s,C);a[B]=E+Math.log1p(Math.exp(u-E))}return Q}function vY(A,r){let I=Uh(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=A.isCContiguous,g=e==="float32"||e==="int8"||e==="uint8"||e==="int16"||e==="uint16"?"float32":"float64",i=d.zeros(t,g),Q=i.data;if(n){let a=A.offset;for(let B=0;B<o;B++){let s=Number(A.data[a+B]),C=Math.max(s,r),E=Math.min(s,r);Q[B]=C+Math.log1p(Math.exp(E-C))}}else for(let a=0;a<o;a++){let B=Number(A.iget(a)),s=Math.max(B,r),C=Math.min(B,r);Q[a]=s+Math.log1p(Math.exp(C-s))}return i}function Wh(A,r){return eA(A.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r!="number"&&eA(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof r=="number"?TY(A,r):XY(A,r)}function XY(A,r){let I=Yr(A.shape,r.shape),e=I.reduce((a,B)=>a*B,1),t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=Math.LOG2E;for(let a=0;a<e;a++){let B=(L(t),Number(A.iget(a))),s=(L(o),Number(r.iget(a))),C=Math.max(B,s),E=Math.min(B,s);i[a]=C+Math.log1p(Math.pow(2,E-C))*Q}return g}function TY(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=I==="float32"?"float32":"float64",g=d.zeros(e,n),i=g.data,Q=Math.LOG2E;if(o){let a=A.offset;for(let B=0;B<t;B++){let s=Number(A.data[a+B]),C=Math.max(s,r),E=Math.min(s,r);i[B]=C+Math.log1p(Math.pow(2,E-C))*Q}}else for(let a=0;a<t;a++){let B=Number(A.iget(a)),s=Math.max(B,r),C=Math.min(B,r);i[a]=s+Math.log1p(Math.pow(2,C-s))*Q}return g}function Le(A,r){let I=typeof r=="number"?r:G(r);return R(y0(G(A),I))}function He(A,r){let I=typeof r=="number"?r:G(r);return R(l0(G(A),I))}function _e(A,r){let I=typeof r=="number"?r:G(r);return R(h0(G(A),I))}function Ye(A){return R(Lh(G(A)))}function ve(A,r){let I=typeof r=="number"?r:G(r);return R(Hh(G(A),I))}function Xe(A){return R(_h(G(A)))}function Te(A){return R(Yh(G(A)))}function Pe(A){return R(vh(G(A)))}function Ke(A){return R(Xh(G(A)))}function Ve(A){return R(Th(G(A)))}function We(A){return R(Ph(G(A)))}function Oe(A){return R(Kh(G(A)))}function Ze(A,r){let I=typeof r=="number"?r:G(r);return R(Vh(G(A),I))}function ze(A,r){let I=typeof r=="number"?r:G(r);return R(Wh(G(A),I))}function je(A){return R(b0(G(A)))}function $e(A){return R(p0(G(A)))}function At(A){return R(w0(G(A)))}function rt(A,r){let I=typeof r=="number"?r:G(r);return R(ji(G(A),I))}function SI(A,r){let I=typeof r=="number"?r:G(r);return R(d0(G(A),I))}var Ig=SI;function It(A,r){let I=typeof r=="number"?r:G(r);return R(Is(G(A),I))}function et(A){return R(N0(G(A)))}function tt(A){return R(F0(G(A)))}function ot(A){return R(G0(G(A)))}function nt(A){return R(S0(G(A)))}function it(A,r){let I=typeof r=="number"?r:G(r);return vi(R0(G(A),I))}function gt(A){return R(k0(G(A)))}function Qt(A,r){let I=typeof r=="number"?r:G(r);return R(q0(G(A),I))}function at(A,r){let I=typeof r=="number"?r:G(r);return R(es(G(A),I))}function ys(A,r){let I=typeof r=="number"?r:G(r);return R(M0(G(A),I))}function ls(A,r){let I=typeof r=="number"?r:G(r);return R(x0(G(A),I))}function hs(A){return vi(J0(G(A)))}function ds(A,r){let I=typeof r=="number"?r:G(r);return R(U0(G(A),I))}function bs(A,r){let I=typeof r=="number"?r:G(r);return R(L0(G(A),I))}function ps(A,r){let I=typeof r=="number"?r:G(r);return R(ts(G(A),I))}function ws(A){return vi(H0(G(A)))}function Bt(A,r,I){let e=r===null?null:typeof r=="number"?r:G(r),t=I===null?null:typeof I=="number"?I:G(I);return R(_0(G(A),e,t))}function Ns(A,r){let I=typeof r=="number"?r:G(r);return R(Y0(G(A),I))}function Fs(A,r){let I=typeof r=="number"?r:G(r);return R(v0(G(A),I))}function Gs(A,r){let I=typeof r=="number"?r:G(r);return R(X0(G(A),I))}function Ss(A,r){let I=typeof r=="number"?r:G(r);return R(T0(G(A),I))}function Rs(A,r=0,I,e){return R(P0(G(A),r,I,e))}function ks(A,r,I,e,t){return R(K0(G(A),G(r),G(I),e,t))}function qs(A,r=Math.PI,I=-1,e=2*Math.PI){return R(V0(G(A),r,I,e))}function Ms(A){return R(W0(G(A)))}function xs(A){return R(O0(G(A)))}var KY="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",st=null;function Oh(){if(st)return st;let A=atob(KY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);st=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=st.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),st}function Js(A,r,I){Oh().exports.cos_f64(A,r,I)}function Zh(A,r,I){Oh().exports.cos_f32(A,r,I)}var VY=64,WY={float64:Js,float32:Zh};function zh(A){if(!A.isCContiguous)return null;let r=A.size;if(r<VY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=WY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Js(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var OY="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BEEBaiEEIAZEAAAAAAAA8D+gIgZEMWNiGmG00D2iIQggACAGRAAAQFT7Ifm/oqAhBwwBCyAEQX9qIQQgBkQAAAAAAADwv6AiBkQxY2IaYbTQPaIhCCAAIAZEAABAVPsh+b+ioCEHCyABIAcgCKEiADkDAAJAIAC9QoCAgICAgID4/wCDQoCAgICAgICIP1oNACABIAcgBkQAAGAaYbTQPaIiAKEiCSAGRHNwAy6KGaM7oiAHIAmhIAChoSIIoSIAOQMAAkAgAL1CgICAgICAgID/AINC//////////88WA0AIAkhBwwBCyABIAkgBkQAAAAuihmjO6IiAKEiByAGRMFJICWag3s5oiAJIAehIAChoSIIoSIAOQMACyABIAcgAKEgCKE5AwgMAwsgASAHIAihIgA5AwACQCAAvUKAgICAgICA+P8Ag0KAgICAgICAiD9aDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAC9QoCAgICAgICA/wCDQv//////////PFgNACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAILIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMIDAELIAEgByAIoSIAOQMAAkAgBUEUdiIKIAC9QjSIp0H/D3FrQRBMDQAgASAHIAZEAABgGmG00D2iIgChIgkgBkRzcAMuihmjO6IgByAJoSAAoaEiCKEiADkDAAJAIAogAL1CNIinQf8PcWtBMk4NACAJIQcMAQsgASAJIAZEAAAALooZozuiIgChIgcgBkTBSSAlmoN7OaIgCSAHoSAAoaEiCKEiADkDAAsgASAHIAChIAihOQMICyACQTBqJICAgIAAIAQL4AcIAX8CfgJ8AnsBfwF8An8BfCOAgICAAEEQ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",Ct=null;function jh(){if(Ct)return Ct;let A=atob(OY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ct}function Us(A,r,I){jh().exports.tan_f64(A,r,I)}function $h(A,r,I){jh().exports.tan_f32(A,r,I)}var ZY=64,zY={float64:Us,float32:$h};function Ad(A){if(!A.isCContiguous)return null;let r=A.size;if(r<ZY*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=zY[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Us(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var jY="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNzaW5fZjY0AAAKYXJjc2luX2YzMgACCmFyY3Npbl9pNjQAAwphcmNzaW5fdTY0AAQKvQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwviBAQBfgF/A3wBewJAAkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQBEAAAAAAAA+H8hAyACQYCAwIB8aiABp3INASAARBgtRFT7Ifk/okQAAAAAAABwOKAPCwJAIAJBgICA/wNJDQBEAAAAAAAA8D8gAJmhRAAAAAAAAOA/oiIAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6CiIAAgACAAIABEgpIuscW4sz+iRFkBjRtsBua/oKJEyIpZnOUqAECgokRLLYocJzoDwKCiRAAAAAAAAPA/oKMhBCAAnyEDAkACQCACQbLmvP8DTQ0ARBgtRFT7Ifk/IAMgAyAEoqAiACAAoKEhAAwBC0QYLURU+yHpPyADvUKAgICAcIO/IgUgBaChRAdcFDMmppE8IAAgBSAFoqEgAyAFoKMiACAAoKEgAyADoCAEoqGgRBgtRFT7Iek/oCEACyAAmiAAIAFCAFMbDwsCQCACQYCAQGpBgICA8gNPDQAgAA8LIAAgACAAIACiIgMgA/0UIgYgBiAGIAb9DAAAAAAAAAAAgpIuscW4sz8gA0QJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgb9IQCiIAb9IQGjoqAhAwsgAws2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",Et=null;function eg(){if(Et)return Et;let A=atob(jY),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Et=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Et.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Et}function Ls(A,r,I){eg().exports.arcsin_f64(A,r,I)}function rd(A,r,I){eg().exports.arcsin_f32(A,r,I)}function Id(A,r,I){eg().exports.arcsin_i64(A,r,I)}function ed(A,r,I){eg().exports.arcsin_u64(A,r,I)}var $Y=64,A6={float64:Ls,float32:rd};function td(A){if(!A.isCContiguous)return null;let r=A.size;if(r<$Y*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=A6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Id:ed)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Ls(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var r6="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgAQAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmNjb3NfZjY0AAAKYXJjY29zX2YzMgACCmFyY2Nvc19pNjQAAwphcmNjb3NfdTY0AAQK8QcFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwuWBgUBfgF/AXwBewF8AkAgAL0iAUIgiKdB/////wdxIgJBgIDA/wNJDQACQCACQYCAwIB8aiABp3JFDQBEAAAAAAAA+H8PC0QAAAAAAAAAAEQYLURU+yEJQCABQn9VGw8LAkAgAkGAgID/A0kNAAJAIAFCf1UNAEQYLURU+yH5PyAARAAAAAAAAPA/oEQAAAAAAADgP6IiAJ8iAyADIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjokQHXBQzJqaRvKCgoSIAIACgDwtEAAAAAAAA8D8gAKFEAAAAAAAA4D+iIgAgAJ8iBb1CgICAgHCDvyIDIAOioSAFIAOgoyAFIAAgAP0UIgQgBCAEIAT9DAAAAAAAAAAAgpIuscW4sz8gAEQJ9/0N4T0CP6JEiLIBdeDvST+g/SIA/fIB/Qw7j2i1KIKkv1kBjRtsBua//fAB/fIB/QxVRIgOVcHJP8iKWZzlKgBA/fAB/fIB/Qx9b+sDEtbUv0stihwnOgPA/fAB/fIB/QxVVVVVVVXFPwAAAAAAAPA//fABIgT9IQCiIAT9IQGjoqAgA6AiACAAoA8LAkAgAkGBgIDjA08NAEQYLURU+yH5Pw8LRAdcFDMmppE8IAAgACAAoiIDIAP9FCIEIAQgBCAE/QwAAAAAAAAAAIKSLrHFuLM/IANECff9DeE9Aj+iRIiyAXXg70k/oP0iAP3yAf0MO49otSiCpL9ZAY0bbAbmv/3wAf3yAf0MVUSIDlXByT/Iilmc5SoAQP3wAf3yAf0MfW/rAxLW1L9LLYocJzoDwP3wAf3yAf0MVVVVVVVVxT8AAAAAAADwP/3wASIE/SEAoiAE/SEBo6KhIAChRBgtRFT7Ifk/oAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsL",ut=null;function tg(){if(ut)return ut;let A=atob(r6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ut}function Hs(A,r,I){tg().exports.arccos_f64(A,r,I)}function od(A,r,I){tg().exports.arccos_f32(A,r,I)}function nd(A,r,I){tg().exports.arccos_i64(A,r,I)}function id(A,r,I){tg().exports.arccos_u64(A,r,I)}var I6=64,e6={float64:Hs,float32:od};function gd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<I6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=e6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?nd:id)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);Hs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var t6="AGFzbQEAAAABDAJgA39/fwBgAXwBfAIPAQNlbnYGbWVtb3J5AgARAwYFAAEAAAAGCQF/AUGAgMAACwc1BAphcmN0YW5fZjY0AAAKYXJjdGFuX2YzMgACCmFyY3Rhbl9pNjQAAwphcmN0YW5fdTY0AAQKmQYFNAACQCACRQ0AA0AgASAAKwMAEIGAgIAAOQMAIAFBCGohASAAQQhqIQAgAkF/aiICDQALCwu+BAQBfwF+An8DfCOAgICAAEEQayIBJICAgIAAAkACQCAAvSICQiCIp0H/////B3EiA0GAgMCgBEkNACAARBgtRFT7Ifk/IACmIAAgAGIbIQAMAQsCQAJAIANBgIDw/gNJDQAgAJkhAAJAIANBgIDM/wNPDQACQCADQYCAmP8DTw0AIAAgAKBEAAAAAAAA8L+gIABEAAAAAAAAAECgoyEAQQAhBAwDCyAARAAAAAAAAPC/oCAARAAAAAAAAPA/oKMhAEEBIQQMAgsCQCADQYCAjoAESQ0ARAAAAAAAAPC/IACjIQBBAyEEDAILIABEAAAAAAAA+L+gIABEAAAAAAAA+D+iRAAAAAAAAPA/oKMhAEECIQQMAQsCQCADQYCAgPIDSQ0ADAELIANB//8/Sw0BIAEgALY4AgwgAUEMaiEDDAELIAAgAKIiBSAFoiIGIAYgBiAGIAZEL2xqLES0or+iRJr93lIt3q2/oKJEbZp0r/Kws7+gokRxFiP+xnG8v6CiRMTrmJmZmcm/oKIhByAFIAYgBiAGIAYgBkQR2iLjOq2QP6JE6w12JEt7qT+gokRRPdCgZg2xP6CiRG4gTMXNRbc/oKJE/4MAkiRJwj+gokQNVVVVVVXVP6CiIQYCQCADQYCA8P4DSQ0AIARBA3QiA0GAgMCAAGorAwAgACAHIAagoiADQaCAwIAAaisDAKEgAKGhIgCaIAAgAkIAUxshAAwBCyAAIAAgByAGoKKhIQALIAFBEGokgICAgAAgAAs2AAJAIAJFDQADQCABIAAqAgC7EIGAgIAAtjgCACABQQRqIQEgAEEEaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuRCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLNQACQCACRQ0AA0AgASAAKQMAuhCBgICAADkDACABQQhqIQEgAEEIaiEAIAJBf2oiAg0ACwsLC0kBAEGAgMAAC0BPu2EFZ6zdPxgtRFT7Iek/m/aB0gtz7z8YLURU+yH5P+JlLyJ/K3o8B1wUMyamgTy9y/B6iAdwPAdcFDMmppE8",ct=null;function og(){if(ct)return ct;let A=atob(t6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ct=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ct.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ct}function _s(A,r,I){og().exports.arctan_f64(A,r,I)}function Qd(A,r,I){og().exports.arctan_f32(A,r,I)}function ad(A,r,I){og().exports.arctan_i64(A,r,I)}function Bd(A,r,I){og().exports.arctan_u64(A,r,I)}var o6=64,n6={float64:_s,float32:Qd};function sd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<o6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=n6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?ad:Bd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);_s(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var i6="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",Dt=null;function nr(){if(Dt)return Dt;let A=atob(i6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Dt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Dt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Dt}function Cd(A,r,I,e){nr().exports.hypot_f64(A,r,I,e)}function Ed(A,r,I,e){nr().exports.hypot_scalar_f64(A,r,I,e)}function ud(A,r,I,e){nr().exports.hypot_f32(A,r,I,e)}function cd(A,r,I,e){nr().exports.hypot_scalar_f32(A,r,I,e)}function Ys(A,r,I,e){nr().exports.hypot_i64(A,r,I,e)}function vs(A,r,I,e){nr().exports.hypot_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Xs(A,r,I,e){nr().exports.hypot_i32(A,r,I,e)}function Ts(A,r,I,e){nr().exports.hypot_scalar_i32(A,r,I,e)}function Ps(A,r,I,e){nr().exports.hypot_i16(A,r,I,e)}function Ks(A,r,I,e){nr().exports.hypot_scalar_i16(A,r,I,e)}function Vs(A,r,I,e){nr().exports.hypot_i8(A,r,I,e)}function Ws(A,r,I,e){nr().exports.hypot_scalar_i8(A,r,I,e)}var Dd=64,g6={float64:Cd,float32:ud},Q6={float64:Ed,float32:cd},a6={int64:Ys,uint64:Ys,int32:Xs,uint32:Xs,int16:Ps,uint16:Ps,int8:Vs,uint8:Vs},B6={int64:vs,uint64:vs,int32:Ts,uint32:Ts,int16:Ks,uint16:Ks,int8:Ws,uint8:Ws},ng={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function fd(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Dd*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=g6[e];if(t){let n=ng[e],g=n.BYTES_PER_ELEMENT;J(I*g*3),U();let i=A.data.subarray(A.offset,A.offset+I),Q=r.data.subarray(r.offset,r.offset+I),a=q(i),B=q(Q),s=_(I*g);t(a,B,s,I);let C=v(s,I,n);return d.fromData(C,Array.from(A.shape),e)}let o=a6[e];if(o){let g=ng[e].BYTES_PER_ELEMENT,i=8;J(I*g*2+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=r.data.subarray(r.offset,r.offset+I),B=q(Q),s=q(a),C=_(I*i);o(B,s,C,I);let E=v(C,I,Float64Array);return d.fromData(E,Array.from(A.shape),"float64")}return null}function md(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Dd*Y.thresholdMultiplier)return null;let e=A.dtype,t=Q6[e];if(t){let n=ng[e],g=n.BYTES_PER_ELEMENT;J(I*g*2),U();let i=A.data.subarray(A.offset,A.offset+I),Q=q(i),a=_(I*g);t(Q,a,I,r);let B=v(a,I,n);return d.fromData(B,Array.from(A.shape),e)}let o=B6[e];if(o){let g=ng[e].BYTES_PER_ELEMENT,i=8;J(I*g+I*i),U();let Q=A.data.subarray(A.offset,A.offset+I),a=q(Q),B=_(I*i);o(a,B,I,r);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}return null}function dd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.isCContiguous,o=d.zeros(I,r),n=o.data;if(t){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++){let a=g[(i+Q)*2],B=g[(i+Q)*2+1];n[Q*2]=Math.sin(a)*Math.cosh(B),n[Q*2+1]=Math.cos(a)*Math.sinh(B)}}else for(let g=0;g<e;g++){let i=A.iget(g),Q=i.re,a=i.im;n[g*2]=Math.sin(Q)*Math.cosh(a),n[g*2+1]=Math.cos(Q)*Math.sinh(a)}return o}return mA(A,Math.sin,!1)}function bd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1];g[a*2]=Math.cos(B)*Math.cosh(s),g[a*2+1]=-Math.sin(B)*Math.sinh(s)}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im;g[i*2]=Math.cos(a)*Math.cosh(B),g[i*2+1]=-Math.sin(a)*Math.sinh(B)}return n}let I=zh(A);return I||mA(A,Math.cos,!1)}function pd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],C=Math.cos(2*B)+Math.cosh(2*s);g[a*2]=Math.sin(2*B)/C,g[a*2+1]=Math.sinh(2*s)/C}}else for(let i=0;i<t;i++){let Q=A.iget(i),a=Q.re,B=Q.im,s=Math.cos(2*a)+Math.cosh(2*B);g[i*2]=Math.sin(2*a)/s,g[i*2+1]=Math.sinh(2*B)/s}return n}let I=Ad(A);return I||mA(A,Math.tan,!1)}function wd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=yd(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=yd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=td(A);return I||mA(A,Math.asin,!1)}function yd(A,r){let I=-r,e=A,t=A*A-r*r,o=2*A*r,n=1-t,g=-o,i=Math.sqrt(n*n+g*g),Q=Math.sqrt((i+n)/2),a=(g>=0?1:-1)*Math.sqrt((i-n)/2),B=I+Q,s=e+a,C=Math.sqrt(B*B+s*s),E=Math.log(C),f=Math.atan2(s,B),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[f,m]}function Nd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=ld(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=ld(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=gd(A);return I||mA(A,Math.acos,!1)}function ld(A,r){let I=A*A-r*r,e=2*A*r,t=1-I,o=-e,n=Math.sqrt(t*t+o*o),g=Math.sqrt((n+t)/2),Q=-((o>=0?1:-1)*Math.sqrt((n-t)/2)),a=g,B=A+Q,s=r+a,C=Math.sqrt(B*B+s*s),E=Math.log(C),f=Math.atan2(s,B),m=-E;return Math.abs(r)<1e-15&&A>1&&(m=-m),[f,m]}function Fd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.isCContiguous,n=d.zeros(e,r),g=n.data;if(o){let i=A.data,Q=A.offset;for(let a=0;a<t;a++){let B=i[(Q+a)*2],s=i[(Q+a)*2+1],[C,E]=hd(B,s);g[a*2]=C,g[a*2+1]=E}}else for(let i=0;i<t;i++){let Q=A.iget(i),[a,B]=hd(Q.re,Q.im);g[i*2]=a,g[i*2+1]=B}return n}let I=sd(A);return I||mA(A,Math.atan,!1)}function hd(A,r){let I=-r,e=A,t=1-I,o=-e,n=1+I,g=e,i=n*n+g*g,Q=(t*n+o*g)/i,a=(o*n-t*g)/i,B=Math.sqrt(Q*Q+a*a),s=Math.log(B);return[-Math.atan2(a,Q)/2,s/2]}function Gd(A,r){return eA(A.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof r=="number"?C6(A,r):s6(A,r)}function s6(A,r){let I=Array.from(A.shape),e=A.size,t=A.dtype,o=r.dtype,n=t==="float32"&&o==="float32"?"float32":"float64",g=d.zeros(I,n),i=g.data,Q=A.isCContiguous,a=r.isCContiguous;if(Q&&a){let B=A.offset,s=r.offset;for(let C=0;C<e;C++){let E=Number(A.data[B+C]),u=Number(r.data[s+C]);i[C]=Math.atan2(E,u)}}else if(Q){let B=A.offset;for(let s=0;s<e;s++){let C=Number(A.data[B+s]),E=Number(r.iget(s));i[s]=Math.atan2(C,E)}}else if(a){let B=r.offset;for(let s=0;s<e;s++){let C=Number(A.iget(s)),E=Number(r.data[B+s]);i[s]=Math.atan2(C,E)}}else for(let B=0;B<e;B++){let s=Number(A.iget(B)),C=Number(r.iget(B));i[B]=Math.atan2(s,C)}return g}function C6(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data;if(A.isCContiguous){let Q=A.data,a=A.offset;if(L(I))for(let B=0;B<t;B++)g[B]=Math.atan2(Number(Q[a+B]),r);else for(let B=0;B<t;B++)g[B]=Math.atan2(Number(Q[a+B]),r)}else for(let Q=0;Q<t;Q++)g[Q]=Math.atan2(Number(A.iget(Q)),r);return n}function Sd(A,r){return eA(A.dtype,"hypot","hypot is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"hypot","hypot is only defined for real numbers."),typeof r=="number"?u6(A,r):E6(A,r)}function E6(A,r){let I=fd(A,r);if(I)return I;let e=Array.from(A.shape),t=A.size,o=A.dtype,n=r.dtype,g=o==="float32"&&n==="float32"?"float32":"float64",i=d.zeros(e,g),Q=i.data,a=A.isCContiguous,B=r.isCContiguous;if(a&&B){let s=A.offset,C=r.offset;for(let E=0;E<t;E++){let u=Number(A.data[s+E]),f=Number(r.data[C+E]);Q[E]=Math.hypot(u,f)}}else if(a){let s=A.offset;for(let C=0;C<t;C++){let E=Number(A.data[s+C]),u=Number(r.iget(C));Q[C]=Math.hypot(E,u)}}else if(B){let s=r.offset;for(let C=0;C<t;C++){let E=Number(A.iget(C)),u=Number(r.data[s+C]);Q[C]=Math.hypot(E,u)}}else for(let s=0;s<t;s++){let C=Number(A.iget(s)),E=Number(r.iget(s));Q[s]=Math.hypot(C,E)}return i}function u6(A,r){let I=md(A,r);if(I)return I;let e=A.dtype,t=Array.from(A.shape),o=A.size,n=e==="float32"?"float32":"float64",g=d.zeros(t,n),i=g.data;if(A.isCContiguous){let a=A.data,B=A.offset;if(L(e))for(let s=0;s<o;s++)i[s]=Math.hypot(Number(a[B+s]),r);else for(let s=0;s<o;s++)i[s]=Math.hypot(Number(a[B+s]),r)}else for(let a=0;a<o;a++)i[a]=Math.hypot(Number(A.iget(a)),r);return g}function Os(A){eA(A.dtype,"degrees","degrees is only defined for real numbers.");let r=180/Math.PI;return mA(A,I=>I*r,!1)}function Zs(A){eA(A.dtype,"radians","radians is only defined for real numbers.");let r=Math.PI/180;return mA(A,I=>I*r,!1)}function Rd(A){return Zs(A)}function kd(A){return Os(A)}var D6="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",ft=null;function ig(){if(ft)return ft;let A=atob(D6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ft=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ft.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ft}function zs(A,r,I){ig().exports.sinh_f64(A,r,I)}function qd(A,r,I){ig().exports.sinh_f32(A,r,I)}function Md(A,r,I){ig().exports.sinh_i64(A,r,I)}function xd(A,r,I){ig().exports.sinh_u64(A,r,I)}var f6=64,m6={float64:zs,float32:qd};function Jd(A){if(!A.isCContiguous)return null;let r=A.size;if(r<f6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=m6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Md:xd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);zs(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var y6="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",mt=null;function gg(){if(mt)return mt;let A=atob(y6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mt}function js(A,r,I){gg().exports.cosh_f64(A,r,I)}function Ud(A,r,I){gg().exports.cosh_f32(A,r,I)}function Ld(A,r,I){gg().exports.cosh_i64(A,r,I)}function Hd(A,r,I){gg().exports.cosh_u64(A,r,I)}var l6=64,h6={float64:js,float32:Ud};function _d(A){if(!A.isCContiguous)return null;let r=A.size;if(r<l6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=h6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?Ld:Hd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);js(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}var d6="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",yt=null;function Qg(){if(yt)return yt;let A=atob(d6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),yt}function $s(A,r,I){Qg().exports.tanh_f64(A,r,I)}function Yd(A,r,I){Qg().exports.tanh_f32(A,r,I)}function vd(A,r,I){Qg().exports.tanh_i64(A,r,I)}function Xd(A,r,I){Qg().exports.tanh_u64(A,r,I)}var b6=64,p6={float64:$s,float32:Yd};function Td(A){if(!A.isCContiguous)return null;let r=A.size;if(r<b6*Y.thresholdMultiplier)return null;let I=A.dtype;if(k(I))return null;let e=p6[I];if(e){let B=I==="float32",s=B?4:8,C=B?Float32Array:Float64Array;J(r*s*2),U();let E=A.offset,u=A.data.subarray(E,E+r),f=q(u),m=_(r*s);e(f,m,r);let c=v(m,r,C);return d.fromData(c,Array.from(A.shape),I)}if(I==="int64"||I==="uint64"){J(r*16),U();let B=A.offset,s=A.data.subarray(B,B+r),C=q(s),E=_(r*8);(I==="int64"?vd:Xd)(C,E,r);let u=v(E,r,Float64Array);return d.fromData(u,Array.from(A.shape),"float64")}let t=8;J(r*t*2),U();let o=A.offset,n=A.data,g=new Float64Array(r);if(L(I))for(let B=0;B<r;B++)g[B]=Number(n[o+B]);else for(let B=0;B<r;B++)g[B]=n[o+B];let i=q(g),Q=_(r*t);$s(i,Q,r);let a=v(Q,r,Float64Array);return d.fromData(a,Array.from(A.shape),"float64")}function Pd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.sinh(Q)*Math.cos(a),g[i*2+1]=Math.cosh(Q)*Math.sin(a)}return n}let I=Jd(A);return I||mA(A,Math.sinh,!1)}function Kd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1];g[i*2]=Math.cosh(Q)*Math.cos(a),g[i*2+1]=Math.sinh(Q)*Math.sin(a)}return n}let I=_d(A);return I||mA(A,Math.cosh,!1)}function Vd(A){let r=A.dtype;if(k(r)){let e=Array.from(A.shape),t=A.size,o=A.data,n=d.zeros(e,r),g=n.data;for(let i=0;i<t;i++){let Q=o[i*2],a=o[i*2+1],B=Math.cosh(2*Q)+Math.cos(2*a);g[i*2]=Math.sinh(2*Q)/B,g[i*2+1]=Math.sin(2*a)/B}return n}let I=Td(A);return I||mA(A,Math.tanh,!1)}function Wd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,B=2*i*Q,s=a+1,C=B,E=Math.sqrt(s*s+C*C),u=Math.sqrt((E+s)/2),f=(C>=0?1:-1)*Math.sqrt((E-s)/2),m=i+u,c=Q+f,D=Math.sqrt(m*m+c*c);n[g*2]=Math.log(D),n[g*2+1]=Math.atan2(c,m)}return o}return mA(A,Math.asinh,!1)}function Od(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=i*i-Q*Q,B=2*i*Q,s=a-1,C=B,E=Math.sqrt(s*s+C*C),u=Math.sqrt((E+s)/2),f=(C>=0?1:-1)*Math.sqrt((E-s)/2),m=i+u,c=Q+f,D=Math.sqrt(m*m+c*c),y=Math.log(D),l=Math.atan2(c,m);Math.abs(Q)<1e-15&&i<1&&(l=-l),n[g*2]=y,n[g*2+1]=l}return o}return mA(A,Math.acosh,!1)}function Zd(A){let r=A.dtype;if(k(r)){let I=Array.from(A.shape),e=A.size,t=A.data,o=d.zeros(I,r),n=o.data;for(let g=0;g<e;g++){let i=t[g*2],Q=t[g*2+1],a=1+i,B=Q,s=1-i,C=-Q,E=s*s+C*C,u=(a*s+B*C)/E,f=(B*s-a*C)/E,m=Math.sqrt(u*u+f*f),c=Math.log(m),D=Math.atan2(f,u);n[g*2]=c/2,n[g*2+1]=D/2}return o}return mA(A,Math.atanh,!1)}function lt(A){return R(dd(G(A)))}function ht(A){return R(bd(G(A)))}function dt(A){return R(pd(G(A)))}function bt(A){return R(wd(G(A)))}function pt(A){return R(Nd(G(A)))}function wt(A){return R(Fd(G(A)))}function Nt(A,r){let I=typeof r=="number"?r:G(r);return R(Gd(G(A),I))}function Ft(A,r){let I=typeof r=="number"?r:G(r);return R(Sd(G(A),I))}function Gt(A){return R(Os(G(A)))}function St(A){return R(Zs(G(A)))}function AC(A){return R(Rd(G(A)))}function rC(A){return R(kd(G(A)))}function Rt(A){return R(Pd(G(A)))}function kt(A){return R(Kd(G(A)))}function qt(A){return R(Vd(G(A)))}function Mt(A){return R(Wd(G(A)))}function xt(A){return R(Od(G(A)))}function Jt(A){return R(Zd(G(A)))}var N6="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",Ut=null;function Tr(){if(Ut)return Ut;let A=atob(N6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ut=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ut.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ut}function zd(A,r,I,e,t,o){Tr().exports.matmul_f64(A,r,I,e,t,o)}function jd(A,r,I,e,t,o){Tr().exports.matmul_f32(A,r,I,e,t,o)}function $d(A,r,I,e,t,o){Tr().exports.matmul_c128(A,r,I,e,t,o)}function Ab(A,r,I,e,t,o){Tr().exports.matmul_c64(A,r,I,e,t,o)}function IC(A,r,I,e,t,o){Tr().exports.matmul_i64(A,r,I,e,t,o)}function eC(A,r,I,e,t,o){Tr().exports.matmul_i32(A,r,I,e,t,o)}function tC(A,r,I,e,t,o){Tr().exports.matmul_i16(A,r,I,e,t,o)}function oC(A,r,I,e,t,o){Tr().exports.matmul_i8(A,r,I,e,t,o)}var F6=256,G6={float64:zd,float32:jd,complex128:$d,complex64:Ab,int64:IC,uint64:IC,int32:eC,uint32:eC,int16:tC,uint16:tC,int8:oC,uint8:oC},tb={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},S6={complex128:2,complex64:2};function rb(A,r,I,e,t,o,n,g=1){let i=r.BYTES_PER_ELEMENT,Q=t*o*g*i,a=o*n*g*i,B=t*n*g*i;J(Q+a+B),U();let s=q(I),C=q(e),E=_(B);return A(s,C,E,t,n,o),v(E,t*n*g,r)}function ob(A,r){if(A.ndim===0||r.ndim===0)return null;let I=IA(A.dtype,r.dtype);if(I==="bool")return null;let e=I,t=G6[e],o=tb[e];if(!t||!o||!A.isCContiguous||!r.isCContiguous)return null;let n=S6[e]??1,g=A.ndim===1,i=r.ndim===1,Q=g?[1,A.shape[0]]:Array.from(A.shape),a=i?[r.shape[0],1]:Array.from(r.shape),B=Q.length,s=a.length,C=Q[B-2],E=Q[B-1],u=a[s-2],f=a[s-1];if(E!==u||C*E+E*f<F6*Y.thresholdMultiplier)return null;let c=Ib(A,e,n),D=Ib(r,e,n);if(B===2&&s===2){let H=rb(t,o,c,D,C,E,f,n),X;return g&&i?X=[]:g?X=[f]:i?X=[C]:X=[C,f],d.fromData(H,X,e)}let y=Q.slice(0,B-2),l=a.slice(0,s-2),h=R6(y,l),b=h.reduce((H,X)=>H*X,1),p=C*E*n,w=E*f*n,N=C*f*n,F=new o(b*N);for(let H=0;H<b;H++){let X=k6(H,h),P=eb(X,y),Z=eb(X,l),V=P*p,$=Z*w,O=c.subarray(V,V+p),z=D.subarray($,$+w),rA=rb(t,o,O,z,C,E,f,n);new Uint8Array(F.buffer,H*N*o.BYTES_PER_ELEMENT,rA.byteLength).set(new Uint8Array(rA.buffer,rA.byteOffset,rA.byteLength))}let S=[...h,C,f],x=d.fromData(F,S,e);return g&&i?nC(x,[...h]):g?nC(x,[...h,f]):i?nC(x,[...h,C]):x}function Ib(A,r,I){let e=A.data,t=A.offset,o=A.size,n=o*I;if(A.dtype===r&&t===0)return e.subarray(0,n);if(A.dtype===r){let Q=t*I;return e.subarray(Q,Q+n)}let g=tb[r];if(!g)throw new Error(`No TypedArray constructor for dtype ${r}`);let i=new g(n);for(let Q=0;Q<o;Q++)i[Q]=Number(A.iget(Q));return i}function nC(A,r){return d.fromData(A.data,r,A.dtype)}function R6(A,r){let I=Math.max(A.length,r.length),e=[];for(let t=0;t<I;t++){let o=t<I-A.length?1:A[t-(I-A.length)],n=t<I-r.length?1:r[t-(I-r.length)];if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: batch shapes not broadcastable: [${A}] vs [${r}]`);e.push(Math.max(o,n))}return e}function k6(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function eb(A,r){let I=A.length-r.length,e=0,t=1;for(let o=r.length-1;o>=0;o--){let n=r[o],g=A[o+I];e+=(n===1?0:g)*t,t*=n}return e}var q6="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",Lt=null;function Pr(){if(Lt)return Lt;let A=atob(q6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Lt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Lt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Lt}function nb(A,r,I,e,t,o){Pr().exports.inner_f64(A,r,I,e,t,o)}function ib(A,r,I,e,t,o){Pr().exports.inner_f32(A,r,I,e,t,o)}function gb(A,r,I,e,t,o){Pr().exports.inner_c128(A,r,I,e,t,o)}function Qb(A,r,I,e,t,o){Pr().exports.inner_c64(A,r,I,e,t,o)}function iC(A,r,I,e,t,o){Pr().exports.inner_i64(A,r,I,e,t,o)}function gC(A,r,I,e,t,o){Pr().exports.inner_i32(A,r,I,e,t,o)}function QC(A,r,I,e,t,o){Pr().exports.inner_i16(A,r,I,e,t,o)}function aC(A,r,I,e,t,o){Pr().exports.inner_i8(A,r,I,e,t,o)}var M6=256,x6={float64:nb,float32:ib,complex128:gb,complex64:Qb,int64:iC,uint64:iC,int32:gC,uint32:gC,int16:QC,uint16:QC,int8:aC,uint8:aC},J6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},U6={complex128:2,complex64:2};function ab(A,r){if(A.ndim===0||r.ndim===0||!A.isCContiguous||!r.isCContiguous)return null;let I=IA(A.dtype,r.dtype),e=x6[I],t=J6[I];if(!e||!t)return null;let o=U6[I]??1,n=A.shape[A.ndim-1],g=r.shape[r.ndim-1];if(n!==g)return null;let i=A.ndim===1?1:A.shape.slice(0,-1).reduce((h,b)=>h*b,1),Q=r.ndim===1?1:r.shape.slice(0,-1).reduce((h,b)=>h*b,1);if(i*n+Q*n<M6*Y.thresholdMultiplier)return null;let B=t.BYTES_PER_ELEMENT,s=i*n*o*B,C=Q*n*o*B,E=i*Q*o*B;J(s+C+E),U();let u=A.data.subarray(A.offset*o,A.offset*o+i*n*o),f=r.data.subarray(r.offset*o,r.offset*o+Q*n*o),m=q(u),c=q(f),D=_(E);e(m,c,D,i,Q,n);let y=v(D,i*Q*o,t);if(A.ndim===1&&r.ndim===1)return o===2?new T(Number(y[0]),Number(y[1])):y[0];let l=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)];return d.fromData(y,l,I)}var L6="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",Ht=null;function Kr(){if(Ht)return Ht;let A=atob(L6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ht=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ht.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ht}function Bb(A,r,I,e){Kr().exports.dot_f64(A,r,I,e)}function sb(A,r,I,e){Kr().exports.dot_f32(A,r,I,e)}function Cb(A,r,I,e){Kr().exports.dot_c128(A,r,I,e)}function Eb(A,r,I,e){Kr().exports.dot_c64(A,r,I,e)}function BC(A,r,I,e){Kr().exports.dot_i64(A,r,I,e)}function sC(A,r,I,e){Kr().exports.dot_i32(A,r,I,e)}function CC(A,r,I,e){Kr().exports.dot_i16(A,r,I,e)}function EC(A,r,I,e){Kr().exports.dot_i8(A,r,I,e)}var H6=128,_6={float64:Bb,float32:sb,complex128:Cb,complex64:Eb,int64:BC,uint64:BC,int32:sC,uint32:sC,int16:CC,uint16:CC,int8:EC,uint8:EC},Y6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},v6={complex128:2,complex64:2};function ag(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<H6*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=_6[e],o=Y6[e];if(!t||!o)return null;let n=v6[e]??1,g=o.BYTES_PER_ELEMENT,i=I*n*g,Q=I*n*g,a=1*n*g;J(i+Q+a),U();let B=A.data.subarray(A.offset*n,A.offset*n+I*n),s=r.data.subarray(r.offset*n,r.offset*n+I*n),C=q(B),E=q(s),u=_(a);t(C,E,u,I);let f=v(u,1*n,o);return n===2?new T(Number(f[0]),Number(f[1])):Number(f[0])}var X6="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",_t=null;function Vr(){if(_t)return _t;let A=atob(X6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);_t=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=_t.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),_t}function ub(A,r,I,e,t){Vr().exports.matvec_f64(A,r,I,e,t)}function cb(A,r,I,e,t){Vr().exports.matvec_f32(A,r,I,e,t)}function Db(A,r,I,e,t){Vr().exports.matvec_c128(A,r,I,e,t)}function fb(A,r,I,e,t){Vr().exports.matvec_c64(A,r,I,e,t)}function uC(A,r,I,e,t){Vr().exports.matvec_i64(A,r,I,e,t)}function cC(A,r,I,e,t){Vr().exports.matvec_i32(A,r,I,e,t)}function DC(A,r,I,e,t){Vr().exports.matvec_i16(A,r,I,e,t)}function fC(A,r,I,e,t){Vr().exports.matvec_i8(A,r,I,e,t)}var T6=128,P6={float64:ub,float32:cb,complex128:Db,complex64:fb,int64:uC,uint64:uC,int32:cC,uint32:cC,int16:DC,uint16:DC,int8:fC,uint8:fC},K6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},V6={complex128:2,complex64:2};function mC(A,r){if(A.ndim!==2||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(e!==r.shape[0]||I*e<T6*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=P6[t],n=K6[t];if(!o||!n)return null;let g=V6[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=e*g*i,B=I*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*g,n);return d.fromData(m,[I],t)}var W6="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",Yt=null;function Wr(){if(Yt)return Yt;let A=atob(W6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Yt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Yt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Yt}function mb(A,r,I,e,t){Wr().exports.vecmat_f64(A,r,I,e,t)}function yb(A,r,I,e,t){Wr().exports.vecmat_f32(A,r,I,e,t)}function lb(A,r,I,e,t){Wr().exports.vecmat_c128(A,r,I,e,t)}function hb(A,r,I,e,t){Wr().exports.vecmat_c64(A,r,I,e,t)}function yC(A,r,I,e,t){Wr().exports.vecmat_i64(A,r,I,e,t)}function lC(A,r,I,e,t){Wr().exports.vecmat_i32(A,r,I,e,t)}function hC(A,r,I,e,t){Wr().exports.vecmat_i16(A,r,I,e,t)}function dC(A,r,I,e,t){Wr().exports.vecmat_i8(A,r,I,e,t)}var O6=128,Z6={float64:mb,float32:yb,complex128:lb,complex64:hb,int64:yC,uint64:yC,int32:lC,uint32:lC,int16:hC,uint16:hC,int8:dC,uint8:dC},z6={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},j6={complex128:2,complex64:2};function bC(A,r){if(A.ndim!==1||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=r.shape[0],e=r.shape[1];if(I!==A.shape[0]||I*e<O6*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=Z6[t],n=z6[t];if(!o||!n)return null;let g=j6[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=I*e*g*i,B=e*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,e*g,n);return d.fromData(m,[e],t)}var $6="AGFzbQEAAAABCQFgBX9/f39/AAIPAQNlbnYGbWVtb3J5AgAQAwkIAAAAAAAAAAAGCQF/AUGAgMAACwdhCAlvdXRlcl9mNjQAAAlvdXRlcl9mMzIAAQpvdXRlcl9jMTI4AAIJb3V0ZXJfYzY0AAMJb3V0ZXJfaTY0AAQJb3V0ZXJfaTMyAAUJb3V0ZXJfaTE2AAYIb3V0ZXJfaTgABwrPOwjsBwMUfwF7An8CQCADRQ0AAkAgBEF+cSIFRQ0AIAQgBUF/aiIGQX5xIgdBA2oiCCAEIAhLGyIIIAdrQX5qIgcgCEEBcSIJayEKIAEgCEEDdCAGQQN0QXBxayIIaiELIAIgCGohDCAEQQN0IQ0gAUEQaiEOIAAgA0EDdGohDyAGQQF2QQFqIgZBA3EiEEEBdCERIBBBf2ohEiAGQXxxIhNBAXQhFEEAIRUgBUEHSSEWIAdBCkkhFyACIQcDQCAAIBVBA3RqIhj9CgMAIRlBACEaQQAhBQJAIBYNAEEAIQVBACEaA0AgByAFaiIGIBkgASAFaiII/QADAP3yAf0LAwAgBkEQaiAZIAhBEGr9AAMA/fIB/QsDACAGQSBqIBkgCEEgav0AAwD98gH9CwMAIAZBMGogGSAIQTBq/QADAP3yAf0LAwAgBUHAAGohBSATIBpBBGoiGkcNAAsgGkF/aiEbIBQhCCAUIQULAkAgEEUNACARIAVqIQggEiAaaiEbIAVBA3QhBSAQIQYDQCAHIAVqIBkgASAFav0AAwD98gH9CwMAIAVBEGohBSAGQX9qIgYNAAsLAkAgCCAETw0AAkAgFw0AIAIgG0EEdCIFaiANIBVsIgZqQRBqIhogD0kgACAMIAVqIAZqIgZJcQ0AIBogCyAFakkgDiAFaiAGSXENACAIQQN0IQUgCCAKaiEIIBj9CgMAIRkgCiEGA0AgByAFaiAZIAEgBWr9AAMA/fIB/QsDACAFQRBqIQUgBkF+aiIGDQALIAlFDQELIAhBA3QhBQNAIAcgBWogGCsDACABIAVqKwMAojkDACAFQQhqIQUgCEEBaiIIIARJDQALCyAHIA1qIQcgFUEBaiIVIANHDQAMAgsLIARFDQBBACETIARBBkkgAiAAIANBA3RqSSAAIAIgBCADbEEDdGoiBUlxIAIgASAEQQN0IhVqSSABIAVJcXJyQQFxIRggBEEESSEbAkADQCAAIBNBA3RqIQYgGEUNAUEAIRoCQCAbDQBBACEFQQAhGgNAIAIgBWoiCCAGKwMAIAEgBWoiBysDAKI5AwAgCEEIaiAGKwMAIAdBCGorAwCiOQMAIAhBEGogBisDACAHQRBqKwMAojkDACAIQRhqIAYrAwAgB0EYaisDAKI5AwAgBUEgaiEFIBpBBGoiGg0ACwsgGkEDdCEFIAQhCANAIAIgBWogBisDACABIAVqKwMAojkDACAFQQhqIQUgCEF/aiIIDQALIAIgFWohAiATQQFqIhMgA0YNAgwACwsgBv0KAwAhGQNAIAIgGSAB/QADAP3yAf0LAwAgAUEQaiEBIAJBEGohAgwACwsL8AcDFH8BewJ/AkAgA0UNAAJAIARBfHEiBUUNACAEIAVBf2oiBkF8cSIHQQVqIgggBCAISxsiCCAHa0F8aiIHIAhBA3EiCWshCiABIAhBAnQgBkECdEFwcWsiCGohCyACIAhqIQwgBEECdCENIAFBEGohDiAAIANBAnRqIQ8gBkECdkEBaiIGQQNxIhBBAnQhESAQQX9qIRIgBkH8////B3EiE0ECdCEUQQAhFSAFQQ1JIRYgB0EMSSEXIAIhBwNAIAAgFUECdGoiGP0JAgAhGUEAIRpBACEFAkAgFg0AQQAhBUEAIRoDQCAHIAVqIgYgGSABIAVqIgj9AAIA/eYB/QsCACAGQRBqIBkgCEEQav0AAgD95gH9CwIAIAZBIGogGSAIQSBq/QACAP3mAf0LAgAgBkEwaiAZIAhBMGr9AAIA/eYB/QsCACAFQcAAaiEFIBMgGkEEaiIaRw0ACyAaQX9qIRsgFCEIIBQhBQsCQCAQRQ0AIBEgBWohCCASIBpqIRsgBUECdCEFIBAhBgNAIAcgBWogGSABIAVq/QACAP3mAf0LAgAgBUEQaiEFIAZBf2oiBg0ACwsCQCAIIARPDQACQCAXDQAgAiAbQQR0IgVqIA0gFWwiBmpBEGoiGiAPSSAAIAwgBWogBmoiBklxDQAgGiALIAVqSSAOIAVqIAZJcQ0AIAhBAnQhBSAIIApqIQggGP0JAgAhGSAKIQYDQCAHIAVqIBkgASAFav0AAgD95gH9CwIAIAVBEGohBSAGQXxqIgYNAAsgCUUNAQsgCEECdCEFA0AgByAFaiAYKgIAIAEgBWoqAgCUOAIAIAVBBGohBSAIQQFqIgggBEkNAAsLIAcgDWohByAVQQFqIhUgA0cNAAwCCwsgBEUNAEEAIRMgBEEISSACIAAgA0ECdGpJIAAgAiAEIANsQQJ0aiIFSXEgAiABIARBAnQiFWpJIAEgBUlxcnJBAXEhGCAEQQRJIRsCQANAIAAgE0ECdGohBiAYRQ0BQQAhGgJAIBsNAEEAIQVBACEaA0AgAiAFaiIIIAYqAgAgASAFaiIHKgIAlDgCACAIQQRqIAYqAgAgB0EEaioCAJQ4AgAgCEEIaiAGKgIAIAdBCGoqAgCUOAIAIAhBDGogBioCACAHQQxqKgIAlDgCACAFQRBqIQUgGkEEaiIaDQALCyAaQQJ0IQUgBCEIA0AgAiAFaiAGKgIAIAEgBWoqAgCUOAIAIAVBBGohBSAIQX9qIggNAAsgAiAVaiECIBNBAWoiEyADRg0CDAALCyAG/QkCACEZA0AgAiAZIAH9AAIA/eYB/QsCACABQRBqIQEgAkEQaiECDAALCwu2BAYFfwJ8AX8JewF/AnwCQCADRQ0AIARFDQBBACEFIARBfnEhBiAEQQJJIAIgASAEQQR0IgdqSSABIAIgBCADbEEEdGpJcSAHQQBIcnJBAXEhCEEAIQkDQCAAIAlBBHRqIgcrAwAhCiAHQQhqKwMAIQtBACEMAkACQCAIDQAgC/0UIQ0gCv0UIQ4gCSAEbP0RIQ/9DAAAAAABAAAAAAAAAAAAAAAhECAGIQcDQCACIBAgD/2uAUEB/asBIhH9GwBBA3RqIA4gASAQQQH9qwEiEv0bAUEDdGogASAS/RsAQQN0av1dAwD9VwMAASIT/fIBIA0gASAS/QwBAAAAAQAAAAEAAAABAAAAIhT9UCIS/RsBQQN0aiABIBL9GwBBA3Rq/V0DAP1XAwABIhL98gH98QEiFf0hADkDACACIBEgFP1QIhT9GwBBA3RqIA0gE/3yASAOIBL98gH98AEiEv0hADkDACACIBH9GwFBA3RqIBX9IQE5AwAgAiAU/RsBQQN0aiAS/SEBOQMAIBD9DAIAAAACAAAAAgAAAAIAAAD9rgEhECAHQX5qIgcNAAsgBiEMIAQgBkYNAQsgBCAMayEWIAEgDEEEdGohByACIAwgBWpBBHRqIQwDQCAMQQhqIAsgBysDACIXoiAKIAdBCGorAwAiGKKgOQMAIAwgCiAXoiALIBiioTkDACAHQRBqIQcgDEEQaiEMIBZBf2oiFg0ACwsgBSAEaiEFIAlBAWoiCSADRw0ACwsLwgUGBX8CfQF/CXsBfwJ9AkAgA0UNACAERQ0AQQAhBSACIAEgBEEDdCIGakkgASACIAQgA2xBA3RqSXEgBkEASHIhByAEQXxxIQhBACEJA0AgACAJQQN0aiIGKgIAIQogBkEEaioCACELQQAhDAJAAkAgBEEESSAHckEBcQ0AIAv9EyENIAr9EyEOIAkgBGz9ESEP/QwAAAAAAQAAAAIAAAADAAAAIRAgCCEGA0AgAiAQIA/9rgFBAf2rASIR/RsAQQJ0aiAOIAEgEEEB/asBIhL9GwNBAnRqIAEgEv0bAkECdGogASAS/RsBQQJ0aiABIBL9GwBBAnRq/VwCAP1WAgAB/VYCAAL9VgIAAyIT/eYBIA0gASAS/QwBAAAAAQAAAAEAAAABAAAAIhT9UCIS/RsDQQJ0aiABIBL9GwJBAnRqIAEgEv0bAUECdGogASAS/RsAQQJ0av1cAgD9VgIAAf1WAgAC/VYCAAMiFf3mAf3lASIS/R8AOAIAIAIgESAU/VAiFP0bAEECdGogDSAT/eYBIA4gFf3mAf3kASIT/R8AOAIAIAIgEf0bAUECdGogEv0fATgCACACIBT9GwFBAnRqIBP9HwE4AgAgAiAR/RsCQQJ0aiAS/R8COAIAIAIgFP0bAkECdGogE/0fAjgCACACIBH9GwNBAnRqIBL9HwM4AgAgAiAU/RsDQQJ0aiAT/R8DOAIAIBD9DAQAAAAEAAAABAAAAAQAAAD9rgEhECAGQXxqIgYNAAsgCCEMIAQgCEYNAQsgBCAMayEWIAEgDEEDdGohBiACIAwgBWpBA3RqIQwDQCAMQQRqIAsgBioCACIXlCAKIAZBBGoqAgAiGJSSOAIAIAwgCiAXlCALIBiUkzgCACAGQQhqIQYgDEEIaiEMIBZBf2oiFg0ACwsgBSAEaiEFIAlBAWoiCSADRw0ACwsL7AcDFH8BewJ/AkAgA0UNAAJAIARBfnEiBUUNACAEIAVBf2oiBkF+cSIHQQNqIgggBCAISxsiCCAHa0F+aiIHIAhBAXEiCWshCiABIAhBA3QgBkEDdEFwcWsiCGohCyACIAhqIQwgBEEDdCENIAFBEGohDiAAIANBA3RqIQ8gBkEBdkEBaiIGQQNxIhBBAXQhESAQQX9qIRIgBkF8cSITQQF0IRRBACEVIAVBB0khFiAHQQpJIRcgAiEHA0AgACAVQQN0aiIY/QoDACEZQQAhGkEAIQUCQCAWDQBBACEFQQAhGgNAIAcgBWoiBiABIAVqIgj9AAMAIBn91QH9CwMAIAZBEGogCEEQav0AAwAgGf3VAf0LAwAgBkEgaiAIQSBq/QADACAZ/dUB/QsDACAGQTBqIAhBMGr9AAMAIBn91QH9CwMAIAVBwABqIQUgEyAaQQRqIhpHDQALIBpBf2ohGyAUIQggFCEFCwJAIBBFDQAgESAFaiEIIBIgGmohGyAFQQN0IQUgECEGA0AgByAFaiABIAVq/QADACAZ/dUB/QsDACAFQRBqIQUgBkF/aiIGDQALCwJAIAggBE8NAAJAIBcNACACIBtBBHQiBWogDSAVbCIGakEQaiIaIA9JIAAgDCAFaiAGaiIGSXENACAaIAsgBWpJIA4gBWogBklxDQAgCEEDdCEFIAggCmohCCAY/QoDACEZIAohBgNAIAcgBWogASAFav0AAwAgGf3VAf0LAwAgBUEQaiEFIAZBfmoiBg0ACyAJRQ0BCyAIQQN0IQUDQCAHIAVqIAEgBWopAwAgGCkDAH43AwAgBUEIaiEFIAhBAWoiCCAESQ0ACwsgByANaiEHIBVBAWoiFSADRw0ADAILCyAERQ0AQQAhEyAEQQhJIAIgACADQQN0akkgACACIAQgA2xBA3RqIgVJcSACIAEgBEEDdCIVakkgASAFSXFyckEBcSEYIARBBEkhGwJAA0AgACATQQN0aiEGIBhFDQFBACEaAkAgGw0AQQAhBUEAIRoDQCACIAVqIgggASAFaiIHKQMAIAYpAwB+NwMAIAhBCGogB0EIaikDACAGKQMAfjcDACAIQRBqIAdBEGopAwAgBikDAH43AwAgCEEYaiAHQRhqKQMAIAYpAwB+NwMAIAVBIGohBSAaQQRqIhoNAAsLIBpBA3QhBSAEIQgDQCACIAVqIAEgBWopAwAgBikDAH43AwAgBUEIaiEFIAhBf2oiCA0ACyACIBVqIQIgE0EBaiITIANGDQIMAAsLIAb9CgMAIRkDQCACIAH9AAMAIBn91QH9CwMAIAFBEGohASACQRBqIQIMAAsLC/AHAxR/AXsCfwJAIANFDQACQCAEQXxxIgVFDQAgBCAFQX9qIgZBfHEiB0EFaiIIIAQgCEsbIgggB2tBfGoiByAIQQNxIglrIQogASAIQQJ0IAZBAnRBcHFrIghqIQsgAiAIaiEMIARBAnQhDSABQRBqIQ4gACADQQJ0aiEPIAZBAnZBAWoiBkEDcSIQQQJ0IREgEEF/aiESIAZB/P///wdxIhNBAnQhFEEAIRUgBUENSSEWIAdBDEkhFyACIQcDQCAAIBVBAnRqIhj9CQIAIRlBACEaQQAhBQJAIBYNAEEAIQVBACEaA0AgByAFaiIGIAEgBWoiCP0AAgAgGf21Af0LAgAgBkEQaiAIQRBq/QACACAZ/bUB/QsCACAGQSBqIAhBIGr9AAIAIBn9tQH9CwIAIAZBMGogCEEwav0AAgAgGf21Af0LAgAgBUHAAGohBSATIBpBBGoiGkcNAAsgGkF/aiEbIBQhCCAUIQULAkAgEEUNACARIAVqIQggEiAaaiEbIAVBAnQhBSAQIQYDQCAHIAVqIAEgBWr9AAIAIBn9tQH9CwIAIAVBEGohBSAGQX9qIgYNAAsLAkAgCCAETw0AAkAgFw0AIAIgG0EEdCIFaiANIBVsIgZqQRBqIhogD0kgACAMIAVqIAZqIgZJcQ0AIBogCyAFakkgDiAFaiAGSXENACAIQQJ0IQUgCCAKaiEIIBj9CQIAIRkgCiEGA0AgByAFaiABIAVq/QACACAZ/bUB/QsCACAFQRBqIQUgBkF8aiIGDQALIAlFDQELIAhBAnQhBQNAIAcgBWogASAFaigCACAYKAIAbDYCACAFQQRqIQUgCEEBaiIIIARJDQALCyAHIA1qIQcgFUEBaiIVIANHDQAMAgsLIARFDQBBACETIARBCEkgAiAAIANBAnRqSSAAIAIgBCADbEECdGoiBUlxIAIgASAEQQJ0IhVqSSABIAVJcXJyQQFxIRggBEEESSEbAkADQCAAIBNBAnRqIQYgGEUNAUEAIRoCQCAbDQBBACEFQQAhGgNAIAIgBWoiCCABIAVqIgcoAgAgBigCAGw2AgAgCEEEaiAHQQRqKAIAIAYoAgBsNgIAIAhBCGogB0EIaigCACAGKAIAbDYCACAIQQxqIAdBDGooAgAgBigCAGw2AgAgBUEQaiEFIBpBBGoiGg0ACwsgGkECdCEFIAQhCANAIAIgBWogASAFaigCACAGKAIAbDYCACAFQQRqIQUgCEF/aiIIDQALIAIgFWohAiATQQFqIhMgA0YNAgwACwsgBv0JAgAhGQNAIAIgAf0AAgAgGf21Af0LAgAgAUEQaiEBIAJBEGohAgwACwsLgQgDFH8BewJ/AkAgA0UNAAJAIARBeHEiBUUNACAEIAVBf2oiBkF4cSIHQQlqIgggBCAISxsiCCAHa0F4aiIJIAhBB3EiCmshCyABIAhBAXQgBkEBdEFwcWsiCGohDCACIAhqIQ0gBEEBdCEOIAFBEGohDyAAIANBAXRqIRAgBkEDdkEBaiIGQQNxIhFBA3QhEiARQX9qIRMgBkH8////A3EiFEEDdCEVQQAhFiAFQRlJIRcgAiEHA0AgACAWQQF0aiIY/QgBACEZQQAhGkEAIQUCQCAXDQBBACEFQQAhGgNAIAcgBWoiBiABIAVqIgj9AAEAIBn9lQH9CwEAIAZBEGogCEEQav0AAQAgGf2VAf0LAQAgBkEgaiAIQSBq/QABACAZ/ZUB/QsBACAGQTBqIAhBMGr9AAEAIBn9lQH9CwEAIAVBwABqIQUgFCAaQQRqIhpHDQALIBpBf2ohGyAVIQggFSEFCwJAIBFFDQAgEiAFaiEIIBMgGmohGyAFQQF0IQUgESEGA0AgByAFaiABIAVq/QABACAZ/ZUB/QsBACAFQRBqIQUgBkF/aiIGDQALCwJAIAggBE8NAAJAIAlBEEkNACACIBtBBHQiBWogDiAWbCIGakEQaiIaIBBJIAAgDSAFaiAGaiIGSXENACAaIAwgBWpJIA8gBWogBklxDQAgCEEBdCEFIAggC2ohCCAY/QgBACEZIAshBgNAIAcgBWogASAFav0AAQAgGf2VAf0LAQAgBUEQaiEFIAZBeGoiBg0ACyAKRQ0BCyAIQQF0IQUDQCAHIAVqIAEgBWovAQAgGC8BAGw7AQAgBUECaiEFIAhBAWoiCCAESQ0ACwsgByAOaiEHIBZBAWoiFiADRw0ADAILCyAERQ0AIARBBHEhFCAEQQNxIRZBACEYIARBCEkgAiAAIANBAXRqSSAAIAIgBCADbEEBdGoiBUlxIAIgASAEQQF0IhFqSSABIAVJcXJyQQFxIRsCQANAIAAgGEEBdGohBSAbRQ0BQQAhGgJAIARBBEkNAEEAIQZBACEaA0AgAiAGaiIIIAEgBmoiBy8BACAFLwEAbDsBACAIQQJqIAdBAmovAQAgBS8BAGw7AQAgCEEEaiAHQQRqLwEAIAUvAQBsOwEAIAhBBmogB0EGai8BACAFLwEAbDsBACAGQQhqIQYgFCAaQQRqIhpHDQALCwJAIBZFDQAgGkEBdCEGIBYhCANAIAIgBmogASAGai8BACAFLwEAbDsBACAGQQJqIQYgCEF/aiIIDQALCyACIBFqIQIgGEEBaiIYIANGDQIMAAsLIAX9CAEAIRkDQCACIAH9AAEAIBn9lQH9CwEAIAFBEGohASACQRBqIQIMAAsLC40KAw5/A3sDfwJAIANFDQACQCAEQXBxIgVFDQAgBCAFQX9qQXBxIgZBEWoiByAEIAdLGyIHIAZrQXBqIgggB0EPcSIJayEKIAdBcHEgBmtBcGohCyABIAhqIQwgAiAIaiENIAJBEGohDiABQRBqIQ8gACADaiEQQQAhEQNAIAAgEWoiEv0HAAAiE/0MAAAAAAAAAAAAAAAAAAAAAP0NCBEJEwoVCxcMGQ0bDh0PHyEUIBP9iQEhFSAOIQcgDyEWQQAhBgNAIAIgBmogASAGav0AAAAiEyAT/Q0AAAEAAgADAAQABQAGAAcAIBX9lQEgEyAT/Q0IAAkACgALAAwADQAOAA8AIBT9lQH9DQACBAYICgwOEBIUFhgaHB79CwAAIAciF0EQaiEHIBYiGEEQaiEWIAZBEGoiBiAFSQ0ACwJAIAYgBE8NAAJAIAhBEEkNACACIAZqIgcgEEkgACANIAZqIhZJcQ0AIAcgDCAGakkgASAGaiAWSXENACALIAZqIQYgEv0HAAAhEyAKIQcDQCAXIBj9AAAAIhT9FgAgE/0WAGz9DyAU/RYBIBP9FgFs/RcBIBT9FgIgE/0WAmz9FwIgFP0WAyAT/RYDbP0XAyAU/RYEIBP9FgRs/RcEIBT9FgUgE/0WBWz9FwUgFP0WBiAT/RYGbP0XBiAU/RYHIBP9Fgds/RcHIBT9FgggE/0WCGz9FwggFP0WCSAT/RYJbP0XCSAU/RYKIBP9Fgps/RcKIBT9FgsgE/0WC2z9FwsgFP0WDCAT/RYMbP0XDCAU/RYNIBP9Fg1s/RcNIBT9Fg4gE/0WDmz9Fw4gFP0WDyAT/RYPbP0XD/0LAAAgF0EQaiEXIBhBEGohGCAHQXBqIgcNAAsgCUUNAQsDQCACIAZqIAEgBmotAAAgEi0AAGw6AAAgBkEBaiIGIARJDQALCyAOIARqIQ4gAiAEaiECIA0gBGohDSARQQFqIhEgA0cNAAwCCwsgBEUNACAEQQxxIRggBEEDcSESQQAhBSAEQRBJIAIgACADakkgACACIAQgA2xqIgZJcSACIAEgBGpJIAEgBklxcnJBAXEhDiAEQQRJIRECQANAIAAgBWohByAORQ0BQQAhBgJAIBENAEEAIQYDQCACIAZqIhYgASAGaiIXLQAAIActAABsOgAAIBZBAWogF0EBai0AACAHLQAAbDoAACAWQQJqIBdBAmotAAAgBy0AAGw6AAAgFkEDaiAXQQNqLQAAIActAABsOgAAIBggBkEEaiIGRw0ACwsCQCASRQ0AIBIhFgNAIAIgBmogASAGai0AACAHLQAAbDoAACAGQQFqIQYgFkF/aiIWDQALCyACIARqIQIgBUEBaiIFIANGDQIMAAsLIAf9BwAAIRMDQCACIAH9AAAAIhT9FgAgE/0WAGz9DyAU/RYBIBP9FgFs/RcBIBT9FgIgE/0WAmz9FwIgFP0WAyAT/RYDbP0XAyAU/RYEIBP9FgRs/RcEIBT9FgUgE/0WBWz9FwUgFP0WBiAT/RYGbP0XBiAU/RYHIBP9Fgds/RcHIBT9FgggE/0WCGz9FwggFP0WCSAT/RYJbP0XCSAU/RYKIBP9Fgps/RcKIBT9FgsgE/0WC2z9FwsgFP0WDCAT/RYMbP0XDCAU/RYNIBP9Fg1s/RcNIBT9Fg4gE/0WDmz9Fw4gFP0WDyAT/RYPbP0XD/0LAAAgAUEQaiEBIAJBEGohAgwACwsL",vt=null;function Or(){if(vt)return vt;let A=atob($6),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),vt}function db(A,r,I,e,t){Or().exports.outer_f64(A,r,I,e,t)}function bb(A,r,I,e,t){Or().exports.outer_f32(A,r,I,e,t)}function pb(A,r,I,e,t){Or().exports.outer_c128(A,r,I,e,t)}function wb(A,r,I,e,t){Or().exports.outer_c64(A,r,I,e,t)}function pC(A,r,I,e,t){Or().exports.outer_i64(A,r,I,e,t)}function wC(A,r,I,e,t){Or().exports.outer_i32(A,r,I,e,t)}function NC(A,r,I,e,t){Or().exports.outer_i16(A,r,I,e,t)}function FC(A,r,I,e,t){Or().exports.outer_i8(A,r,I,e,t)}var A1=128,r1={float64:db,float32:bb,complex128:pb,complex64:wb,int64:pC,uint64:pC,int32:wC,uint32:wC,int16:NC,uint16:NC,int8:FC,uint8:FC},I1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},e1={complex128:2,complex64:2};function Nb(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size;if(I+e<A1*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=r1[t],n=I1[t];if(!o||!n)return null;let g=e1[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*g*i,a=e*g*i,B=I*e*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*g),C=r.data.subarray(r.offset*g,r.offset*g+e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*e*g,n);return d.fromData(m,[I,e],t)}var t1="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",Xt=null;function Zr(){if(Xt)return Xt;let A=atob(t1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Xt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Xt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Xt}function Fb(A,r,I,e,t){Zr().exports.vecdot_f64(A,r,I,e,t)}function Gb(A,r,I,e,t){Zr().exports.vecdot_f32(A,r,I,e,t)}function Sb(A,r,I,e,t){Zr().exports.vecdot_c128(A,r,I,e,t)}function Rb(A,r,I,e,t){Zr().exports.vecdot_c64(A,r,I,e,t)}function GC(A,r,I,e,t){Zr().exports.vecdot_i64(A,r,I,e,t)}function SC(A,r,I,e,t){Zr().exports.vecdot_i32(A,r,I,e,t)}function RC(A,r,I,e,t){Zr().exports.vecdot_i16(A,r,I,e,t)}function kC(A,r,I,e,t){Zr().exports.vecdot_i8(A,r,I,e,t)}var o1=256,n1={float64:Fb,float32:Gb,complex128:Sb,complex64:Rb,int64:GC,uint64:GC,int32:SC,uint32:SC,int16:RC,uint16:RC,int8:kC,uint8:kC},i1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},g1={complex128:2,complex64:2};function kb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1];if(I!==r.shape[0]||e!==r.shape[1]||I*e<o1*Y.thresholdMultiplier)return null;let t=IA(A.dtype,r.dtype),o=n1[t],n=i1[t];if(!o||!n)return null;let g=g1[t]??1,i=n.BYTES_PER_ELEMENT,Q=I*e*g*i,a=I*e*g*i,B=I*g*i;J(Q+a+B),U();let s=A.data.subarray(A.offset*g,A.offset*g+I*e*g),C=r.data.subarray(r.offset*g,r.offset*g+I*e*g),E=q(s),u=q(C),f=_(B);o(E,u,f,I,e);let m=v(f,I*g,n);return d.fromData(m,[I],t)}var Q1="AGFzbQEAAAABCAFgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBxgCCXZkb3RfYzEyOAAACHZkb3RfYzY0AAEKsQICngEBBnwCQAJAIAMNAEQAAAAAAAAAACEERAAAAAAAAAAAIQUMAQtEAAAAAAAAAAAhBUQAAAAAAAAAACEEA0AgBCAAKwMAIgYgAUEIaisDACIHoiAAQQhqKwMAIgggASsDACIJoqGgIQQgBSAGIAmiIAggB6KgoCEFIAFBEGohASAAQRBqIQAgA0F/aiIDDQALCyACIAQ5AwggAiAFOQMAC44BAQZ9AkACQCADDQBDAAAAACEEQwAAAAAhBQwBC0MAAAAAIQVDAAAAACEEA0AgBCAAKgIAIgYgAUEEaioCACIHlCAAQQRqKgIAIgggASoCACIJlJOSIQQgBSAGIAmUIAggB5SSkiEFIAFBCGohASAAQQhqIQAgA0F/aiIDDQALCyACIAQ4AgQgAiAFOAIACw==",Tt=null;function qb(){if(Tt)return Tt;let A=atob(Q1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tt}function Mb(A,r,I,e){qb().exports.vdot_c128(A,r,I,e)}function xb(A,r,I,e){qb().exports.vdot_c64(A,r,I,e)}var a1=64,B1={complex128:Mb,complex64:xb},s1={complex128:Float64Array,complex64:Float32Array};function Jb(A,r){if(A.ndim!==1||r.ndim!==1||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0];if(I!==r.shape[0]||I<a1*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=B1[e],o=s1[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*2*n,i=I*2*n,Q=2*n;J(g+i+Q),U();let a=A.data.subarray(A.offset*2,A.offset*2+I*2),B=r.data.subarray(r.offset*2,r.offset*2+I*2),s=q(a),C=q(B),E=_(Q);t(s,C,E,I);let u=v(E,2,o);return new T(Number(u[0]),Number(u[1]))}var C1="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",Pt=null;function zr(){if(Pt)return Pt;let A=atob(C1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pt}function Ub(A,r,I,e,t,o,n){zr().exports.kron_f64(A,r,I,e,t,o,n)}function Lb(A,r,I,e,t,o,n){zr().exports.kron_f32(A,r,I,e,t,o,n)}function Hb(A,r,I,e,t,o,n){zr().exports.kron_c128(A,r,I,e,t,o,n)}function _b(A,r,I,e,t,o,n){zr().exports.kron_c64(A,r,I,e,t,o,n)}function qC(A,r,I,e,t,o,n){zr().exports.kron_i64(A,r,I,e,t,o,n)}function MC(A,r,I,e,t,o,n){zr().exports.kron_i32(A,r,I,e,t,o,n)}function xC(A,r,I,e,t,o,n){zr().exports.kron_i16(A,r,I,e,t,o,n)}function JC(A,r,I,e,t,o,n){zr().exports.kron_i8(A,r,I,e,t,o,n)}var E1=64,u1={float64:Ub,float32:Lb,complex128:Hb,complex64:_b,int64:qC,uint64:qC,int32:MC,uint32:MC,int16:xC,uint16:xC,int8:JC,uint8:JC},c1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},D1={complex128:2,complex64:2};function Yb(A,r){if(A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let I=A.shape[0],e=A.shape[1],t=r.shape[0],o=r.shape[1],n=I*t,g=e*o;if(n*g<E1*Y.thresholdMultiplier)return null;let i=IA(A.dtype,r.dtype),Q=u1[i],a=c1[i];if(!Q||!a)return null;let B=D1[i]??1,s=a.BYTES_PER_ELEMENT,C=I*e*B*s,E=t*o*B*s,u=n*g*B*s;J(C+E+u),U();let f=A.data.subarray(A.offset*B,A.offset*B+I*e*B),m=r.data.subarray(r.offset*B,r.offset*B+t*o*B),c=q(f),D=q(m),y=_(u);Q(c,D,y,I,e,t,o);let l=v(y,n*g*B,a);return d.fromData(l,[n,g],i)}var f1="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",Kt=null;function jr(){if(Kt)return Kt;let A=atob(f1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kt}function vb(A,r,I,e){jr().exports.cross_f64(A,r,I,e)}function Xb(A,r,I,e){jr().exports.cross_f32(A,r,I,e)}function Tb(A,r,I,e){jr().exports.cross_c128(A,r,I,e)}function Pb(A,r,I,e){jr().exports.cross_c64(A,r,I,e)}function UC(A,r,I,e){jr().exports.cross_i64(A,r,I,e)}function LC(A,r,I,e){jr().exports.cross_i32(A,r,I,e)}function HC(A,r,I,e){jr().exports.cross_i16(A,r,I,e)}function _C(A,r,I,e){jr().exports.cross_i8(A,r,I,e)}var m1=8,y1={float64:vb,float32:Xb,complex128:Tb,complex64:Pb,int64:UC,uint64:UC,int32:LC,uint32:LC,int16:HC,uint16:HC,int8:_C,uint8:_C},l1={float64:Float64Array,float32:Float32Array,complex128:Float64Array,complex64:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},h1={complex128:2,complex64:2};function Kb(A,r,I){if(I<m1*Y.thresholdMultiplier||!A.isCContiguous||!r.isCContiguous)return null;let e=IA(A.dtype,r.dtype),t=y1[e],o=l1[e];if(!t||!o)return null;let n=h1[e]??1,g=o.BYTES_PER_ELEMENT,i=I*3,Q=i*n*g,a=i*n*g,B=i*n*g;J(Q+a+B),U();let s=A.data.subarray(A.offset*n,A.offset*n+i*n),C=r.data.subarray(r.offset*n,r.offset*n+i*n),E=q(s),u=q(C),f=_(B);t(E,u,f,I);let m=v(f,i*n,o);return d.fromData(m,[...A.shape],e)}var d1="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",Vt=null;function b1(){if(Vt)return Vt;let A=atob(d1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vt}function Vb(A,r,I,e,t,o,n){b1().exports.qr_f64(A,r,I,e,t,o,n)}var Wb=4;function Ob(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<Wb*Y.thresholdMultiplier||I<Wb*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*e,n=e*I,g=e,i=e,a=(t+o+n+g+i)*8;J(a),U();let B=new Float64Array(t);for(let l=0;l<r;l++)for(let h=0;h<I;h++)B[l*I+h]=Number(A.get(l,h));let s=q(B),C=_(o*8),E=_(n*8),u=_(g*8),f=_(i*8);Vb(s,C,E,u,f,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),D=d.fromData(m,[r,e],"float64"),y=d.fromData(c,[e,I],"float64");return{q:D,r:y}}var p1="AGFzbQEAAAABCAFgA39/fwF/Ag8BA2VudgZtZW1vcnkCABADAwIAAAYJAX8BQYCAwAALBx8CDGNob2xlc2t5X2Y2NAAADGNob2xlc2t5X2YzMgABCpcMApcGBRN/AXwCfwF8A38CQCACRQ0AQQAhAwJAIAIgAmwiBEEBIARBAUsbQQN0IgRFDQAgAUEAIAT8CwALIAJBA3QhBSACQQFqIQYgASEHQQAhCEEBIQlBACEKA0AgCiILQQNxIQwgCyACbCENIAtBAWohCiALQXxxIQ4gA0EDcSEPIAEgCyAGbEEDdCIEaiEQIAAgBGohEUEAIRIgC0EESSETQQAhFEEAIRUDQAJAAkACQAJAAkAgCyAVRg0AAkAgFQ0ARAAAAAAAAAAAIRYMBAsgFUEETw0BRAAAAAAAAAAAIRZBACEXDAILAkACQCALDQBEAAAAAAAAAAAhFgwBC0EAIRhEAAAAAAAAAAAhFgJAIBMNACAHIQQDQCAWIAQrAwAiGSAZoqAgBEEIaisDACIWIBaioCAEQRBqKwMAIhYgFqKgIARBGGorAwAiFiAWoqAhFiAEQSBqIQQgDiAYQQRqIhhHDQALCyAMRQ0AIAcgGEEDdGohBCAPIRgDQCAWIAQrAwAiGSAZoqAhFiAEQQhqIQQgGEF/aiIYDQALCwJAIBErAwAgFqEiFkQAAAAAAAAAAGVFDQBBAQ8LIBAgFp85AwAMAwsgFUF8cSEaRAAAAAAAAAAAIRZBACEXIBQhGyAIIRwDQCAWIAEgHGoiBCsDACABIBtqIhgrAwCioCAEQQhqKwMAIBhBCGorAwCioCAEQRBqKwMAIBhBEGorAwCioCAEQRhqKwMAIBhBGGorAwCioCEWIBtBIGohGyAcQSBqIRwgGiAXQQRqIhdHDQALCyAVQQNxRQ0AIBJBA3EhGCABIBdBA3RqIQQDQCAWIAQgCGorAwAgBCAUaisDAKKgIRYgBEEIaiEEIBhBf2oiGA0ACwsCQCABIBUgBmxBA3RqKwMAIhlEAAAAAAAAAABiDQBBAQ8LIAEgFSANakEDdCIEaiAAIARqKwMAIBahIBmjOQMACyASQQFqIRIgFCAFaiEUIBVBAWoiFSAJRw0ACyADQQFqIQMgByAFaiEHIAggBWohCCAJQQFqIQkgCiACRw0ACwtBAAv7BQUTfwF9An8BfQN/AkAgAkUNAEEAIQMCQCACIAJsIgRBASAEQQFLG0ECdCIERQ0AIAFBACAE/AsACyACQQJ0IQUgAkEBaiEGIAEhB0EAIQhBASEJQQAhCgNAIAoiC0EDcSEMIAsgAmwhDSALQQFqIQogC0F8cSEOIANBA3EhDyABIAsgBmxBAnQiBGohECAAIARqIRFBACESIAtBBEkhE0EAIRRBACEVA0ACQAJAAkACQAJAIAsgFUYNAAJAIBUNAEMAAAAAIRYMBAsgFUEETw0BQwAAAAAhFkEAIRcMAgsCQAJAIAsNAEMAAAAAIRYMAQtBACEYQwAAAAAhFgJAIBMNACAHIQQDQCAWIAQqAgAiGSAZlJIgBEEEaioCACIWIBaUkiAEQQhqKgIAIhYgFpSSIARBDGoqAgAiFiAWlJIhFiAEQRBqIQQgDiAYQQRqIhhHDQALCyAMRQ0AIAcgGEECdGohBCAPIRgDQCAWIAQqAgAiGSAZlJIhFiAEQQRqIQQgGEF/aiIYDQALCwJAIBEqAgAgFpMiFkMAAAAAX0UNAEEBDwsgECAWkTgCAAwDCyAVQXxxIRpDAAAAACEWQQAhFyAUIRsgCCEcA0AgFiABIBxqIgQqAgAgASAbaiIYKgIAlJIgBEEEaioCACAYQQRqKgIAlJIgBEEIaioCACAYQQhqKgIAlJIgBEEMaioCACAYQQxqKgIAlJIhFiAbQRBqIRsgHEEQaiEcIBogF0EEaiIXRw0ACwsgFUEDcUUNACASQQNxIRggASAXQQJ0aiEEA0AgFiAEIAhqKgIAIAQgFGoqAgCUkiEWIARBBGohBCAYQX9qIhgNAAsLAkAgASAVIAZsQQJ0aioCACIZQwAAAABcDQBBAQ8LIAEgFSANakECdCIEaiAAIARqKgIAIBaTIBmVOAIACyASQQFqIRIgFCAFaiEUIBVBAWoiFSAJRw0ACyADQQFqIQMgByAFaiEHIAggBWohCCAJQQFqIQkgCiACRw0ACwtBAAs=",Wt=null;function w1(){if(Wt)return Wt;let A=atob(p1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wt=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wt.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wt}function Zb(A,r,I){return w1().exports.cholesky_f64(A,r,I)}var N1=4;function zb(A){if(A.ndim!==2)return null;let r=A.shape[0];if(r!==A.shape[1]||r<N1*Y.thresholdMultiplier)return null;let I=r*r,t=I*2*8;J(t),U();let o=new Float64Array(I);for(let a=0;a<r;a++)for(let B=0;B<r;B++)o[a*r+B]=Number(A.get(a,B));let n=q(o),g=_(I*8);if(Zb(n,g,r)!==0)throw new Error("cholesky: matrix is not positive definite");let Q=v(g,I,Float64Array);return d.fromData(Q,[r,r],"float64")}var F1="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",Ot=null;function G1(){if(Ot)return Ot;let A=atob(F1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ot=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ot.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ot}function jb(A,r,I,e,t,o,n){G1().exports.svd_f64(A,r,I,e,t,o,n)}var $b=4;function Ap(A){if(A.ndim!==2)return null;let r=A.shape[0],I=A.shape[1];if(r<$b*Y.thresholdMultiplier||I<$b*Y.thresholdMultiplier)return null;let e=Math.min(r,I),t=r*I,o=r*r,n=e,g=I*I,i=r*I+I*I,a=(t+o+n+g+i)*8;J(a),U();let B=new Float64Array(t);for(let b=0;b<r;b++)for(let p=0;p<I;p++)B[b*I+p]=Number(A.get(b,p));let s=q(B),C=_(o*8),E=_(n*8),u=_(g*8),f=_(i*8);jb(s,C,E,u,f,r,I);let m=v(C,o,Float64Array),c=v(E,n,Float64Array),D=v(u,g,Float64Array),y=d.fromData(m,[r,r],"float64"),l=d.fromData(c,[e],"float64"),h=d.fromData(D,[I,I],"float64");return{u:y,s:l,vt:h}}var S1=new Int32Array(1),R1=new Uint32Array(1),k1=new Int16Array(1),q1=new Uint16Array(1),M1=new Int8Array(1),x1=new Uint8Array(1),J1={int32:S1,uint32:R1,int16:k1,uint16:q1,int8:M1,uint8:x1};function ir(A){return J1[A]??null}function mr(A,r){if(A instanceof T||r instanceof T){let I=A instanceof T?A:new T(Number(A),0),e=r instanceof T?r:new T(Number(r),0);return I.mul(e)}return typeof A=="bigint"&&typeof r=="bigint"?Number(A*r):Number(A)*Number(r)}function U1(A,r,I,e,t,o,n,g,i){for(let Q=0;Q<I;Q++)for(let a=0;a<o;a++)for(let B=0;B<n;B++){let s=0;for(let C=0;C<g;C++)s+=A[r+Q*g+C]*e[t+a*g*n+C*n+B];i[Q*o*n+a*n+B]=s}}function L1(A,r,I,e,t,o,n,g,i,Q){for(let a=0;a<I;a++)for(let B=0;B<n;B++){let s=0;for(let E=0;E<i;E++){let u=e===1?E:a*i+E,f=g===1?E:B*i+E;s+=A[r+u]*t[o+f]}let C=I===1?B:a*n+B;Q[C]=s}}function H1(A,r,I,e,t,o,n,g,i,Q,a,B){for(let E=0;E<I*e;E++)a[E]=0;let s=A==="transpose",C=r==="transpose";if(!s&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[E*g+m]??0)*(i[m*Q+u]??0);a[E*B+u]=o*f}else if(s&&!C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[m*g+E]??0)*(i[m*Q+u]??0);a[E*B+u]=o*f}else if(!s&&C)for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[E*g+m]??0)*(i[u*Q+m]??0);a[E*B+u]=o*f}else for(let E=0;E<I;E++)for(let u=0;u<e;u++){let f=0;for(let m=0;m<t;m++)f+=(n[m*g+E]??0)*(i[u*Q+m]??0);a[E*B+u]=o*f}}function aI(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0){let o=I===0?A.get():null,n=e===0?r.get():null;if(I===0&&e===0)return mr(o,n);if(I===0){let g=IA(A.dtype,r.dtype),i=d.zeros([...r.shape],g),Q=(a,B)=>{let s=new Array(B.length),C=a;for(let E=B.length-1;E>=0;E--)s[E]=C%B[E],C=Math.floor(C/B[E]);return s};for(let a=0;a<r.size;a++){let B=Q(a,r.shape),s=r.get(...B);i.set(B,mr(o,s))}return i}else{let g=IA(A.dtype,r.dtype),i=d.zeros([...A.shape],g),Q=(a,B)=>{let s=new Array(B.length),C=a;for(let E=B.length-1;E>=0;E--)s[E]=C%B[E],C=Math.floor(C/B[E]);return s};for(let a=0;a<A.size;a++){let B=Q(a,A.shape),s=A.get(...B);i.set(B,mr(s,n))}return i}}if(I===1&&e===1){if(A.shape[0]!==r.shape[0])throw new Error(`dot: incompatible shapes (${A.shape[0]},) and (${r.shape[0]},)`);let o=ag(A,r);if(o!==null)return o;let n=A.shape[0];if(t){let a=0,B=0;for(let s=0;s<n;s++){let C=A.get(s),E=r.get(s),u=mr(C,E);u instanceof T?(a+=u.re,B+=u.im):a+=u}return new T(a,B)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<n;a++)i[0]+=Number(A.get(a))*Number(r.get(a));return i[0]}let Q=0;for(let a=0;a<n;a++){let B=A.get(a),s=r.get(a);typeof B=="bigint"&&typeof s=="bigint"?Q=Number(Q)+Number(B*s):Q+=Number(B)*Number(s)}return Q}if(I===2&&e===2)return OA(A,r);if(I===2&&e===1){let[o,n]=A.shape,g=r.shape[0];if(n!==g)throw new Error(`dot: incompatible shapes (${o},${n}) and (${g},)`);let i=mC(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([o],Q);if(t)for(let B=0;B<o;B++){let s=0,C=0;for(let E=0;E<n;E++){let u=A.get(B,E),f=r.get(E),m=u instanceof T?u:new T(Number(u),0),c=f instanceof T?f:new T(Number(f),0);s+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([B],new T(s,C))}else{let B=ir(Q);for(let s=0;s<o;s++)if(B){B[0]=0;for(let C=0;C<n;C++)B[0]+=Number(A.get(s,C))*Number(r.get(C));a.set([s],B[0])}else{let C=0;for(let E=0;E<n;E++){let u=A.get(s,E),f=r.get(E);typeof u=="bigint"&&typeof f=="bigint"?C=Number(C)+Number(u*f):C+=Number(u)*Number(f)}a.set([s],C)}}return a}if(I===1&&e===2){let o=A.shape[0],[n,g]=r.shape;if(o!==n)throw new Error(`dot: incompatible shapes (${o},) and (${n},${g})`);let i=bC(A,r);if(i)return i;let Q=IA(A.dtype,r.dtype),a=d.zeros([g],Q);if(t)for(let B=0;B<g;B++){let s=0,C=0;for(let E=0;E<o;E++){let u=A.get(E),f=r.get(E,B),m=u instanceof T?u:new T(Number(u),0),c=f instanceof T?f:new T(Number(f),0);s+=m.re*c.re-m.im*c.im,C+=m.re*c.im+m.im*c.re}a.set([B],new T(s,C))}else{let B=ir(Q);for(let s=0;s<g;s++)if(B){B[0]=0;for(let C=0;C<o;C++)B[0]+=Number(A.get(C))*Number(r.get(C,s));a.set([s],B[0])}else{let C=0;for(let E=0;E<o;E++){let u=A.get(E),f=r.get(E,s);typeof u=="bigint"&&typeof f=="bigint"?C=Number(C)+Number(u*f):C+=Number(u)*Number(f)}a.set([s],C)}}return a}if(I>2&&e===1){let o=A.shape[I-1],n=r.shape[0];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and (${n},)`);let g=[...A.shape.slice(0,-1)],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=g.reduce((B,s)=>B*s,1);if(t)for(let B=0;B<a;B++){let s=0,C=0,E=B,u=[];for(let f=g.length-1;f>=0;f--)u[f]=E%g[f],E=Math.floor(E/g[f]);for(let f=0;f<o;f++){let m=[...u,f],c=A.get(...m),D=r.get(f),y=c instanceof T?c:new T(Number(c),0),l=D instanceof T?D:new T(Number(D),0);s+=y.re*l.re-y.im*l.im,C+=y.re*l.im+y.im*l.re}Q.set(u,new T(s,C))}else{let B=ir(i);for(let s=0;s<a;s++){let C=s,E=[];for(let u=g.length-1;u>=0;u--)E[u]=C%g[u],C=Math.floor(C/g[u]);if(B){B[0]=0;for(let u=0;u<o;u++){let f=[...E,u];B[0]+=Number(A.get(...f))*Number(r.get(u))}Q.set(E,B[0])}else{let u=0;for(let f=0;f<o;f++){let m=[...E,f],c=A.get(...m),D=r.get(f);typeof c=="bigint"&&typeof D=="bigint"?u=Number(u)+Number(c*D):u+=Number(c)*Number(D)}Q.set(E,u)}}}return Q}if(I===1&&e>2){let o=A.shape[0],n=1,g=r.shape[n];if(o!==g)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(r.shape)}`);let i=[...r.shape.slice(0,n),...r.shape.slice(n+1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),B=i.reduce((s,C)=>s*C,1);if(t)for(let s=0;s<B;s++){let C=s,E=[];for(let D=i.length-1;D>=0;D--)E[D]=C%i[D],C=Math.floor(C/i[D]);let u=E.slice(0,n),f=E.slice(n),m=0,c=0;for(let D=0;D<o;D++){let y=A.get(D),l=[...u,D,...f],h=r.get(...l),b=y instanceof T?y:new T(Number(y),0),p=h instanceof T?h:new T(Number(h),0);m+=b.re*p.re-b.im*p.im,c+=b.re*p.im+b.im*p.re}a.set(E,new T(m,c))}else{let s=ir(Q);for(let C=0;C<B;C++){let E=C,u=[];for(let c=i.length-1;c>=0;c--)u[c]=E%i[c],E=Math.floor(E/i[c]);let f=u.slice(0,n),m=u.slice(n);if(s){s[0]=0;for(let c=0;c<o;c++){let D=[...f,c,...m];s[0]+=Number(A.get(c))*Number(r.get(...D))}a.set(u,s[0])}else{let c=0;for(let D=0;D<o;D++){let y=A.get(D),l=[...f,D,...m],h=r.get(...l);typeof y=="bigint"&&typeof h=="bigint"?c=Number(c)+Number(y*h):c+=Number(y)*Number(h)}a.set(u,c)}}}return a}if(I>=2&&e>=2&&!(I===2&&e===2)){let o=A.shape[I-1],n=r.shape[e-2];if(o!==n)throw new Error(`dot: incompatible shapes ${JSON.stringify(A.shape)} and ${JSON.stringify(r.shape)}`);let g=[...A.shape.slice(0,-1),...r.shape.slice(0,-2),r.shape[e-1]],i=IA(A.dtype,r.dtype),Q=d.zeros(g,i),a=A.shape.slice(0,-1).reduce((E,u)=>E*u,1),B=r.shape.slice(0,-2).reduce((E,u)=>E*u,1),s=r.shape[e-1],C=o;if(t)for(let E=0;E<a;E++)for(let u=0;u<B;u++)for(let f=0;f<s;f++){let m=0,c=0;for(let l=0;l<C;l++){let h=[],b=E;for(let H=A.shape.length-2;H>=0;H--)h.unshift(b%A.shape[H]),b=Math.floor(b/A.shape[H]);h.push(l);let p=A.get(...h),w=[],N=u;for(let H=r.shape.length-3;H>=0;H--)w.unshift(N%r.shape[H]),N=Math.floor(N/r.shape[H]);w.push(l,f);let F=r.get(...w),S=p instanceof T?p:new T(Number(p),0),x=F instanceof T?F:new T(Number(F),0);m+=S.re*x.re-S.im*x.im,c+=S.re*x.im+S.im*x.re}let D=E*B*s+u*s+f,y=Q.data;y[D*2]=m,y[D*2+1]=c}else if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!ir(i))U1(A.data,A.offset,a,r.data,r.offset,B,s,C,Q.data);else{let E=ir(i);for(let u=0;u<a;u++)for(let f=0;f<B;f++)for(let m=0;m<s;m++){let c=u*B*s+f*s+m;if(E){E[0]=0;for(let D=0;D<C;D++){let y=u*C+D,l=f*C*s+D*s+m;E[0]+=Number(A.iget(y))*Number(r.iget(l))}Q.data[c]=E[0]}else{let D=0;for(let y=0;y<C;y++){let l=u*C+y,h=f*C*s+y*s+m,b=A.iget(l),p=r.iget(h);typeof b=="bigint"&&typeof p=="bigint"?D=Number(D)+Number(b*p):D+=Number(b)*Number(p)}Q.data[c]=D}}}return Q}throw new Error(`dot: unexpected combination of dimensions ${I}D \xB7 ${e}D`)}function rp(A,r){let[I=0,e=0]=A.shape,[t=0,o=0]=r.shape;if(e!==t)throw new Error(`matmul shape mismatch: (${I},${e}) @ (${t},${o})`);let n=IA(A.dtype,r.dtype);if(k(n)){let h=d.zeros([I,o],n),b=h.data;for(let p=0;p<I;p++)for(let w=0;w<o;w++){let N=0,F=0;for(let x=0;x<e;x++){let H=A.iget(p*e+x),X=r.iget(x*o+w);N+=H.re*X.re-H.im*X.im,F+=H.re*X.im+H.im*X.re}let S=p*o+w;b[S*2]=N,b[S*2+1]=F}return h}if(n.startsWith("int")||n.startsWith("uint")||n==="bool"){let h=d.zeros([I,o],n),b=h.data,p=A.offset,w=r.offset,[N=0,F=0]=A.strides,[S=0,x=0]=r.strides;if(L(n)){let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0n;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*S+V*x];P[Z*o+V]=$}}else{let H=A.data,X=r.data,P=b;for(let Z=0;Z<I;Z++)for(let V=0;V<o;V++){let $=0;for(let O=0;O<e;O++)$+=H[p+Z*N+O*F]*X[w+O*S+V*x];P[Z*o+V]=$}}return h}let g=n;if(g!=="float64"&&g!=="float32")throw new Error(`matmul currently only supports float64/float32, got ${g}`);let i=h=>h.dtype==="float64"?h.data:h.dtype==="float32"?Float64Array.from(h.data):Float64Array.from(Array.from(h.data).map(Number)),Q=i(A),a=i(r);A.offset>0&&(Q=Q.subarray(A.offset)),r.offset>0&&(a=a.subarray(r.offset));let[B=0,s=0]=A.strides,[C=0,E=0]=r.strides,u=s>B,f=E>C,m=u?"transpose":"no-transpose",c=f?"transpose":"no-transpose",D,y;u?D=s:D=B,f?y=E:y=C;let l=d.zeros([I,o],"float64");if(H1(m,c,I,o,e,1,Q,D,a,y,l.data,o),g==="float32"){let h=d.zeros([I,o],"float32"),b=l.data,p=h.data;for(let w=0;w<b.length;w++)p[w]=b[w];return h}return l}function _1(A,r){let I=Math.max(A.length,r.length),e=new Array(I);for(let t=0;t<I;t++){let o=A[A.length-I+t]??1,n=r[r.length-I+t]??1;if(o!==n&&o!==1&&n!==1)throw new Error(`matmul: cannot broadcast batch shapes ${JSON.stringify(A)} and ${JSON.stringify(r)}`);e[t]=Math.max(o,n)}return e}function Bg(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Ip(A,r){let I=r.length,e=0;for(let t=0;t<I;t++){let o=A.length-I+t,n=o>=0?A[o]:0,g=r[t]===1?0:n;e=e*r[t]+g}return e}function ZA(A){if(A.isCContiguous&&A.offset===0&&A.dtype==="float64")return A.data;let r=new Float64Array(A.size);for(let I=0;I<A.size;I++)r[I]=Number(A.iget(I));return r}function ep(A,r,I,e){let t=A.ndim,o=I*e,n=k(A.dtype),g=L(A.dtype),i=n?2:1,Q=nA(A.dtype),a=new Q(o*i);if(A.isCContiguous){let B=(A.offset+r*o)*i;if(g){let s=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=s[B+E]}else{let s=A.data,C=a;for(let E=0;E<o*i;E++)C[E]=s[B+E]}}else{let B=r*o;for(let s=0;s<o;s++){let E=B+s,u=A.offset;for(let f=t-1;f>=0;f--){let m=A.shape[f];u+=E%m*A.strides[f],E=Math.floor(E/m)}if(n){let f=A.data,m=a;m[s*2]=f[u*2],m[s*2+1]=f[u*2+1]}else a[s]=A.data[u]}}return d.fromData(a,[I,e],A.dtype)}function OA(A,r){if(A.ndim===1&&r.ndim===1){let S=ag(A,r);if(S!==null){let x=IA(A.dtype,r.dtype),H=d.zeros([],x);return S instanceof T?(H.data[0]=S.re,H.data[1]=S.im):H.data[0]=S,H}}else if(A.ndim>=2&&r.ndim===1){if(A.ndim===2){let S=mC(A,r);if(S)return S}}else if(A.ndim===1&&r.ndim>=2&&r.ndim===2){let S=bC(A,r);if(S)return S}let I=ob(A,r);if(I)return I;if(A.ndim===0||r.ndim===0)throw new Error("matmul: Input operand does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires at least 1-D)");let e=A.ndim===1,t=r.ndim===1,o=e?EA(A,[1,A.shape[0]]):A,n=t?EA(r,[r.shape[0],1]):r,g=o.ndim,i=n.ndim,Q=o.shape[g-2],a=o.shape[g-1],B=n.shape[i-2],s=n.shape[i-1];if(a!==B)throw new Error(`matmul: shape mismatch: (...,${Q},${a}) @ (...,${B},${s}): inner dimensions must match`);if(g===2&&i===2){let S=rp(o,n);return e&&t?EA(S,[]):e?EA(S,[s]):t?EA(S,[Q]):S}let C=Array.from(o.shape).slice(0,g-2),E=Array.from(n.shape).slice(0,i-2),u=_1(C,E),f=u.reduce((S,x)=>S*x,1),m=IA(o.dtype,n.dtype),c=[];for(let S=0;S<f;S++){let x=Bg(S,u),H=Ip(x,C),X=Ip(x,E),P=ep(o,H,Q,a),Z=ep(n,X,a,s);c.push(rp(P,Z))}let D=Q*s,y=k(m),l=L(m),h=y?2:1,b=nA(m),p=f*D*h,w=new b(p);for(let S=0;S<f;S++){let H=c[S].data,X=S*D*h;if(l){let P=H,Z=w;for(let V=0;V<D;V++)Z[X+V]=P[V]}else{let P=H,Z=w;for(let V=0;V<D*h;V++)Z[X+V]=P[V]}}let N=[...u,Q,s],F=d.fromData(w,N,m);return e&&t?EA(F,[...u]):e?EA(F,[...u,s]):t?EA(F,[...u,Q]):F}function op(A,r=0,I=0,e=1){if(A.ndim<2)throw new Error(`trace requires at least 2D array, got ${A.ndim}D`);if(A.ndim===2){let C=I<0?A.ndim+I:I,E=e<0?A.ndim+e:e,u=A.shape[C],f=A.shape[E],m=Math.min(u,f)-Math.max(0,r);if(m<=0)return k(A.dtype)?new T(0,0):0;if(k(A.dtype)){let D=0,y=0;for(let l=0;l<m;l++){let h=r>=0?l:l-r,b=r>=0?l+r:l,p=[0,0];p[C]=h,p[E]=b;let w=A.get(...p);D+=w.re,y+=w.im}return new T(D,y)}let c=0;for(let D=0;D<m;D++){let y=r>=0?D:D-r,l=r>=0?D+r:D,h=[0,0];h[C]=y,h[E]=l;let b=A.get(...h);typeof b=="bigint"?c=(typeof c=="bigint"?c:BigInt(c))+b:c=(typeof c=="bigint"?Number(c):c)+b}return c}let t=A.ndim,o=(I%t+t)%t,n=(e%t+t)%t;if(o===n)throw new Error("trace: axis1 and axis2 must be different");let g=A.shape[o],i=A.shape[n],Q=Math.min(g,i)-Math.max(0,r),a=Array.from(A.shape).filter((C,E)=>E!==o&&E!==n),B=a.reduce((C,E)=>C*E,1),s=d.zeros(a.length>0?a:[1],A.dtype);if(Q<=0)return s.shape.length===0?0:s;for(let C=0;C<B;C++){let E=new Array(a.length),u=C;for(let y=a.length-1;y>=0;y--)E[y]=u%a[y],u=Math.floor(u/a[y]);let f=0,m=0,c=0,D=k(A.dtype);for(let y=0;y<Q;y++){let l=r>=0?y:y-r,h=r>=0?y+r:y,b=new Array(t),p=0;for(let N=0;N<t;N++)N===o?b[N]=l:N===n?b[N]=h:b[N]=E[p++];let w=A.get(...b);D?(m+=w.re,c+=w.im):typeof w=="bigint"?f=(typeof f=="bigint"?f:BigInt(f))+w:f=(typeof f=="bigint"?Number(f):f)+w}D?s.iset(C,new T(m,c)):s.iset(C,typeof f=="bigint"?Number(f):f)}return s}function AI(A,r){return Ya(A,r)}function np(A,r){let I=A.ndim,e=r.ndim,t=k(A.dtype)||k(r.dtype);if(I===0||e===0)return aI(A,r);let o=A.shape[I-1],n=r.shape[e-1];if(o!==n)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${n} don't match`);let g=ab(A,r);if(g!==null)return g;if(I===1&&e===1)return aI(A,r);let i=[...A.shape.slice(0,-1),...r.shape.slice(0,-1)],Q=IA(A.dtype,r.dtype),a=d.zeros(i,Q),B=I===1?1:A.shape.slice(0,-1).reduce((E,u)=>E*u,1),s=e===1?1:r.shape.slice(0,-1).reduce((E,u)=>E*u,1),C=o;if(t)for(let E=0;E<B;E++)for(let u=0;u<s;u++){let f=0,m=0;for(let y=0;y<C;y++){let l,h;if(I===1)l=A.get(y);else{let w=[],N=E,F=A.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)w.unshift(N%F[S]),N=Math.floor(N/F[S]);w.push(y),l=A.get(...w)}if(e===1)h=r.get(y);else{let w=[],N=u,F=r.shape.slice(0,-1);for(let S=F.length-1;S>=0;S--)w.unshift(N%F[S]),N=Math.floor(N/F[S]);w.push(y),h=r.get(...w)}let b=l instanceof T?l:new T(Number(l),0),p=h instanceof T?h:new T(Number(h),0);f+=b.re*p.re-b.im*p.im,m+=b.re*p.im+b.im*p.re}if(i.length===0)return new T(f,m);let c=B===1?u:E*s+u,D=a.data;D[c*2]=f,D[c*2+1]=m}else{let E=ir(Q);if(A.isCContiguous&&r.isCContiguous&&!L(A.dtype)&&!L(r.dtype)&&!E){if(i.length===0){let u=A.data,f=r.data,m=A.offset,c=r.offset,D=0;for(let y=0;y<C;y++)D+=u[m+y]*f[c+y];return D}L1(A.data,A.offset,B,I,r.data,r.offset,s,e,C,a.data)}else for(let u=0;u<B;u++)for(let f=0;f<s;f++)if(E){E[0]=0;for(let c=0;c<C;c++){let D=I===1?c:u*C+c,y=e===1?c:f*C+c;E[0]+=Number(A.iget(D))*Number(r.iget(y))}if(i.length===0)return E[0];let m=B===1?f:u*s+f;a.data[m]=E[0]}else{let m=0;for(let D=0;D<C;D++){let y=I===1?D:u*C+D,l=e===1?D:f*C+D,h=A.iget(y),b=r.iget(l);typeof h=="bigint"&&typeof b=="bigint"?m=Number(m)+Number(h*b):m+=Number(h)*Number(b)}if(i.length===0)return m;let c=B===1?f:u*s+f;a.data[c]=m}}return a}function XC(A,r){let I=A.ndim===1?A:hI(A),e=r.ndim===1?r:hI(r),t=Nb(I,e);if(t)return t;let o=I.size,n=e.size,g=IA(A.dtype,r.dtype),i=d.zeros([o,n],g);for(let Q=0;Q<o;Q++)for(let a=0;a<n;a++){let B=I.get(Q),s=e.get(a),C=mr(B,s);i.set([Q,a],C)}return i}function ip(A,r,I){let e,t;if(typeof I=="number"){let E=I;if(E<0)throw new Error("tensordot: axes must be non-negative");if(E>A.ndim||E>r.ndim)throw new Error("tensordot: axes exceeds array dimensions");e=Array.from({length:E},(u,f)=>A.ndim-E+f),t=Array.from({length:E},(u,f)=>f)}else if([e,t]=I,e.length!==t.length)throw new Error("tensordot: axes lists must have same length");for(let E=0;E<e.length;E++){let u=e[E],f=t[E];if(u<0||u>=A.ndim||f<0||f>=r.ndim)throw new Error("tensordot: axis out of bounds");if(A.shape[u]!==r.shape[f])throw new Error(`tensordot: shape mismatch on axes ${u} and ${f}: ${A.shape[u]} != ${r.shape[f]}`)}let o=[],n=[];for(let E=0;E<A.ndim;E++)e.includes(E)||o.push(E);for(let E=0;E<r.ndim;E++)t.includes(E)||n.push(E);let g=[...o.map(E=>A.shape[E]),...n.map(E=>r.shape[E])],i=IA(A.dtype,r.dtype),Q=k(i),a=E=>E instanceof T?{re:E.re,im:E.im}:{re:Number(E),im:0};if(g.length===0){let E=0,u=0,f=e.map(m=>A.shape[m]).reduce((m,c)=>m*c,1);for(let m=0;m<f;m++){let c=m,D=new Array(e.length);for(let p=e.length-1;p>=0;p--){let w=e[p];D[p]=c%A.shape[w],c=Math.floor(c/A.shape[w])}let y=new Array(A.ndim),l=new Array(r.ndim);for(let p=0;p<e.length;p++)y[e[p]]=D[p];for(let p=0;p<t.length;p++)l[t[p]]=D[p];let h=A.get(...y),b=r.get(...l);if(Q){let p=a(h),w=a(b);E+=p.re*w.re-p.im*w.im,u+=p.re*w.im+p.im*w.re}else typeof h=="bigint"&&typeof b=="bigint"?E+=Number(h*b):E+=Number(h)*Number(b)}return Q?new T(E,u):E}let B=d.zeros(g,i),s=g.reduce((E,u)=>E*u,1),C=e.map(E=>A.shape[E]).reduce((E,u)=>E*u,1);for(let E=0;E<s;E++){let u=E,f=[];for(let l=g.length-1;l>=0;l--)f[l]=u%g[l],u=Math.floor(u/g[l]);let m=f.slice(0,o.length),c=f.slice(o.length),D=0,y=0;for(let l=0;l<C;l++){u=l;let h=[];for(let F=e.length-1;F>=0;F--){let S=e[F];h[F]=u%A.shape[S],u=Math.floor(u/A.shape[S])}let b=new Array(A.ndim),p=new Array(r.ndim);for(let F=0;F<o.length;F++)b[o[F]]=m[F];for(let F=0;F<n.length;F++)p[n[F]]=c[F];for(let F=0;F<e.length;F++)b[e[F]]=h[F],p[t[F]]=h[F];let w=A.get(...b),N=r.get(...p);if(Q){let F=a(w),S=a(N);D+=F.re*S.re-F.im*S.im,y+=F.re*S.im+F.im*S.re}else typeof w=="bigint"&&typeof N=="bigint"?D+=Number(w*N):D+=Number(w)*Number(N)}Q?B.set(f,new T(D,y)):B.set(f,D)}return B}function gp(A,r=0,I=0,e=1){let t=A.shape,o=t.length;if(o<2)throw new Error("diagonal requires an array of at least two dimensions");let n=I<0?o+I:I,g=e<0?o+e:e;if(n<0||n>=o||g<0||g>=o)throw new Error("axis out of bounds");if(n===g)throw new Error("axis1 and axis2 cannot be the same");let i=t[n],Q=t[g],a;r>=0?a=Math.max(0,Math.min(i,Q-r)):a=Math.max(0,Math.min(i+r,Q));let B=[];for(let u=0;u<o;u++)u!==n&&u!==g&&B.push(t[u]);B.push(a);let s=d.zeros(B,A.dtype),C=t.filter((u,f)=>f!==n&&f!==g),E=C.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=u,m=[];for(let c=C.length-1;c>=0;c--)m.unshift(f%C[c]),f=Math.floor(f/C[c]);for(let c=0;c<a;c++){let D=new Array(o),y=0;for(let b=0;b<o;b++)b===n?D[b]=r>=0?c:c-r:b===g?D[b]=r>=0?c+r:c:D[b]=m[y++];let l=[...m,c],h=A.get(...D);s.set(l,h)}}return s}function Qp(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=ap(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(u=>u.trim());if(o.length!==r.length)throw new Error(`einsum: expected ${o.length} operands, got ${r.length}`);let n=new Map;for(let u=0;u<r.length;u++){let f=o[u],m=r[u];if(f.length!==m.ndim)throw new Error(`einsum: operand ${u} has ${m.ndim} dimensions but subscript '${f}' has ${f.length} indices`);for(let c=0;c<f.length;c++){let D=f[c],y=m.shape[c];if(n.has(D)){if(n.get(D)!==y)throw new Error(`einsum: size mismatch for index '${D}': ${n.get(D)} vs ${y}`)}else n.set(D,y)}}for(let u of t)if(!n.has(u))throw new Error(`einsum: output subscript contains unknown index '${u}'`);let g=new Set(t),i=new Set;for(let u of o)for(let f of u)i.add(f);let Q=[];for(let u of i)g.has(u)||Q.push(u);if(r.length===2&&o.length===2){let[u,f]=o,[m,c]=r;if(u.length===2&&f.length===2&&t.length===2&&m.ndim===2&&c.ndim===2){let[D,y]=[u[0],u[1]],[l,h]=[f[0],f[1]],[b,p]=[t[0],t[1]];if(D===b&&h===p&&y===l&&Q.length===1&&Q[0]===y||D===b&&h===p&&y===l&&Q.length===1&&Q[0]===y)return OA(m,c);if(y===b&&h===p&&D===l&&Q.length===1&&Q[0]===D){let w=AI(m);return OA(w,c)}if(D===b&&l===p&&y===h&&Q.length===1&&Q[0]===y){let w=AI(c);return OA(m,w)}}if(u.length===1&&f.length===1&&u===f&&t.length===0&&m.ndim===1&&c.ndim===1)return YC(r,o,Q,n);if(u&&f&&u.length===1&&f.length===1&&t.length===2&&t===u+f&&Q.length===0&&m.ndim===1&&c.ndim===1)return XC(m,c)}if(r.length===1&&o[0].length===2&&t.length===0){let u=o[0];if(u[0]===u[1]&&r[0].ndim===2)return YC(r,o,Q,n)}let a=Array.from(t).map(u=>n.get(u));if(a.length===0)return YC(r,o,Q,n);let B=r[0].dtype;for(let u=1;u<r.length;u++)B=IA(B,r[u].dtype);let s=d.zeros(a,B),C=a.reduce((u,f)=>u*f,1),E=1;for(let u of Q)E*=n.get(u);for(let u=0;u<C;u++){let f=Y1(u,a),m=new Map;for(let D=0;D<t.length;D++)m.set(t[D],f[D]);let c=0;for(let D=0;D<E;D++){let y=D;for(let h=Q.length-1;h>=0;h--){let b=Q[h],p=n.get(b);m.set(b,y%p),y=Math.floor(y/p)}let l=1;for(let h=0;h<r.length;h++){let b=r[h],p=o[h],w=[];for(let F of p)w.push(m.get(F));let N=b.get(...w);l*=Number(N)}c+=l}s.set(f,c)}return s}function ap(A){let r=new Map,I=A.split(",");for(let t of I)for(let o of t.trim())r.set(o,(r.get(o)||0)+1);let e=[];for(let[t,o]of r)o===1&&e.push(t);return e.sort().join("")}function YC(A,r,I,e){let t=!1;for(let Q of A)if(k(Q.dtype)){t=!0;break}let o=Q=>Q instanceof T?{re:Q.re,im:Q.im}:{re:Number(Q),im:0},n=1;for(let Q of I)n*=e.get(Q);let g=0,i=0;for(let Q=0;Q<n;Q++){let a=new Map,B=Q;for(let E=I.length-1;E>=0;E--){let u=I[E],f=e.get(u);a.set(u,B%f),B=Math.floor(B/f)}let s=1,C=0;for(let E=0;E<A.length;E++){let u=A[E],f=r[E],m=[];for(let D of f)m.push(a.get(D));let c=u.get(...m);if(t){let D=o(c),y=s*D.re-C*D.im,l=s*D.im+C*D.re;s=y,C=l}else s*=Number(c)}g+=s,i+=C}return t?new T(g,i):g}function Y1(A,r){let I=new Array(r.length),e=A;for(let t=r.length-1;t>=0;t--)I[t]=e%r[t],e=Math.floor(e/r[t]);return I}function Bp(A,r){let I=A.shape,e=r.shape,t=I.length,o=e.length,n=IA(A.dtype,r.dtype);if(t===2&&o===2){let E=Yb(A,r);if(E)return E}let g=Math.max(t,o),i=new Array(g),Q=new Array(g).fill(1),a=new Array(g).fill(1);for(let E=0;E<t;E++)Q[g-t+E]=I[E];for(let E=0;E<o;E++)a[g-o+E]=e[E];for(let E=0;E<g;E++)i[E]=Q[E]*a[E];let B=d.zeros(i,n),s=I.reduce((E,u)=>E*u,1),C=e.reduce((E,u)=>E*u,1);for(let E=0;E<s;E++){let u=E,f=new Array(t);for(let D=t-1;D>=0;D--)f[D]=u%I[D],u=Math.floor(u/I[D]);let m=new Array(g).fill(0);for(let D=0;D<t;D++)m[g-t+D]=f[D];let c=A.get(...f);for(let D=0;D<C;D++){let y=D,l=new Array(o);for(let N=o-1;N>=0;N--)l[N]=y%e[N],y=Math.floor(y/e[N]);let h=new Array(g).fill(0);for(let N=0;N<o;N++)h[g-o+N]=l[N];let b=r.get(...l),p=new Array(g);for(let N=0;N<g;N++)p[N]=m[N]*a[N]+h[N];let w=mr(c,b);B.set(p,w)}}return B}function sp(A,r,I=-1,e=-1,t=-1,o){o!==void 0&&(I=o,e=o,t=o);let n=(p,w)=>p<0?w+p:p,g=n(I,A.ndim),i=n(e,r.ndim),Q=IA(A.dtype,r.dtype),a=k(Q),B=(p,...w)=>{let N=p.get(...w);return N instanceof T||typeof N=="bigint"?N:Number(N)},s=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.mul(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)*BigInt(w):p*w},C=(p,w)=>{if(p instanceof T||w instanceof T){let N=p instanceof T?p:new T(Number(p),0),F=w instanceof T?w:new T(Number(w),0);return N.sub(F)}return typeof p=="bigint"||typeof w=="bigint"?BigInt(p)-BigInt(w):p-w};if(A.ndim===1&&r.ndim===1){let p=A.shape[0],w=r.shape[0];if(p===3&&w===3){let N=B(A,0),F=B(A,1),S=B(A,2),x=B(r,0),H=B(r,1),X=B(r,2),P=d.zeros([3],Q);return P.set([0],C(s(F,X),s(S,H))),P.set([1],C(s(S,x),s(N,X))),P.set([2],C(s(N,H),s(F,x))),P}else if(p===2&&w===2){let N=B(A,0),F=B(A,1),S=B(r,0),x=B(r,1);return C(s(N,x),s(F,S))}else if(p===2&&w===3||p===3&&w===2){let N=B(A,0),F=B(A,1),S=p===3?B(A,2):a?new T(0,0):L(Q)?0n:0,x=B(r,0),H=B(r,1),X=w===3?B(r,2):a?new T(0,0):L(Q)?0n:0,P=d.zeros([3],Q);return P.set([0],C(s(F,X),s(S,H))),P.set([1],C(s(S,x),s(N,X))),P.set([2],C(s(N,H),s(F,x))),P}else throw new Error(`cross: incompatible dimensions for cross product: ${p} and ${w}`)}let E=A.shape[g],u=r.shape[i];if(E!==2&&E!==3||u!==2&&u!==3)throw new Error(`cross: incompatible dimensions for cross product: ${E} and ${u}`);let f=E===2&&u===2?0:3,m=[...A.shape.slice(0,g),...A.shape.slice(g+1)],c=[...r.shape.slice(0,i),...r.shape.slice(i+1)];if(m.length!==c.length)throw new Error("cross: incompatible shapes for cross product");for(let p=0;p<m.length;p++)if(m[p]!==c[p])throw new Error("cross: incompatible shapes for cross product");let D=m;if(E===3&&u===3&&g===A.ndim-1&&i===r.ndim-1){let p=D.reduce((N,F)=>N*F,1),w=Kb(A,r,p);if(w)return w}let y=t<0?D.length+1+t:t,l;if(f===0?l=D:l=[...D.slice(0,y),f,...D.slice(y)],l.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=d.zeros(l,Q),b=D.reduce((p,w)=>p*w,1);for(let p=0;p<b;p++){let w=p,N=[];for(let z=D.length-1;z>=0;z--)N[z]=w%D[z],w=Math.floor(w/D[z]);let F=[...N.slice(0,g),0,...N.slice(g)],S=[...N.slice(0,i),0,...N.slice(i)],x=z=>(F[g]=z,B(A,...F)),H=z=>(S[i]=z,B(r,...S)),X=x(0),P=x(1),Z=E===3?x(2):a?new T(0,0):L(Q)?0n:0,V=H(0),$=H(1),O=u===3?H(2):a?new T(0,0):L(Q)?0n:0;if(f===0)h.set(N,C(s(X,$),s(P,V)));else{let z=C(s(P,O),s(Z,$)),rA=C(s(Z,V),s(X,O)),oA=C(s(X,$),s(P,V)),iA=(CA,dA)=>{let hr=[...N.slice(0,y),CA,...N.slice(y)];h.set(hr,dA)};iA(0,z),iA(1,rA),iA(2,oA)}}return h}function RI(A,r=2,I,e=!1){if(typeof r!="number")throw new Error("vector_norm: ord must be a number");if(I==null){let Q=A.ndim===1?A:hI(A),a=Q.size,B;if(r===1/0){B=0;for(let s=0;s<a;s++)B=Math.max(B,Math.abs(Number(Q.get(s))))}else if(r===-1/0){B=1/0;for(let s=0;s<a;s++)B=Math.min(B,Math.abs(Number(Q.get(s))))}else if(r===0){B=0;for(let s=0;s<a;s++)Number(Q.get(s))!==0&&B++}else if(r===1){B=0;for(let s=0;s<a;s++)B+=Math.abs(Number(Q.get(s)))}else if(r===2){B=0;for(let s=0;s<a;s++){let C=Number(Q.get(s));B+=C*C}B=Math.sqrt(B)}else{B=0;for(let s=0;s<a;s++)B+=Math.pow(Math.abs(Number(Q.get(s))),r);B=Math.pow(B,1/r)}if(e){let s=new Array(A.ndim).fill(1),C=d.zeros(s,"float64");return C.set(new Array(A.ndim).fill(0),B),C}return B}let t=I<0?A.ndim+I:I;if(t<0||t>=A.ndim)throw new Error(`vector_norm: axis ${I} out of bounds for array with ${A.ndim} dimensions`);let o=e?[...A.shape.slice(0,t),1,...A.shape.slice(t+1)]:[...A.shape.slice(0,t),...A.shape.slice(t+1)];if(o.length===0)return RI(A,r,null,!1);let n=d.zeros(o,"float64"),g=A.shape[t],i=o.reduce((Q,a)=>Q*a,1);for(let Q=0;Q<i;Q++){let a=Q,B=[];for(let E=o.length-1;E>=0;E--)B[E]=a%o[E],a=Math.floor(a/o[E]);let s=e?[...B.slice(0,t),0,...B.slice(t+1)]:[...B.slice(0,t),0,...B.slice(t)],C;if(r===1/0){C=0;for(let E=0;E<g;E++)s[t]=E,C=Math.max(C,Math.abs(Number(A.get(...s))))}else if(r===-1/0){C=1/0;for(let E=0;E<g;E++)s[t]=E,C=Math.min(C,Math.abs(Number(A.get(...s))))}else if(r===0){C=0;for(let E=0;E<g;E++)s[t]=E,Number(A.get(...s))!==0&&C++}else if(r===1){C=0;for(let E=0;E<g;E++)s[t]=E,C+=Math.abs(Number(A.get(...s)))}else if(r===2){C=0;for(let E=0;E<g;E++){s[t]=E;let u=Number(A.get(...s));C+=u*u}C=Math.sqrt(C)}else{C=0;for(let E=0;E<g;E++)s[t]=E,C+=Math.pow(Math.abs(Number(A.get(...s))),r);C=Math.pow(C,1/r)}n.set(B,C)}return n}function $r(A,r="fro",I=!1){if(A.ndim<2)throw new Error(`matrix_norm: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let n=Array.from(A.shape).slice(0,-2),g=A.shape[A.ndim-2],i=A.shape[A.ndim-1],Q=n.reduce((s,C)=>s*C,1),a=new Float64Array(Q),B=ZA(A);for(let s=0;s<Q;s++){let C=s*g*i,E=d.fromData(B.slice(C,C+g*i),[g,i],"float64");a[s]=$r(E,r,!1)}if(I){let s=[...n,1,1],C=d.fromData(a,n,"float64");return EA(C,s)}return d.fromData(a,n,"float64")}let[e,t]=A.shape,o;if(r==="fro"){o=0;for(let n=0;n<e;n++)for(let g=0;g<t;g++){let i=Number(A.get(n,g));o+=i*i}o=Math.sqrt(o)}else if(r==="nuc"){let{s:n}=qr(A);o=0;for(let g=0;g<n.size;g++)o+=Number(n.get(g))}else if(r===1){o=0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.max(o,g)}}else if(r===-1){o=1/0;for(let n=0;n<t;n++){let g=0;for(let i=0;i<e;i++)g+=Math.abs(Number(A.get(i,n)));o=Math.min(o,g)}}else if(r===1/0){o=0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.max(o,g)}}else if(r===-1/0){o=1/0;for(let n=0;n<e;n++){let g=0;for(let i=0;i<t;i++)g+=Math.abs(Number(A.get(n,i)));o=Math.min(o,g)}}else if(r===2){let{s:n}=qr(A);o=Number(n.get(0))}else if(r===-2){let{s:n}=qr(A);o=Number(n.get(n.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${r}`);if(I){let n=d.zeros([1,1],"float64");return n.set([0,0],o),n}return o}function Cp(A,r=null,I=null,e=!1){if(r===null){if(I===null)return RI(A,2,null,e);if(typeof I=="number")return RI(A,2,I,e);r="fro"}if(Array.isArray(I)){if(I.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let t=I[0]<0?A.ndim+I[0]:I[0],o=I[1]<0?A.ndim+I[1]:I[1],n=r??"fro";if(A.ndim===2)return $r(A,n,e);let g=A.ndim,i=Array.from({length:g},(f,m)=>m).filter(f=>f!==t&&f!==o),Q=i.map(f=>A.shape[f]),a=Q.reduce((f,m)=>f*m,1)||1,B=A.shape[t],s=A.shape[o],C=[...i,t,o],E=AI(A,C),u=new Float64Array(a);for(let f=0;f<a;f++){let m=new Array(Q.length),c=f;for(let l=Q.length-1;l>=0;l--)m[l]=c%Q[l],c=Math.floor(c/Q[l]);let D=d.zeros([B,s],"float64");for(let l=0;l<B;l++)for(let h=0;h<s;h++)D.set([l,h],Number(E.get(...m,l,h)));let y=$r(D,n,!1);u[f]=typeof y=="number"?y:Number(y)}if(e){let f=Array.from(A.shape);return f[t]=1,f[o]=1,d.fromData(u,f,"float64")}return Q.length===0?u[0]:d.fromData(u,Q,"float64")}if(A.ndim===2&&I===null&&(r==="fro"||r==="nuc"))return $r(A,r,e);if(typeof r!="number"&&r!==null)throw new Error(`norm: ord '${r}' not valid for vector norm`);return RI(A,r??2,I,e)}function sg(A,r="reduced"){if(A.ndim>2){let C=A.shape.slice(0,-2),[E,u]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],f=Math.min(E,u),m=C.reduce((l,h)=>l*h,1),c=r==="complete"?E:f,D=d.zeros([...C,E,c],"float64"),y=d.zeros([...C,c,u],"float64");for(let l=0;l<m;l++){let h=Bg(l,C),b=d.zeros([E,u],"float64");for(let w=0;w<E;w++)for(let N=0;N<u;N++)b.set([w,N],Number(A.get(...h,w,N)));let p=sg(b,r);for(let w=0;w<E;w++)for(let N=0;N<c;N++)D.set([...h,w,N],Number(p.q.get(w,N)));for(let w=0;w<c;w++)for(let N=0;N<u;N++)y.set([...h,w,N],Number(p.r.get(w,N)))}return{q:D,r:y}}if(A.ndim!==2)throw new Error(`qr: input must be 2D, got ${A.ndim}D`);if(r==="reduced"){let C=Ob(A);if(C)return C}let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([I,e],"float64");for(let C=0;C<I;C++)for(let E=0;E<e;E++)o.set([C,E],Number(A.get(C,E)));let n=[],g=[];for(let C=0;C<t;C++){let E=I-C,u=[];for(let l=C;l<I;l++)u.push(Number(o.get(l,C)));let f=0;for(let l=0;l<E;l++)f+=u[l]*u[l];if(f=Math.sqrt(f),f<1e-15){n.push(u),g.push(0);continue}let m=u[0]>=0?1:-1,c=u[0]+m*f,D=[1];for(let l=1;l<E;l++)D.push(u[l]/c);let y=m*c/f;g.push(y),n.push(D);for(let l=C;l<e;l++){let h=0;for(let b=0;b<E;b++)h+=D[b]*Number(o.get(C+b,l));for(let b=0;b<E;b++)o.set([C+b,l],Number(o.get(C+b,l))-y*D[b]*h)}}if(r==="raw"){let C=d.zeros([I,e],"float64");for(let u=0;u<I;u++)for(let f=0;f<e;f++)C.set([u,f],Number(o.get(u,f)));let E=d.zeros([t],"float64");for(let u=0;u<t;u++)E.set([u],g[u]);return{h:C,tau:E}}if(r==="r"){let C=d.zeros([t,e],"float64");for(let E=0;E<t;E++)for(let u=E;u<e;u++)C.set([E,u],Number(o.get(E,u)));return C}let i=r==="complete"?I:t,Q=d.zeros([I,i],"float64");for(let C=0;C<Math.min(I,i);C++)Q.set([C,C],1);for(let C=t-1;C>=0;C--){let E=n[C],u=g[C],f=I-C;for(let m=C;m<i;m++){let c=0;for(let D=0;D<f;D++)c+=E[D]*Number(Q.get(C+D,m));for(let D=0;D<f;D++)Q.set([C+D,m],Number(Q.get(C+D,m))-u*E[D]*c)}}let a=d.zeros([I,i],"float64");for(let C=0;C<I;C++)for(let E=0;E<i;E++)a.set([C,E],Number(Q.get(C,E)));let B=r==="complete"?I:t,s=d.zeros([B,e],"float64");for(let C=0;C<B;C++)for(let E=0;E<e;E++)E>=C&&s.set([C,E],Number(o.get(C,E)));return{q:a,r:s}}function TC(A,r=!1){if(A.ndim<2)throw new Error(`cholesky: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let g=Array.from(A.shape).slice(0,-2),i=A.shape[A.ndim-1],Q=A.shape[A.ndim-2];if(Q!==i)throw new Error(`cholesky: last 2 dimensions must be square, got ${Q}x${i}`);let a=g.reduce((C,E)=>C*E,1),B=new Float64Array(a*i*i),s=ZA(A);for(let C=0;C<a;C++){let E=C*i*i,u=d.fromData(s.slice(E,E+i*i),[i,i],"float64"),f=TC(u,r);B.set(ZA(f),E)}return d.fromData(B,[...g,i,i],"float64")}let[I,e]=A.shape;if(I!==e)throw new Error(`cholesky: matrix must be square, got ${I}x${e}`);let t=zb(A);if(t){if(r){let g=I,i=d.zeros([g,g],"float64");for(let Q=0;Q<g;Q++)for(let a=Q;a<g;a++)i.set([Q,a],Number(t.get(a,Q)));return i}return t}let o=I,n=d.zeros([o,o],"float64");for(let g=0;g<o;g++)for(let i=0;i<=g;i++){let Q=0;if(g===i){for(let B=0;B<i;B++)Q+=Number(n.get(i,B))**2;let a=Number(A.get(i,i))-Q;if(a<0)throw new Error("cholesky: matrix is not positive definite");n.set([i,i],Math.sqrt(a))}else{for(let B=0;B<i;B++)Q+=Number(n.get(g,B))*Number(n.get(i,B));let a=Number(n.get(i,i));if(Math.abs(a)<1e-15)throw new Error("cholesky: matrix is not positive definite");n.set([g,i],(Number(A.get(g,i))-Q)/a)}}if(r){let g=d.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let Q=i;Q<o;Q++)g.set([i,Q],Number(n.get(Q,i)));return g}return n}function qr(A){if(A.ndim!==2)throw new Error(`svd: input must be 2D, got ${A.ndim}D`);let r=Ap(A);if(r)return r;let[I,e]=A.shape,t=Math.min(I,e),o=d.zeros([e,e],"float64");for(let s=0;s<e;s++)for(let C=0;C<e;C++){let E=0;for(let u=0;u<I;u++)E+=Number(A.get(u,s))*Number(A.get(u,C));o.set([s,C],E)}let{values:n,vectors:g}=PC(o),i=Array.from({length:e},(s,C)=>C);i.sort((s,C)=>n[C]-n[s]);let Q=d.zeros([t],"float64");for(let s=0;s<t;s++){let C=n[i[s]];Q.set([s],Math.sqrt(Math.max(0,C)))}let a=d.zeros([e,e],"float64");for(let s=0;s<e;s++)for(let C=0;C<e;C++)a.set([s,C],g[C][i[s]]);let B=d.zeros([I,I],"float64");for(let s=0;s<I;s++)for(let C=0;C<t;C++){let E=Number(Q.get(C));if(E>1e-10){let u=0;for(let f=0;f<e;f++)u+=Number(A.get(s,f))*Number(a.get(C,f));B.set([s,C],u/E)}}if(I>t)for(let s=t;s<I;s++){let C=new Array(I).fill(0);C[s]=1;for(let u=0;u<s;u++){let f=0;for(let m=0;m<I;m++)f+=C[m]*Number(B.get(m,u));for(let m=0;m<I;m++)C[m]=C[m]-f*Number(B.get(m,u))}let E=0;for(let u=0;u<I;u++)E+=C[u]*C[u];if(E=Math.sqrt(E),E>1e-10)for(let u=0;u<I;u++)B.set([u,s],C[u]/E)}return{u:B,s:Q,vt:a}}function PC(A){let r=A.shape[0],I=100*r*r,e=1e-10,t=[];for(let g=0;g<r;g++){t.push([]);for(let i=0;i<r;i++)t[g].push(Number(A.get(g,i)))}let o=[];for(let g=0;g<r;g++){o.push([]);for(let i=0;i<r;i++)o[g].push(g===i?1:0)}for(let g=0;g<I;g++){let i=0,Q=0,a=1;for(let D=0;D<r;D++)for(let y=D+1;y<r;y++)Math.abs(t[D][y])>i&&(i=Math.abs(t[D][y]),Q=D,a=y);if(i<e)break;let B=t[Q][Q],s=t[a][a],C=t[Q][a],E;Math.abs(B-s)<1e-15?E=Math.PI/4:E=.5*Math.atan2(2*C,s-B);let u=Math.cos(E),f=Math.sin(E),m=u*u*B+f*f*s-2*f*u*C,c=f*f*B+u*u*s+2*f*u*C;t[Q][Q]=m,t[a][a]=c,t[Q][a]=0,t[a][Q]=0;for(let D=0;D<r;D++)if(D!==Q&&D!==a){let y=t[D][Q],l=t[D][a];t[D][Q]=u*y-f*l,t[Q][D]=t[D][Q],t[D][a]=f*y+u*l,t[a][D]=t[D][a]}for(let D=0;D<r;D++){let y=o[D][Q],l=o[D][a];o[D][Q]=u*y-f*l,o[D][a]=f*y+u*l}}let n=[];for(let g=0;g<r;g++)n.push(t[g][g]);return{values:n,vectors:o}}function Cg(A,r=!0,I=!0){if(A.ndim>2){let t=A.shape.slice(0,-2),[o,n]=[A.shape[A.ndim-2],A.shape[A.ndim-1]],g=Math.min(o,n),i=t.reduce((E,u)=>E*u,1);if(!I){let E=d.zeros([...t,g],"float64");for(let u=0;u<i;u++){let f=Bg(u,t),m=d.zeros([o,n],"float64");for(let D=0;D<o;D++)for(let y=0;y<n;y++)m.set([D,y],Number(A.get(...f,D,y)));let{s:c}=qr(m);for(let D=0;D<g;D++)E.set([...f,D],Number(c.get(D)))}return E}let Q=r?o:g,a=r?n:g,B=d.zeros([...t,o,Q],"float64"),s=d.zeros([...t,g],"float64"),C=d.zeros([...t,a,n],"float64");for(let E=0;E<i;E++){let u=Bg(E,t),f=d.zeros([o,n],"float64");for(let c=0;c<o;c++)for(let D=0;D<n;D++)f.set([c,D],Number(A.get(...u,c,D)));let m=Cg(f,r,!0);for(let c=0;c<o;c++)for(let D=0;D<Q;D++)B.set([...u,c,D],Number(m.u.get(c,D)));for(let c=0;c<g;c++)s.set([...u,c],Number(m.s.get(c)));for(let c=0;c<a;c++)for(let D=0;D<n;D++)C.set([...u,c,D],Number(m.vt.get(c,D)))}return{u:B,s,vt:C}}let e=qr(A);if(!I)return e.s;if(!r){let[t,o]=A.shape,n=Math.min(t,o),g=d.zeros([t,n],"float64");for(let Q=0;Q<t;Q++)for(let a=0;a<n;a++)g.set([Q,a],Number(e.u.get(Q,a)));let i=d.zeros([n,o],"float64");for(let Q=0;Q<n;Q++)for(let a=0;a<o;a++)i.set([Q,a],Number(e.vt.get(Q,a)));return{u:g,s:e.s,vt:i}}return e}function KC(A){if(A.ndim<2)throw new Error(`det: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`det: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((u,f)=>u*f,1),C=new Float64Array(s),E=ZA(A);for(let u=0;u<s;u++){let f=u*a*a,m=d.fromData(E.slice(f,f+a*a),[a,a],"float64");C[u]=KC(m)}return d.fromData(C,Q,"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`det: matrix must be square, got ${r}x${I}`);let e=r;if(e===0)return 1;let t=A.data;if(e===1)return Number(t[0]);if(e===2)return Number(t[0])*Number(t[3])-Number(t[1])*Number(t[2]);let{lu:o,sign:n}=Eg(A),g=o.data,i=n;for(let Q=0;Q<e;Q++)i*=g[Q*e+Q];return i}function Eg(A){let[r,I]=A.shape,e=r,t=I,o=d.zeros([e,t],"float64"),n=o.data,g=A.data;for(let a=0;a<e*t;a++)n[a]=Number(g[a]);let i=Array.from({length:e},(a,B)=>B),Q=1;for(let a=0;a<Math.min(e,t);a++){let B=Math.abs(n[a*t+a]),s=a;for(let E=a+1;E<e;E++){let u=Math.abs(n[E*t+a]);u>B&&(B=u,s=E)}if(s!==a){for(let u=0;u<t;u++){let f=n[a*t+u];n[a*t+u]=n[s*t+u],n[s*t+u]=f}let E=i[a];i[a]=i[s],i[s]=E,Q=-Q}let C=n[a*t+a];if(Math.abs(C)>1e-15)for(let E=a+1;E<e;E++){let u=n[E*t+a]/C;n[E*t+a]=u;for(let f=a+1;f<t;f++)n[E*t+f]=n[E*t+f]-u*n[a*t+f]}}return{lu:o,piv:i,sign:Q}}function kI(A){if(A.ndim<2)throw new Error(`inv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`inv: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((u,f)=>u*f,1),C=ZA(A),E=new Float64Array(s*a*a);for(let u=0;u<s;u++){let f=u*a*a,m=d.fromData(C.slice(f,f+a*a),[a,a],"float64"),D=kI(m).data;for(let y=0;y<a*a;y++)E[f+y]=D[y]}return d.fromData(E,Array.from(A.shape),"float64")}let[r,I]=A.shape;if(r!==I)throw new Error(`inv: matrix must be square, got ${r}x${I}`);let e=r,{lu:t,piv:o}=Eg(A),n=t.data,g=d.zeros([e,e],"float64"),i=g.data;for(let Q=0;Q<e;Q++){let a=new Float64Array(e);for(let B=0;B<e;B++){let s=o[B]===Q?1:0;for(let C=0;C<B;C++)s-=n[B*e+C]*a[C];a[B]=s}for(let B=e-1;B>=0;B--){let s=a[B];for(let E=B+1;E<e;E++)s-=n[B*e+E]*i[E*e+Q];let C=n[B*e+B];if(Math.abs(C)<1e-15)throw new Error("inv: singular matrix");i[B*e+Q]=s/C}}return g}function tp(A,r){let[I]=A.shape,e=I,{lu:t,piv:o}=Eg(A),n=t.data,g=r.data,i=new Float64Array(e);for(let s=0;s<e;s++)i[s]=Number(g[o[s]]);let Q=new Float64Array(e);for(let s=0;s<e;s++){let C=i[s];for(let E=0;E<s;E++)C-=n[s*e+E]*Q[E];Q[s]=C}let a=d.zeros([e],"float64"),B=a.data;for(let s=e-1;s>=0;s--){let C=Q[s];for(let u=s+1;u<e;u++)C-=n[s*e+u]*B[u];let E=n[s*e+s];if(Math.abs(E)<1e-15)throw new Error("solve: singular matrix");B[s]=C/E}return a}function VC(A,r){if(A.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`solve: coefficient matrix must be square, got ${I}x${e}`);let t=I;if(r.ndim===1){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},)`);return tp(A,r)}if(r.ndim===2){if(r.shape[0]!==t)throw new Error(`solve: incompatible shapes (${I},${e}) and (${r.shape[0]},${r.shape[1]})`);let o=r.shape[1],n=d.zeros([t,o],"float64");for(let g=0;g<o;g++){let i=d.zeros([t],"float64");for(let a=0;a<t;a++)i.set([a],Number(r.get(a,g)));let Q=tp(A,i);for(let a=0;a<t;a++)n.set([a,g],Number(Q.get(a)))}return n}throw new Error(`solve: b must be 1D or 2D, got ${r.ndim}D`)}function Ep(A,r,I=null){if(A.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${A.ndim}D`);let[e,t]=A.shape,{u:o,s:n,vt:g}=qr(A),i=Math.min(e,t),Q=I??Math.max(e,t)*Number.EPSILON,B=Number(n.get(0))*Q,s=0;for(let c=0;c<i;c++)Number(n.get(c))>B&&s++;let C=r.ndim===1?EA(r,[r.size,1]):r,E=C.shape[1];if(C.shape[0]!==e)throw new Error(`lstsq: incompatible shapes (${e},${t}) and (${r.shape.join(",")})`);let u=d.zeros([t,E],"float64");for(let c=0;c<E;c++){let D=new Array(e).fill(0);for(let y=0;y<e;y++)for(let l=0;l<e;l++)D[y]+=Number(o.get(l,y))*Number(C.get(l,c));for(let y=0;y<t;y++){let l=0;for(let h=0;h<i;h++){let b=Number(n.get(h));b>B&&(l+=Number(g.get(h,y))*D[h]/b)}u.set([y,c],l)}}let f;if(e>t){f=d.zeros([E],"float64");for(let c=0;c<E;c++){let D=0;for(let y=0;y<e;y++){let l=0;for(let b=0;b<t;b++)l+=Number(A.get(y,b))*Number(u.get(b,c));let h=l-Number(C.get(y,c));D+=h*h}f.set([c],D)}}else f=d.zeros([0],"float64");return{x:r.ndim===1?EA(u,[t]):u,residuals:f,rank:s,s:n}}function up(A,r=2){if(A.ndim!==2)throw new Error(`cond: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(r===2||r===-2){let{s:g}=qr(A),i=Math.min(I,e),Q=Number(g.get(0)),a=Number(g.get(i-1));return r===2?a>0?Q/a:1/0:Q>0?a/Q:0}if(I!==e)throw new Error(`cond: matrix must be square for p=${r}`);let t=$r(A,r),o=kI(A),n=$r(o,r);return t*n}function cp(A,r){if(A.ndim===0)return Number(A.get())!==0?1:0;if(A.ndim===1){for(let n=0;n<A.size;n++)if(Number(A.get(n))!==0)return 1;return 0}if(A.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${A.ndim}D`);let{s:I}=qr(A),e=Number(I.get(0)),t=r??e*Math.max(A.shape[0],A.shape[1])*Number.EPSILON,o=0;for(let n=0;n<I.size;n++)Number(I.get(n))>t&&o++;return o}function Dp(A,r){if(A.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${A.ndim}D`);let[I,e]=A.shape;if(I!==e)throw new Error(`matrix_power: matrix must be square, got ${I}x${e}`);let t=I;if(!Number.isInteger(r))throw new Error("matrix_power: exponent must be an integer");if(r===0){let B=d.zeros([t,t],"float64");for(let s=0;s<t;s++)B.set([s,s],1);return B}let o=A,n=r;r<0&&(o=kI(A),n=-r);let g=o.dtype==="float32"?"float32":"float64",i=d.zeros([t,t],g),Q=i.data;for(let B=0;B<t;B++)Q[B*t+B]=1;let a;if(o.isCContiguous&&(o.dtype==="float64"||o.dtype==="float32"))a=o.copy();else{a=d.zeros([t,t],g);let B=a.data,s=o.data,C=o.offset,[E=0,u=0]=o.strides;for(let f=0;f<t;f++)for(let m=0;m<t;m++)B[f*t+m]=Number(s[C+f*E+m*u])}for(;n>0;)n&1&&(i=OA(i,a)),a=OA(a,a),n>>=1;return i}function WC(A,r=1e-15){if(A.ndim<2)throw new Error(`pinv: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let B=Array.from(A.shape).slice(0,-2),s=A.shape[A.ndim-2],C=A.shape[A.ndim-1],E=B.reduce((m,c)=>m*c,1),u=new Float64Array(E*C*s),f=ZA(A);for(let m=0;m<E;m++){let c=m*s*C,D=d.fromData(f.slice(c,c+s*C),[s,C],"float64"),y=WC(D,r);u.set(ZA(y),m*C*s)}return d.fromData(u,[...B,C,s],"float64")}let[I,e]=A.shape,{u:t,s:o,vt:n}=qr(A),g=Math.min(I,e),Q=Number(o.get(0))*r,a=d.zeros([e,I],"float64");for(let B=0;B<e;B++)for(let s=0;s<I;s++){let C=0;for(let E=0;E<g;E++){let u=Number(o.get(E));u>Q&&(C+=Number(n.get(E,B))*Number(t.get(s,E))/u)}a.set([B,s],C)}return a}function ug(A){if(A.ndim<2)throw new Error(`eig: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let a=Array.from(A.shape).slice(0,-2),B=A.shape[A.ndim-1],s=A.shape[A.ndim-2];if(s!==B)throw new Error(`eig: last 2 dimensions must be square, got ${s}x${B}`);let C=a.reduce((m,c)=>m*c,1),E=new Float64Array(C*B),u=new Float64Array(C*B*B),f=ZA(A);for(let m=0;m<C;m++){let c=m*B*B,D=d.fromData(f.slice(c,c+B*B),[B,B],"float64"),{w:y,v:l}=ug(D);E.set(ZA(y),m*B),u.set(ZA(l),c)}return{w:d.fromData(E,[...a,B],"float64"),v:d.fromData(u,[...a,B,B],"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`eig: matrix must be square, got ${r}x${I}`);let e=r,t=!0;A:for(let a=0;a<e;a++)for(let B=a+1;B<e;B++)if(Math.abs(Number(A.get(a,B))-Number(A.get(B,a)))>1e-10){t=!1;break A}if(t){let{values:a,vectors:B}=PC(A),s=d.zeros([e],"float64"),C=d.zeros([e,e],"float64");for(let E=0;E<e;E++){s.set([E],a[E]);for(let u=0;u<e;u++)C.set([u,E],B[u][E])}return{w:s,v:C}}let{values:o,vectors:n,hasComplexEigenvalues:g}=v1(A);g&&console.warn("numpy-ts: eig() detected complex eigenvalues which cannot be represented. Results are real approximations and may be inaccurate. For symmetric matrices, use eigh() instead.");let i=d.zeros([e],"float64"),Q=d.zeros([e,e],"float64");for(let a=0;a<e;a++){i.set([a],o[a]);for(let B=0;B<e;B++)Q.set([B,a],n[B][a])}return{w:i,v:Q}}function v1(A){let r=A.shape[0],I=1e3,e=1e-10,t=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)for(let a=0;a<r;a++)t.set([Q,a],Number(A.get(Q,a)));let o=d.zeros([r,r],"float64");for(let Q=0;Q<r;Q++)o.set([Q,Q],1);for(let Q=0;Q<I;Q++){let a=0;for(let E=0;E<r;E++)for(let u=0;u<r;u++)E!==u&&(a+=Number(t.get(E,u))**2);if(Math.sqrt(a)<e*r)break;let B=sg(t,"reduced"),s=B.q,C=B.r;t=OA(C,s),o=OA(o,s)}let n=!1;for(let Q=0;Q<r-1;Q++){let a=Math.abs(Number(t.get(Q+1,Q))),B=Math.abs(Number(t.get(Q,Q))),s=Math.abs(Number(t.get(Q+1,Q+1))),C=Math.max(B,s,1e-10);if(a/C>1e-6){n=!0;break}}let g=[];for(let Q=0;Q<r;Q++)g.push(Number(t.get(Q,Q)));let i=[];for(let Q=0;Q<r;Q++){i.push([]);for(let a=0;a<r;a++)i[Q].push(Number(o.get(Q,a)))}return{values:g,vectors:i,hasComplexEigenvalues:n}}function cg(A,r="L"){if(A.ndim<2)throw new Error(`eigh: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let B=Array.from(A.shape).slice(0,-2),s=A.shape[A.ndim-1],C=A.shape[A.ndim-2];if(C!==s)throw new Error(`eigh: last 2 dimensions must be square, got ${C}x${s}`);let E=B.reduce((c,D)=>c*D,1),u=new Float64Array(E*s),f=new Float64Array(E*s*s),m=ZA(A);for(let c=0;c<E;c++){let D=c*s*s,y=d.fromData(m.slice(D,D+s*s),[s,s],"float64"),{w:l,v:h}=cg(y,r);u.set(ZA(l),c*s),f.set(ZA(h),D)}return{w:d.fromData(u,[...B,s],"float64"),v:d.fromData(f,[...B,s,s],"float64")}}let[I,e]=A.shape;if(I!==e)throw new Error(`eigh: matrix must be square, got ${I}x${e}`);let t=I,o=d.zeros([t,t],"float64");for(let B=0;B<t;B++)for(let s=0;s<t;s++)r==="L"?B>=s&&(o.set([B,s],Number(A.get(B,s))),o.set([s,B],Number(A.get(B,s)))):s>=B&&(o.set([B,s],Number(A.get(B,s))),o.set([s,B],Number(A.get(B,s))));let{values:n,vectors:g}=PC(o),i=Array.from({length:t},(B,s)=>s);i.sort((B,s)=>n[B]-n[s]);let Q=d.zeros([t],"float64"),a=d.zeros([t,t],"float64");for(let B=0;B<t;B++){Q.set([B],n[i[B]]);for(let s=0;s<t;s++)a.set([s,B],g[s][i[B]])}return{w:Q,v:a}}function fp(A){let{w:r}=ug(A);return r}function mp(A,r="L"){let{w:I}=cg(A,r);return I}function yp(A,r){let I=gI(A),e=gI(r),t=I.shape[0],o=e.shape[0];if(t!==o)throw new Error(`vdot: arrays must have same number of elements, got ${t} and ${o}`);let n=k(A.dtype)||k(r.dtype);if(n){let a=Jb(I,e);if(a!==null)return a}else{let a=ag(I,e);if(a!==null)return a}if(n){let a=0,B=0;for(let s=0;s<t;s++){let C=I.get(s),E=e.get(s),u=C instanceof T?C.re:Number(C),f=C instanceof T?C.im:0,m=E instanceof T?E.re:Number(E),c=E instanceof T?E.im:0;a+=u*m+f*c,B+=-f*m+u*c}return Math.abs(B)<1e-15?a:new T(a,B)}let g=IA(A.dtype,r.dtype),i=ir(g);if(i){i[0]=0;for(let a=0;a<t;a++)i[0]+=Number(I.get(a))*Number(e.get(a));return i[0]}let Q=0;for(let a=0;a<t;a++){let B=I.get(a),s=e.get(a);typeof B=="bigint"&&typeof s=="bigint"?Q=(typeof Q=="bigint"?Q:BigInt(Q))+B*s:Q=(typeof Q=="bigint"?Number(Q):Q)+Number(B)*Number(s)}return Q}function lp(A,r,I=-1){let e=A.ndim,t=r.ndim,o=I<0?e+I:I,n=I<0?t+I:I;if(o<0||o>=e)throw new Error(`vecdot: axis ${I} out of bounds for array with ${e} dimensions`);if(n<0||n>=t)throw new Error(`vecdot: axis ${I} out of bounds for array with ${t} dimensions`);let g=A.shape[o],i=r.shape[n];if(g!==i)throw new Error(`vecdot: axis dimensions must match, got ${g} and ${i}`);if(e===1&&t===1){if(!(k(A.dtype)||k(r.dtype)))return aI(A,r);let D=A.shape[0],y=0,l=0;for(let h=0;h<D;h++){let b=A.get(h),p=r.get(h),w=b instanceof T?new T(b.re,-b.im):b,N=mr(w,p);N instanceof T?(y+=N.re,l+=N.im):y+=Number(N)}return new T(y,l)}if(e===2&&t===2&&I===-1){let c=kb(A,r);if(c)return c}let Q=[...A.shape.slice(0,o),...A.shape.slice(o+1)],a=[...r.shape.slice(0,n),...r.shape.slice(n+1)],B=g,s=k(A.dtype)||k(r.dtype),C=IA(A.dtype,r.dtype),E=Q.length>a.length?Q:a,u=ir(C);if(E.length===0){if(u){u[0]=0;for(let D=0;D<B;D++)u[0]+=Number(A.get(D))*Number(r.get(D));return u[0]}let c=s?new T(0,0):L(C)?0n:0;for(let D=0;D<B;D++){let y=A.get(D),l=r.get(D),h=y instanceof T?new T(y.re,-y.im):y,b=mr(h,l);if(c instanceof T||b instanceof T){let p=c instanceof T?c:new T(Number(c),0),w=b instanceof T?b:new T(Number(b),0);c=p.add(w)}else typeof c=="bigint"||typeof b=="bigint"?c=BigInt(c)+BigInt(b):c=c+b}return c}let f=d.zeros(E,C),m=E.reduce((c,D)=>c*D,1);for(let c=0;c<m;c++){let D=[],y=c;for(let b=E.length-1;b>=0;b--)D.unshift(y%E[b]),y=Math.floor(y/E[b]);let l=[...D.slice(0,o),0,...D.slice(o)],h=[...D.slice(0,n),0,...D.slice(n)];if(u){u[0]=0;for(let b=0;b<B;b++)l[o]=b,h[n]=b,u[0]+=Number(A.get(...l))*Number(r.get(...h));f.set(D,u[0])}else{let b=s?new T(0,0):L(C)?0n:0;for(let p=0;p<B;p++){l[o]=p,h[n]=p;let w=A.get(...l),N=r.get(...h),F=w instanceof T?new T(w.re,-w.im):w,S=mr(F,N);if(b instanceof T||S instanceof T){let x=b instanceof T?b:new T(Number(b),0),H=S instanceof T?S:new T(Number(S),0);b=x.add(H)}else typeof b=="bigint"||typeof S=="bigint"?b=BigInt(b)+BigInt(S):b=b+S}f.set(D,b)}}return f}function hp(A){if(A.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${A.ndim}D`);let r=Array.from({length:A.ndim},(e,t)=>t),I=r.length-1;return r[I]=I-1,r[I-1]=I,AI(A,r)}function dp(A,r){return AI(A,r)}function bp(A,r){if(A.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${A.ndim}D`);if(r.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${r.ndim}D`);let I=A.shape[A.ndim-2],e=A.shape[A.ndim-1],t=r.shape[r.ndim-1];if(e!==t)throw new Error(`matvec: last axis of x1 (${e}) must match last axis of x2 (${t})`);if(A.ndim===2&&r.ndim===1)return aI(A,r);let o=A.shape.slice(0,-2),n=r.shape.slice(0,-1),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let f=0;f<g;f++){let m=i[f],c=Q[f];if(m!==1&&c!==1&&m!==c)throw new Error(`matvec: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let B=[...a,I],s=IA(A.dtype,r.dtype),C=d.zeros(B,s),E=k(s),u=a.reduce((f,m)=>f*m,1);for(let f=0;f<u;f++){let m=[],c=f;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let D=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(s);for(let h=0;h<I;h++)if(l){l[0]=0;for(let b=0;b<e;b++){let p=[...D,h,b],w=[...y,b];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(s)?0n:0;for(let p=0;p<e;p++){let w=[...D,h,p],N=[...y,p],F=A.get(...w),S=r.get(...N),x=mr(F,S);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function pp(A,r){if(A.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${A.ndim}D`);if(r.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${r.ndim}D`);let I=A.shape[A.ndim-1],e=r.shape[r.ndim-2],t=r.shape[r.ndim-1];if(I!==e)throw new Error(`vecmat: last axis of x1 (${I}) must match second-to-last axis of x2 (${e})`);if(A.ndim===1&&r.ndim===2)return aI(A,r);let o=A.shape.slice(0,-1),n=r.shape.slice(0,-2),g=Math.max(o.length,n.length),i=[...Array(g-o.length).fill(1),...o],Q=[...Array(g-n.length).fill(1),...n],a=[];for(let f=0;f<g;f++){let m=i[f],c=Q[f];if(m!==1&&c!==1&&m!==c)throw new Error(`vecmat: batch dimensions not broadcastable: ${o} vs ${n}`);a.push(Math.max(m,c))}let B=[...a,t],s=IA(A.dtype,r.dtype),C=d.zeros(B,s),E=k(s),u=a.reduce((f,m)=>f*m,1);for(let f=0;f<u;f++){let m=[],c=f;for(let h=a.length-1;h>=0;h--)m.unshift(c%a[h]),c=Math.floor(c/a[h]);let D=m.slice(-(o.length||1)).map((h,b)=>(o[b]??1)===1?0:h),y=m.slice(-(n.length||1)).map((h,b)=>(n[b]??1)===1?0:h),l=ir(s);for(let h=0;h<t;h++)if(l){l[0]=0;for(let b=0;b<I;b++){let p=[...D,b],w=[...y,b,h];l[0]+=Number(A.get(...p))*Number(r.get(...w))}C.set([...m,h],l[0])}else{let b=E?new T(0,0):L(s)?0n:0;for(let p=0;p<I;p++){let w=[...D,p],N=[...y,p,h],F=A.get(...w),S=r.get(...N),x=mr(F,S);if(b instanceof T||x instanceof T){let H=b instanceof T?b:new T(Number(b),0),X=x instanceof T?x:new T(Number(x),0);b=H.add(X)}else typeof b=="bigint"||typeof x=="bigint"?b=BigInt(b)+BigInt(x):b=b+x}C.set([...m,h],b)}}return C}function OC(A){if(A.ndim<2)throw new Error(`slogdet: input must be at least 2D, got ${A.ndim}D`);if(A.ndim>2){let Q=Array.from(A.shape).slice(0,-2),a=A.shape[A.ndim-1],B=A.shape[A.ndim-2];if(B!==a)throw new Error(`slogdet: last 2 dimensions must be square, got ${B}x${a}`);let s=Q.reduce((f,m)=>f*m,1),C=new Float64Array(s),E=new Float64Array(s),u=ZA(A);for(let f=0;f<s;f++){let m=f*a*a,c=d.fromData(u.slice(m,m+a*a),[a,a],"float64"),{sign:D,logabsdet:y}=OC(c);C[f]=D,E[f]=y}return{sign:d.fromData(C,Q,"float64"),logabsdet:d.fromData(E,Q,"float64")}}let[r,I]=A.shape;if(r!==I)throw new Error(`slogdet: matrix must be square, got ${r}x${I}`);let e=r;if(e===0)return{sign:1,logabsdet:0};let{lu:t,sign:o}=Eg(A),n=t.data,g=0,i=o;for(let Q=0;Q<e;Q++){let a=n[Q*e+Q];if(a===0)return{sign:0,logabsdet:-1/0};a<0&&(i=-i),g+=Math.log(Math.abs(a))}return{sign:i,logabsdet:g}}function wp(A){return Cg(A,!0,!1)}function Np(A){if(A.length<2)throw new Error("multi_dot: need at least 2 arrays");if(A.length===2)return OA(A[0],A[1]);let r=A[0];for(let I=1;I<A.length;I++)r=OA(r,A[I]);return r}function Fp(A,r=2){if(r<=0)throw new Error(`tensorinv: ind must be positive, got ${r}`);let I=A.shape,e=A.ndim;if(e<r)throw new Error(`tensorinv: array has ${e} dimensions, ind=${r} is too large`);let t=1;for(let Q=0;Q<r;Q++)t*=I[Q];let o=1;for(let Q=r;Q<e;Q++)o*=I[Q];if(t!==o)throw new Error(`tensorinv: product of first ${r} dimensions (${t}) must equal product of remaining dimensions (${o})`);let n=EA(A,[t,o]),g=kI(n),i=[...I.slice(r),...I.slice(0,r)];return EA(g,i)}function Gp(A,r,I){let e=A.shape,t=r.shape,o=A.ndim,n=r.ndim,g;I==null?g=Array.from({length:n},(D,y)=>o-n+y):g=I.map(D=>D<0?o+D:D);let i=[];for(let D=0;D<o;D++)g.includes(D)||i.push(D);let Q=[...i,...g],a=AI(A,Q),s=g.map(D=>e[D]).reduce((D,y)=>D*y,1),E=i.map(D=>e[D]).reduce((D,y)=>D*y,1),u=t.reduce((D,y)=>D*y,1);if(s!==u)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${s}) != b total elements (${u})`);if(E!==s)throw new Error(`tensorsolve: non-square problem - other dimensions product (${E}) != sum dimensions product (${s})`);let f=EA(a,[E,s]),m=EA(r,[s]),c=VC(f,m);return EA(c,[...t])}function Sp(A,...r){let I=A.indexOf("->"),e,t;I===-1?(e=A,t=ap(e)):(e=A.slice(0,I),t=A.slice(I+2));let o=e.split(",").map(s=>s.trim());if(o.length!==r.length)throw new Error(`einsum_path: expected ${o.length} operands, got ${r.length}`);let n=r.map(s=>Array.isArray(s)?s:Array.from(s.shape)),g=new Map;for(let s=0;s<r.length;s++){let C=o[s],E=n[s];if(C.length!==E.length)throw new Error(`einsum_path: operand ${s} has ${E.length} dimensions but subscript '${C}' has ${C.length} indices`);for(let u=0;u<C.length;u++){let f=C[u],m=E[u];if(g.has(f)&&g.get(f)!==m)throw new Error(`einsum_path: size mismatch for index '${f}': ${g.get(f)} vs ${m}`);g.set(f,m)}}if(r.length===1){let s=[[0]];return[s,vC(A,n,s,g)]}if(r.length===2){let s=[[0,1]];return[s,vC(A,n,s,g)]}let i=[],Q=[...o],a=[...n],B=r.map((s,C)=>C);for(;Q.length>1;){let s=0,C=1,E=1/0;for(let m=0;m<Q.length;m++)for(let c=m+1;c<Q.length;c++){let D=X1(Q[m],Q[c],a[m],a[c],t,g);D<E&&(E=D,s=m,C=c)}i.push([B[s],B[C]]);let[u,f]=T1(Q[s],Q[C],a[s],a[C],t,g);Q.splice(C,1),Q.splice(s,1),a.splice(C,1),a.splice(s,1),B.splice(C,1),B.splice(s,1),Q.push(u),a.push(f),B.push(-1)}return[i,vC(A,n,i,g)]}function X1(A,r,I,e,t,o){let n=new Set(A),g=new Set(r),i=1;for(let Q of n)i*=o.get(Q)||1;for(let Q of g)n.has(Q)||(i*=o.get(Q)||1);return i}function T1(A,r,I,e,t,o){let n=new Set([...A,...r]),g=new Map;for(let B of A)g.set(B,(g.get(B)||0)+1);for(let B of r)g.set(B,(g.get(B)||0)+1);let i=new Set(t),Q=[];for(let B of n)(i.has(B)||g.get(B)===1)&&Q.push(B);Q.sort();let a=Q.map(B=>o.get(B));return[Q.join(""),a]}function vC(A,r,I,e){let t=[];t.push(" Complete contraction: "+A),t.push(" Operand shapes: "+r.map(n=>`(${n.join(", ")})`).join(", ")),t.push(" Contraction path: "+JSON.stringify(I));let o=0;for(let n of r)o+=n.reduce((g,i)=>g*i,1);return t.push(" Estimated FLOPS: ~"+o.toExponential(2)),t.join(`
5
- `)}function qI(A,r){let I=aI(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function MI(A,r=0,I=0,e=1){let t=op(G(A),r,I,e);return t instanceof d?R(t):t}function xI(A,r=0,I=0,e=1){return R(gp(G(A),r,I,e))}function ZC(A,r){return R(Bp(G(A),G(r)))}function JI(A,r){return $A(AI(G(A),r),A)}function UI(A,r){let I=np(G(A),G(r));return typeof I=="number"||typeof I=="bigint"||I instanceof T?I:R(I)}function LI(A,r){return R(XC(G(A),G(r)))}function HI(A,r,I=2){let e=ip(G(A),G(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function Dg(A,...r){let I=r.map(t=>G(t)),e=Qp(A,...I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function fg(A,...r){let I=r.map(e=>G(e));return Sp(A,...I)}function mg(A,r){return yp(G(A),G(r))}function yg(A,r,I=-1){let e=lp(G(A),G(r),I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function lg(A){return $A(hp(G(A)),A)}function hg(A,r){return $A(dp(G(A),r),A)}function zC(A,r){return R(bp(G(A),G(r)))}function jC(A,r){return R(pp(G(A),G(r)))}function dg(A,r,I=-1,e=-1,t=-1,o){let n=sp(G(A),G(r),I,e,t,o);return typeof n=="number"||typeof n=="bigint"||n instanceof T?n:R(n)}function Zt(A,r){return R(OA(G(A),G(r)))}var bg={matmul:(A,r)=>R(OA(G(A),G(r))),dot:(A,r)=>qI(A,r),det:A=>{let r=KC(G(A));return typeof r=="number"?r:R(r)},inv:A=>R(kI(G(A))),solve:(A,r)=>R(VC(G(A),G(r))),lstsq:(A,r,I)=>{let e=Ep(G(A),G(r),I);return{x:R(e.x),residuals:R(e.residuals),rank:e.rank,s:R(e.s)}},norm:(A,r,I,e)=>{let t=Cp(G(A),r,I,e);return typeof t=="number"?t:R(t)},cond:(A,r)=>up(G(A),r),matrix_rank:(A,r)=>cp(G(A),r),matrix_power:(A,r)=>R(Dp(G(A),r)),pinv:(A,r)=>R(WC(G(A),r)),qr:(A,r)=>{let I=sg(G(A),r);return"h"in I&&"tau"in I?{h:R(I.h),tau:R(I.tau)}:"q"in I&&"r"in I?{q:R(I.q),r:R(I.r)}:R(I)},cholesky:(A,r)=>R(TC(G(A),r)),svd:(A,r,I)=>{let e=Cg(G(A),r,I);return"u"in e&&"s"in e&&"vt"in e?{u:R(e.u),s:R(e.s),vt:R(e.vt)}:R(e)},eig:A=>{let r=ug(G(A));return{w:R(r.w),v:R(r.v)}},eigh:(A,r)=>{let I=cg(G(A),r);return{w:R(I.w),v:R(I.v)}},eigvals:A=>R(fp(G(A))),eigvalsh:(A,r)=>R(mp(G(A),r)),slogdet:A=>{let r=OC(G(A)),I=r.sign instanceof d?R(r.sign):r.sign,e=r.logabsdet instanceof d?R(r.logabsdet):r.logabsdet;return{sign:I,logabsdet:e}},svdvals:A=>R(wp(G(A))),multi_dot:A=>R(Np(A.map(r=>G(r)))),tensorinv:(A,r)=>R(Fp(G(A),r)),tensorsolve:(A,r,I)=>R(Gp(G(A),G(r),I)),vector_norm:(A,r,I,e)=>{let t=RI(G(A),r,I,e);return typeof t=="number"?t:R(t)},matrix_norm:(A,r,I)=>{let e=$r(G(A),r,I);return typeof e=="number"?e:R(e)},cross:(A,r,I,e,t,o)=>dg(A,r,I,e,t,o),matrix_transpose:A=>lg(A),permute_dims:(A,r)=>hg(A,r),trace:(A,r,I,e)=>MI(A,r,I,e),diagonal:(A,r,I,e)=>xI(A,r,I,e),outer:(A,r)=>LI(A,r),inner:(A,r)=>UI(A,r),tensordot:(A,r,I)=>HI(A,r,I),vecdot:(A,r,I)=>yg(A,r,I),transpose:(A,r)=>JI(A,r)};function zt(A,r){return R(EA(G(A),r))}function yr(A){return R(gI(G(A)))}function jt(A){return R(hI(G(A)))}function $t(A,r){return $A(Sf(G(A),r),A)}function Ao(A,r){return $A(iI(G(A),r),A)}function ro(A,r,I){return $A(Rf(G(A),r,I),A)}function Io(A,r,I){return $A(va(G(A),r,I),A)}function $C(A,r,I=0){return $A(Tf(G(A),r,I),A)}function _I(A,r=0){return R(_r(A.map(I=>G(I)),r))}function AE(A,r=0){return R(kf(A.map(I=>G(I)),r))}function pg(A){return R(qf(A.map(r=>G(r))))}function rE(A){return R(Xa(A.map(r=>G(r))))}function IE(A){return R(Mf(A.map(r=>G(r))))}function eE(A){return R(Kf(A.map(r=>G(r))))}var wg=pg;function tE(A){return R(jf(A.map(r=>G(r))))}function Ng(A,r,I=0){return bI(xf(G(A),r,I),A)}function Fg(A,r,I=0){return bI(se(G(A),r,I),A)}function Gg(A,r){return bI(Uf(G(A),r),A)}function Sg(A,r){return bI(Lf(G(A),r),A)}function Rg(A,r){return bI(Pf(G(A),r),A)}function oE(A,r=0){return dr(zf(G(A),r))}function nE(A,r){return R(Hf(G(A),r))}function eo(A,r,I){return R(_f(G(A),r,I))}function to(A,r){return R(Yf(G(A),r))}function iE(A){return to(A,1)}function gE(A){return to(A,0)}function QE(A,r=1,I=[0,1]){return R(vf(G(A),r,I))}function aE(A,r,I){return R(Xf(G(A),r,I))}function oo(A,r){return R(Vf(G(A),r))}function kg(...A){let r=Wf(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function qg(...A){let r=Of(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function Mg(...A){let r=Zf(A.map(I=>G(I)));return r.length===1?R(r[0]):dr(r)}function pr(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function gA(A,r,I,e,t){let o=A.length,n=r[e],g=[],i=[];for(let B=0;B<o;B++)B!==e&&(g.push(A[B]),i.push(r[B]));let Q=new Int32Array(t),a=g.length;if(a===0)Q[0]=I;else if(a===1){let B=i[0];for(let s=0;s<t;s++)Q[s]=I+s*B}else{let B=new Int32Array(a);B[a-1]=1;for(let s=a-2;s>=0;s--)B[s]=B[s+1]*g[s+1];for(let s=0;s<t;s++){let C=I,E=s;for(let u=0;u<a;u++){let f=E/B[u]|0;E-=f*B[u],C+=f*i[u]}Q[s]=C}}return{baseOffsets:Q,axisStride:n}}var K1="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",no=null;function zA(){if(no)return no;let A=atob(K1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);no=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=no.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),no}function Rp(A,r){return zA().exports.reduce_sum_f64(A,r)}function kp(A,r){return zA().exports.reduce_sum_f32(A,r)}function BE(A,r){return zA().exports.reduce_sum_i64(A,r)}function sE(A,r){return zA().exports.reduce_sum_i32(A,r)}function qp(A,r,I,e,t){zA().exports.reduce_sum_strided_f64(A,r,I,e,t)}function Mp(A,r,I,e,t){zA().exports.reduce_sum_strided_f32(A,r,I,e,t)}function xp(A,r,I,e,t){zA().exports.reduce_sum_strided_i64(A,r,I,e,t)}function Jp(A,r,I,e,t){zA().exports.reduce_sum_strided_u64(A,r,I,e,t)}function Up(A,r,I,e,t){zA().exports.reduce_sum_strided_i32(A,r,I,e,t)}function Lp(A,r,I,e,t){zA().exports.reduce_sum_strided_u32(A,r,I,e,t)}function Hp(A,r,I,e,t){zA().exports.reduce_sum_strided_i16(A,r,I,e,t)}function _p(A,r,I,e,t){zA().exports.reduce_sum_strided_u16(A,r,I,e,t)}function Yp(A,r,I,e,t){zA().exports.reduce_sum_strided_i8(A,r,I,e,t)}function vp(A,r,I,e,t){zA().exports.reduce_sum_strided_u8(A,r,I,e,t)}var Xp=64,V1={float64:Rp,float32:kp,int64:BE,uint64:BE,int32:sE,uint32:sE},Tp={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Pp(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Xp*Y.thresholdMultiplier)return null;let I=A.dtype,e=V1[I],t=Tp[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var W1={float64:qp,float32:Mp,int64:xp,uint64:Jp,int32:Up,uint32:Lp,int16:Hp,uint16:_p,int8:Yp,uint8:vp};function Kp(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<Xp*Y.thresholdMultiplier)return null;let o=A.dtype,n=W1[o],g=Tp[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=r*e;J(t*i+Q*8),U();let a=A.offset,B=A.data.subarray(a,a+t),s=q(B),C=_(Q*8);n(s,C,r,I,e);let E=v(C,Q,Float64Array);return d.fromData(E,[Q],"float64")}var O1="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",io=null;function xA(){if(io)return io;let A=atob(O1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);io=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=io.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),io}function Vp(A,r){return xA().exports.reduce_max_f32(A,r)}function Wp(A,r){return xA().exports.reduce_max_i64(A,r)}function Op(A,r){return xA().exports.reduce_max_u64(A,r)}function Zp(A,r){return xA().exports.reduce_max_i32(A,r)}function zp(A,r){return xA().exports.reduce_max_u32(A,r)}function jp(A,r){return xA().exports.reduce_max_i16(A,r)}function $p(A,r){return xA().exports.reduce_max_u16(A,r)}function Aw(A,r){return xA().exports.reduce_max_i8(A,r)}function rw(A,r){return xA().exports.reduce_max_u8(A,r)}function Iw(A,r,I,e,t){xA().exports.reduce_max_strided_f32(A,r,I,e,t)}function ew(A,r,I,e,t){xA().exports.reduce_max_strided_i64(A,r,I,e,t)}function tw(A,r,I,e,t){xA().exports.reduce_max_strided_u64(A,r,I,e,t)}function ow(A,r,I,e,t){xA().exports.reduce_max_strided_i32(A,r,I,e,t)}function nw(A,r,I,e,t){xA().exports.reduce_max_strided_u32(A,r,I,e,t)}function iw(A,r,I,e,t){xA().exports.reduce_max_strided_i16(A,r,I,e,t)}function gw(A,r,I,e,t){xA().exports.reduce_max_strided_u16(A,r,I,e,t)}function Qw(A,r,I,e,t){xA().exports.reduce_max_strided_i8(A,r,I,e,t)}function aw(A,r,I,e,t){xA().exports.reduce_max_strided_u8(A,r,I,e,t)}var Bw=64,Z1={float32:Vp,int64:Wp,uint64:Op,int32:Zp,uint32:zp,int16:jp,uint16:$p,int8:Aw,uint8:rw},sw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Cw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Bw*Y.thresholdMultiplier)return null;let I=A.dtype,e=Z1[I],t=sw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var z1={float32:Iw,int64:ew,uint64:tw,int32:ow,uint32:nw,int16:iw,uint16:gw,int8:Qw,uint8:aw},j1={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Ew(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<Bw*Y.thresholdMultiplier)return null;let o=A.dtype,n=z1[o],g=sw[o],i=j1[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,B=r*e;J(t*Q+B*a),U();let s=A.offset,C=A.data.subarray(s,s+t),E=q(C),u=_(B*a);n(E,u,r,I,e);let f=v(u,B,i);return d.fromData(f,[B],o)}var $1="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",go=null;function JA(){if(go)return go;let A=atob($1),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);go=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=go.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),go}function uw(A,r){return JA().exports.reduce_min_f32(A,r)}function cw(A,r){return JA().exports.reduce_min_i64(A,r)}function Dw(A,r){return JA().exports.reduce_min_u64(A,r)}function fw(A,r){return JA().exports.reduce_min_i32(A,r)}function mw(A,r){return JA().exports.reduce_min_u32(A,r)}function yw(A,r){return JA().exports.reduce_min_i16(A,r)}function lw(A,r){return JA().exports.reduce_min_u16(A,r)}function hw(A,r){return JA().exports.reduce_min_i8(A,r)}function dw(A,r){return JA().exports.reduce_min_u8(A,r)}function bw(A,r,I,e,t){JA().exports.reduce_min_strided_f32(A,r,I,e,t)}function pw(A,r,I,e,t){JA().exports.reduce_min_strided_i64(A,r,I,e,t)}function ww(A,r,I,e,t){JA().exports.reduce_min_strided_u64(A,r,I,e,t)}function Nw(A,r,I,e,t){JA().exports.reduce_min_strided_i32(A,r,I,e,t)}function Fw(A,r,I,e,t){JA().exports.reduce_min_strided_u32(A,r,I,e,t)}function Gw(A,r,I,e,t){JA().exports.reduce_min_strided_i16(A,r,I,e,t)}function Sw(A,r,I,e,t){JA().exports.reduce_min_strided_u16(A,r,I,e,t)}function Rw(A,r,I,e,t){JA().exports.reduce_min_strided_i8(A,r,I,e,t)}function kw(A,r,I,e,t){JA().exports.reduce_min_strided_u8(A,r,I,e,t)}var qw=64,A3={float32:uw,int64:cw,uint64:Dw,int32:fw,uint32:mw,int16:yw,uint16:lw,int8:hw,uint8:dw},Mw={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function xw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<qw*Y.thresholdMultiplier)return null;let I=A.dtype,e=A3[I],t=Mw[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var r3={float32:bw,int64:pw,uint64:ww,int32:Nw,uint32:Fw,int16:Gw,uint16:Sw,int8:Rw,uint8:kw},I3={float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Jw(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<qw*Y.thresholdMultiplier)return null;let o=A.dtype,n=r3[o],g=Mw[o],i=I3[o];if(!n||!g||!i)return null;let Q=g.BYTES_PER_ELEMENT,a=Q,B=r*e;J(t*Q+B*a),U();let s=A.offset,C=A.data.subarray(s,s+t),E=q(C),u=_(B*a);n(E,u,r,I,e);let f=v(u,B,i);return d.fromData(f,[B],o)}var e3="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",Qo=null;function Mr(){if(Qo)return Qo;let A=atob(e3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qo}function Uw(A,r){return Mr().exports.reduce_argmax_f32(A,r)}function Lw(A,r){return Mr().exports.reduce_argmax_i64(A,r)}function Hw(A,r){return Mr().exports.reduce_argmax_u64(A,r)}function _w(A,r){return Mr().exports.reduce_argmax_i32(A,r)}function Yw(A,r){return Mr().exports.reduce_argmax_u32(A,r)}function vw(A,r){return Mr().exports.reduce_argmax_i16(A,r)}function Xw(A,r){return Mr().exports.reduce_argmax_u16(A,r)}function Tw(A,r){return Mr().exports.reduce_argmax_i8(A,r)}function Pw(A,r){return Mr().exports.reduce_argmax_u8(A,r)}var t3=64,o3={float32:Uw,int64:Lw,uint64:Hw,int32:_w,uint32:Yw,int16:vw,uint16:Xw,int8:Tw,uint8:Pw},n3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Kw(A){if(!A.isCContiguous)return null;let r=A.size;if(r<t3*Y.thresholdMultiplier)return null;let I=A.dtype,e=o3[I],t=n3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var i3="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",ao=null;function xr(){if(ao)return ao;let A=atob(i3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ao=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ao.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ao}function Vw(A,r){return xr().exports.reduce_argmin_f32(A,r)}function Ww(A,r){return xr().exports.reduce_argmin_i64(A,r)}function Ow(A,r){return xr().exports.reduce_argmin_u64(A,r)}function Zw(A,r){return xr().exports.reduce_argmin_i32(A,r)}function zw(A,r){return xr().exports.reduce_argmin_u32(A,r)}function jw(A,r){return xr().exports.reduce_argmin_i16(A,r)}function $w(A,r){return xr().exports.reduce_argmin_u16(A,r)}function AN(A,r){return xr().exports.reduce_argmin_i8(A,r)}function rN(A,r){return xr().exports.reduce_argmin_u8(A,r)}var g3=64,Q3={float32:Vw,int64:Ww,uint64:Ow,int32:Zw,uint32:zw,int16:jw,uint16:$w,int8:AN,uint8:rN},a3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function IN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<g3*Y.thresholdMultiplier)return null;let I=A.dtype,e=Q3[I],t=a3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var B3="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",Bo=null;function SA(){if(Bo)return Bo;let A=atob(B3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bo}function eN(A,r){return SA().exports.reduce_mean_f64(A,r)}function tN(A,r){return SA().exports.reduce_mean_f32(A,r)}function oN(A,r){return SA().exports.reduce_mean_i64(A,r)}function nN(A,r){return SA().exports.reduce_mean_u64(A,r)}function iN(A,r){return SA().exports.reduce_mean_i32(A,r)}function gN(A,r){return SA().exports.reduce_mean_u32(A,r)}function QN(A,r){return SA().exports.reduce_mean_i16(A,r)}function aN(A,r){return SA().exports.reduce_mean_u16(A,r)}function BN(A,r){return SA().exports.reduce_mean_i8(A,r)}function sN(A,r){return SA().exports.reduce_mean_u8(A,r)}function CN(A,r,I,e,t){SA().exports.reduce_mean_strided_f64(A,r,I,e,t)}function EN(A,r,I,e,t){SA().exports.reduce_mean_strided_f32(A,r,I,e,t)}function uN(A,r,I,e,t){SA().exports.reduce_mean_strided_i64(A,r,I,e,t)}function cN(A,r,I,e,t){SA().exports.reduce_mean_strided_u64(A,r,I,e,t)}function DN(A,r,I,e,t){SA().exports.reduce_mean_strided_i32(A,r,I,e,t)}function fN(A,r,I,e,t){SA().exports.reduce_mean_strided_u32(A,r,I,e,t)}function mN(A,r,I,e,t){SA().exports.reduce_mean_strided_i16(A,r,I,e,t)}function yN(A,r,I,e,t){SA().exports.reduce_mean_strided_u16(A,r,I,e,t)}function lN(A,r,I,e,t){SA().exports.reduce_mean_strided_i8(A,r,I,e,t)}function hN(A,r,I,e,t){SA().exports.reduce_mean_strided_u8(A,r,I,e,t)}var dN=64,s3={float64:eN,float32:tN,int64:oN,uint64:nN,int32:iN,uint32:gN,int16:QN,uint16:aN,int8:BN,uint8:sN},bN={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<dN*Y.thresholdMultiplier)return null;let I=A.dtype,e=s3[I],t=bN[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var C3={float64:CN,float32:EN,int64:uN,uint64:cN,int32:DN,uint32:fN,int16:mN,uint16:yN,int8:lN,uint8:hN};function wN(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<dN*Y.thresholdMultiplier)return null;let o=A.dtype,n=C3[o],g=bN[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=Float64Array.BYTES_PER_ELEMENT,a=r*e;J(t*i+a*Q),U();let B=A.offset,s=A.data.subarray(B,B+t),C=q(s),E=_(a*Q);n(C,E,r,I,e);let u=v(E,a,Float64Array);return d.fromData(u,[a],"float64")}var E3="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",so=null;function wr(){if(so)return so;let A=atob(E3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);so=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=so.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),so}function NN(A,r){return wr().exports.reduce_var_f64(A,r)}function FN(A,r){return wr().exports.reduce_var_f32(A,r)}function GN(A,r){return wr().exports.reduce_var_i64(A,r)}function SN(A,r){return wr().exports.reduce_var_u64(A,r)}function RN(A,r){return wr().exports.reduce_var_i32(A,r)}function kN(A,r){return wr().exports.reduce_var_u32(A,r)}function qN(A,r){return wr().exports.reduce_var_i16(A,r)}function MN(A,r){return wr().exports.reduce_var_u16(A,r)}function xN(A,r){return wr().exports.reduce_var_i8(A,r)}function JN(A,r){return wr().exports.reduce_var_u8(A,r)}var u3=64,c3={float64:NN,float32:FN,int64:GN,uint64:SN,int32:RN,uint32:kN,int16:qN,uint16:MN,int8:xN,uint8:JN},D3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function UN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<u3*Y.thresholdMultiplier)return null;let I=A.dtype,e=c3[I],t=D3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var f3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbnN1bV9mNjQAABFyZWR1Y2VfbmFuc3VtX2YzMgABCvUDAv4BBAJ/AXwBfwF8AkAgAQ0ARAAAAAAAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAAAAIQQMAQsgAUF8cSEFQQAhA0QAAAAAAAAAACEEIAAhAQNAIAQgASsDACIGoCAEIAYgBmEbIgYgAUEIaisDACIEoCAGIAQgBGEbIgYgAUEQaisDACIEoCAGIAQgBGEbIgYgAUEYaisDACIEoCAGIAQgBGEbIQQgAUEgaiEBIAUgA0EEaiIDRw0ACwsCQCACRQ0AIAAgA0EDdGohAQNAIAQgASsDACIGoCAEIAYgBmEbIQQgAUEIaiEBIAJBf2oiAg0ACwsgBAvyAQQCfwF9AX8BfQJAIAENAEMAAAAADwsgAUEDcSECAkACQCABQQRPDQBBACEDQwAAAAAhBAwBCyABQXxxIQVBACEDQwAAAAAhBCAAIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyIGIAFBBGoqAgAiBJIgBiAEIARbGyIGIAFBCGoqAgAiBJIgBiAEIARbGyIGIAFBDGoqAgAiBJIgBiAEIARbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCAEIAEqAgAiBpIgBCAGIAZbGyEEIAFBBGohASACQX9qIgINAAsLIAQL",Co=null;function LN(){if(Co)return Co;let A=atob(f3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Co}function HN(A,r){return LN().exports.reduce_nansum_f64(A,r)}function _N(A,r){return LN().exports.reduce_nansum_f32(A,r)}var m3=64,y3={float64:HN,float32:_N},l3={float64:Float64Array,float32:Float32Array};function YN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<m3*Y.thresholdMultiplier)return null;let I=A.dtype,e=y3[I],t=l3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var h3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1pbl9mNjQAABFyZWR1Y2VfbmFubWluX2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPB/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPB/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADwfyEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGMbIAQgCSAJYRsiBCAIIARjGyAEIAggCGEbIgQgByAEYxsgBCAHIAdhGyIEIAYgBGMbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEYxsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACAfw8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAIB/IQQMAQsgAUF8cSEFQQAhA0MAAIB/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXRsgBCAJIAlbGyIEIAggBF0bIAQgCCAIWxsiBCAHIARdGyAEIAcgB1sbIgQgBiAEXRsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIARdGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",Eo=null;function vN(){if(Eo)return Eo;let A=atob(h3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Eo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Eo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Eo}function XN(A,r){return vN().exports.reduce_nanmin_f64(A,r)}function TN(A,r){return vN().exports.reduce_nanmin_f32(A,r)}var d3=64,b3={float64:XN,float32:TN},p3={float64:Float64Array,float32:Float32Array};function PN(A){if(!A.isCContiguous)return null;let r=A.size;if(r<d3*Y.thresholdMultiplier)return null;let I=A.dtype,e=b3[I],t=p3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var w3="AGFzbQEAAAABDQJgAn9/AXxgAn9/AX0CDwEDZW52Bm1lbW9yeQIAEAMDAgABBgkBfwFBgIDAAAsHKQIRcmVkdWNlX25hbm1heF9mNjQAABFyZWR1Y2VfbmFubWF4X2YzMgABCqcEApcCBAJ/AXwBfwR8AkAgAQ0ARAAAAAAAAPD/DwsgAUEDcSECAkACQCABQQRPDQBBACEDRAAAAAAAAPD/IQQMAQsgAUF8cSEFQQAhA0QAAAAAAADw/yEEIAAhAQNAIAFBGGorAwAiBiABQRBqKwMAIgcgAUEIaisDACIIIAErAwAiCSAEIAkgBGQbIAQgCSAJYRsiBCAIIARkGyAEIAggCGEbIgQgByAEZBsgBCAHIAdhGyIEIAYgBGQbIAQgBiAGYRshBCABQSBqIQEgBSADQQRqIgNHDQALCwJAIAJFDQAgACADQQN0aiEBA0AgASsDACIGIAQgBiAEZBsgBCAGIAZhGyEEIAFBCGohASACQX9qIgINAAsLIAQLiwIEAn8BfQF/BH0CQCABDQBDAACA/w8LIAFBA3EhAgJAAkAgAUEETw0AQQAhA0MAAID/IQQMAQsgAUF8cSEFQQAhA0MAAID/IQQgACEBA0AgAUEMaioCACIGIAFBCGoqAgAiByABQQRqKgIAIgggASoCACIJIAQgCSAEXhsgBCAJIAlbGyIEIAggBF4bIAQgCCAIWxsiBCAHIAReGyAEIAcgB1sbIgQgBiAEXhsgBCAGIAZbGyEEIAFBEGohASAFIANBBGoiA0cNAAsLAkAgAkUNACAAIANBAnRqIQEDQCABKgIAIgYgBCAGIAReGyAEIAYgBlsbIQQgAUEEaiEBIAJBf2oiAg0ACwsgBAs=",uo=null;function KN(){if(uo)return uo;let A=atob(w3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);uo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=uo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),uo}function VN(A,r){return KN().exports.reduce_nanmax_f64(A,r)}function WN(A,r){return KN().exports.reduce_nanmax_f32(A,r)}var N3=64,F3={float64:VN,float32:WN},G3={float64:Float64Array,float32:Float32Array};function ON(A){if(!A.isCContiguous)return null;let r=A.size;if(r<N3*Y.thresholdMultiplier)return null;let I=A.dtype,e=F3[I],t=G3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var S3="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IBIgBGtBfEsNACATQQN0IQogBCATayESA0AgESAKaiIDIAMrAwAgFyAKaiIWKwMAojkDACADQQhqIhMgEysDACAWQQhqKwMAojkDACADQRBqIhMgEysDACAWQRBqKwMAojkDACADQRhqIgMgAysDACAWQRhqKwMAojkDACAKQSBqIQogEkF8aiISDQALCyAXIAhqIRcgGEEBaiIYIAVHDQALIBAgC2ohECAAIAtqIQAgESAIaiERIAZBAWoiBiACRw0ADAILCyAERQ0AIARBA3QhEyAEQX5xIRIgBCADbCIKQQN0IRhBACERIARBBkkgASAAIAQgAyACQX9qbEEDdEEIamxqSSAAIAEgBCACbEEDdGpJcSAKIARyQYCAgIABcUEcdnJyQQFxIQcDQEEAIRYCQAJAIAcNACASIRYgACEDIAEhCgNAIAogA/0AAwD9CwMAIANBEGohAyAKQRBqIQogFkF+aiIWDQALIBIhFiAEIBJGDQELIBYhFwJAIAQgFmtBA3EiCkUNACAWIApqIRcgFkEDdCEDA0AgASADaiAAIANqKwMAOQMAIANBCGohAyAKQX9qIgoNAAsLIBYgBGtBfEsNACAXQQN0IQMgBCAXayEXA0AgASADaiIKIAAgA2oiFisDADkDACAKQQhqIBZBCGorAwA5AwAgCkEQaiAWQRBqKwMAOQMAIApBGGogFkEYaisDADkDACADQSBqIQMgF0F8aiIXDQALCyAAIBhqIQAgASATaiEBIBFBAWoiESACRw0ACwsLyQkBFH8CQCACRQ0AAkAgA0F/aiIFRQ0AIARFDQFBACEGIARBA3EhByAEQXxxIQggASAEQQJ0IglqIQogACAEIANsIgtBAnQiDGohDSAEQQhJIAEgACAEIAMgAkF/amxBAnRBBGpsakkgACABIAQgAmxBAnRqSXEgCUEASHIgC0GAgICAAnFBHXZyckEBcSEOIAAgCWoiDyEQIAEhEQNAIA0gDCAGbCIDaiESIA8gA2ohEyAKIAkgBmwiA2ohFCABIANqIRVBACEWAkACQCAODQAgCCEWIAAhAyARIQsDQCALIAP9AAIA/QsCACADQRBqIQMgC0EQaiELIBZBfGoiFg0ACyAIIRYgBCAIRg0BCyAWIRcCQCAHRQ0AIAcgFmohFyAWQQJ0IQMgByELA0AgESADaiAAIANqKgIA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",co=null;function UA(){if(co)return co;let A=atob(S3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);co=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=co.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),co}function ZN(A,r){return UA().exports.reduce_prod_f64(A,r)}function zN(A,r){return UA().exports.reduce_prod_f32(A,r)}function CE(A,r){return UA().exports.reduce_prod_i64(A,r)}function EE(A,r){return UA().exports.reduce_prod_i32(A,r)}function jN(A,r){return UA().exports.reduce_prod_i16(A,r)}function $N(A,r){return UA().exports.reduce_prod_u16(A,r)}function AF(A,r){return UA().exports.reduce_prod_i8(A,r)}function rF(A,r){return UA().exports.reduce_prod_u8(A,r)}function IF(A,r,I,e,t){UA().exports.reduce_prod_strided_f64(A,r,I,e,t)}function eF(A,r,I,e,t){UA().exports.reduce_prod_strided_f32(A,r,I,e,t)}function tF(A,r,I,e,t){UA().exports.reduce_prod_strided_i64(A,r,I,e,t)}function oF(A,r,I,e,t){UA().exports.reduce_prod_strided_u64(A,r,I,e,t)}function nF(A,r,I,e,t){UA().exports.reduce_prod_strided_i32(A,r,I,e,t)}function iF(A,r,I,e,t){UA().exports.reduce_prod_strided_u32(A,r,I,e,t)}function gF(A,r,I,e,t){UA().exports.reduce_prod_strided_i16(A,r,I,e,t)}function QF(A,r,I,e,t){UA().exports.reduce_prod_strided_u16(A,r,I,e,t)}function aF(A,r,I,e,t){UA().exports.reduce_prod_strided_i8(A,r,I,e,t)}function BF(A,r,I,e,t){UA().exports.reduce_prod_strided_u8(A,r,I,e,t)}var sF=64,R3={float64:ZN,float32:zN,int64:CE,uint64:CE,int32:EE,uint32:EE,int16:jN,uint16:$N,int8:AF,uint8:rF},CF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function EF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<sF*Y.thresholdMultiplier)return null;let I=A.dtype,e=R3[I],t=CF[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var k3={float64:IF,float32:eF,int64:tF,uint64:oF,int32:nF,uint32:iF,int16:gF,uint16:QF,int8:aF,uint8:BF},q3={float64:"float64",float32:"float32",int64:"int64",uint64:"uint64",int32:"int32",uint32:"uint32",int16:"int64",uint16:"uint64",int8:"int64",uint8:"uint64"},M3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:BigInt64Array,uint16:BigUint64Array,int8:BigInt64Array,uint8:BigUint64Array},x3={float64:8,float32:4,int64:8,uint64:8,int32:4,uint32:4,int16:8,uint16:8,int8:8,uint8:8};function uF(A,r,I,e){if(!A.isCContiguous)return null;let t=r*I*e;if(t<sF*Y.thresholdMultiplier)return null;let o=A.dtype,n=k3[o],g=CF[o],i=M3[o],Q=q3[o],a=x3[o];if(!n||!g||!i||!Q||!a)return null;let B=g.BYTES_PER_ELEMENT,s=r*e;J(t*B+s*a),U();let C=A.offset,E=A.data.subarray(C,C+t),u=q(E),f=_(s*a);n(u,f,r,I,e);let m=v(f,s,i);return d.fromData(m,[s],Q)}var J3="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",Do=null;function U3(){if(Do)return Do;let A=atob(J3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Do=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Do.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Do}function cF(A,r,I){return U3().exports.reduce_quantile_f64(A,r,I)}var L3=64;function DF(A,r){if(!A.isCContiguous||k(A.dtype))return null;let I=A.size;if(I<L3*Y.thresholdMultiplier)return null;let e=new Float64Array(I),t=A.offset,o=A.data;if(A.dtype==="float64")e.set(o.subarray(t,t+I));else if(L(A.dtype)){let g=o;for(let i=0;i<I;i++)e[i]=Number(g[t+i])}else for(let g=0;g<I;g++)e[g]=Number(o[t+g]);J(I*8),U();let n=q(e);return cF(n,I,r)}var H3="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbnlfZjY0AAAOcmVkdWNlX2FueV9mMzIAAQ5yZWR1Y2VfYW55X2k2NAACDnJlZHVjZV9hbnlfaTMyAAMOcmVkdWNlX2FueV9pMTYABA1yZWR1Y2VfYW55X2k4AAUK3QIGQAEBf0EAIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYg0BIABBCGohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs8AQF/QQAhAgJAIAFFDQACQANAIAAqAgBDAAAAAFwNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILOAEBf0EAIQICQCABRQ0AAkADQCAAKQMAUEUNASAAQQhqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAILNgEBf0EAIQICQCABRQ0AAkADQCAAKAIADQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBASECCyACCzYBAX9BACECAkAgAUUNAAJAA0AgAC8BAA0BIABBAmohACABQX9qIgFFDQIMAAsLQQEhAgsgAgs2AQF/QQAhAgJAIAFFDQACQANAIAAtAAANASAAQQFqIQAgAUF/aiIBRQ0CDAALC0EBIQILIAIL",fo=null;function YI(){if(fo)return fo;let A=atob(H3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);fo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=fo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),fo}function fF(A,r){return YI().exports.reduce_any_f64(A,r)}function mF(A,r){return YI().exports.reduce_any_f32(A,r)}function uE(A,r){return YI().exports.reduce_any_i64(A,r)}function cE(A,r){return YI().exports.reduce_any_i32(A,r)}function DE(A,r){return YI().exports.reduce_any_i16(A,r)}function fE(A,r){return YI().exports.reduce_any_i8(A,r)}var _3=64,Y3={float64:fF,float32:mF,int64:uE,uint64:uE,int32:cE,uint32:cE,int16:DE,uint16:DE,int8:fE,uint8:fE},v3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function yF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<_3*Y.thresholdMultiplier)return null;let I=A.dtype,e=Y3[I],t=v3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var X3="AGFzbQEAAAABBwFgAn9/AX8CDwEDZW52Bm1lbW9yeQIAEAMHBgAAAAAAAAYJAX8BQYCAwAALB2YGDnJlZHVjZV9hbGxfZjY0AAAOcmVkdWNlX2FsbF9mMzIAAQ5yZWR1Y2VfYWxsX2k2NAACDnJlZHVjZV9hbGxfaTMyAAMOcmVkdWNlX2FsbF9pMTYABA1yZWR1Y2VfYWxsX2k4AAUK5gIGQAEBf0EBIQICQCABRQ0AAkADQCAAKwMARAAAAAAAAAAAYQ0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs8AQF/QQEhAgJAIAFFDQACQANAIAAqAgBDAAAAAFsNASAAQQRqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILNwEBf0EBIQICQCABRQ0AAkADQCAAKQMAUA0BIABBCGohACABQX9qIgFFDQIMAAsLQQAhAgsgAgs3AQF/QQEhAgJAIAFFDQACQANAIAAoAgBFDQEgAEEEaiEAIAFBf2oiAUUNAgwACwtBACECCyACCzcBAX9BASECAkAgAUUNAAJAA0AgAC8BAEUNASAAQQJqIQAgAUF/aiIBRQ0CDAALC0EAIQILIAILPgEBfwJAAkAgAQ0AQQEhAgwBCwJAA0AgAC0AAEUNAUEBIQIgAEEBaiEAIAFBf2oiAUUNAgwACwtBAA8LIAIL",mo=null;function vI(){if(mo)return mo;let A=atob(X3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);mo=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=mo.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),mo}function lF(A,r){return vI().exports.reduce_all_f64(A,r)}function hF(A,r){return vI().exports.reduce_all_f32(A,r)}function mE(A,r){return vI().exports.reduce_all_i64(A,r)}function yE(A,r){return vI().exports.reduce_all_i32(A,r)}function lE(A,r){return vI().exports.reduce_all_i16(A,r)}function hE(A,r){return vI().exports.reduce_all_i8(A,r)}var T3=64,P3={float64:lF,float32:hF,int64:mE,uint64:mE,int32:yE,uint32:yE,int16:lE,uint16:lE,int8:hE,uint8:hE},K3={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function dF(A){if(!A.isCContiguous)return null;let r=A.size;if(r<T3*Y.thresholdMultiplier)return null;let I=A.dtype,e=P3[I],t=K3[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return e(i,r)}var DA=new Float32Array(2);function bF(A){switch(A){case"int8":case"int16":case"int32":return"int64";case"uint8":case"uint16":case"uint32":return"uint64";default:return A}}function V3(A){switch(A){case"int8":case"int16":case"int32":case"uint8":case"uint16":case"uint32":case"int64":case"uint64":return"float64";default:return A}}function LA(A,r,I){let e=d.zeros(Array(r).fill(1),I);return e.iset(0,A),e}function BI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=Pp(A);if(y!==null)return y;if(k(e)){let l=0,h=0;if(a){let b=g;for(let p=0;p<n;p++)l+=b[(i+p)*2],h+=b[(i+p)*2+1]}else for(let b=0;b<n;b++){let p=A.iget(b);l+=p.re,h+=p.im}return new T(l,h)}else if(L(e)){let l=BigInt(0);if(a){let h=g;for(let b=0;b<n;b++)l+=h[i+b]}else for(let h=0;h<n;h++)l+=A.iget(h);return Number(l)}else if(e==="float32"){if(DA[0]=0,a)for(let l=0;l<n;l++)DA[0]+=Number(g[i+l]);else for(let l=0;l<n;l++)DA[0]+=Number(A.iget(l));return DA[0]}else{let l=0;if(a)if(i===0)for(let h=0;h<n;h++)l+=Number(g[h]);else for(let h=0;h<n;h++)l+=Number(g[i+h]);else for(let h=0;h<n;h++)l+=Number(A.iget(h));return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=bF(e),C=Array.from(t).filter((y,l)=>l!==B);if(C.length===0){let y=BI(A);if(!I)return y;let l=d.zeros(Array(o).fill(1),s);return l.iset(0,y),l}let E=d.zeros(C,s),u=E.data,f=t[B],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,B).reduce((b,p)=>b*p,1),l=t.slice(B+1).reduce((b,p)=>b*p,1),h=Kp(A,y,f,l);if(h){let b=I?t.map((w,N)=>N===B?1:w):C;if(s==="float64")return d.fromData(h.data,b,s);if(s==="float32"){let w=new Float32Array(h.data.length),N=h.data;for(let F=0;F<N.length;F++)w[F]=N[F];return d.fromData(w,b,s)}let p=h.data;for(let w=0;w<p.length;w++)u[w]=u instanceof BigInt64Array||u instanceof BigUint64Array?BigInt(Math.round(p[w])):p[w];return I?d.fromData(u,b,s):E}}let{baseOffsets:c,axisStride:D}=gA(t,Q,i,B,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){DA[0]=0,DA[1]=0;let b=c[h];for(let p=0;p<f;p++)DA[0]+=y[b*2],DA[1]+=y[b*2+1],b+=D;l[h*2]=DA[0],l[h*2+1]=DA[1]}else for(let h=0;h<m;h++){let b=0,p=0,w=c[h];for(let N=0;N<f;N++)b+=y[w*2],p+=y[w*2+1],w+=D;l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(0),p=c[h];for(let w=0;w<f;w++)b+=y[p],p+=D;l[h]=b}}else if(L(s)){let y=u;for(let l=0;l<m;l++){let h=0,b=c[l];for(let p=0;p<f;p++)h+=Number(g[b]),b+=D;y[l]=BigInt(Math.round(h))}}else if(e==="float32")for(let y=0;y<m;y++){DA[0]=0;let l=c[y];for(let h=0;h<f;h++)DA[0]+=Number(g[l]),l+=D;u[y]=DA[0]}else for(let y=0;y<m;y++){let l=0,h=c[y];for(let b=0;b<f;b++)l+=Number(g[h]),h+=D;u[y]=l}if(I){let y=[...t];return y[B]=1,d.fromData(u,y,s)}return E}function TI(A,r,I=!1){let e=A.dtype,t=A.shape;if(r===void 0){let C=pN(A);if(C!==null)return C;let E=BI(A);return E instanceof T?new T(E.re/A.size,E.im/A.size):E/A.size}let o=r;if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new Error(`axis ${r} is out of bounds for array of dimension ${t.length}`);if(A.isCContiguous&&!k(e)){let C=t[o],E=I?t.map((c,D)=>D===o?1:c):Array.from(t).filter((c,D)=>D!==o),u=t.slice(0,o).reduce((c,D)=>c*D,1),f=t.slice(o+1).reduce((c,D)=>c*D,1),m=wN(A,u,C,f);if(m)return d.fromData(m.data,E,"float64")}let n=BI(A,r,I);if(typeof n=="number")return n/t[o];if(n instanceof T)return new T(n.re/t[o],n.im/t[o]);let g=t[o],i=V3(e),Q=d.zeros(Array.from(n.shape),i),a=Q.data,B=n.data,s=n.dtype;if(k(e)){let C=B,E=a,u=n.size;for(let f=0;f<u;f++)E[f*2]=C[f*2]/g,E[f*2+1]=C[f*2+1]/g}else if(L(s)){let C=B;for(let E=0;E<a.length;E++)a[E]=Number(C[E])/g}else for(let C=0;C<a.length;C++)a[C]=Number(B[C])/g;return Q}function rI(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("max of empty array");let F=c[i*2],S=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H>F||H===F&&X>S)&&(F=H,S=X)}return isNaN(F)||isNaN(S)?new T(NaN,NaN):new T(F,S)}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,S)=>S!==D);if(y.length===0){let F=rI(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[D],p=y.reduce((F,S)=>F*S,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,D,p);for(let F=0;F<p;F++){let S=w[F],x=c[S*2],H=c[S*2+1];S+=N;for(let X=1;X<b;X++){let P=c[S*2],Z=c[S*2+1];if(S+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P>x||P===x&&Z>H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[D]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=Cw(A);if(c!==null)return c;if(n===0)throw new Error("max of empty array");if(A.isCContiguous){let D=g[i];if(i===0)for(let y=1;y<n;y++)g[y]>D&&(D=g[y]);else for(let y=1;y<n;y++)g[i+y]>D&&(D=g[i+y]);return Number(D)}else{let D=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l>D&&(D=l)}return Number(D)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((c,D)=>D!==a);if(B.length===0){let c=rI(A);return I?LA(c,o,e):c}let s=d.zeros(B,e),C=s.data,E=t[a],u=B.reduce((c,D)=>c*D,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),D=t.slice(a+1).reduce((l,h)=>l*h,1),y=Ew(A,c,E,D);if(y){let l=I?t.map((h,b)=>b===a?1:h):B;return d.fromData(y.data,l,e)}}let{baseOffsets:f,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,D=C;for(let y=0;y<u;y++){let l=f[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p>h&&(h=p),l+=m}D[y]=h}}else for(let c=0;c<u;c++){let D=-1/0,y=f[c];for(let l=0;l<E;l++){let h=Number(g[y]);h>D&&(D=h),y+=m}C[c]=D}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return s}function ho(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let y=EF(A);if(y!==null)return y;if(k(e)){let l=1,h=0;if(a){let b=g;for(let p=0;p<n;p++){let w=b[(i+p)*2],N=b[(i+p)*2+1],F=l*w-h*N,S=l*N+h*w;l=F,h=S}}else for(let b=0;b<n;b++){let p=A.iget(b),w=p.re,N=p.im,F=l*w-h*N,S=l*N+h*w;l=F,h=S}return new T(l,h)}else if(L(e)){let l=BigInt(1);if(a){let h=g;for(let b=0;b<n;b++)l*=h[i+b]}else for(let h=0;h<n;h++)l*=A.iget(h);return Number(l)}else if(e==="float32"){if(DA[0]=1,a)for(let l=0;l<n;l++)DA[0]*=Number(g[i+l]);else for(let l=0;l<n;l++)DA[0]*=Number(A.iget(l));return DA[0]}else{let l=1;if(a)if(i===0)for(let h=0;h<n;h++)l*=Number(g[h]);else for(let h=0;h<n;h++)l*=Number(g[i+h]);else for(let h=0;h<n;h++)l*=Number(A.iget(h));return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=bF(e),C=Array.from(t).filter((y,l)=>l!==B);if(C.length===0){let y=ho(A);return I?LA(y,o,s):y}let E=d.zeros(C,s),u=E.data,f=t[B],m=C.reduce((y,l)=>y*l,1);if(a&&!k(e)){let y=t.slice(0,B).reduce((b,p)=>b*p,1),l=t.slice(B+1).reduce((b,p)=>b*p,1),h=uF(A,y,f,l);if(h){let b=I?t.map((p,w)=>w===B?1:p):C;return d.fromData(h.data,b,s)}}let{baseOffsets:c,axisStride:D}=gA(t,Q,i,B,m);if(k(e)){let y=g,l=u;if(e==="complex64")for(let h=0;h<m;h++){DA[0]=1,DA[1]=0;let b=c[h];for(let p=0;p<f;p++){let w=y[b*2],N=y[b*2+1],F=DA[0],S=DA[1];DA[0]=F*w-S*N,DA[1]=F*N+S*w,b+=D}l[h*2]=DA[0],l[h*2+1]=DA[1]}else for(let h=0;h<m;h++){let b=1,p=0,w=c[h];for(let N=0;N<f;N++){let F=y[w*2],S=y[w*2+1],x=b*F-p*S,H=b*S+p*F;b=x,p=H,w+=D}l[h*2]=b,l[h*2+1]=p}}else if(L(e)){let y=g,l=u;for(let h=0;h<m;h++){let b=BigInt(1),p=c[h];for(let w=0;w<f;w++)b*=y[p],p+=D;l[h]=b}}else if(L(s)){let y=u;for(let l=0;l<m;l++){let h=BigInt(1),b=c[l];for(let p=0;p<f;p++)h*=BigInt(Number(g[b])),b+=D;y[l]=h}}else if(e==="float32")for(let y=0;y<m;y++){DA[0]=1;let l=c[y];for(let h=0;h<f;h++)DA[0]*=Number(g[l]),l+=D;u[y]=DA[0]}else for(let y=0;y<m;y++){let l=1,h=c[y];for(let b=0;b<f;b++)l*=Number(g[h]),h+=D;u[y]=l}if(I){let y=[...t];return y[B]=1,d.fromData(u,y,s)}return E}function II(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides;if(k(e)){let c=g;if(r===void 0){if(n===0)throw new Error("min of empty array");let F=c[i*2],S=c[i*2+1];for(let x=1;x<n;x++){let H=c[(i+x)*2],X=c[(i+x)*2+1];if(isNaN(H)||isNaN(X))return new T(NaN,NaN);(H<F||H===F&&X<S)&&(F=H,S=X)}return isNaN(F)||isNaN(S)?new T(NaN,NaN):new T(F,S)}let D=r;if(D<0&&(D=o+D),D<0||D>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let y=Array.from(t).filter((F,S)=>S!==D);if(y.length===0){let F=II(A);return I?LA(F,o,e):F}let l=d.zeros(y,e),h=l.data,b=t[D],p=y.reduce((F,S)=>F*S,1),{baseOffsets:w,axisStride:N}=gA(t,Q,i,D,p);for(let F=0;F<p;F++){let S=w[F],x=c[S*2],H=c[S*2+1];S+=N;for(let X=1;X<b;X++){let P=c[S*2],Z=c[S*2+1];if(S+=N,isNaN(P)||isNaN(Z)){x=NaN,H=NaN;break}(P<x||P===x&&Z<H)&&(x=P,H=Z)}h[F*2]=x,h[F*2+1]=H}if(I){let F=[...t];return F[D]=1,d.fromData(h,F,e)}return l}if(r===void 0){let c=xw(A);if(c!==null)return c;if(n===0)throw new Error("min of empty array");if(A.isCContiguous){let D=g[i];if(i===0)for(let y=1;y<n;y++)g[y]<D&&(D=g[y]);else for(let y=1;y<n;y++)g[i+y]<D&&(D=g[i+y]);return Number(D)}else{let D=A.iget(0);for(let y=1;y<n;y++){let l=A.iget(y);l<D&&(D=l)}return Number(D)}}let a=r;if(a<0&&(a=o+a),a<0||a>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let B=Array.from(t).filter((c,D)=>D!==a);if(B.length===0){let c=II(A);return I?LA(c,o,e):c}let s=d.zeros(B,e),C=s.data,E=t[a],u=B.reduce((c,D)=>c*D,1);if(A.isCContiguous&&!k(e)){let c=t.slice(0,a).reduce((l,h)=>l*h,1),D=t.slice(a+1).reduce((l,h)=>l*h,1),y=Jw(A,c,E,D);if(y){let l=I?t.map((h,b)=>b===a?1:h):B;return d.fromData(y.data,l,e)}}let{baseOffsets:f,axisStride:m}=gA(t,Q,i,a,u);if(L(e)){let c=g,D=C;for(let y=0;y<u;y++){let l=f[y],h=c[l];l+=m;for(let b=1;b<E;b++){let p=c[l];p<h&&(h=p),l+=m}D[y]=h}}else for(let c=0;c<u;c++){let D=1/0,y=f[c];for(let l=0;l<E;l++){let h=Number(g[y]);h<D&&(D=h),y+=m}C[c]=D}if(I){let c=[...t];return c[a]=1,d.fromData(C,c,e)}return s}function gr(A,r,I,e){return A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Lg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let D=IN(A);if(D!==null)return D;if(n===0)throw new Error("argmin of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)<0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)<0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;if(i===0)for(let h=1;h<n;h++)g[h]<y&&(y=g[h],l=h);else for(let h=1;h<n;h++)g[i+h]<y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b<y&&(y=b,l=h)}return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((D,y)=>y!==B);if(s.length===0)return Lg(A);let C=d.zeros(s,"int32"),E=C.data,u=t[B],f=s.reduce((D,y)=>D*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,B,f);if(e){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l*2],b=D[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=D[l*2],F=D[l*2+1];gr(N,F,h,b)<0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l],b=0;l+=c;for(let p=1;p<u;p++){let w=D[l];w<h&&(h=w,b=p),l+=c}E[y]=b}}else for(let D=0;D<f;D++){let y=1/0,l=0,h=m[D];for(let b=0;b<u;b++){let p=Number(g[h]);p<y&&(y=p,l=b),h+=c}E[D]=l}return C}function Hg(A,r){let I=A.dtype,e=k(I),t=A.shape,o=t.length,n=A.size,g=A.data,i=A.offset,Q=A.strides,a=A.isCContiguous;if(r===void 0){let D=Kw(A);if(D!==null)return D;if(n===0)throw new Error("argmax of empty array");if(e)if(a){let y=g,l=y[i*2],h=y[i*2+1],b=0;for(let p=1;p<n;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];gr(w,N,l,h)>0&&(l=w,h=N,b=p)}return b}else{let y=A.iget(0),l=y.re,h=y.im,b=0;for(let p=1;p<n;p++){let w=A.iget(p);gr(w.re,w.im,l,h)>0&&(l=w.re,h=w.im,b=p)}return b}if(a){let y=g[i],l=0;for(let h=1;h<n;h++)g[i+h]>y&&(y=g[i+h],l=h);return l}else{let y=A.iget(0),l=0;for(let h=1;h<n;h++){let b=A.iget(h);b>y&&(y=b,l=h)}return l}}let B=r;if(B<0&&(B=o+B),B<0||B>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let s=Array.from(t).filter((D,y)=>y!==B);if(s.length===0)return Hg(A);let C=d.zeros(s,"int32"),E=C.data,u=t[B],f=s.reduce((D,y)=>D*y,1),{baseOffsets:m,axisStride:c}=gA(t,Q,i,B,f);if(e){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l*2],b=D[l*2+1],p=0;l+=c;for(let w=1;w<u;w++){let N=D[l*2],F=D[l*2+1];gr(N,F,h,b)>0&&(h=N,b=F,p=w),l+=c}E[y]=p}}else if(L(I)){let D=g;for(let y=0;y<f;y++){let l=m[y],h=D[l],b=0;l+=c;for(let p=1;p<u;p++){let w=D[l];w>h&&(h=w,b=p),l+=c}E[y]=b}}else for(let D=0;D<f;D++){let y=-1/0,l=0,h=m[D];for(let b=0;b<u;b++){let p=Number(g[h]);p>y&&(y=p,l=b),h+=c}E[D]=l}return C}function bo(A,r,I=0,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.size,i=A.data,Q=A.offset,a=A.strides,B=TI(A,r,e),s=A.isCContiguous;if(r===void 0){let b=UN(A);if(b!==null)return b;if(k(t)){let N=B,F=0;if(s){let S=i;for(let x=0;x<g;x++){let H=S[(Q+x)*2],X=S[(Q+x)*2+1],P=H-N.re,Z=X-N.im;F+=P*P+Z*Z}}else for(let S=0;S<g;S++){let x=A.iget(S),H=x.re-N.re,X=x.im-N.im;F+=H*H+X*X}return F/(g-I)}let p=B,w=0;if(s)for(let N=0;N<g;N++){let F=Number(i[Q+N])-p;w+=F*F}else for(let N=0;N<g;N++){let F=Number(A.iget(N))-p;w+=F*F}return w/(g-I)}let C=r;if(C<0&&(C=n+C),C<0||C>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let E=o[C],u=B,f=u.data,m=e?u.shape:Array.from(o).filter((b,p)=>p!==C),c=d.zeros(Array.from(m),"float64"),D=c.data,y=m.reduce((b,p)=>b*p,1),{baseOffsets:l,axisStride:h}=gA(o,a,Q,C,y);if(k(t)){let b=i,p=f;for(let w=0;w<y;w++){let N=0,F=p[w*2],S=p[w*2+1],x=l[w];for(let H=0;H<E;H++){let X=b[x*2],P=b[x*2+1],Z=X-F,V=P-S;N+=Z*Z+V*V,x+=h}D[w]=N/(E-I)}}else for(let b=0;b<y;b++){let p=0,w=Number(f[b]),N=l[b];for(let F=0;F<E;F++){let S=Number(i[N])-w;p+=S*S,N+=h}D[b]=p/(E-I)}return c}function dE(A,r,I=0,e=!1){let t=bo(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=d.zeros(Array.from(t.shape),"float64"),n=t.data,g=o.data;for(let i=0;i<n.length;i++)g[i]=Math.sqrt(Number(n[i]));return o}function _g(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=dF(A);if(c!==null)return c===1;if(Q){for(let D=0;D<o;D++)if(!n[g+D])return!1}else for(let D=0;D<o;D++)if(!A.iget(D))return!1;return!0}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let B=Array.from(e).filter((c,D)=>D!==a);if(B.length===0){let c=_g(A);if(!I)return c;let D=d.zeros(Array(t).fill(1),"bool");return D.iset(0,c?1:0),D}let s=d.zeros(B,"bool"),C=s.data,E=e[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let D=!0,y=f[c];for(let l=0;l<E;l++){if(!n[y]){D=!1;break}y+=m}C[c]=D?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return s}function Yg(A,r,I=!1){let e=A.shape,t=e.length,o=A.size,n=A.data,g=A.offset,i=A.strides,Q=A.isCContiguous;if(r===void 0){let c=yF(A);if(c!==null)return c===1;if(Q){for(let D=0;D<o;D++)if(n[g+D])return!0}else for(let D=0;D<o;D++)if(A.iget(D))return!0;return!1}let a=r;if(a<0&&(a=t+a),a<0||a>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let B=Array.from(e).filter((c,D)=>D!==a);if(B.length===0){let c=Yg(A);if(!I)return c;let D=d.zeros(Array(t).fill(1),"bool");return D.iset(0,c?1:0),D}let s=d.zeros(B,"bool"),C=s.data,E=e[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,a,u);for(let c=0;c<u;c++){let D=!1,y=f[c];for(let l=0;l<E;l++){if(n[y]){D=!0;break}y+=m}C[c]=D?1:0}if(I){let c=[...e];return c[a]=1,d.fromData(C,c,"bool")}return s}function bE(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let D=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=0,$=0;if(i)for(let O=0;O<y;O++)V+=D[(n+O)*2],$+=D[(n+O)*2+1],Z[O*2]=V,Z[O*2+1]=$;else for(let O=0;O<y;O++){let z=A.iget(O);V+=z.re,$+=z.im,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:S}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=0,O=0;for(let z=0;z<p;z++)$+=D[Z*2],O+=D[Z*2+1],b[V*2]=$,b[V*2+1]=O,Z+=S,V+=X}return h}if(r===void 0){let D=A.size,y=new Float64Array(D),l=0;if(i)for(let h=0;h<D;h++)l+=Number(o[n+h]),y[h]=l;else for(let h=0;h<D;h++)l+=Number(A.iget(h)),y[h]=l;return d.fromData(y,[D],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),B=e[Q],s=Array.from(e).filter((D,y)=>y!==Q),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),f=pr(e),{baseOffsets:m,axisStride:c}=gA(e,f,0,Q,C);for(let D=0;D<C;D++){let y=E[D],l=m[D],h=0;for(let b=0;b<B;b++)h+=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function pE(A,r){let I=A.dtype,e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides,i=A.isCContiguous;if(k(I)){let D=o,y=A.size;if(r===void 0){let P=d.zeros([y],I),Z=P.data,V=1,$=0;if(i)for(let O=0;O<y;O++){let z=D[(n+O)*2],rA=D[(n+O)*2+1],oA=V*z-$*rA,iA=V*rA+$*z;V=oA,$=iA,Z[O*2]=V,Z[O*2+1]=$}else for(let O=0;O<y;O++){let z=A.iget(O),rA=z.re,oA=z.im,iA=V*rA-$*oA,CA=V*oA+$*rA;V=iA,$=CA,Z[O*2]=V,Z[O*2+1]=$}return P}let l=r;if(l<0&&(l=t+l),l<0||l>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let h=d.zeros([...e],I),b=h.data,p=e[l],w=Array.from(e).filter((P,Z)=>Z!==l),N=w.length===0?1:w.reduce((P,Z)=>P*Z,1),{baseOffsets:F,axisStride:S}=gA(e,g,n,l,N),x=pr(e),{baseOffsets:H,axisStride:X}=gA(e,x,0,l,N);for(let P=0;P<N;P++){let Z=F[P],V=H[P],$=1,O=0;for(let z=0;z<p;z++){let rA=D[Z*2],oA=D[Z*2+1],iA=$*rA-O*oA,CA=$*oA+O*rA;$=iA,O=CA,b[V*2]=$,b[V*2+1]=O,Z+=S,V+=X}}return h}if(r===void 0){let D=A.size,y=new Float64Array(D),l=1;if(i)for(let h=0;h<D;h++)l*=Number(o[n+h]),y[h]=l;else for(let h=0;h<D;h++)l*=Number(A.iget(h)),y[h]=l;return d.fromData(y,[D],"float64")}let Q=r;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let a=new Float64Array(A.size),B=e[Q],s=Array.from(e).filter((D,y)=>y!==Q),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(e,g,n,Q,C),f=pr(e),{baseOffsets:m,axisStride:c}=gA(e,f,0,Q,C);for(let D=0;D<C;D++){let y=E[D],l=m[D],h=1;for(let b=0;b<B;b++)h*=Number(o[y]),a[l]=h,y+=u,l+=c}return d.fromData(a,[...e],"float64")}function pF(A,r,I=!1){let e=A.dtype;if(k(e)){let s=rI(A,r,I),C=II(A,r,I);if(s instanceof T&&C instanceof T)return new T(s.re-C.re,s.im-C.im);let E=s,u=C,f=E.data,m=u.data,c=new Float64Array(E.size*2);for(let D=0;D<E.size;D++)c[D*2]=f[D*2]-m[D*2],c[D*2+1]=f[D*2+1]-m[D*2+1];return d.fromData(c,[...E.shape],e)}let t=rI(A,r,I),o=II(A,r,I);if(typeof t=="number"&&typeof o=="number"){let s=t-o;if(e==="int8"||e==="int16"||e==="int32"||e==="uint8"||e==="uint16"||e==="uint32"){let C=d.zeros([1],e);return C.iset(0,s),Number(C.iget(0))}return s}let n=t,g=o,i=n.data,Q=g.data,a=d.zeros([...n.shape],e),B=a.data;for(let s=0;s<n.size;s++)B[s]=Number(i[s])-Number(Q[s]);return a}function vg(A,r,I=!1){return PI(A,.5,r,I)}function wF(A,r,I,e=!1){return PI(A,r/100,I,e)}function PI(A,r,I,e=!1){if(eA(A.dtype,"quantile","Complex numbers are not orderable."),r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=DF(A,r);if(m!==null)return m;let c=[];if(A.isCContiguous)for(let w=0;w<A.size;w++)c.push(Number(n[g+w]));else for(let w=0;w<A.size;w++)c.push(Number(A.iget(w)));c.sort((w,N)=>w-N);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)return c[h];let p=l-h;return c[h]*(1-p)+c[b]*p}let Q=I;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=PI(A,r);if(!e)return m;let c=d.zeros(Array(o).fill(1),"float64");return c.iset(0,m),c}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=[],D=E[m];for(let p=0;p<s;p++)c.push(Number(n[D])),D+=u;c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let f=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function xg(A,r,I,e=!1){let t=A.dtype,o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(I===void 0)return TI(A,r,e);if(k(t)){let y=g,l=I.data,h=I.offset;if(r===void 0){let X=0,P=0,Z=0;if(A.isCContiguous)for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=y[(i+$)*2],rA=y[(i+$)*2+1];X+=z*O,P+=rA*O,Z+=O}else for(let $=0;$<A.size;$++){let O=Number(l[h+$%I.size]),z=A.iget($);X+=z.re*O,P+=z.im*O,Z+=O}return Z===0?new T(NaN,NaN):new T(X/Z,P/Z)}let b=r;if(b<0&&(b=n+b),b<0||b>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let p=Array.from(o).filter((X,P)=>P!==b);if(p.length===0){let X=xg(A,void 0,I);return e?LA(X,n,t):X}let w=p.reduce((X,P)=>X*P,1),N=o[b],F=d.zeros(p,t),S=F.data,{baseOffsets:x,axisStride:H}=gA(o,Q,i,b,w);for(let X=0;X<w;X++){let P=0,Z=0,V=0,$=x[X];for(let O=0;O<N;O++){let z=Number(l[h+O%I.size]),rA=y[$*2],oA=y[$*2+1];P+=rA*z,Z+=oA*z,V+=z,$+=H}V===0?(S[X*2]=NaN,S[X*2+1]=NaN):(S[X*2]=P/V,S[X*2+1]=Z/V)}if(e){let X=[...o];return X[b]=1,d.fromData(S,X,t)}return F}let a=I.offset;if(r===void 0){let y=0,l=0,h=I.data;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(g[i+p])*w,l+=w}else for(let p=0;p<A.size;p++){let w=Number(h[a+p%I.size]);y+=Number(A.iget(p))*w,l+=w}return l===0?NaN:y/l}let B=r;if(B<0&&(B=n+B),B<0||B>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let s=Array.from(o).filter((y,l)=>l!==B);if(s.length===0){let y=xg(A,void 0,I);return e?LA(y,n,"float64"):y}let C=s.reduce((y,l)=>y*l,1),E=o[B],u=I.data,f=new Float64Array(C),{baseOffsets:m,axisStride:c}=gA(o,Q,i,B,C);for(let y=0;y<C;y++){let l=0,h=0,b=m[y];for(let p=0;p<E;p++){let w=Number(u[a+p%I.size]);l+=Number(g[b])*w,h+=w,b+=c}f[y]=h===0?NaN:l/h}let D=d.fromData(f,s,"float64");if(e){let y=[...o];return y[B]=1,d.fromData(f,y,"float64")}return D}function cA(A,r){return isNaN(A)||isNaN(r)}function Xg(A,r,I=!1){let e=A.dtype,t=k(e),o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(!t&&!fA(e))return BI(A,r,I);if(r===void 0){let c=YN(A);if(c!==null)return c;if(t){let l=g,h=0,b=0;if(A.isCContiguous)for(let w=0;w<A.size;w++){let N=l[(i+w)*2],F=l[(i+w)*2+1];cA(N,F)||(h+=N,b+=F)}else for(let w=0;w<A.size;w++){let N=A.iget(w),F=N.re,S=N.im;cA(F,S)||(h+=F,b+=S)}return new T(h,b)}let D=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(D+=h)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(D+=h)}return D}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Xg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=0,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];cA(w,N)||(l+=w,h+=N),b+=u}D[y*2]=l,D[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=0,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(D+=h),y+=u}f[c]=D}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function Tg(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!fA(e))return ho(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let y=g,l=1,h=0;if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=y[(i+p)*2],N=y[(i+p)*2+1];if(!cA(w,N)){let F=l*w-h*N,S=l*N+h*w;l=F,h=S}}else for(let p=0;p<A.size;p++){let w=A.iget(p),N=w.re,F=w.im;if(!cA(N,F)){let S=l*N-h*F,x=l*F+h*N;l=S,h=x}}return new T(l,h)}let c=1;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(g[i+y]);isNaN(l)||(c*=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||(c*=l)}return c}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Tg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=1,h=0,b=E[y];for(let p=0;p<C;p++){let w=c[b*2],N=c[b*2+1];if(!cA(w,N)){let F=l*w-h*N,S=l*N+h*w;l=F,h=S}b+=u}D[y*2]=l,D[y*2+1]=h}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=1,y=E[c];for(let l=0;l<C;l++){let h=Number(g[y]);isNaN(h)||(D*=h),y+=u}f[c]=D}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function Pg(A,r,I=!1){let e=A.dtype,t=k(e);if(!t&&!fA(e))return TI(A,r,I);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(r===void 0){if(t){let l=g,h=0,b=0,p=0;if(A.isCContiguous)for(let N=0;N<A.size;N++){let F=l[(i+N)*2],S=l[(i+N)*2+1];cA(F,S)||(h+=F,b+=S,p++)}else for(let N=0;N<A.size;N++){let F=A.iget(N),S=F.re,x=F.im;cA(S,x)||(h+=S,b+=x,p++)}return p===0?new T(NaN,NaN):new T(h/p,b/p)}let c=0,D=0;if(A.isCContiguous)for(let l=0;l<A.size;l++){let h=Number(g[i+l]);isNaN(h)||(c+=h,D++)}else for(let l=0;l<A.size;l++){let h=Number(A.iget(l));isNaN(h)||(c+=h,D++)}return D===0?NaN:c/D}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=Pg(A);return I?LA(c,n,e):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],{baseOffsets:E,axisStride:u}=gA(o,Q,i,a,s);if(t){let c=g,D=new Float64Array(s*2);for(let y=0;y<s;y++){let l=0,h=0,b=0,p=E[y];for(let w=0;w<C;w++){let N=c[p*2],F=c[p*2+1];cA(N,F)||(l+=N,h+=F,b++),p+=u}b===0?(D[y*2]=NaN,D[y*2+1]=NaN):(D[y*2]=l/b,D[y*2+1]=h/b)}if(I){let y=[...o];return y[a]=1,d.fromData(D,y,e)}return d.fromData(D,B,e)}let f=new Float64Array(s);for(let c=0;c<s;c++){let D=0,y=0,l=E[c];for(let h=0;h<C;h++){let b=Number(g[l]);isNaN(b)||(D+=b,y++),l+=u}f[c]=y===0?NaN:D/y}let m=d.fromData(f,B,"float64");if(I){let c=[...o];return c[a]=1,d.fromData(f,c,"float64")}return m}function XI(A,r,I=0,e=!1){let t=A.dtype;if(!k(t)&&!fA(t))return bo(A,r,I,e);let o=A.shape,n=o.length,g=A.data,i=A.offset,Q=A.strides;if(k(t)){let c=g;if(r===void 0){let F=0,S=0,x=0,H=A.isCContiguous;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];cA($,O)||(F+=$,S+=O,x++)}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;cA(O,z)||(F+=O,S+=z,x++)}if(x-I<=0)return NaN;let X=F/x,P=S/x,Z=0;if(H)for(let V=0;V<A.size;V++){let $=c[(i+V)*2],O=c[(i+V)*2+1];if(!cA($,O)){let z=$-X,rA=O-P;Z+=z*z+rA*rA}}else for(let V=0;V<A.size;V++){let $=A.iget(V),O=$.re,z=$.im;if(!cA(O,z)){let rA=O-X,oA=z-P;Z+=rA*rA+oA*oA}}return Z/(x-I)}let D=r;if(D<0&&(D=n+D),D<0||D>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let y=Array.from(o).filter((F,S)=>S!==D);if(y.length===0){let F=XI(A,void 0,I);return e?LA(F,n,"float64"):F}let l=y.reduce((F,S)=>F*S,1),h=o[D],b=new Float64Array(l),{baseOffsets:p,axisStride:w}=gA(o,Q,i,D,l);for(let F=0;F<l;F++){let S=0,x=0,H=0,X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];cA(O,z)||(S+=O,x+=z,H++),X+=w}if(H-I<=0){b[F]=NaN;continue}let P=S/H,Z=x/H,V=0;X=p[F];for(let $=0;$<h;$++){let O=c[X*2],z=c[X*2+1];if(!cA(O,z)){let rA=O-P,oA=z-Z;V+=rA*rA+oA*oA}X+=w}b[F]=V/(H-I)}let N=d.fromData(b,y,"float64");if(e){let F=[...o];return F[D]=1,d.fromData(b,F,"float64")}return N}if(r===void 0){let c=0,D=0,y=A.isCContiguous;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(c+=p,D++)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(c+=p,D++)}if(D-I<=0)return NaN;let l=c/D,h=0;if(y)for(let b=0;b<A.size;b++){let p=Number(g[i+b]);isNaN(p)||(h+=(p-l)**2)}else for(let b=0;b<A.size;b++){let p=Number(A.iget(b));isNaN(p)||(h+=(p-l)**2)}return h/(D-I)}let a=r;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${r} is out of bounds for array of dimension ${n}`);let B=Array.from(o).filter((c,D)=>D!==a);if(B.length===0){let c=XI(A,void 0,I);return e?LA(c,n,"float64"):c}let s=B.reduce((c,D)=>c*D,1),C=o[a],E=new Float64Array(s),{baseOffsets:u,axisStride:f}=gA(o,Q,i,a,s);for(let c=0;c<s;c++){let D=0,y=0,l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(D+=w,y++),l+=f}if(y-I<=0){E[c]=NaN;continue}let h=D/y,b=0;l=u[c];for(let p=0;p<C;p++){let w=Number(g[l]);isNaN(w)||(b+=(w-h)**2),l+=f}E[c]=b/(y-I)}let m=d.fromData(E,B,"float64");if(e){let c=[...o];return c[a]=1,d.fromData(E,c,"float64")}return m}function wE(A,r,I=0,e=!1){let t=XI(A,r,I,e);if(typeof t=="number")return Math.sqrt(t);let o=t,n=new Float64Array(o.size);for(let g=0;g<o.size;g++)n[g]=Math.sqrt(Number(o.data[g]));return d.fromData(n,[...o.shape],"float64")}function yo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!fA(e))return II(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=1/0,F=1/0,S=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(S?(X<N||X===N&&P<F)&&(N=X,F=P):(N=X,F=P,S=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(S?(P<N||P===N&&Z<F)&&(N=P,F=Z):(N=P,F=Z,S=!0))}return S?new T(N,F):new T(NaN,NaN)}let c=r;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let D=Array.from(t).filter((N,F)=>F!==c);if(D.length===0){let N=yo(A);return I?LA(N,o,e):N}let y=D.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=1/0,S=1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P<F||P===F&&Z<S)&&(F=P,S=Z):(F=P,S=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?S:NaN}let w=d.fromData(h,D,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=PN(A);if(m!==null)return m;let c=1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l<c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l<c&&(c=l)}return c===1/0?NaN:c}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=yo(A);return I?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=1/0,D=E[m];for(let y=0;y<s;y++){let l=Number(n[D]);!isNaN(l)&&l<c&&(c=l),D+=u}C[m]=c===1/0?NaN:c}let f=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function lo(A,r,I=!1){let e=A.dtype,t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(!k(e)&&!fA(e))return rI(A,r,I);if(k(e)){let m=n;if(r===void 0){let N=-1/0,F=-1/0,S=!1;if(A.isCContiguous)for(let H=0;H<A.size;H++){let X=m[(g+H)*2],P=m[(g+H)*2+1];isNaN(X)||isNaN(P)||(S?(X>N||X===N&&P>F)&&(N=X,F=P):(N=X,F=P,S=!0))}else for(let H=0;H<A.size;H++){let X=A.iget(H),P=X.re,Z=X.im;isNaN(P)||isNaN(Z)||(S?(P>N||P===N&&Z>F)&&(N=P,F=Z):(N=P,F=Z,S=!0))}return S?new T(N,F):new T(NaN,NaN)}let c=r;if(c<0&&(c=o+c),c<0||c>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let D=Array.from(t).filter((N,F)=>F!==c);if(D.length===0){let N=lo(A);return I?LA(N,o,e):N}let y=D.reduce((N,F)=>N*F,1),l=t[c],h=new Float64Array(y*2),{baseOffsets:b,axisStride:p}=gA(t,i,g,c,y);for(let N=0;N<y;N++){let F=-1/0,S=-1/0,x=!1,H=b[N];for(let X=0;X<l;X++){let P=m[H*2],Z=m[H*2+1];H+=p,!(isNaN(P)||isNaN(Z))&&(x?(P>F||P===F&&Z>S)&&(F=P,S=Z):(F=P,S=Z,x=!0))}h[N*2]=x?F:NaN,h[N*2+1]=x?S:NaN}let w=d.fromData(h,D,e);if(I){let N=[...t];return N[c]=1,d.fromData(h,N,e)}return w}if(r===void 0){let m=ON(A);if(m!==null)return m;let c=-1/0;if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(n[g+y]);!isNaN(l)&&l>c&&(c=l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));!isNaN(l)&&l>c&&(c=l)}return c===-1/0?NaN:c}let Q=r;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=lo(A);return I?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=-1/0,D=E[m];for(let y=0;y<s;y++){let l=Number(n[D]);!isNaN(l)&&l>c&&(c=l),D+=u}C[m]=c===-1/0?NaN:c}let f=d.fromData(C,a,"float64");if(I){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function Jg(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return Lg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=1/0,p=1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(n+F)*2],x=u[(n+F)*2+1];!cA(S,x)&&gr(S,x,b,p)<0&&(b=S,p=x,w=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),x=S.re,H=S.im;!cA(x,H)&&gr(x,H,b,p)<0&&(b=x,p=H,w=F)}return w}let f=r;if(f<0&&(f=t+f),f<0||f>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==f);if(m.length===0)return Jg(A);let c=m.reduce((b,p)=>b*p,1),D=e[f],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,f,c);for(let b=0;b<c;b++){let p=1/0,w=1/0,N=0,F=l[b];for(let S=0;S<D;S++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)<0&&(p=x,w=H,N=S),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=1/0,f=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let D=Number(o[n+c]);!isNaN(D)&&D<u&&(u=D,f=c)}else for(let c=0;c<A.size;c++){let D=Number(A.iget(c));!isNaN(D)&&D<u&&(u=D,f=c)}return f}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,f)=>f!==i);if(Q.length===0)return Jg(A);let a=Q.reduce((u,f)=>u*f,1),B=e[i],s=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let f=1/0,m=0,c=C[u];for(let D=0;D<B;D++){let y=Number(o[c]);!isNaN(y)&&y<f&&(f=y,m=D),c+=E}s[u]=m}return d.fromData(s,Q,"int32")}function Ug(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return Hg(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(k(I)){let u=o;if(r===void 0){let b=-1/0,p=-1/0,w=-1;if(A.isCContiguous)for(let F=0;F<A.size;F++){let S=u[(n+F)*2],x=u[(n+F)*2+1];!cA(S,x)&&gr(S,x,b,p)>0&&(b=S,p=x,w=F)}else for(let F=0;F<A.size;F++){let S=A.iget(F),x=S.re,H=S.im;!cA(x,H)&&gr(x,H,b,p)>0&&(b=x,p=H,w=F)}return w}let f=r;if(f<0&&(f=t+f),f<0||f>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let m=Array.from(e).filter((b,p)=>p!==f);if(m.length===0)return Ug(A);let c=m.reduce((b,p)=>b*p,1),D=e[f],y=new Int32Array(c),{baseOffsets:l,axisStride:h}=gA(e,g,n,f,c);for(let b=0;b<c;b++){let p=-1/0,w=-1/0,N=0,F=l[b];for(let S=0;S<D;S++){let x=u[F*2],H=u[F*2+1];!cA(x,H)&&gr(x,H,p,w)>0&&(p=x,w=H,N=S),F+=h}y[b]=N}return d.fromData(y,m,"int32")}if(r===void 0){let u=-1/0,f=-1;if(A.isCContiguous)for(let c=0;c<A.size;c++){let D=Number(o[n+c]);!isNaN(D)&&D>u&&(u=D,f=c)}else for(let c=0;c<A.size;c++){let D=Number(A.iget(c));!isNaN(D)&&D>u&&(u=D,f=c)}return f}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((u,f)=>f!==i);if(Q.length===0)return Ug(A);let a=Q.reduce((u,f)=>u*f,1),B=e[i],s=new Int32Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let u=0;u<a;u++){let f=-1/0,m=0,c=C[u];for(let D=0;D<B;D++){let y=Number(o[c]);!isNaN(y)&&y>f&&(f=y,m=D),c+=E}s[u]=m}return d.fromData(s,Q,"int32")}function NF(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return bE(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,f=A.size;if(r===void 0){let N=d.zeros([f],I),F=N.data,S=0,x=0;if(A.isCContiguous)for(let X=0;X<f;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];cA(P,Z)||(S+=P,x+=Z),F[X*2]=S,F[X*2+1]=x}else for(let X=0;X<f;X++){let P=A.iget(X),Z=P.re,V=P.im;cA(Z,V)||(S+=Z,x+=V),F[X*2]=S,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),D=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],S=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,S);x===0?(D[N*2]=H?0:F,D[N*2+1]=H?0:S):(D[N*2]=D[(N-p)*2]+(H?0:F),D[N*2+1]=D[(N-p)*2+1]+(H?0:S))}else for(let N=0;N<b;N++){let F=A.iget(N),S=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(S,x);H===0?(D[N*2]=X?0:S,D[N*2+1]=X?0:x):(D[N*2]=D[(N-p)*2]+(X?0:S),D[N*2+1]=D[(N-p)*2+1]+(X?0:x))}return c}if(r===void 0){let u=A.size,f=new Float64Array(u),m=0;if(A.isCContiguous)for(let D=0;D<u;D++){let y=Number(o[n+D]);isNaN(y)||(m+=y),f[D]=m}else for(let D=0;D<u;D++){let y=Number(A.iget(D));isNaN(y)||(m+=y),f[D]=m}return d.fromData(f,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],B=1;for(let u=t-1;u>=0;u--)a.unshift(B),B*=e[u];let s=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<s;u++){let f=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(f)?0:f:i[u]=i[u-C]+(isNaN(f)?0:f)}else for(let u=0;u<s;u++){let f=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(f)?0:f:i[u]=i[u-C]+(isNaN(f)?0:f)}return d.fromData(i,[...e],"float64")}function FF(A,r){let I=A.dtype;if(!k(I)&&!fA(I))return pE(A,r);let e=A.shape,t=e.length,o=A.data,n=A.offset;if(k(I)){let u=o,f=A.size;if(r===void 0){let N=d.zeros([f],I),F=N.data,S=1,x=0;if(A.isCContiguous)for(let X=0;X<f;X++){let P=u[(n+X)*2],Z=u[(n+X)*2+1];if(!cA(P,Z)){let V=S*P-x*Z,$=S*Z+x*P;S=V,x=$}F[X*2]=S,F[X*2+1]=x}else for(let X=0;X<f;X++){let P=A.iget(X),Z=P.re,V=P.im;if(!cA(Z,V)){let $=S*Z-x*V,O=S*V+x*Z;S=$,x=O}F[X*2]=S,F[X*2+1]=x}return N}let m=r;if(m<0&&(m=t+m),m<0||m>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let c=d.zeros([...e],I),D=c.data,y=e[m],l=[],h=1;for(let N=t-1;N>=0;N--)l.unshift(h),h*=e[N];let b=A.size,p=l[m];if(A.isCContiguous)for(let N=0;N<b;N++){let F=u[(n+N)*2],S=u[(n+N)*2+1],x=Math.floor(N/p)%y,H=cA(F,S);if(x===0)D[N*2]=H?1:F,D[N*2+1]=H?0:S;else{let X=D[(N-p)*2],P=D[(N-p)*2+1];H?(D[N*2]=X,D[N*2+1]=P):(D[N*2]=X*F-P*S,D[N*2+1]=X*S+P*F)}}else for(let N=0;N<b;N++){let F=A.iget(N),S=F.re,x=F.im,H=Math.floor(N/p)%y,X=cA(S,x);if(H===0)D[N*2]=X?1:S,D[N*2+1]=X?0:x;else{let P=D[(N-p)*2],Z=D[(N-p)*2+1];X?(D[N*2]=P,D[N*2+1]=Z):(D[N*2]=P*S-Z*x,D[N*2+1]=P*x+Z*S)}}return c}if(r===void 0){let u=A.size,f=new Float64Array(u),m=1;if(A.isCContiguous)for(let D=0;D<u;D++){let y=Number(o[n+D]);isNaN(y)||(m*=y),f[D]=m}else for(let D=0;D<u;D++){let y=Number(A.iget(D));isNaN(y)||(m*=y),f[D]=m}return d.fromData(f,[u],"float64")}let g=r;if(g<0&&(g=t+g),g<0||g>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let i=new Float64Array(A.size),Q=e[g],a=[],B=1;for(let u=t-1;u>=0;u--)a.unshift(B),B*=e[u];let s=A.size,C=a[g];if(A.isCContiguous)for(let u=0;u<s;u++){let f=Number(o[n+u]);Math.floor(u/C)%Q===0?i[u]=isNaN(f)?1:f:i[u]=i[u-C]*(isNaN(f)?1:f)}else for(let u=0;u<s;u++){let f=Number(A.iget(u));Math.floor(u/C)%Q===0?i[u]=isNaN(f)?1:f:i[u]=i[u-C]*(isNaN(f)?1:f)}return d.fromData(i,[...e],"float64")}function NE(A,r,I=!1){if(eA(A.dtype,"nanmedian","Complex numbers are not orderable."),!fA(A.dtype))return vg(A,r,I);let e=A.shape,t=e.length,o=A.data,n=A.offset,g=A.strides;if(r===void 0){let f=[];if(A.isCContiguous)for(let y=0;y<A.size;y++){let l=Number(o[n+y]);isNaN(l)||f.push(l)}else for(let y=0;y<A.size;y++){let l=Number(A.iget(y));isNaN(l)||f.push(l)}if(f.length===0)return NaN;f.sort((y,l)=>y-l);let c=f.length,D=Math.floor(c/2);return c%2===0?(f[D-1]+f[D])/2:f[D]}let i=r;if(i<0&&(i=t+i),i<0||i>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let Q=Array.from(e).filter((f,m)=>m!==i);if(Q.length===0){let f=NE(A);return I?LA(f,t,"float64"):f}let a=Q.reduce((f,m)=>f*m,1),B=e[i],s=new Float64Array(a),{baseOffsets:C,axisStride:E}=gA(e,g,n,i,a);for(let f=0;f<a;f++){let m=[],c=C[f];for(let l=0;l<B;l++){let h=Number(o[c]);isNaN(h)||m.push(h),c+=E}if(m.length===0){s[f]=NaN;continue}m.sort((l,h)=>l-h);let D=m.length,y=Math.floor(D/2);D%2===0?s[f]=(m[y-1]+m[y])/2:s[f]=m[y]}let u=d.fromData(s,Q,"float64");if(I){let f=[...e];return f[i]=1,d.fromData(s,f,"float64")}return u}function Kg(A,r,I,e=!1){if(eA(A.dtype,"nanquantile","Complex numbers are not orderable."),!fA(A.dtype))return PI(A,r,I,e);if(r<0||r>1)throw new Error("Quantile must be between 0 and 1");let t=A.shape,o=t.length,n=A.data,g=A.offset,i=A.strides;if(I===void 0){let m=[];if(A.isCContiguous)for(let p=0;p<A.size;p++){let w=Number(n[g+p]);isNaN(w)||m.push(w)}else for(let p=0;p<A.size;p++){let w=Number(A.iget(p));isNaN(w)||m.push(w)}if(m.length===0)return NaN;m.sort((p,w)=>p-w);let D=m.length,y=r*(D-1),l=Math.floor(y),h=Math.ceil(y);if(l===h)return m[l];let b=y-l;return m[l]*(1-b)+m[h]*b}let Q=I;if(Q<0&&(Q=o+Q),Q<0||Q>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let a=Array.from(t).filter((m,c)=>c!==Q);if(a.length===0){let m=Kg(A,r);return e?LA(m,o,"float64"):m}let B=a.reduce((m,c)=>m*c,1),s=t[Q],C=new Float64Array(B),{baseOffsets:E,axisStride:u}=gA(t,i,g,Q,B);for(let m=0;m<B;m++){let c=[],D=E[m];for(let p=0;p<s;p++){let w=Number(n[D]);isNaN(w)||c.push(w),D+=u}if(c.length===0){C[m]=NaN;continue}c.sort((p,w)=>p-w);let y=c.length,l=r*(y-1),h=Math.floor(l),b=Math.ceil(l);if(h===b)C[m]=c[h];else{let p=l-h;C[m]=c[h]*(1-p)+c[b]*p}}let f=d.fromData(C,a,"float64");if(e){let m=[...t];return m[Q]=1,d.fromData(C,m,"float64")}return f}function GF(A,r,I,e=!1){return Kg(A,r/100,I,e)}function _A(A,r,I,e){let t=G(A).ndim,o=r.map(Q=>Q<0?t+Q:Q),n=[...o].sort((Q,a)=>a-Q),g=[...o].sort((Q,a)=>Q-a),i=G(A);for(let Q of n){let a=e(i,Q,!1);if(!(a instanceof d)){if(I){let B=Array(t).fill(1),s=d.zeros(B,i.dtype);return s.iset(0,a),R(s)}return a}i=a}if(I)for(let Q of g)i=iI(i,Q);return R(i)}function po(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>BI(t,o,n));let e=BI(G(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function wo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>TI(t,o,n));let e=TI(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function No(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>ho(t,o,n));let e=ho(G(A),r,I);return typeof e=="number"||typeof e=="bigint"||e instanceof T?e:R(e)}function Fo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>rI(t,o,n));let e=rI(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var Go=Fo;function So(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>II(t,o,n));let e=II(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}var Ro=So;function ko(A,r,I){let e=pF(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function qo(A,r){let I=Lg(G(A),r);return typeof I=="number"?I:R(I)}function Mo(A,r){let I=Hg(G(A),r);return typeof I=="number"?I:R(I)}function sI(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>bo(o,n,I,g));let t=bo(G(A),r,I,e);return typeof t=="number"?t:R(t)}var Vg=sI;function xo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>dE(o,n,I,g));let t=dE(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Jo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>vg(t,o,n));let e=vg(G(A),r,I);return typeof e=="number"?e:R(e)}function Uo(A,r,I,e){let t=wF(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Lo(A,r,I,e){let t=PI(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Ho(A,r,I,e){let t=I?G(I):void 0,o=xg(G(A),r,t,e);return typeof o=="number"||o instanceof T?o:R(o)}function _o(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>_g(t,o,n));let e=_g(G(A),r,I);return typeof e=="boolean"?e:R(e)}function Yo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Yg(t,o,n));let e=Yg(G(A),r,I);return typeof e=="boolean"?e:R(e)}function vo(A,r){return R(bE(G(A),r))}function Xo(A,r){return R(pE(G(A),r))}function To(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Xg(t,o,n));let e=Xg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Po(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Tg(t,o,n));let e=Tg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Ko(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>Pg(t,o,n));let e=Pg(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Vo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>XI(o,n,I,g));let t=XI(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Wo(A,r,I,e){if(Array.isArray(r))return _A(A,r,e??!1,(o,n,g)=>wE(o,n,I,g));let t=wE(G(A),r,I,e);return typeof t=="number"?t:R(t)}function Oo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>yo(t,o,n));let e=yo(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function Zo(A,r,I){if(Array.isArray(r))return _A(A,r,I??!1,(t,o,n)=>lo(t,o,n));let e=lo(G(A),r,I);return typeof e=="number"||e instanceof T?e:R(e)}function zo(A,r){let I=Jg(G(A),r);return typeof I=="number"?I:R(I)}function jo(A,r){let I=Ug(G(A),r);return typeof I=="number"?I:R(I)}function $o(A,r){return R(NF(G(A),r))}function An(A,r){return R(FF(G(A),r))}function rn(A,r,I){let e=NE(G(A),r,I);return typeof e=="number"?e:R(e)}function In(A,r,I,e){let t=Kg(G(A),r,I,e);return typeof t=="number"?t:R(t)}function en(A,r,I,e){let t=GF(G(A),r,I,e);return typeof t=="number"?t:R(t)}var O3="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADDQwAAQACAAMAAAAAAAAGCQF/AUGAgMAACweBAgwPbG9naWNhbF9hbmRfZjY0AAAWbG9naWNhbF9hbmRfc2NhbGFyX2Y2NAABD2xvZ2ljYWxfYW5kX2YzMgACFmxvZ2ljYWxfYW5kX3NjYWxhcl9mMzIAAw9sb2dpY2FsX2FuZF9pNjQABBZsb2dpY2FsX2FuZF9zY2FsYXJfaTY0AAUPbG9naWNhbF9hbmRfaTMyAAYWbG9naWNhbF9hbmRfc2NhbGFyX2kzMgAHD2xvZ2ljYWxfYW5kX2kxNgAIFmxvZ2ljYWxfYW5kX3NjYWxhcl9pMTYACQ5sb2dpY2FsX2FuZF9pOAAKFWxvZ2ljYWxfYW5kX3NjYWxhcl9pOAALCocjDJACAQZ/AkAgA0UNACADQQFxIQRBACEFAkAgA0EBRg0AIANBfnEhBkEAIQUgASEHIAAhAwNAQQAhCAJAIAMrAwBEAAAAAAAAAABhDQAgBysDAEQAAAAAAAAAAGIhCAsgAiAFaiIJIAg6AAACQAJAIANBCGorAwBEAAAAAAAAAABiDQBBACEIDAELIAdBCGorAwBEAAAAAAAAAABiIQgLIAlBAWogCDoAACAHQRBqIQcgA0EQaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQMCQAJAIAAgBUEDdCIHaisDAEQAAAAAAAAAAGINAEEAIQcMAQsgASAHaisDAEQAAAAAAAAAAGIhBwsgAyAHOgAACwu9AwIEfwF7AkACQCADRAAAAAAAAAAAYQ0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBA3RqTw0AIAAgASACakkNAQsgAkF+cSIEIQUgACEGIAEhBwNAIAcgBv0AAwD9DAAAAAAAAAAAAAAAAAAAAAD9SCAI/Q0ACAAAAAAAAAAAAAAAAAAA/QwBAQEBAQEBAQEBAQEBAQEB/U79WQAAACAGQRBqIQYgB0ECaiEHIAVBfmoiBQ0ACyACIARGDQILIAQhBwJAIAIgBGtBA3EiBUUNACAAIARBA3RqIQYgBCEHA0AgASAHaiAGKwMARAAAAAAAAAAAYjoAACAGQQhqIQYgB0EBaiEHIAVBf2oiBQ0ACwsgBCACa0F8Sw0BIAAgB0EDdGohBgNAIAEgB2oiBSAGKwMARAAAAAAAAAAAYjoAACAFQQFqIAZBCGorAwBEAAAAAAAAAABiOgAAIAVBAmogBkEQaisDAEQAAAAAAAAAAGI6AAAgBUEDaiAGQRhqKwMARAAAAAAAAAAAYjoAACABQQRqIQEgBkEgaiEGIAcgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwv4AQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQZBACEFIAEhByAAIQMDQEEAIQgCQCADKgIAQwAAAABbDQAgByoCAEMAAAAAXCEICyACIAVqIgkgCDoAAAJAAkAgA0EEaioCAEMAAAAAXA0AQQAhCAwBCyAHQQRqKgIAQwAAAABcIQgLIAlBAWogCDoAACAHQQhqIQcgA0EIaiEDIAYgBUECaiIFRw0ACwsgBEUNACACIAVqIQMCQAJAIAAgBUECdCIHaioCAEMAAAAAXA0AQQAhBwwBCyABIAdqKgIAQwAAAABcIQcLIAMgBzoAAAsLogMCBH8BewJAAkAgA0MAAAAAWw0AIAJFDQFBACEEAkAgAkEISQ0AAkAgASAAIAJBAnRqTw0AIAAgASACakkNAQsgAkF8cSIEIQUgACEGIAEhBwNAIAcgBv0AAgD9DAAAAAAAAAAAAAAAAAAAAAD9QiAI/Q0ABAgMAAAAAAAAAAAAAAAA/QwBAQEBAQEBAQEBAQEBAQEB/U79WgAAACAGQRBqIQYgB0EEaiEHIAVBfGoiBQ0ACyACIARGDQILIAQhBwJAIAJBA3EiBUUNACAAIARBAnRqIQYgBCEHA0AgASAHaiAGKgIAQwAAAABcOgAAIAZBBGohBiAHQQFqIQcgBUF/aiIFDQALCyAEIAJrQXxLDQEgACAHQQJ0aiEGA0AgASAHaiIFIAYqAgBDAAAAAFw6AAAgBUEBaiAGQQRqKgIAQwAAAABcOgAAIAVBAmogBkEIaioCAEMAAAAAXDoAACAFQQNqIAZBDGoqAgBDAAAAAFw6AAAgAUEEaiEBIAZBEGohBiAHIAJBfGoiAkcNAAwCCwsgAkUNACABQQAgAvwLAAsL4gEBBn8CQCADRQ0AIANBAXEhBEEAIQUCQCADQQFGDQAgA0F+cSEGQQAhBSABIQcgACEDA0BBACEIAkAgAykDAFANACAHKQMAQgBSIQgLIAIgBWoiCSAIOgAAAkACQCADQQhqKQMAUEUNAEEAIQgMAQsgB0EIaikDAEIAUiEICyAJQQFqIAg6AAAgB0EQaiEHIANBEGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBA3QiB2opAwBQRQ0AQQAhBwwBCyABIAdqKQMAQgBSIQcLIAMgBzoAAAsLkgMCBH8BewJAAkAgA1ANACACRQ0BQQAhBAJAIAJBCEkNAAJAIAEgACACQQN0ak8NACAAIAEgAmpJDQELIAJBfnEiBCEFIAAhBiABIQcDQCAHIAb9AAMA/QwAAAAAAAAAAAAAAAAAAAAA/dcBIAj9DQAIAAAAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1ZAAAAIAZBEGohBiAHQQJqIQcgBUF+aiIFDQALIAIgBEYNAgsgBCEHAkAgAiAEa0EDcSIFRQ0AIAAgBEEDdGohBiAEIQcDQCABIAdqIAYpAwBCAFI6AAAgBkEIaiEGIAdBAWohByAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAdBA3RqIQYDQCABIAdqIgUgBikDAEIAUjoAACAFQQFqIAZBCGopAwBCAFI6AAAgBUECaiAGQRBqKQMAQgBSOgAAIAVBA2ogBkEYaikDAEIAUjoAACABQQRqIQEgBkEgaiEGIAcgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwveAQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQYgASEHIAAhA0EAIQUDQEEAIQgCQCADKAIARQ0AIAcoAgBBAEchCAsgAiAFaiIJIAg6AAACQAJAIANBBGooAgANAEEAIQgMAQsgB0EEaigCAEEARyEICyAJQQFqIAg6AAAgB0EIaiEHIANBCGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBAnQiB2ooAgANAEEAIQcMAQsgASAHaigCAEEARyEHCyADIAc6AAALC44DAgN/AXsCQAJAIANFDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkECdGpPDQAgACABIAJqSQ0BCyACQXxxIgQhBSAAIQMgASEGA0AgBiAD/QACAP0MAAAAAAAAAAAAAAAAAAAAAP04IAf9DQAECAwAAAAAAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1aAAAAIANBEGohAyAGQQRqIQYgBUF8aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEECdGohAyAEIQYDQCABIAZqIAMoAgBBAEc6AAAgA0EEaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAnRqIQMDQCABIAZqIgUgAygCAEEARzoAACAFQQFqIANBBGooAgBBAEc6AAAgBUECaiADQQhqKAIAQQBHOgAAIAVBA2ogA0EMaigCAEEARzoAACABQQRqIQEgA0EQaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwveAQEGfwJAIANFDQAgA0EBcSEEQQAhBQJAIANBAUYNACADQX5xIQYgASEHIAAhA0EAIQUDQEEAIQgCQCADLwEARQ0AIAcvAQBBAEchCAsgAiAFaiIJIAg6AAACQAJAIANBAmovAQANAEEAIQgMAQsgB0ECai8BAEEARyEICyAJQQFqIAg6AAAgB0EEaiEHIANBBGohAyAGIAVBAmoiBUcNAAsLIARFDQAgAiAFaiEDAkACQCAAIAVBAXQiB2ovAQANAEEAIQcMAQsgASAHai8BAEEARyEHCyADIAc6AAALC44DAgN/AXsCQAJAIANFDQAgAkUNAUEAIQQCQCACQQhJDQACQCABIAAgAkEBdGpPDQAgACABIAJqSQ0BCyACQXhxIgQhBSAAIQMgASEGA0AgBiAD/QABAP0MAAAAAAAAAAAAAAAAAAAAAP0uIAf9DQACBAYICgwOAAAAAAAAAAD9DAEBAQEBAQEBAQEBAQEBAQH9Tv1bAAAAIANBEGohAyAGQQhqIQYgBUF4aiIFDQALIAIgBEYNAgsgBCEGAkAgAkEDcSIFRQ0AIAAgBEEBdGohAyAEIQYDQCABIAZqIAMvAQBBAEc6AAAgA0ECaiEDIAZBAWohBiAFQX9qIgUNAAsLIAQgAmtBfEsNASAAIAZBAXRqIQMDQCABIAZqIgUgAy8BAEEARzoAACAFQQFqIANBAmovAQBBAEc6AAAgBUECaiADQQRqLwEAQQBHOgAAIAVBA2ogA0EGai8BAEEARzoAACABQQRqIQEgA0EIaiEDIAYgAkF8aiICRw0ADAILCyACRQ0AIAFBACAC/AsACwuTBAQFfwF7AX8BewJAAkAgA0FwcSIEDQBBACEEDAELAkACQCAEQX9qIgVBD0cNAEEAIQQMAQsgBUEEdkEBakH+////AXEhBkEAIQQDQCACIARqIgcgACAEaiII/QAAAP0MAAAAAAAAAAAAAAAAAAAAACIJ/SQgASAEaiIK/QAAACAJ/ST9Tv0MAQEBAQEBAQEBAQEBAQEBASIL/U79CwAAIAdBEGogCEEQav0AAAAgCf0kIApBEGr9AAAAIAn9JP1OIAv9Tv0LAAAgBEEgaiEEIAZBfmoiBg0ACwsgBUEQcQ0AIAIgBGogACAEav0AAAD9DAAAAAAAAAAAAAAAAAAAAAAiCf0kIAEgBGr9AAAAIAn9JP1O/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBAsCQCADIARNDQAgBEEBaiEGAkAgAyAEa0EBcUUNACACIARqIQcCQAJAIAAgBGotAAANAEEAIQgMAQsgASAEai0AAEEARyEICyAHIAg6AAAgBEEBaiEECyADIAZGDQADQEEAIQYCQCAAIARqIgctAABFDQAgASAEai0AAEEARyEGCyACIARqIgggBjoAAAJAAkAgB0EBai0AAA0AQQAhBgwBCyABIARqQQFqLQAAQQBHIQYLIAhBAWogBjoAACACQQJqIQIgAEECaiEAIAFBAmohASAEIANBfmoiA0cNAAsLC6gFAwR/AnsBfwJAAkAgAw0AIAJFDQEgAUEAIAL8CwAPCwJAAkAgAkFwcSIDDQBBACEDDAELIANBf2pBBHZBAWoiBEEDcSEFAkACQCADQTFPDQBBACEDDAELIARB/P///wFxIQZBACEDA0AgASADaiIEIAAgA2oiB/0AAAD9DAAAAAAAAAAAAAAAAAAAAAAiCP0k/QwBAQEBAQEBAQEBAQEBAQEBIgn9Tv0LAAAgBEEQaiAHQRBq/QAAACAI/SQgCf1O/QsAACAEQSBqIAdBIGr9AAAAIAj9JCAJ/U79CwAAIARBMGogB0Ewav0AAAAgCP0kIAn9Tv0LAAAgA0HAAGohAyAGQXxqIgYNAAsLIAVFDQADQCABIANqIAAgA2r9AAAA/QwAAAAAAAAAAAAAAAAAAAAA/ST9DAEBAQEBAQEBAQEBAQEBAQH9Tv0LAAAgA0EQaiEDIAVBf2oiBQ0ACwsgAiADTQ0AAkAgAiADayIGQRBJDQAgASAAa0EQSQ0AIAAgA2ohBCABIANqIQcgAyAGQXBxIgpqIQMgCiEFA0AgByAE/QAAAP0MAAAAAAAAAAAAAAAAAAAAAP0k/QwBAQEBAQEBAQEBAQEBAQEB/U79CwAAIARBEGohBCAHQRBqIQcgBUFwaiIFDQALIAYgCkYNAQsgAyEEAkAgAiADa0EDcSIHRQ0AIAMhBANAIAEgBGogACAEai0AAEEARzoAACAEQQFqIQQgB0F/aiIHDQALCyADIAJrQXxLDQADQCABIARqIgMgACAEaiIHLQAAQQBHOgAAIANBAWogB0EBai0AAEEARzoAACADQQJqIAdBAmotAABBAEc6AAAgA0EDaiAHQQNqLQAAQQBHOgAAIAFBBGohASAAQQRqIQAgBCACQXxqIgJHDQALCws=",tn=null;function Qr(){if(tn)return tn;let A=atob(O3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),tn}function SF(A,r,I,e){Qr().exports.logical_and_f64(A,r,I,e)}function RF(A,r,I,e){Qr().exports.logical_and_scalar_f64(A,r,I,e)}function kF(A,r,I,e){Qr().exports.logical_and_f32(A,r,I,e)}function qF(A,r,I,e){Qr().exports.logical_and_scalar_f32(A,r,I,e)}function FE(A,r,I,e){Qr().exports.logical_and_i64(A,r,I,e)}function GE(A,r,I,e){Qr().exports.logical_and_scalar_i64(A,r,I,BigInt(Math.round(e)))}function SE(A,r,I,e){Qr().exports.logical_and_i32(A,r,I,e)}function RE(A,r,I,e){Qr().exports.logical_and_scalar_i32(A,r,I,e)}function kE(A,r,I,e){Qr().exports.logical_and_i16(A,r,I,e)}function qE(A,r,I,e){Qr().exports.logical_and_scalar_i16(A,r,I,e)}function ME(A,r,I,e){Qr().exports.logical_and_i8(A,r,I,e)}function xE(A,r,I,e){Qr().exports.logical_and_scalar_i8(A,r,I,e)}var MF=64,Z3={float64:SF,float32:kF,int64:FE,uint64:FE,int32:SE,uint32:SE,int16:kE,uint16:kE,int8:ME,uint8:ME},z3={float64:RF,float32:qF,int64:GE,uint64:GE,int32:RE,uint32:RE,int16:qE,uint16:qE,int8:xE,uint8:xE},xF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function JF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<MF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Z3[e],o=xF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function JE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<MF*Y.thresholdMultiplier)return null;let e=A.dtype,t=z3[e],o=xF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var j3="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",on=null;function ar(){if(on)return on;let A=atob(j3),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);on=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=on.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),on}function UF(A,r,I,e){ar().exports.logical_or_f64(A,r,I,e)}function LF(A,r,I,e){ar().exports.logical_or_scalar_f64(A,r,I,e)}function HF(A,r,I,e){ar().exports.logical_or_f32(A,r,I,e)}function _F(A,r,I,e){ar().exports.logical_or_scalar_f32(A,r,I,e)}function UE(A,r,I,e){ar().exports.logical_or_i64(A,r,I,e)}function LE(A,r,I,e){ar().exports.logical_or_scalar_i64(A,r,I,BigInt(Math.round(e)))}function HE(A,r,I,e){ar().exports.logical_or_i32(A,r,I,e)}function _E(A,r,I,e){ar().exports.logical_or_scalar_i32(A,r,I,e)}function YE(A,r,I,e){ar().exports.logical_or_i16(A,r,I,e)}function vE(A,r,I,e){ar().exports.logical_or_scalar_i16(A,r,I,e)}function XE(A,r,I,e){ar().exports.logical_or_i8(A,r,I,e)}function TE(A,r,I,e){ar().exports.logical_or_scalar_i8(A,r,I,e)}var YF=64,$3={float64:UF,float32:HF,int64:UE,uint64:UE,int32:HE,uint32:HE,int16:YE,uint16:YE,int8:XE,uint8:XE},Av={float64:LF,float32:_F,int64:LE,uint64:LE,int32:_E,uint32:_E,int16:vE,uint16:vE,int8:TE,uint8:TE},vF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function XF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<YF*Y.thresholdMultiplier)return null;let e=A.dtype,t=$3[e],o=vF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function PE(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<YF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Av[e],o=vF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var rv="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",nn=null;function Br(){if(nn)return nn;let A=atob(rv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);nn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=nn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),nn}function TF(A,r,I,e){Br().exports.logical_xor_f64(A,r,I,e)}function PF(A,r,I,e){Br().exports.logical_xor_scalar_f64(A,r,I,e)}function KF(A,r,I,e){Br().exports.logical_xor_f32(A,r,I,e)}function VF(A,r,I,e){Br().exports.logical_xor_scalar_f32(A,r,I,e)}function KE(A,r,I,e){Br().exports.logical_xor_i64(A,r,I,e)}function VE(A,r,I,e){Br().exports.logical_xor_scalar_i64(A,r,I,BigInt(Math.round(e)))}function WE(A,r,I,e){Br().exports.logical_xor_i32(A,r,I,e)}function OE(A,r,I,e){Br().exports.logical_xor_scalar_i32(A,r,I,e)}function ZE(A,r,I,e){Br().exports.logical_xor_i16(A,r,I,e)}function zE(A,r,I,e){Br().exports.logical_xor_scalar_i16(A,r,I,e)}function jE(A,r,I,e){Br().exports.logical_xor_i8(A,r,I,e)}function $E(A,r,I,e){Br().exports.logical_xor_scalar_i8(A,r,I,e)}var WF=64,Iv={float64:TF,float32:KF,int64:KE,uint64:KE,int32:WE,uint32:WE,int16:ZE,uint16:ZE,int8:jE,uint8:jE},ev={float64:PF,float32:VF,int64:VE,uint64:VE,int32:OE,uint32:OE,int16:zE,uint16:zE,int8:$E,uint8:$E},OF={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function ZF(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<WF*Y.thresholdMultiplier)return null;let e=A.dtype,t=Iv[e],o=OF[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I;J(g+i+Q),U();let a=q(A.data.subarray(A.offset,A.offset+I)),B=q(r.data.subarray(r.offset,r.offset+I)),s=_(Q);t(a,B,s,I);let C=v(s,I,Uint8Array);return d.fromData(C,Array.from(A.shape),"bool")}function Au(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<WF*Y.thresholdMultiplier)return null;let e=A.dtype,t=ev[e],o=OF[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Uint8Array);return d.fromData(B,Array.from(A.shape),"bool")}var tv="AGFzbQEAAAABHQRgBH9/f38AYAR/f398AGAEf39/fQBgBH9/f34AAg8BA2VudgZtZW1vcnkCABADFRQAAAAAAAAAAAAAAQIDAQABAAEAAQYJAX8BQYCAwAALB+8CFAxjb3B5c2lnbl9mNjQAAAxjb3B5c2lnbl9mMzIAAQxjb3B5c2lnbl9pNjQAAgxjb3B5c2lnbl91NjQAAwxjb3B5c2lnbl9pMzIABAxjb3B5c2lnbl91MzIABQxjb3B5c2lnbl9pMTYABgxjb3B5c2lnbl91MTYABwtjb3B5c2lnbl9pOAAIC2NvcHlzaWduX3U4AAkTY29weXNpZ25fc2NhbGFyX2Y2NAAKE2NvcHlzaWduX3NjYWxhcl9mMzIACxNjb3B5c2lnbl9zY2FsYXJfaTY0AAwTY29weXNpZ25fc2NhbGFyX3U2NAANE2NvcHlzaWduX3NjYWxhcl9pMzIADhNjb3B5c2lnbl9zY2FsYXJfdTMyAA8TY29weXNpZ25fc2NhbGFyX2kxNgAQE2NvcHlzaWduX3NjYWxhcl91MTYAERJjb3B5c2lnbl9zY2FsYXJfaTgAEhJjb3B5c2lnbl9zY2FsYXJfdTgAEwqTRhTdBQMGfwJ7AX8CQAJAIANBfnEiBA0AQQAhBQwBCwJAAkAgBEF/aiIGQQFHDQBBACEFDAELIAZBAXZBAWpBfnEiB0EBdCEFIAIhBCABIQggACEJA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgCIK/U4gCf0AAwD9DP////////9//////////38iC/1O/VD9CwMAIARBEGogCEEQav0AAwAgCv1OIAlBEGr9AAMAIAv9Tv1Q/QsDACAEQSBqIQQgCEEgaiEIIAlBIGohCSAHQX5qIgcNAAsLIAZBAnENACACIAVBA3QiBGogASAEav0AAwD9DAAAAAAAAACAAAAAAAAAAID9TiAAIARq/QADAP0M/////////3//////////f/1O/VD9CwMAIAVBAmohBQsCQCADIAVNDQACQCADIAVrIgZBBkkNACACIABrQRBJDQAgAiABa0EQSQ0AIAIgBUEDdCIJaiEEIAEgCWohCCAAIAlqIQkgBSAGQX5xIgxqIQUgDCEHA0AgBCAI/QADAP0MAAAAAAAAAIAAAAAAAAAAgP1OIAn9AAMA/Qz/////////f/////////9//U79UP0LAwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALIAYgDEYNAQsgBUEBaiEEAkAgAyAFa0EBcUUNACACIAVBA3QiCGogASAIaikDAEKAgICAgICAgIB/gyAAIAhqKQMAQv///////////wCDhDcDACAEIQULIAMgBEYNACADIAVrIQcgACAFQQN0IglqIQQgASAJaiEIIAIgCWohCQNAIAkgCCkDAEKAgICAgICAgIB/gyAEKQMAQv///////////wCDhDcDACAJQQhqIAhBCGopAwBCgICAgICAgICAf4MgBEEIaikDAEL///////////8Ag4Q3AwAgBEEQaiEEIAhBEGohCCAJQRBqIQkgB0F+aiIHDQALCwueAwEFfwJAIANFDQBBACEEAkAgA0EKSQ0AIAIgACADQQJ0IgVqSSAAIAIgA0EDdGoiBklxDQAgAiABIAVqSSABIAZJcQ0AIANBfnEiBCEHIAIhBSABIQYgACEIA0AgBSAG/V0CAP0MAAAAgAAAAIAAAACAAAAAgP1OIAj9XQIA/Qz///9/////f////3////9//U79UP1f/QsDACAFQRBqIQUgBkEIaiEGIAhBCGohCCAHQX5qIgcNAAsgAyAERg0BCyAEQQFyIQUCQCADQQFxRQ0AIAIgBEEDdGogASAEQQJ0IgZqKAIAQYCAgIB4cSAAIAZqKAIAQf////8HcXK+uzkDACAFIQQLIAMgBUYNACADIARrIQcgACAEQQJ0IgZqIQUgASAGaiEGIAIgBEEDdGohCANAIAggBigCAEGAgICAeHEgBSgCAEH/////B3Fyvrs5AwAgCEEIaiAGQQRqKAIAQYCAgIB4cSAFQQRqKAIAQf////8HcXK+uzkDACAFQQhqIQUgBkEIaiEGIAhBEGohCCAHQX5qIgcNAAsLC40EAwV/AnsBfgJAIANFDQBBACEEAkAgA0EESQ0AIAIgAGtBEEkNACACIAFrQRBJDQAgA0F+cSIEIQUgAiEGIAEhByAAIQgDQCAGIAj9AAMAIgn9HQC5/RQgCf0dAbn9IgH97AH9DAAAAAAAAPA/AAAAAAAA8D/9DAAAAAAAAAAAAAAAAAAAAAD9DAAAAAAAAPC/AAAAAAAA8L8gB/0AAwAiCf0MAAAAAAAAAAAAAAAAAAAAACIK/dYB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GzkDACAAQQJqIQAgAUECaiEBIAVBEGohBSAEIANBfmoiA0cNAAsLC44FBAJ/AXsEfwF7AkACQCACQX5xIgQNAEEAIQUMAQsgA71CgICAgICAgICAf4P9EiEGIARBf2pBAXZBAWoiB0EDcSEIAkACQCAEQQdPDQBBACEFDAELIAdBfHEiCUEBdCEFQQAhBANAIAEgBGoiByAAIARqIgr9AAMA/Qz/////////f/////////9/Igv9TiAG/VD9CwMAIAdBEGogCkEQav0AAwAgC/1OIAb9UP0LAwAgB0EgaiAKQSBq/QADACAL/U4gBv1Q/QsDACAHQTBqIApBMGr9AAMAIAv9TiAG/VD9CwMAIARBwABqIQQgCUF8aiIJDQALCyAIRQ0AIAUgCEEBdGohCiAAIAVBA3QiB2ohBCABIAdqIQcDQCAHIAT9AAMA/Qz/////////f/////////9//U4gBv1Q/QsDACAEQRBqIQQgB0EQaiEHIAhBf2oiCA0ACyAKIQULAkAgAiAFTQ0AAkAgAiAFayIIQQRJDQAgASAAa0EQSQ0AIAEgBUEDdCIHaiEEIAAgB2ohByAFIAhBfnEiCWohBSAD/RQhBiAJIQoDQCAEIAf9AAMA/Qz/////////f/////////9//U4gBv0MAAAAAAAAAIAAAAAAAAAAgP1O/VD9CwMAIARBEGohBCAHQRBqIQcgCkF+aiIKDQALIAggCUYNAQsgBUEBaiEEAkAgAiAFa0EBcUUNACABIAVBA3QiB2ogACAHaisDACADpjkDACAEIQULIAIgBEYNACACIAVrIQogACAFQQN0IgdqIQQgASAHaiEHA0AgByAEKwMAIAOmOQMAIAdBCGogBEEIaisDACADpjkDACAEQRBqIQQgB0EQaiEHIApBfmoiCg0ACwsLuwIDAX8BewN/AkAgAkUNAEEAIQQCQCACQQhJDQACQCABIAAgAkECdGpPDQAgACABIAJBA3RqSQ0BCyAD/RMhBSACQX5xIgQhBiABIQcgACEIA0AgByAI/V0CAP0M////f////3////9/////f/1OIAX9DAAAAIAAAACAAAAAgAAAAID9Tv1Q/V/9CwMAIAdBEGohByAIQQhqIQggBkF+aiIGDQALIAIgBEYNAQsgBEEBciEHAkAgAkEBcUUNACABIARBA3RqIAAgBEEC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",gn=null;function RA(){if(gn)return gn;let A=atob(tv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);gn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=gn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),gn}function zF(A,r,I,e){RA().exports.copysign_f64(A,r,I,e)}function jF(A,r,I,e){RA().exports.copysign_f32(A,r,I,e)}function $F(A,r,I,e){RA().exports.copysign_i64(A,r,I,e)}function AG(A,r,I,e){RA().exports.copysign_u64(A,r,I,e)}function rG(A,r,I,e){RA().exports.copysign_i32(A,r,I,e)}function IG(A,r,I,e){RA().exports.copysign_u32(A,r,I,e)}function eG(A,r,I,e){RA().exports.copysign_i16(A,r,I,e)}function tG(A,r,I,e){RA().exports.copysign_u16(A,r,I,e)}function oG(A,r,I,e){RA().exports.copysign_i8(A,r,I,e)}function nG(A,r,I,e){RA().exports.copysign_u8(A,r,I,e)}function iG(A,r,I,e){RA().exports.copysign_scalar_f64(A,r,I,e)}function gG(A,r,I,e){RA().exports.copysign_scalar_f32(A,r,I,e)}function QG(A,r,I,e){RA().exports.copysign_scalar_i64(A,r,I,BigInt(Math.round(e)))}function aG(A,r,I,e){RA().exports.copysign_scalar_u64(A,r,I,e)}function BG(A,r,I,e){RA().exports.copysign_scalar_i32(A,r,I,e)}function sG(A,r,I,e){RA().exports.copysign_scalar_u32(A,r,I,e)}function CG(A,r,I,e){RA().exports.copysign_scalar_i16(A,r,I,e)}function EG(A,r,I,e){RA().exports.copysign_scalar_u16(A,r,I,e)}function uG(A,r,I,e){RA().exports.copysign_scalar_i8(A,r,I,e)}function cG(A,r,I,e){RA().exports.copysign_scalar_u8(A,r,I,e)}var DG=64,ov={float64:zF,float32:jF,int64:$F,uint64:AG,int32:rG,uint32:IG,int16:eG,uint16:tG,int8:oG,uint8:nG},nv={float64:iG,float32:gG,int64:QG,uint64:aG,int32:BG,uint32:sG,int16:CG,uint16:EG,int8:uG,uint8:cG},fG={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function mG(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<DG*Y.thresholdMultiplier)return null;let e=A.dtype,t=ov[e],o=fG[e];if(!t||!o||r.dtype!==e)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g*2+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=q(r.data.subarray(r.offset,r.offset+I)),B=_(i);t(Q,a,B,I);let s=v(B,I,Float64Array);return d.fromData(s,Array.from(A.shape),"float64")}function ru(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<DG*Y.thresholdMultiplier)return null;let e=A.dtype,t=nv[e],o=fG[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*8;J(g+i),U();let Q=q(A.data.subarray(A.offset,A.offset+I)),a=_(i);t(Q,a,I,r);let B=v(a,I,Float64Array);return d.fromData(B,Array.from(A.shape),"float64")}var iv="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",Qn=null;function KI(){if(Qn)return Qn;let A=atob(iv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Qn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Qn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Qn}function yG(A,r,I){KI().exports.logical_not_f64(A,r,I)}function lG(A,r,I){KI().exports.logical_not_f32(A,r,I)}function Iu(A,r,I){KI().exports.logical_not_i64(A,r,I)}function eu(A,r,I){KI().exports.logical_not_i32(A,r,I)}function tu(A,r,I){KI().exports.logical_not_i16(A,r,I)}function ou(A,r,I){KI().exports.logical_not_i8(A,r,I)}var gv=64,Qv={float64:yG,float32:lG,int64:Iu,uint64:Iu,int32:eu,uint32:eu,int16:tu,uint16:tu,int8:ou,uint8:ou},av={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hG(A){if(!A.isCContiguous)return null;let r=A.size;if(r<gv*Y.thresholdMultiplier)return null;let I=A.dtype,e=Qv[I],t=av[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=q(A.data.subarray(A.offset,A.offset+r)),Q=_(g);e(i,Q,r);let a=v(Q,r,Uint8Array);return d.fromData(a,Array.from(A.shape),"bool")}function WI(A){return A!==0&&A!==0n}function Nr(A,r){let I=A[r*2],e=A[r*2+1];return I!==0||e!==0}function an(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function NG(A,r){if(typeof r=="number"){let I=JE(A,r);return I||dG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=JE(A,I);return e||dG(A,I)}if(an(A,r)){let I=JF(A,r);return I||Bv(A,r)}return tr(A,r,(I,e)=>WI(I)&&WI(e))}function Bv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C&&E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C&&E?1:0}else for(let s=0;s<g;s++)I[s]=e[o+s]!==0&&t[n+s]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function dG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)&&e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n&&e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0&&e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0&&e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=(n.re!==0||n.im!==0)&&e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n&&e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0&&e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function FG(A,r){if(typeof r=="number"){let I=PE(A,r);return I||bG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=PE(A,I);return e||bG(A,I)}if(an(A,r)){let I=XF(A,r);return I||sv(A,r)}return tr(A,r,(I,e)=>WI(I)||WI(e))}function sv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C||E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C||E?1:0}else for(let s=0;s<g;s++)I[s]=e[o+s]!==0||t[n+s]!==0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function bG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=Nr(g,n+i)||e?1:0}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)I[i]=g[n+i]!==0n||e?1:0}else if(n===0)for(let g=0;g<t;g++)I[g]=o[g]!==0||e?1:0;else for(let g=0;g<t;g++)I[g]=o[n+g]!==0||e?1:0}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o);I[o]=n.re!==0||n.im!==0||e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++)I[o]=A.iget(o)!==0n||e?1:0;else for(let o=0;o<t;o++)I[o]=Number(A.iget(o))!==0||e?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function GG(A){let r=hG(A);if(r)return r;let I=new Uint8Array(A.size),e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(k(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=Nr(n,o+g)?0:1}else if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=n[o+g]===0n?1:0}else if(o===0)for(let n=0;n<e;n++)I[n]=t[n]===0?1:0;else for(let n=0;n<e;n++)I[n]=t[o+n]===0?1:0}else if(k(A.dtype))for(let t=0;t<e;t++){let o=A.iget(t);I[t]=o.re===0&&o.im===0?1:0}else if(L(A.dtype))for(let t=0;t<e;t++)I[t]=A.iget(t)===0n?1:0;else for(let t=0;t<e;t++)I[t]=Number(A.iget(t))===0?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function SG(A,r){if(typeof r=="number"){let I=Au(A,r);return I||pG(A,r)}if(r.size===1&&!k(r.dtype)){let I=Number(r.iget(0)),e=Au(A,I);return e||pG(A,I)}if(an(A,r)){let I=ZF(A,r);return I||Cv(A,r)}return tr(A,r,(I,e)=>WI(I)!==WI(e))}function Cv(A,r){let I=new Uint8Array(A.size),e=A.data,t=r.data,o=A.offset,n=r.offset,g=A.size,i=L(A.dtype),Q=L(r.dtype),a=k(A.dtype),B=k(r.dtype);if(a||B)for(let s=0;s<g;s++){let C=a?Nr(e,o+s):e[o+s]!==0,E=B?Nr(t,n+s):t[n+s]!==0;I[s]=C!==E?1:0}else if(i||Q)for(let s=0;s<g;s++){let C=i?e[o+s]!==0n:e[o+s]!==0,E=Q?t[n+s]!==0n:t[n+s]!==0;I[s]=C!==E?1:0}else for(let s=0;s<g;s++){let C=e[o+s]!==0,E=t[n+s]!==0;I[s]=C!==E?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function pG(A,r){let I=new Uint8Array(A.size),e=r!==0,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(k(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=Nr(g,n+i);I[i]=Q!==e?1:0}}else if(L(A.dtype)){let g=o;for(let i=0;i<t;i++){let Q=g[n+i]!==0n;I[i]=Q!==e?1:0}}else if(n===0)for(let g=0;g<t;g++){let i=o[g]!==0;I[g]=i!==e?1:0}else for(let g=0;g<t;g++){let i=o[n+g]!==0;I[g]=i!==e?1:0}}else if(k(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o),g=n.re!==0||n.im!==0;I[o]=g!==e?1:0}else if(L(A.dtype))for(let o=0;o<t;o++){let n=A.iget(o)!==0n;I[o]=n!==e?1:0}else for(let o=0;o<t;o++){let n=Number(A.iget(o))!==0;I[o]=n!==e?1:0}return d.fromData(I,Array.from(A.shape),"bool")}function RG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isFinite(g)&&Number.isFinite(i)?1:0}}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else if(t===0)for(let o=0;o<I;o++)r[o]=Number.isFinite(e[o])?1:0;else for(let o=0;o<I;o++){let n=e[t+o];r[o]=Number.isFinite(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isFinite(t.re)&&Number.isFinite(t.im)?1:0}else if(L(A.dtype)||pA(A.dtype))r.fill(1);else for(let e=0;e<I;e++)r[e]=Number.isFinite(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function kG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1],Q=!Number.isFinite(g)&&!Number.isNaN(g),a=!Number.isFinite(i)&&!Number.isNaN(i);r[n]=Q||a?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))if(t===0)for(let o=0;o<I;o++){let n=e[o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=!Number.isFinite(n)&&!Number.isNaN(n)?1:0}}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e),o=!Number.isFinite(t.re)&&!Number.isNaN(t.re),n=!Number.isFinite(t.im)&&!Number.isNaN(t.im);r[e]=o||n?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=!Number.isFinite(t)&&!Number.isNaN(t)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function qG(A){let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(k(A.dtype)){let o=e;for(let n=0;n<I;n++){let g=o[(t+n)*2],i=o[(t+n)*2+1];r[n]=Number.isNaN(g)||Number.isNaN(i)?1:0}}else if(!(L(A.dtype)||pA(A.dtype)))for(let o=0;o<I;o++)r[o]=Number.isNaN(e[t+o])?1:0}else if(k(A.dtype))for(let e=0;e<I;e++){let t=A.iget(e);r[e]=Number.isNaN(t.re)||Number.isNaN(t.im)?1:0}else if(!(L(A.dtype)||pA(A.dtype)))for(let e=0;e<I;e++)r[e]=Number.isNaN(Number(A.iget(e)))?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function MG(A){let r=new Uint8Array(A.size);return d.fromData(r,Array.from(A.shape),"bool")}function xG(A,r){if(eA(A.dtype,"copysign","copysign is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"copysign","copysign is only defined for real numbers."),typeof r=="number"){let i=ru(A,r);return i||wG(A,r)}if(r.size===1&&!k(r.dtype)){let i=Number(r.iget(0)),Q=ru(A,i);return Q||wG(A,i)}if(an(A,r)){let i=mG(A,r);return i||Ev(A,r)}let I=Yr(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Wg(A,I),g=Wg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=Math.sign(a)*Math.abs(Q)}return t}function Ev(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let B=0;B<t;B++){let s=Q?Number(o[g+B]):o[g+B],C=a?Number(n[i+B]):n[i+B];e[B]=Math.sign(C)*Math.abs(s)}return I}function wG(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=Math.sign(r);if(!A.isCContiguous){for(let i=0;i<t;i++)e[i]=o*Math.abs(Number(A.iget(i)));return I}let n=A.data,g=A.offset;if(L(A.dtype)){let i=n;for(let Q=0;Q<t;Q++)e[Q]=o*Math.abs(Number(i[g+Q]))}else if(g===0)for(let i=0;i<t;i++)e[i]=o*Math.abs(n[i]);else for(let i=0;i<t;i++)e[i]=o*Math.abs(n[g+i]);return I}function JG(A){eA(A.dtype,"signbit","signbit is only defined for real numbers.");let r=new Uint8Array(A.size),I=A.size;if(A.isCContiguous){let e=A.data,t=A.offset;if(L(A.dtype)){let o=e;for(let n=0;n<I;n++)r[n]=o[t+n]<0n?1:0}else for(let o=0;o<I;o++){let n=e[t+o];r[o]=n<0||Object.is(n,-0)?1:0}}else if(L(A.dtype))for(let e=0;e<I;e++)r[e]=A.iget(e)<0n?1:0;else for(let e=0;e<I;e++){let t=Number(A.iget(e));r[e]=t<0||Object.is(t,-0)?1:0}return d.fromData(r,Array.from(A.shape),"bool")}function UG(A,r){if(eA(A.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r!="number"&&eA(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof r=="number")return cv(A,r);if(an(A,r))return uv(A,r);let I=Yr(A.shape,r.shape),e=I.reduce((i,Q)=>i*Q,1),t=d.zeros(I,"float64"),o=t.data,n=Wg(A,I),g=Wg(r,I);for(let i=0;i<e;i++){let Q=Number(n.iget(i)),a=Number(g.iget(i));o[i]=VI(Q,a)}return t}function uv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=L(A.dtype),a=L(r.dtype);for(let B=0;B<t;B++){let s=Q?Number(o[g+B]):o[g+B],C=a?Number(n[i+B]):n[i+B];e[B]=VI(s,C)}return I}function cv(A,r){let I=d.zeros(Array.from(A.shape),"float64"),e=I.data,t=A.size;if(A.isCContiguous){let o=A.data,n=A.offset;if(L(A.dtype)){let g=o;for(let i=0;i<t;i++)e[i]=VI(Number(g[n+i]),r)}else for(let g=0;g<t;g++)e[g]=VI(o[n+g],r)}else for(let o=0;o<t;o++)e[o]=VI(Number(A.iget(o)),r);return I}function VI(A,r){if(Number.isNaN(A)||Number.isNaN(r))return NaN;if(A===r)return r;if(A===0)return r>0?Number.MIN_VALUE:-Number.MIN_VALUE;let I=new ArrayBuffer(8),e=new Float64Array(I),t=new BigInt64Array(I);e[0]=A;let o=t[0];return(A>0?r>A:r<A)?o=o+1n:o=o-1n,t[0]=o,e[0]}function LG(A){eA(A.dtype,"spacing","spacing is only defined for real numbers.");let r=d.zeros(Array.from(A.shape),"float64"),I=r.data,e=A.size;if(A.isCContiguous){let t=A.data,o=A.offset;if(L(A.dtype)){let n=t;for(let g=0;g<e;g++)I[g]=nu(Number(n[o+g]))}else for(let n=0;n<e;n++)I[n]=nu(t[o+n])}else for(let t=0;t<e;t++)I[t]=nu(Number(A.iget(t)));return r}function nu(A){if(Number.isNaN(A))return NaN;if(!Number.isFinite(A))return NaN;if(Math.abs(A)===0)return Number.MIN_VALUE;let I=VI(A,1/0);return Math.abs(I-A)}function Wg(A,r){let I=A.shape.length,e=r.length,t=new Array(e).fill(0);for(let o=0;o<I;o++){let n=e-I+o,g=A.shape[o],i=r[n];if(g===i)t[n]=A.strides[o];else if(g===1)t[n]=0;else throw new Error("Invalid broadcast")}return d.fromData(A.data,Array.from(r),A.dtype,t,A.offset)}function HG(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]!==0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im!==0?1:0}return d.fromData(e,Array.from(A.shape),"bool")}function _G(A){return k(A.dtype)}function YG(A){let r=A.dtype,I=A.size,e=new Uint8Array(I);if(k(r))if(A.isCContiguous){let t=A.offset,o=A.data;for(let n=0;n<I;n++)e[n]=o[(t+n)*2+1]===0?1:0}else for(let t=0;t<I;t++){let o=A.iget(t);e[t]=o.im===0?1:0}else e.fill(1);return d.fromData(e,Array.from(A.shape),"bool")}function vG(A){return!k(A.dtype)}function XG(A){eA(A.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===-1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===-1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function TG(A){eA(A.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let r=new Uint8Array(A.size),I=A.size;if(!(L(A.dtype)||pA(A.dtype)))if(A.isCContiguous){let e=A.data,t=A.offset;for(let o=0;o<I;o++){let n=e[t+o];r[o]=n===1/0?1:0}}else for(let e=0;e<I;e++)r[e]=Number(A.iget(e))===1/0?1:0;return d.fromData(r,Array.from(A.shape),"bool")}function PG(A){return A.isFContiguous}function KG(A,r=100){let I=A.dtype;if(k(I)){let e=A.size,o=r*(I==="complex64"?11920929e-14:2220446049250313e-31);if(A.isCContiguous){let n=A.data,g=A.offset,i=!0;for(let Q=0;Q<e;Q++){let a=n[(g+Q)*2+1];if(Math.abs(a)>o){i=!1;break}}if(i){let Q=I==="complex64"?"float32":"float64",a=d.zeros(Array.from(A.shape),Q),B=a.data;for(let s=0;s<e;s++)B[s]=n[(g+s)*2];return a}}else{let n=!0;for(let g=0;g<e;g++){let i=A.iget(g);if(Math.abs(i.im)>o){n=!1;break}}if(n){let g=I==="complex64"?"float32":"float64",i=d.zeros(Array.from(A.shape),g),Q=i.data;for(let a=0;a<e;a++){let B=A.iget(a);Q[a]=B.re}return i}}return A.copy()}return A.copy()}function VG(A){return typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"||typeof A=="string"}function WG(A){return A==null?!1:typeof A[Symbol.iterator]=="function"}function OG(A,r){let e={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[r];return e?e.includes(A):!1}function ZG(A,r){let I=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],e=I.indexOf(A),t=I.indexOf(r);return e<=t?A:r}function Fr(A){if(A.length===0)return[];if(A.length===1)return Array.from(A[0]);let r=Math.max(...A.map(e=>e.length)),I=new Array(r);for(let e=0;e<r;e++){let t=1;for(let o of A){let n=o.length-r+e,g=n<0?1:o[n];if(g!==1){if(t===1)t=g;else if(t!==g)return null}}I[e]=t}return I}function fv(A,r,I){let e=A.length,t=I.length,o=new Array(t).fill(0);for(let n=0;n<e;n++){let g=t-e+n,i=A[n],Q=I[g];if(i===Q)o[g]=r[n];else if(i===1)o[g]=0;else throw new Error("Invalid broadcast")}return o}function sr(A,r){let I=fv(A.shape,A.strides,r);return d.fromData(A.data,Array.from(r),A.dtype,I,A.offset)}function CI(A,r){return[A[r*2],A[r*2+1]]}function zG(A,r){if(k(A.dtype))return CI(A.data,r);let I=A.iget(r);return I instanceof T?[I.re,I.im]:[Number(I),0]}function OI(A,r,I){let e=Fr([Array.from(A.shape),Array.from(r.shape)]);if(!e)throw new Error("Cannot broadcast arrays together");let t=sr(A,e),o=sr(r,e),n=e.reduce((i,Q)=>i*Q,1),g=new Uint8Array(n);for(let i=0;i<n;i++){let[Q,a]=zG(t,i),[B,s]=zG(o,i);g[i]=I(Q,a,B,s)?1:0}return d.fromData(g,e,"bool")}function jG(A,r){return typeof r=="number"?mv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I>t:e>o):tr(A,r,(I,e)=>I>e)}function $G(A,r){return typeof r=="number"?yv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I>=t:e>=o):tr(A,r,(I,e)=>I>=e)}function AS(A,r){return typeof r=="number"?lv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I<t:e<o):tr(A,r,(I,e)=>I<e)}function rS(A,r){return typeof r=="number"?hv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t?I<=t:e<=o):tr(A,r,(I,e)=>I<=e)}function IS(A,r){return typeof r=="number"?dv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I===t&&e===o):tr(A,r,(I,e)=>I===e)}function eS(A,r){return typeof r=="number"?bv(A,r):k(A.dtype)||k(r.dtype)?OI(A,r,(I,e,t,o)=>I!==t||e!==o):tr(A,r,(I,e)=>I!==e)}function iu(A,r,I=1e-5,e=1e-8){return typeof r=="number"?pv(A,r,I,e):tr(A,r,(t,o)=>{let n=Math.abs(t-o),g=e+I*Math.abs(o);return n<=g})}function tS(A,r,I=1e-5,e=1e-8){let t=iu(A,r,I,e),o=t.data;for(let n=0;n<t.size;n++)if(o[n]===0)return!1;return!0}function oS(A,r){let I=[Array.from(A.shape),Array.from(r.shape)],e=Fr(I);if(e===null)return!1;let t=sr(A,e),o=sr(r,e),n=e.length,g=e.reduce((a,B)=>a*B,1),i=L(t.dtype),Q=L(o.dtype);for(let a=0;a<g;a++){let B=a,s=new Array(n);for(let u=n-1;u>=0;u--)s[u]=B%e[u],B=Math.floor(B/e[u]);let C=t.get(...s),E=o.get(...s);if(i||Q){let u=typeof C=="bigint"?C:BigInt(Number(C)),f=typeof E=="bigint"?E:BigInt(Number(E));if(u!==f)return!1}else if(C!==E)return!1}return!0}function mv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>r:Q>0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>r:n.im>0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function yv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i>=r:Q>=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re>=r:n.im>=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]>=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))>=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function lv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<r:Q<0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<r:n.im<0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function hv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.isCContiguous;if(k(A.dtype))if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++){let[i,Q]=CI(o,n+g);I[g]=(i!==r?i<=r:Q<=0)?1:0}}else for(let o=0;o<e;o++){let n=A.iget(o);I[o]=(n.re!==r?n.re<=r:n.im<=0)?1:0}else if(t){let o=A.data,n=A.offset;for(let g=0;g<e;g++)I[g]=o[n+g]<=r?1:0}else for(let o=0;o<e;o++)I[o]=Number(A.iget(o))<=r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function dv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q===r&&a===0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re===r&&g.im===0?1:0}else if(L(t)){let n=BigInt(Math.round(r));if(o){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)I[Q]=g[i+Q]===n?1:0}else for(let g=0;g<e;g++)I[g]=A.iget(g)===n?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]===r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))===r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function bv(A,r){let I=new Uint8Array(A.size),e=A.size,t=A.dtype,o=A.isCContiguous;if(k(t))if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++){let[Q,a]=CI(n,g+i);I[i]=Q!==r||a!==0?1:0}}else for(let n=0;n<e;n++){let g=A.iget(n);I[n]=g.re!==r||g.im!==0?1:0}else if(o){let n=A.data,g=A.offset;for(let i=0;i<e;i++)I[i]=n[g+i]!==r?1:0}else for(let n=0;n<e;n++)I[n]=Number(A.iget(n))!==r?1:0;return d.fromData(I,Array.from(A.shape),"bool")}function pv(A,r,I,e){let t=new Uint8Array(A.size),o=A.size,n=e+I*Math.abs(r);if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<o;Q++){let a=Math.abs(Number(g[i+Q])-r);t[Q]=a<=n?1:0}}else for(let g=0;g<o;g++){let i=Math.abs(Number(A.iget(g))-r);t[g]=i<=n?1:0}return d.fromData(t,Array.from(A.shape),"bool")}function Bn(A,r){let I=typeof r=="number"?r:G(r);return R(NG(G(A),I))}function sn(A,r){let I=typeof r=="number"?r:G(r);return R(FG(G(A),I))}function Cn(A){return R(GG(G(A)))}function En(A,r){let I=typeof r=="number"?r:G(r);return R(SG(G(A),I))}function un(A){return R(RG(G(A)))}function cn(A){return R(kG(G(A)))}function Dn(A){return R(qG(G(A)))}function fn(A){return R(MG(G(A)))}function gu(A){return R(XG(G(A)))}function Qu(A){return R(TG(G(A)))}function au(A){return R(HG(G(A)))}function Og(A){return _G(G(A))}function Bu(A){return R(YG(G(A)))}function Zg(A){return vG(G(A))}function su(A,r){return R(KG(G(A),r))}function zg(A){return PG(G(A))}function jg(A){return VG(A)}function $g(A){return WG(A)}function AQ(A,r){return OG(A,r)}function rQ(A,r){return ZG(A,r)}function mn(A,r){let I=typeof r=="number"?r:G(r);return R(xG(G(A),I))}function yn(A){return R(JG(G(A)))}function ln(A,r){let I=typeof r=="number"?r:G(r);return R(UG(G(A),I))}function hn(A){return R(LG(G(A)))}function dn(A,r){return R(jG(G(A),typeof r=="number"?r:G(r)))}function bn(A,r){return R($G(G(A),typeof r=="number"?r:G(r)))}function pn(A,r){return R(AS(G(A),typeof r=="number"?r:G(r)))}function wn(A,r){return R(rS(G(A),typeof r=="number"?r:G(r)))}function Nn(A,r){return R(IS(G(A),typeof r=="number"?r:G(r)))}function Fn(A,r){return R(eS(G(A),typeof r=="number"?r:G(r)))}function Gn(A,r,I=1e-5,e=1e-8){return R(iu(G(A),typeof r=="number"?r:G(r),I,e))}function ZI(A,r,I=1e-5,e=1e-8){return tS(G(A),typeof r=="number"?r:G(r),I,e)}var wv="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",Sn=null;function zI(){if(Sn)return Sn;let A=atob(wv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Sn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Sn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Sn}function iS(A,r){return zI().exports.reduce_count_nz_f64(A,r)}function gS(A,r){return zI().exports.reduce_count_nz_f32(A,r)}function Cu(A,r){return zI().exports.reduce_count_nz_i64(A,r)}function Eu(A,r){return zI().exports.reduce_count_nz_i32(A,r)}function uu(A,r){return zI().exports.reduce_count_nz_i16(A,r)}function cu(A,r){return zI().exports.reduce_count_nz_i8(A,r)}var Nv=64,Fv={float64:iS,float32:gS,int64:Cu,uint64:Cu,int32:Eu,uint32:Eu,int16:uu,uint16:uu,int8:cu,uint8:cu},Gv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function QS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Nv*Y.thresholdMultiplier)return null;let I=A.dtype,e=Fv[I],t=Gv[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT;J(r*o),U();let n=A.offset,g=A.data.subarray(n,n+r),i=q(g);return Number(e(i,r))}var Sv="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",Rn=null;function lA(){if(Rn)return Rn;let A=atob(Sv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Rn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Rn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Rn}function aS(A,r){lA().exports.sort_f64(A,r)}function BS(A,r){lA().exports.sort_f32(A,r)}function sS(A,r){lA().exports.sort_i64(A,r)}function CS(A,r){lA().exports.sort_u64(A,r)}function ES(A,r){lA().exports.sort_i32(A,r)}function uS(A,r){lA().exports.sort_u32(A,r)}function cS(A,r){lA().exports.sort_i16(A,r)}function DS(A,r){lA().exports.sort_u16(A,r)}function fS(A,r){lA().exports.sort_i8(A,r)}function mS(A,r){lA().exports.sort_u8(A,r)}function yS(A,r,I){lA().exports.sort_slices_f64(A,r,I)}function lS(A,r,I){lA().exports.sort_slices_f32(A,r,I)}function hS(A,r,I){lA().exports.sort_slices_i64(A,r,I)}function dS(A,r,I){lA().exports.sort_slices_u64(A,r,I)}function bS(A,r,I){lA().exports.sort_slices_i32(A,r,I)}function pS(A,r,I){lA().exports.sort_slices_u32(A,r,I)}function wS(A,r,I){lA().exports.sort_slices_i16(A,r,I)}function NS(A,r,I){lA().exports.sort_slices_u16(A,r,I)}function FS(A,r,I){lA().exports.sort_slices_i8(A,r,I)}function GS(A,r,I){lA().exports.sort_slices_u8(A,r,I)}function SS(A,r){lA().exports.sort_c128(A,r)}function RS(A,r){lA().exports.sort_c64(A,r)}function kS(A,r,I){lA().exports.sort_slices_c128(A,r,I)}function qS(A,r,I){lA().exports.sort_slices_c64(A,r,I)}var Rv=64,MS={float64:aS,float32:BS,int64:sS,uint64:CS,int32:ES,uint32:uS,int16:cS,uint16:DS,int8:fS,uint8:mS,complex128:SS,complex64:RS},kv={float64:yS,float32:lS,int64:hS,uint64:dS,int32:bS,uint32:pS,int16:wS,uint16:NS,int8:FS,uint8:GS,complex128:kS,complex64:qS},Du={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function xS(A,r,I,e,t){if(I<2)return!0;let o=kv[t];if(o&&r[0]===0&&e>1&&r[1]===I){let E=Du[t];if(!E)return!1;let u=E.BYTES_PER_ELEMENT,f=A.length*u;J(f),U();let m=q(A);o(m,I,e);let c=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(c.buffer,m,A.byteLength)),!0}let n=MS[t],g=Du[t];if(!n||!g)return!1;let i=t==="complex128"||t==="complex64",Q=g.BYTES_PER_ELEMENT,a=i?Q*2:Q,B=A.length*Q;J(B),U();let s=q(A);for(let E=0;E<e;E++)n(s+r[E]*a,I);let C=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(C.buffer,s,A.byteLength)),!0}function JS(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Rv*Y.thresholdMultiplier)return null;let I=A.dtype,e=MS[I],t=Du[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o;J(n),U();let g=A.offset,Q=I==="complex128"||I==="complex64"?r*2:r,a=A.data.subarray(g,g+Q),B=q(a);e(B,r);let s=v(B,Q,t);return d.fromData(s,Array.from(A.shape),I)}var qv="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",kn=null;function hA(){if(kn)return kn;let A=atob(qv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),kn}function US(A,r,I){hA().exports.argsort_f64(A,r,I)}function LS(A,r,I){hA().exports.argsort_f32(A,r,I)}function HS(A,r,I){hA().exports.argsort_i64(A,r,I)}function _S(A,r,I){hA().exports.argsort_u64(A,r,I)}function YS(A,r,I){hA().exports.argsort_i32(A,r,I)}function vS(A,r,I){hA().exports.argsort_u32(A,r,I)}function XS(A,r,I){hA().exports.argsort_i16(A,r,I)}function TS(A,r,I){hA().exports.argsort_u16(A,r,I)}function PS(A,r,I){hA().exports.argsort_i8(A,r,I)}function KS(A,r,I){hA().exports.argsort_u8(A,r,I)}function VS(A,r,I,e){hA().exports.argsort_slices_f64(A,r,I,e)}function WS(A,r,I,e){hA().exports.argsort_slices_f32(A,r,I,e)}function OS(A,r,I,e){hA().exports.argsort_slices_i64(A,r,I,e)}function ZS(A,r,I,e){hA().exports.argsort_slices_u64(A,r,I,e)}function zS(A,r,I,e){hA().exports.argsort_slices_i32(A,r,I,e)}function jS(A,r,I,e){hA().exports.argsort_slices_u32(A,r,I,e)}function $S(A,r,I,e){hA().exports.argsort_slices_i16(A,r,I,e)}function AR(A,r,I,e){hA().exports.argsort_slices_u16(A,r,I,e)}function rR(A,r,I,e){hA().exports.argsort_slices_i8(A,r,I,e)}function IR(A,r,I,e){hA().exports.argsort_slices_u8(A,r,I,e)}function eR(A,r,I){hA().exports.argsort_c128(A,r,I)}function tR(A,r,I){hA().exports.argsort_c64(A,r,I)}function oR(A,r,I,e){hA().exports.argsort_slices_c128(A,r,I,e)}function nR(A,r,I,e){hA().exports.argsort_slices_c64(A,r,I,e)}var Mv=64,iR={float64:US,float32:LS,int64:HS,uint64:_S,int32:YS,uint32:vS,int16:XS,uint16:TS,int8:PS,uint8:KS,complex128:eR,complex64:tR},xv={float64:VS,float32:WS,int64:OS,uint64:ZS,int32:zS,uint32:jS,int16:$S,uint16:AR,int8:rR,uint8:IR,complex128:oR,complex64:nR},fu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array,complex128:Float64Array,complex64:Float32Array};function gR(A,r,I,e,t,o,n){if(t<2)return!1;let g=n==="complex128"||n==="complex64",i=xv[n];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let c=fu[n];if(!c)return!1;let D=c.BYTES_PER_ELEMENT,y=A.length*D,l=r.length*4;J(y+l),U();let h=q(A),b=_(l);i(h,b,t,o);let p=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(p.buffer,b,r.byteLength)),!0}let Q=iR[n],a=fu[n];if(!Q||!a)return!1;let B=a.BYTES_PER_ELEMENT,s=g?B*2:B,C=A.length*B,E=r.length*4;J(C+E),U();let u=q(A),f=_(E);for(let c=0;c<o;c++)Q(u+I[c]*s,f+e[c]*4,t);let m=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(m.buffer,f,r.byteLength)),!0}function QR(A){if(!A.isCContiguous)return null;let r=A.size;if(r<Mv*Y.thresholdMultiplier)return null;let I=A.dtype,e=iR[I],t=fu[I];if(!e||!t)return null;let o=I==="complex128"||I==="complex64",n=t.BYTES_PER_ELEMENT,g=o?r*2:r,i=g*n,Q=r*4;J(i+Q),U();let a=A.offset,B=A.data.subarray(a,a+g),s=q(B),C=_(Q);e(s,C,r);let E=v(C,r,Int32Array);return d.fromData(E,Array.from(A.shape),"int32")}var Jv="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",qn=null;function kA(){if(qn)return qn;let A=atob(Jv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);qn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=qn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),qn}function aR(A,r,I){kA().exports.partition_f64(A,r,I)}function BR(A,r,I){kA().exports.partition_f32(A,r,I)}function sR(A,r,I){kA().exports.partition_i64(A,r,I)}function CR(A,r,I){kA().exports.partition_u64(A,r,I)}function ER(A,r,I){kA().exports.partition_i32(A,r,I)}function uR(A,r,I){kA().exports.partition_u32(A,r,I)}function cR(A,r,I){kA().exports.partition_i16(A,r,I)}function DR(A,r,I){kA().exports.partition_u16(A,r,I)}function fR(A,r,I){kA().exports.partition_i8(A,r,I)}function mR(A,r,I){kA().exports.partition_u8(A,r,I)}function yR(A,r,I,e){kA().exports.partition_slices_f64(A,r,I,e)}function lR(A,r,I,e){kA().exports.partition_slices_f32(A,r,I,e)}function hR(A,r,I,e){kA().exports.partition_slices_i64(A,r,I,e)}function dR(A,r,I,e){kA().exports.partition_slices_u64(A,r,I,e)}function bR(A,r,I,e){kA().exports.partition_slices_i32(A,r,I,e)}function pR(A,r,I,e){kA().exports.partition_slices_u32(A,r,I,e)}function wR(A,r,I,e){kA().exports.partition_slices_i16(A,r,I,e)}function NR(A,r,I,e){kA().exports.partition_slices_u16(A,r,I,e)}function FR(A,r,I,e){kA().exports.partition_slices_i8(A,r,I,e)}function GR(A,r,I,e){kA().exports.partition_slices_u8(A,r,I,e)}var Uv=64,SR={float64:aR,float32:BR,int64:sR,uint64:CR,int32:ER,uint32:uR,int16:cR,uint16:DR,int8:fR,uint8:mR},Lv={float64:yR,float32:lR,int64:hR,uint64:dR,int32:bR,uint32:pR,int16:wR,uint16:NR,int8:FR,uint8:GR},mu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function RR(A,r,I,e,t,o){if(I<2)return!0;let n=Lv[o];if(n&&r[0]===0&&e>1&&r[1]===I){let C=mu[o];if(!C)return!1;let E=C.BYTES_PER_ELEMENT,u=A.length*E;J(u),U();let f=q(A);n(f,I,e,t);let m=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(m.buffer,f,A.byteLength)),!0}let g=SR[o],i=mu[o];if(!g||!i)return!1;let Q=i.BYTES_PER_ELEMENT,a=A.length*Q;J(a),U();let B=q(A);for(let C=0;C<e;C++)g(B+r[C]*Q,I,t);let s=K();return new Uint8Array(A.buffer,A.byteOffset,A.byteLength).set(new Uint8Array(s.buffer,B,A.byteLength)),!0}function kR(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Uv*Y.thresholdMultiplier)return null;let e=A.dtype,t=SR[e],o=mu[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n;J(g),U();let i=A.offset,Q=A.data.subarray(i,i+I),a=q(Q);t(a,I,r);let B=v(a,I,o);return d.fromData(B,Array.from(A.shape),e)}var Hv="AGFzbQEAAAABEAJgBH9/f38AYAV/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMfHgAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQYJAX8BQYCAwAALB78DFBBhcmdwYXJ0aXRpb25fZjY0AAAQYXJncGFydGl0aW9uX2YzMgACEGFyZ3BhcnRpdGlvbl9pNjQABBBhcmdwYXJ0aXRpb25fdTY0AAYQYXJncGFydGl0aW9uX2kzMgAIEGFyZ3BhcnRpdGlvbl91MzIAChBhcmdwYXJ0aXRpb25faTE2AAwQYXJncGFydGl0aW9uX3UxNgAOD2FyZ3BhcnRpdGlvbl9pOAAQD2FyZ3BhcnRpdGlvbl91OAASF2FyZ3BhcnRpdGlvbl9zbGljZXNfZjY0ABQXYXJncGFydGl0aW9uX3NsaWNlc19mMzIAFRdhcmdwYXJ0aXRpb25fc2xpY2VzX2k2NAAWF2FyZ3BhcnRpdGlvbl9zbGljZXNfdTY0ABcXYXJncGFydGl0aW9uX3NsaWNlc19pMzIAGBdhcmdwYXJ0aXRpb25fc2xpY2VzX3UzMgAZF2FyZ3BhcnRpdGlvbl9zbGljZXNfaTE2ABoXYXJncGFydGl0aW9uX3NsaWNlc191MTYAGxZhcmdwYXJ0aXRpb25fc2xpY2VzX2k4ABwWYXJncGFydGl0aW9uX3NsaWNlc191OAAdCopjHsMBAwF/AXsCfwJAIAJFDQBBACEEAkACQCACQQRJDQD9DAAAAAABAAAAAgAAAAMAAAAhBSACQXxxIgQhBiABIQcDQCAHIAX9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAIgBEYNAQsgASAEQQJ0aiEHA0AgByAENgIAIAdBBGohByACIARBAWoiBEcNAAsLIAJBAUYNACADIAJPDQAgACABIAJBf2ogAxCBgICAAAsLlwQDB38CfAJ/QQAhBANAIAIgBGtBAXYhBSABIARBAnQiBmoiBygCACEIAkACQAJAIAAgASACQQJ0aiIJKAIAIgpBA3RqKwMAIgsgC2INACAAIAhBA3RqKwMAIgwgDGINASALIAxjDQELIAghDQwBCyAHIAo2AgAgCSAINgIAIAcoAgAhDSAIIQoLAkACQAJAIAAgASAFQQJ0aiAGaiIIKAIAIgVBA3RqKwMAIgsgC2INACAAIA1BA3RqKwMAIgwgDGINASALIAxjDQELIAUhDQwBCyAHIAU2AgAgCCANNgIAIAkoAgAhCgsCQAJAIAAgCkEDdGorAwAiCyALYQ0AIA0hBQwBCwJAIAAgDUEDdGorAwAiDCAMYg0AIAsgDGMNACANIQUMAQsgCCAKNgIAIAkgDTYCACAIKAIAIQUgDSEKCyAIIAo2AgAgCSAFNgIAIAAgBUEDdGohBSACIQogBCENA0ACQCAAIAcoAgAiCEEDdGorAwAiCyALYg0AAkAgBSsDACIMIAxiDQAgCyAMY0UNAQsgASANQQJ0aiIGKAIAIQ4gBiAINgIAIAcgDjYCACANQQFqIQ0LIAdBBGohByAEIApBf2oiCkcNAAsgASANQQJ0aiIHKAIAIQogByAJKAIANgIAIAkgCjYCAAJAIA0gA0YNACAEIA1BAWogAyANSSIHGyIEIA1Bf2ogAiAHGyICSQ0BCwsLwwEDAX8BewJ/AkAgAkUNAEEAIQQCQAJAIAJBBEkNAP0MAAAAAAEAAAACAAAAAwAAACEFIAJBfHEiBCEGIAEhBwNAIAcgBf0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAiAERg0BCyABIARBAnRqIQcDQCAHIAQ2AgAgB0EEaiEHIAIgBEEBaiIERw0ACwsgAkEBRg0AIAMgAk8NACAAIAEgAkF/aiADEIOAgIAACwuXBAMHfwJ9An9BACEEA0AgAiAEa0EBdiEFIAEgBEECdCIGaiIHKAIAIQgCQAJAAkAgACABIAJBAnRqIgkoAgAiCkECdGoqAgAiCyALXA0AIAAgCEECdGoqAgAiDCAMXA0BIAsgDF0NAQsgCCENDAELIAcgCjYCACAJIAg2AgAgBygCACENIAghCgsCQAJAAkAgACABIAVBAnRqIAZqIggoAgAiBUECdGoqAgAiCyALXA0AIAAgDUECdGoqAgAiDCAMXA0BIAsgDF0NAQsgBSENDAELIAcgBTYCACAIIA02AgAgCSgCACEKCwJAAkAgACAKQQJ0aioCACILIAtbDQAgDSEFDAELAkAgACANQQJ0aioCACIMIAxcDQAgCyAMXQ0AIA0hBQwBCyAIIAo2AgAgCSANNgIAIAgoAgAhBSANIQoLIAggCjYCACAJIAU2AgAgACAFQQJ0aiEFIAIhCiAEIQ0DQAJAIAAgBygCACIIQQJ0aioCACILIAtcDQACQCAFKgIAIgwgDFwNACALIAxdRQ0BCyABIA1BAnRqIgYoAgAhDiAGIAg2AgAgByAONgIAIA1BAWohDQsgB0EEaiEHIAQgCkF/aiIKRw0ACyABIA1BAnRqIgcoAgAhCiAHIAkoAgA2AgAgCSAKNgIAAkAgDSADRg0AIAQgDUEBaiADIA1JIgcbIgQgDUF/aiACIAcbIgJJDQELCwvDAQMBfwF7An8CQCACRQ0AQQAhBAJAAkAgAkEESQ0A/QwAAAAAAQAAAAIAAAADAAAAIQUgAkF8cSIEIQYgASEHA0AgByAF/QsCACAHQRBqIQcgBf0MBAAAAAQAAAAEAAAABAAAAP2uASEFIAZBfGoiBg0ACyACIARGDQELIAEgBEECdGohBwNAIAcgBDYCACAHQQRqIQcgAiAEQQFqIgRHDQALCyACQQFGDQAgAyACTw0AIAAgASACQX9qIAMQhYCAgAALC9cEBQh/AX4BfwF+AX9BACEEA0AgAiAEayIFQQF2IQYCQAJAIAAgASACQQJ0aiIHKAIAIghBA3RqKQMAIAAgASAEQQJ0IglqIgooAgAiC0EDdGopAwAiDFMNACALIQ0MAQsgCiAINgIAIAcgCzYCACAAIAooAgAiDUEDdGopAwAhDCALIQgLAkACQCAAIAEgBkECdGogCWoiCygCACIGQQN0aikDACIOIAxTDQAgBiENDAELIAogBjYCACALIA02AgAgACANQQN0aikDACEOIAcoAgAhCAsCQAJAIAAgCEEDdGopAwAgDlMNACANIQYMAQsgCyAINgIAIAcgDTYCACALKAIAIQYgDSEICyALIAg2AgAgByAGNgIAIARBAWohCCAAIAZBA3RqIQsgBCENIAQhCQJAIAVBAXFFDQAgCCAEIAAgCigCAEEDdGopAwAgCykDAFMbIQ0gCCEJCwJAIAIgCEYNACACIAlrIQYgASAJQQJ0aiEIA0ACQCAAIAgoAgAiCkEDdGopAwAgCykDAFkNACABIA1BAnRqIgkoAgAhBSAJIAo2AgAgCCAFNgIAIA1BAWohDQsCQCAAIAhBBGoiCigCACIJQQN0aikDACALKQMAWQ0AIAEgDUECdGoiBSgCACEPIAUgCTYCACAKIA82AgAgDUEBaiENCyAIQQhqIQggBkF+aiIGDQALCyABIA1BAnRqIggoAgAhCyAIIAcoAgA2AgAgByALNgIAAkAgDSADRg0AIAQgDUEBaiADIA1JIggbIgQgDUF/aiACIAgbIgJJDQELCwvDAQMBfwF7An8CQCACRQ0AQQAhBAJAAkAgAkEESQ0A/QwAAAAAAQAAAAIAAAADAAAAIQUgAkF8cSIEIQYgASEHA0AgByAF/QsCACAHQRBqIQcgBf0MBAAAAAQAAAAEAAAABAAAAP2uASEFIAZBfGoiBg0ACyACIARGDQELIAEgBEECdGohBwNAIAcgBDYCACAHQQRqIQcgAiAEQQFqIgRHDQALCyACQQFGDQAgAyACTw0AIAAgASACQX9qIAMQh4CAgAALC9cEBQh/AX4BfwF+AX9BACEEA0AgAiAEayIFQQF2IQYCQAJAIAAgASACQQJ0aiIHKAIAIghBA3RqKQMAIAAgASAEQQJ0IglqIgooAgAiC0EDdGopAwAiDFQNACALIQ0MAQsgCiAINgIAIAcgCzYCACAAIAooAgAiDUEDdGopAwAhDCALIQgLAkACQCAAIAEgBkECdGogCWoiCygCACIGQQN0aikDACIOIAxUDQAgBiENDAELIAogBjYCACALIA02AgAgACANQQN0aikDACEOIAcoAgAhCAsCQAJAIAAgCEEDdGopAwAgDlQNACANIQYMAQsgCyAINgIAIAcgDTYCACALKAIAIQYgDSEICyALIAg2AgAgByAGNgIAIARBAWohCCAAIAZBA3RqIQsgBCENIAQhCQJAIAVBAXFFDQAgCCAEIAAgCigCAEEDdGopAwAgCykDAFQbIQ0gCCEJCwJAIAIgCEYNACACIAlrIQYgASAJQQJ0aiEIA0ACQCAAIAgoAgAiCkEDdGopAwAgCykDAFoNACABIA1BAnRqIgkoAgAhBSAJIAo2AgAgCCAFNgIAIA1BAWohDQsCQCAAIAhBBGoiCigCACIJQQN0aikDACALKQMAWg0AIAEgDUECdGoiBSgCACEPIAUgCTYCACAKIA82AgAgDUEBaiENCyAIQQhqIQggBkF+aiIGDQALCyABIA1BAnRqIggoAgAhCyAIIAcoAgA2AgAgByALNgIAAkAgDSADRg0AIAQgDUEBaiADIA1JIggbIgQgDUF/aiACIAgbIgJJDQELCwvDAQMBfwF7An8CQCACRQ0AQQAhBAJAAkAgAkEESQ0A/QwAAAAAAQAAAAIAAAADAAAAIQUgAkF8cSIEIQYgASEHA0AgByAF/QsCACAHQRBqIQcgBf0MBAAAAAQAAAAEAAAABAAAAP2uASEFIAZBfGoiBg0ACyACIARGDQELIAEgBEECdGohBwNAIAcgBDYCACAHQQRqIQcgAiAEQQFqIgRHDQALCyACQQFGDQAgAyACTw0AIAAgASACQX9qIAMQiYCAgAALC88EAQp/QQAhBANAIAIgBGsiBUEBdiEGAkACQCAAIAEgAkECdGoiBygCACIIQQJ0aigCACAAIAEgBEECdCIJaiIKKAIAIgtBAnRqKAIAIgxIDQAgCyENDAELIAogCDYCACAHIAs2AgAgACAKKAIAIg1BAnRqKAIAIQwgCyEICwJAAkAgACABIAZBAnRqIAlqIgsoAgAiCUECdGooAgAiBiAMSA0AIAkhDQwBCyAKIAk2AgAgCyANNgIAIAAgDUECdGooAgAhBiAHKAIAIQgLAkACQCAAIAhBAnRqKAIAIAZIDQAgDSEMDAELIAsgCDYCACAHIA02AgAgCygCACEMIA0hCAsgCyAINgIAIAcgDDYCACAEQQFqIQggACAMQQJ0aiELIAQhDSAEIQYCQCAFQQFxRQ0AIAggBCAAIAooAgBBAnRqKAIAIAsoAgBIGyENIAghBgsCQCACIAhGDQAgAiAGayEMIAEgBkECdGohCANAAkAgACAIKAIAIgpBAnRqKAIAIAsoAgBODQAgASANQQJ0aiIGKAIAIQUgBiAKNgIAIAggBTYCACANQQFqIQ0LAkAgACAIQQRqIgooAgAiBkECdGooAgAgCygCAE4NACABIA1BAnRqIgUoAgAhCSAFIAY2AgAgCiAJNgIAIA1BAWohDQsgCEEIaiEIIAxBfmoiDA0ACwsgASANQQJ0aiIIKAIAIQsgCCAHKAIANgIAIAcgCzYCAAJAIA0gA0YNACAEIA1BAWogAyANSSIIGyIEIA1Bf2ogAiAIGyICSQ0BCwsLwwEDAX8BewJ/AkAgAkUNAEEAIQQCQAJAIAJBBEkNAP0MAAAAAAEAAAACAAAAAwAAACEFIAJBfHEiBCEGIAEhBwNAIAcgBf0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAiAERg0BCyABIARBAnRqIQcDQCAHIAQ2AgAgB0EEaiEHIAIgBEEBaiIERw0ACwsgAkEBRg0AIAMgAk8NACAAIAEgAkF/aiADEIuAgIAACwvPBAEKf0EAIQQDQCACIARrIgVBAXYhBgJAAkAgACABIAJBAnRqIgcoAgAiCEECdGooAgAgACABIARBAnQiCWoiCigCACILQQJ0aigCACIMSQ0AIAshDQwBCyAKIAg2AgAgByALNgIAIAAgCigCACINQQJ0aigCACEMIAshCAsCQAJAIAAgASAGQQJ0aiAJaiILKAIAIglBAnRqKAIAIgYgDEkNACAJIQ0MAQsgCiAJNgIAIAsgDTYCACAAIA1BAnRqKAIAIQYgBygCACEICwJAAkAgACAIQQJ0aigCACAGSQ0AIA0hDAwBCyALIAg2AgAgByANNgIAIAsoAgAhDCANIQgLIAsgCDYCACAHIAw2AgAgBEEBaiEIIAAgDEECdGohCyAEIQ0gBCEGAkAgBUEBcUUNACAIIAQgACAKKAIAQQJ0aigCACALKAIASRshDSAIIQYLAkAgAiAIRg0AIAIgBmshDCABIAZBAnRqIQgDQAJAIAAgCCgCACIKQQJ0aigCACALKAIATw0AIAEgDUECdGoiBigCACEFIAYgCjYCACAIIAU2AgAgDUEBaiENCwJAIAAgCEEEaiIKKAIAIgZBAnRqKAIAIAsoAgBPDQAgASANQQJ0aiIFKAIAIQkgBSAGNgIAIAogCTYCACANQQFqIQ0LIAhBCGohCCAMQX5qIgwNAAsLIAEgDUECdGoiCCgCACELIAggBygCADYCACAHIAs2AgACQCANIANGDQAgBCANQQFqIAMgDUkiCBsiBCANQX9qIAIgCBsiAkkNAQsLC8MBAwF/AXsCfwJAIAJFDQBBACEEAkACQCACQQRJDQD9DAAAAAABAAAAAgAAAAMAAAAhBSACQXxxIgQhBiABIQcDQCAHIAX9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAIgBEYNAQsgASAEQQJ0aiEHA0AgByAENgIAIAdBBGohByACIARBAWoiBEcNAAsLIAJBAUYNACADIAJPDQAgACABIAJBf2ogAxCNgICAAAsL0QQBCn9BACEEA0AgAiAEayIFQQF2IQYCQAJAIAAgASACQQJ0aiIHKAIAIghBAXRqLgEAIAAgASAEQQJ0IglqIgooAgAiC0EBdGouAQAiDEgNACALIQ0MAQsgCiAINgIAIAcgCzYCACAAIAooAgAiDUEBdGovAQAhDCALIQgLAkACQCAAIAEgBkECdGogCWoiCygCACIJQQF0ai4BACIGIAzBSA0AIAkhDQwBCyAKIAk2AgAgCyANNgIAIAAgDUEBdGovAQAhBiAHKAIAIQgLAkACQCAAIAhBAXRqLgEAIAbBSA0AIA0hDAwBCyALIAg2AgAgByANNgIAIAsoAgAhDCANIQgLIAsgCDYCACAHIAw2AgAgBEEBaiEIIAAgDEEBdGohCyAEIQ0gBCEGAkAgBUEBcUUNACAIIAQgACAKKAIAQQF0ai4BACALLgEASBshDSAIIQYLAkAgAiAIRg0AIAIgBmshDCABIAZBAnRqIQgDQAJAIAAgCCgCACIKQQF0ai4BACALLgEATg0AIAEgDUECdGoiBigCACEFIAYgCjYCACAIIAU2AgAgDUEBaiENCwJAIAAgCEEEaiIKKAIAIgZBAXRqLgEAIAsuAQBODQAgASANQQJ0aiIFKAIAIQkgBSAGNgIAIAogCTYCACANQQFqIQ0LIAhBCGohCCAMQX5qIgwNAAsLIAEgDUECdGoiCCgCACELIAggBygCADYCACAHIAs2AgACQCANIANGDQAgBCANQQFqIAMgDUkiCBsiBCANQX9qIAIgCBsiAkkNAQsLC8MBAwF/AXsCfwJAIAJFDQBBACEEAkACQCACQQRJDQD9DAAAAAABAAAAAgAAAAMAAAAhBSACQXxxIgQhBiABIQcDQCAHIAX9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAIgBEYNAQsgASAEQQJ0aiEHA0AgByAENgIAIAdBBGohByACIARBAWoiBEcNAAsLIAJBAUYNACADIAJPDQAgACABIAJBf2ogAxCPgICAAAsL2QQBCn9BACEEA0AgAiAEayIFQQF2IQYCQAJAIAAgASACQQJ0aiIHKAIAIghBAXRqLwEAIAAgASAEQQJ0IglqIgooAgAiC0EBdGovAQAiDEkNACALIQ0MAQsgCiAINgIAIAcgCzYCACAAIAooAgAiDUEBdGovAQAhDCALIQgLAkACQCAAIAEgBkECdGogCWoiCygCACIJQQF0ai8BACIGIAxB//8DcUkNACAJIQ0MAQsgCiAJNgIAIAsgDTYCACAAIA1BAXRqLwEAIQYgBygCACEICwJAAkAgACAIQQF0ai8BACAGQf//A3FJDQAgDSEMDAELIAsgCDYCACAHIA02AgAgCygCACEMIA0hCAsgCyAINgIAIAcgDDYCACAEQQFqIQggACAMQQF0aiELIAQhDSAEIQYCQCAFQQFxRQ0AIAggBCAAIAooAgBBAXRqLwEAIAsvAQBJGyENIAghBgsCQCACIAhGDQAgAiAGayEMIAEgBkECdGohCANAAkAgACAIKAIAIgpBAXRqLwEAIAsvAQBPDQAgASANQQJ0aiIGKAIAIQUgBiAKNgIAIAggBTYCACANQQFqIQ0LAkAgACAIQQRqIgooAgAiBkEBdGovAQAgCy8BAE8NACABIA1BAnRqIgUoAgAhCSAFIAY2AgAgCiAJNgIAIA1BAWohDQsgCEEIaiEIIAxBfmoiDA0ACwsgASANQQJ0aiIIKAIAIQsgCCAHKAIANgIAIAcgCzYCAAJAIA0gA0YNACAEIA1BAWogAyANSSIIGyIEIA1Bf2ogAiAIGyICSQ0BCwsLwwEDAX8BewJ/AkAgAkUNAEEAIQQCQAJAIAJBBEkNAP0MAAAAAAEAAAACAAAAAwAAACEFIAJBfHEiBCEGIAEhBwNAIAcgBf0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAiAERg0BCyABIARBAnRqIQcDQCAHIAQ2AgAgB0EEaiEHIAIgBEEBaiIERw0ACwsgAkEBRg0AIAMgAk8NACAAIAEgAkF/aiADEJGAgIAACwuzBAEKf0EAIQQDQCACIARrIgVBAXYhBgJAAkAgACABIAJBAnRqIgcoAgAiCGosAAAgACABIARBAnQiCWoiCigCACILaiwAACIMSA0AIAshDQwBCyAKIAg2AgAgByALNgIAIAAgCigCACINai0AACEMIAshCAsCQAJAIAAgASAGQQJ0aiAJaiILKAIAIglqLAAAIgYgDMBIDQAgCSENDAELIAogCTYCACALIA02AgAgACANai0AACEGIAcoAgAhCAsCQAJAIAAgCGosAAAgBsBIDQAgDSEMDAELIAsgCDYCACAHIA02AgAgCygCACEMIA0hCAsgCyAINgIAIAcgDDYCACAEQQFqIQggACAMaiELIAQhDSAEIQYCQCAFQQFxRQ0AIAggBCAAIAooAgBqLAAAIAssAABIGyENIAghBgsCQCACIAhGDQAgAiAGayEMIAEgBkECdGohCANAAkAgACAIKAIAIgpqLAAAIAssAABODQAgASANQQJ0aiIGKAIAIQUgBiAKNgIAIAggBTYCACANQQFqIQ0LAkAgACAIQQRqIgooAgAiBmosAAAgCywAAE4NACABIA1BAnRqIgUoAgAhCSAFIAY2AgAgCiAJNgIAIA1BAWohDQsgCEEIaiEIIAxBfmoiDA0ACwsgASANQQJ0aiIIKAIAIQsgCCAHKAIANgIAIAcgCzYCAAJAIA0gA0YNACAEIA1BAWogAyANSSIIGyIEIA1Bf2ogAiAIGyICSQ0BCwsLwwEDAX8BewJ/AkAgAkUNAEEAIQQCQAJAIAJBBEkNAP0MAAAAAAEAAAACAAAAAwAAACEFIAJBfHEiBCEGIAEhBwNAIAcgBf0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAiAERg0BCyABIARBAnRqIQcDQCAHIAQ2AgAgB0EEaiEHIAIgBEEBaiIERw0ACwsgAkEBRg0AIAMgAk8NACAAIAEgAkF/aiADEJOAgIAACwu5BAEKf0EAIQQDQCACIARrIgVBAXYhBgJAAkAgACABIAJBAnRqIgcoAgAiCGotAAAgACABIARBAnQiCWoiCigCACILai0AACIMSQ0AIAshDQwBCyAKIAg2AgAgByALNgIAIAAgCigCACINai0AACEMIAshCAsCQAJAIAAgASAGQQJ0aiAJaiILKAIAIglqLQAAIgYgDEH/AXFJDQAgCSENDAELIAogCTYCACALIA02AgAgACANai0AACEGIAcoAgAhCAsCQAJAIAAgCGotAAAgBkH/AXFJDQAgDSEMDAELIAsgCDYCACAHIA02AgAgCygCACEMIA0hCAsgCyAINgIAIAcgDDYCACAEQQFqIQggACAMaiELIAQhDSAEIQYCQCAFQQFxRQ0AIAggBCAAIAooAgBqLQAAIAstAABJGyENIAghBgsCQCACIAhGDQAgAiAGayEMIAEgBkECdGohCANAAkAgACAIKAIAIgpqLQAAIAstAABPDQAgASANQQJ0aiIGKAIAIQUgBiAKNgIAIAggBTYCACANQQFqIQ0LAkAgACAIQQRqIgooAgAiBmotAAAgCy0AAE8NACABIA1BAnRqIgUoAgAhCSAFIAY2AgAgCiAJNgIAIA1BAWohDQsgCEEIaiEIIAxBfmoiDA0ACwsgASANQQJ0aiIIKAIAIQsgCCAHKAIANgIAIAcgCzYCAAJAIA0gA0YNACAEIA1BAWogAyANSSIIGyIEIA1Bf2ogAiAIGyICSQ0BCwsL6wMECX8BewF/AXsCQAJAIAJBAkkNACAEIAJPDQAgA0UNASACQQJ0IQUgAkF8cSEGIAJBf2ohB0EAIQggAkEESSEJIAEhCgNAIAEgCCACbCILQQJ0aiEMQQAhDQJAAkAgCQ0A/QwAAAAAAQAAAAIAAAADAAAAIQ4gBiEPIAohDQNAIA0gDv0LAgAgDUEQaiENIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAPQXxqIg8NAAsgBiENIAIgBkYNAQsgCiANQQJ0aiEPA0AgDyANNgIAIA9BBGohDyACIA1BAWoiDUcNAAsLIAAgC0EDdGogDCAHIAQQgYCAgAAgCiAFaiEKIAhBAWoiCCADRw0ADAILCyADIAJsIghFDQBBACENAkAgCEEESQ0AIAL9ESEQ/QwAAAAAAQAAAAIAAAADAAAAIQ4gCEF8cSINIQogASEPA0AgDyAO/RsAIBD9GwBw/REgDv0bASAQ/RsBcP0cASAO/RsCIBD9GwJw/RwCIA79GwMgEP0bA3D9HAP9CwIAIA9BEGohDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gCkF8aiIKDQALIAggDUYNAQsgASANQQJ0aiEPA0AgDyANIAJwNgIAIA9BBGohDyAIIA1BAWoiDUcNAAsLC+gDBAl/AXsBfwF7AkACQCACQQJJDQAgBCACTw0AIANFDQEgAkECdCEFIAJBfHEhBiACQX9qIQdBACEIIAJBBEkhCSABIQoDQCABIAggAmxBAnQiC2ohDEEAIQ0CQAJAIAkNAP0MAAAAAAEAAAACAAAAAwAAACEOIAYhDyAKIQ0DQCANIA79CwIAIA1BEGohDSAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gD0F8aiIPDQALIAYhDSACIAZGDQELIAogDUECdGohDwNAIA8gDTYCACAPQQRqIQ8gAiANQQFqIg1HDQALCyAAIAtqIAwgByAEEIOAgIAAIAogBWohCiAIQQFqIgggA0cNAAwCCwsgAyACbCIIRQ0AQQAhDQJAIAhBBEkNACAC/REhEP0MAAAAAAEAAAACAAAAAwAAACEOIAhBfHEiDSEKIAEhDwNAIA8gDv0bACAQ/RsAcP0RIA79GwEgEP0bAXD9HAEgDv0bAiAQ/RsCcP0cAiAO/RsDIBD9GwNw/RwD/QsCACAPQRBqIQ8gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIApBfGoiCg0ACyAIIA1GDQELIAEgDUECdGohDwNAIA8gDSACcDYCACAPQQRqIQ8gCCANQQFqIg1HDQALCwvrAwQJfwF7AX8BewJAAkAgAkECSQ0AIAQgAk8NACADRQ0BIAJBAnQhBSACQXxxIQYgAkF/aiEHQQAhCCACQQRJIQkgASEKA0AgASAIIAJsIgtBAnRqIQxBACENAkACQCAJDQD9DAAAAAABAAAAAgAAAAMAAAAhDiAGIQ8gCiENA0AgDSAO/QsCACANQRBqIQ0gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIA9BfGoiDw0ACyAGIQ0gAiAGRg0BCyAKIA1BAnRqIQ8DQCAPIA02AgAgD0EEaiEPIAIgDUEBaiINRw0ACwsgACALQQN0aiAMIAcgBBCFgICAACAKIAVqIQogCEEBaiIIIANHDQAMAgsLIAMgAmwiCEUNAEEAIQ0CQCAIQQRJDQAgAv0RIRD9DAAAAAABAAAAAgAAAAMAAAAhDiAIQXxxIg0hCiABIQ8DQCAPIA79GwAgEP0bAHD9ESAO/RsBIBD9GwFw/RwBIA79GwIgEP0bAnD9HAIgDv0bAyAQ/RsDcP0cA/0LAgAgD0EQaiEPIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAKQXxqIgoNAAsgCCANRg0BCyABIA1BAnRqIQ8DQCAPIA0gAnA2AgAgD0EEaiEPIAggDUEBaiINRw0ACwsL6wMECX8BewF/AXsCQAJAIAJBAkkNACAEIAJPDQAgA0UNASACQQJ0IQUgAkF8cSEGIAJBf2ohB0EAIQggAkEESSEJIAEhCgNAIAEgCCACbCILQQJ0aiEMQQAhDQJAAkAgCQ0A/QwAAAAAAQAAAAIAAAADAAAAIQ4gBiEPIAohDQNAIA0gDv0LAgAgDUEQaiENIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAPQXxqIg8NAAsgBiENIAIgBkYNAQsgCiANQQJ0aiEPA0AgDyANNgIAIA9BBGohDyACIA1BAWoiDUcNAAsLIAAgC0EDdGogDCAHIAQQh4CAgAAgCiAFaiEKIAhBAWoiCCADRw0ADAILCyADIAJsIghFDQBBACENAkAgCEEESQ0AIAL9ESEQ/QwAAAAAAQAAAAIAAAADAAAAIQ4gCEF8cSINIQogASEPA0AgDyAO/RsAIBD9GwBw/REgDv0bASAQ/RsBcP0cASAO/RsCIBD9GwJw/RwCIA79GwMgEP0bA3D9HAP9CwIAIA9BEGohDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gCkF8aiIKDQALIAggDUYNAQsgASANQQJ0aiEPA0AgDyANIAJwNgIAIA9BBGohDyAIIA1BAWoiDUcNAAsLC+gDBAl/AXsBfwF7AkACQCACQQJJDQAgBCACTw0AIANFDQEgAkECdCEFIAJBfHEhBiACQX9qIQdBACEIIAJBBEkhCSABIQoDQCABIAggAmxBAnQiC2ohDEEAIQ0CQAJAIAkNAP0MAAAAAAEAAAACAAAAAwAAACEOIAYhDyAKIQ0DQCANIA79CwIAIA1BEGohDSAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gD0F8aiIPDQALIAYhDSACIAZGDQELIAogDUECdGohDwNAIA8gDTYCACAPQQRqIQ8gAiANQQFqIg1HDQALCyAAIAtqIAwgByAEEImAgIAAIAogBWohCiAIQQFqIgggA0cNAAwCCwsgAyACbCIIRQ0AQQAhDQJAIAhBBEkNACAC/REhEP0MAAAAAAEAAAACAAAAAwAAACEOIAhBfHEiDSEKIAEhDwNAIA8gDv0bACAQ/RsAcP0RIA79GwEgEP0bAXD9HAEgDv0bAiAQ/RsCcP0cAiAO/RsDIBD9GwNw/RwD/QsCACAPQRBqIQ8gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIApBfGoiCg0ACyAIIA1GDQELIAEgDUECdGohDwNAIA8gDSACcDYCACAPQQRqIQ8gCCANQQFqIg1HDQALCwvoAwQJfwF7AX8BewJAAkAgAkECSQ0AIAQgAk8NACADRQ0BIAJBAnQhBSACQXxxIQYgAkF/aiEHQQAhCCACQQRJIQkgASEKA0AgASAIIAJsQQJ0IgtqIQxBACENAkACQCAJDQD9DAAAAAABAAAAAgAAAAMAAAAhDiAGIQ8gCiENA0AgDSAO/QsCACANQRBqIQ0gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIA9BfGoiDw0ACyAGIQ0gAiAGRg0BCyAKIA1BAnRqIQ8DQCAPIA02AgAgD0EEaiEPIAIgDUEBaiINRw0ACwsgACALaiAMIAcgBBCLgICAACAKIAVqIQogCEEBaiIIIANHDQAMAgsLIAMgAmwiCEUNAEEAIQ0CQCAIQQRJDQAgAv0RIRD9DAAAAAABAAAAAgAAAAMAAAAhDiAIQXxxIg0hCiABIQ8DQCAPIA79GwAgEP0bAHD9ESAO/RsBIBD9GwFw/RwBIA79GwIgEP0bAnD9HAIgDv0bAyAQ/RsDcP0cA/0LAgAgD0EQaiEPIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAKQXxqIgoNAAsgCCANRg0BCyABIA1BAnRqIQ8DQCAPIA0gAnA2AgAgD0EEaiEPIAggDUEBaiINRw0ACwsL6wMECX8BewF/AXsCQAJAIAJBAkkNACAEIAJPDQAgA0UNASACQQJ0IQUgAkF8cSEGIAJBf2ohB0EAIQggAkEESSEJIAEhCgNAIAEgCCACbCILQQJ0aiEMQQAhDQJAAkAgCQ0A/QwAAAAAAQAAAAIAAAADAAAAIQ4gBiEPIAohDQNAIA0gDv0LAgAgDUEQaiENIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAPQXxqIg8NAAsgBiENIAIgBkYNAQsgCiANQQJ0aiEPA0AgDyANNgIAIA9BBGohDyACIA1BAWoiDUcNAAsLIAAgC0EBdGogDCAHIAQQjYCAgAAgCiAFaiEKIAhBAWoiCCADRw0ADAILCyADIAJsIghFDQBBACENAkAgCEEESQ0AIAL9ESEQ/QwAAAAAAQAAAAIAAAADAAAAIQ4gCEF8cSINIQogASEPA0AgDyAO/RsAIBD9GwBw/REgDv0bASAQ/RsBcP0cASAO/RsCIBD9GwJw/RwCIA79GwMgEP0bA3D9HAP9CwIAIA9BEGohDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gCkF8aiIKDQALIAggDUYNAQsgASANQQJ0aiEPA0AgDyANIAJwNgIAIA9BBGohDyAIIA1BAWoiDUcNAAsLC+sDBAl/AXsBfwF7AkACQCACQQJJDQAgBCACTw0AIANFDQEgAkECdCEFIAJBfHEhBiACQX9qIQdBACEIIAJBBEkhCSABIQoDQCABIAggAmwiC0ECdGohDEEAIQ0CQAJAIAkNAP0MAAAAAAEAAAACAAAAAwAAACEOIAYhDyAKIQ0DQCANIA79CwIAIA1BEGohDSAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gD0F8aiIPDQALIAYhDSACIAZGDQELIAogDUECdGohDwNAIA8gDTYCACAPQQRqIQ8gAiANQQFqIg1HDQALCyAAIAtBAXRqIAwgByAEEI+AgIAAIAogBWohCiAIQQFqIgggA0cNAAwCCwsgAyACbCIIRQ0AQQAhDQJAIAhBBEkNACAC/REhEP0MAAAAAAEAAAACAAAAAwAAACEOIAhBfHEiDSEKIAEhDwNAIA8gDv0bACAQ/RsAcP0RIA79GwEgEP0bAXD9HAEgDv0bAiAQ/RsCcP0cAiAO/RsDIBD9GwNw/RwD/QsCACAPQRBqIQ8gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIApBfGoiCg0ACyAIIA1GDQELIAEgDUECdGohDwNAIA8gDSACcDYCACAPQQRqIQ8gCCANQQFqIg1HDQALCwvoAwQJfwF7AX8BewJAAkAgAkECSQ0AIAQgAk8NACADRQ0BIAJBAnQhBSACQXxxIQYgAkF/aiEHQQAhCCACQQRJIQkgASEKA0AgASAIIAJsIgtBAnRqIQxBACENAkACQCAJDQD9DAAAAAABAAAAAgAAAAMAAAAhDiAGIQ8gCiENA0AgDSAO/QsCACANQRBqIQ0gDv0MBAAAAAQAAAAEAAAABAAAAP2uASEOIA9BfGoiDw0ACyAGIQ0gAiAGRg0BCyAKIA1BAnRqIQ8DQCAPIA02AgAgD0EEaiEPIAIgDUEBaiINRw0ACwsgACALaiAMIAcgBBCRgICAACAKIAVqIQogCEEBaiIIIANHDQAMAgsLIAMgAmwiCEUNAEEAIQ0CQCAIQQRJDQAgAv0RIRD9DAAAAAABAAAAAgAAAAMAAAAhDiAIQXxxIg0hCiABIQ8DQCAPIA79GwAgEP0bAHD9ESAO/RsBIBD9GwFw/RwBIA79GwIgEP0bAnD9HAIgDv0bAyAQ/RsDcP0cA/0LAgAgD0EQaiEPIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAKQXxqIgoNAAsgCCANRg0BCyABIA1BAnRqIQ8DQCAPIA0gAnA2AgAgD0EEaiEPIAggDUEBaiINRw0ACwsL6AMECX8BewF/AXsCQAJAIAJBAkkNACAEIAJPDQAgA0UNASACQQJ0IQUgAkF8cSEGIAJBf2ohB0EAIQggAkEESSEJIAEhCgNAIAEgCCACbCILQQJ0aiEMQQAhDQJAAkAgCQ0A/QwAAAAAAQAAAAIAAAADAAAAIQ4gBiEPIAohDQNAIA0gDv0LAgAgDUEQaiENIA79DAQAAAAEAAAABAAAAAQAAAD9rgEhDiAPQXxqIg8NAAsgBiENIAIgBkYNAQsgCiANQQJ0aiEPA0AgDyANNgIAIA9BBGohDyACIA1BAWoiDUcNAAsLIAAgC2ogDCAHIAQQk4CAgAAgCiAFaiEKIAhBAWoiCCADRw0ADAILCyADIAJsIghFDQBBACENAkAgCEEESQ0AIAL9ESEQ/QwAAAAAAQAAAAIAAAADAAAAIQ4gCEF8cSINIQogASEPA0AgDyAO/RsAIBD9GwBw/REgDv0bASAQ/RsBcP0cASAO/RsCIBD9GwJw/RwCIA79GwMgEP0bA3D9HAP9CwIAIA9BEGohDyAO/QwEAAAABAAAAAQAAAAEAAAA/a4BIQ4gCkF8aiIKDQALIAggDUYNAQsgASANQQJ0aiEPA0AgDyANIAJwNgIAIA9BBGohDyAIIA1BAWoiDUcNAAsLCw==",Mn=null;function qA(){if(Mn)return Mn;let A=atob(Hv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Mn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Mn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Mn}function qR(A,r,I,e){qA().exports.argpartition_f64(A,r,I,e)}function MR(A,r,I,e){qA().exports.argpartition_f32(A,r,I,e)}function xR(A,r,I,e){qA().exports.argpartition_i64(A,r,I,e)}function JR(A,r,I,e){qA().exports.argpartition_u64(A,r,I,e)}function UR(A,r,I,e){qA().exports.argpartition_i32(A,r,I,e)}function LR(A,r,I,e){qA().exports.argpartition_u32(A,r,I,e)}function HR(A,r,I,e){qA().exports.argpartition_i16(A,r,I,e)}function _R(A,r,I,e){qA().exports.argpartition_u16(A,r,I,e)}function YR(A,r,I,e){qA().exports.argpartition_i8(A,r,I,e)}function vR(A,r,I,e){qA().exports.argpartition_u8(A,r,I,e)}function XR(A,r,I,e,t){qA().exports.argpartition_slices_f64(A,r,I,e,t)}function TR(A,r,I,e,t){qA().exports.argpartition_slices_f32(A,r,I,e,t)}function PR(A,r,I,e,t){qA().exports.argpartition_slices_i64(A,r,I,e,t)}function KR(A,r,I,e,t){qA().exports.argpartition_slices_u64(A,r,I,e,t)}function VR(A,r,I,e,t){qA().exports.argpartition_slices_i32(A,r,I,e,t)}function WR(A,r,I,e,t){qA().exports.argpartition_slices_u32(A,r,I,e,t)}function OR(A,r,I,e,t){qA().exports.argpartition_slices_i16(A,r,I,e,t)}function ZR(A,r,I,e,t){qA().exports.argpartition_slices_u16(A,r,I,e,t)}function zR(A,r,I,e,t){qA().exports.argpartition_slices_i8(A,r,I,e,t)}function jR(A,r,I,e,t){qA().exports.argpartition_slices_u8(A,r,I,e,t)}var _v=64,$R={float64:qR,float32:MR,int64:xR,uint64:JR,int32:UR,uint32:LR,int16:HR,uint16:_R,int8:YR,uint8:vR},Yv={float64:XR,float32:TR,int64:PR,uint64:KR,int32:VR,uint32:WR,int16:OR,uint16:ZR,int8:zR,uint8:jR},yu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Ak(A,r,I,e,t,o,n,g){if(t<2)return!1;let i=Yv[g];if(i&&I[0]===0&&o>1&&I[1]===t&&e[0]===0&&e[1]===t){let m=yu[g];if(!m)return!1;let c=m.BYTES_PER_ELEMENT,D=A.length*c,y=r.length*4;J(D+y),U();let l=q(A),h=_(y);i(l,h,t,o,n);let b=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(b.buffer,h,r.byteLength)),!0}let Q=$R[g],a=yu[g];if(!Q||!a)return!1;let B=a.BYTES_PER_ELEMENT,s=A.length*B,C=r.length*4;J(s+C),U();let E=q(A),u=_(C);for(let m=0;m<o;m++)Q(E+I[m]*B,u+e[m]*4,t,n);let f=K();return new Uint8Array(r.buffer,r.byteOffset,r.byteLength).set(new Uint8Array(f.buffer,u,r.byteLength)),!0}function rk(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<_v*Y.thresholdMultiplier)return null;let e=A.dtype,t=$R[e],o=yu[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*4;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,Int32Array);return d.fromData(C,Array.from(A.shape),"int32")}var vv="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",xn=null;function MA(){if(xn)return xn;let A=atob(vv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);xn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=xn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),xn}function Ik(A,r,I,e,t){MA().exports.searchsorted_left_f64(A,r,I,e,t)}function ek(A,r,I,e,t){MA().exports.searchsorted_left_f32(A,r,I,e,t)}function tk(A,r,I,e,t){MA().exports.searchsorted_left_i64(A,r,I,e,t)}function ok(A,r,I,e,t){MA().exports.searchsorted_left_u64(A,r,I,e,t)}function nk(A,r,I,e,t){MA().exports.searchsorted_left_i32(A,r,I,e,t)}function ik(A,r,I,e,t){MA().exports.searchsorted_left_u32(A,r,I,e,t)}function gk(A,r,I,e,t){MA().exports.searchsorted_left_i16(A,r,I,e,t)}function Qk(A,r,I,e,t){MA().exports.searchsorted_left_u16(A,r,I,e,t)}function ak(A,r,I,e,t){MA().exports.searchsorted_left_i8(A,r,I,e,t)}function Bk(A,r,I,e,t){MA().exports.searchsorted_left_u8(A,r,I,e,t)}function sk(A,r,I,e,t){MA().exports.searchsorted_right_f64(A,r,I,e,t)}function Ck(A,r,I,e,t){MA().exports.searchsorted_right_f32(A,r,I,e,t)}function Ek(A,r,I,e,t){MA().exports.searchsorted_right_i64(A,r,I,e,t)}function uk(A,r,I,e,t){MA().exports.searchsorted_right_u64(A,r,I,e,t)}function ck(A,r,I,e,t){MA().exports.searchsorted_right_i32(A,r,I,e,t)}function Dk(A,r,I,e,t){MA().exports.searchsorted_right_u32(A,r,I,e,t)}function fk(A,r,I,e,t){MA().exports.searchsorted_right_i16(A,r,I,e,t)}function mk(A,r,I,e,t){MA().exports.searchsorted_right_u16(A,r,I,e,t)}function yk(A,r,I,e,t){MA().exports.searchsorted_right_i8(A,r,I,e,t)}function lk(A,r,I,e,t){MA().exports.searchsorted_right_u8(A,r,I,e,t)}var Xv=64,Tv={float64:Ik,float32:ek,int64:tk,uint64:ok,int32:nk,uint32:ik,int16:gk,uint16:Qk,int8:ak,uint8:Bk},Pv={float64:sk,float32:Ck,int64:Ek,uint64:uk,int32:ck,uint32:Dk,int16:fk,uint16:mk,int8:yk,uint8:lk},Kv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function hk(A,r,I){if(!A.isCContiguous||!r.isCContiguous)return null;let e=A.size,t=r.size;if(t<Xv*Y.thresholdMultiplier)return null;let o=A.dtype,g=(I==="left"?Tv:Pv)[o],i=Kv[o];if(!g||!i||r.dtype!==o)return null;let Q=i.BYTES_PER_ELEMENT,a=e*Q,B=t*Q,s=t*4;J(a+B+s),U();let C=A.offset,E=A.data.subarray(C,C+e),u=q(E),f=r.offset,m=r.data.subarray(f,f+t),c=q(m),D=_(s);g(u,e,c,D,t);let y=v(D,t,Int32Array);return d.fromData(y,Array.from(r.shape),"int32")}var Vv="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",Jn=null;function Gr(){if(Jn)return Jn;let A=atob(Vv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Jn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Jn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Jn}function dk(A,r,I,e){Gr().exports.lexsort_f64(A,r,I,e)}function bk(A,r,I,e){Gr().exports.lexsort_f32(A,r,I,e)}function pk(A,r,I,e){Gr().exports.lexsort_i64(A,r,I,e)}function wk(A,r,I,e){Gr().exports.lexsort_u64(A,r,I,e)}function Nk(A,r,I,e){Gr().exports.lexsort_i32(A,r,I,e)}function Fk(A,r,I,e){Gr().exports.lexsort_u32(A,r,I,e)}function Gk(A,r,I,e){Gr().exports.lexsort_i16(A,r,I,e)}function Sk(A,r,I,e){Gr().exports.lexsort_u16(A,r,I,e)}function Rk(A,r,I,e){Gr().exports.lexsort_i8(A,r,I,e)}function kk(A,r,I,e){Gr().exports.lexsort_u8(A,r,I,e)}var Wv=64,Ov={float64:dk,float32:bk,int64:pk,uint64:wk,int32:Nk,uint32:Fk,int16:Gk,uint16:Sk,int8:Rk,uint8:kk},Zv={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function qk(A){if(A.length===0)return null;let r=A[0].size;if(r<Wv*Y.thresholdMultiplier)return null;let I=A[0].dtype;for(let C of A)if(C.dtype!==I||!C.isCContiguous||C.ndim!==1||C.size!==r)return null;let e=Ov[I],t=Zv[I];if(!e||!t)return null;let o=A.length,n=t.BYTES_PER_ELEMENT,g=o*r*n,i=r*4;J(g+i),U();let Q=_(g),a=K();for(let C=0;C<o;C++){let E=A[C],u=E.offset,f=E.data.subarray(u,u+r),m=Q+C*r*n;new Uint8Array(a.buffer,m,r*n).set(new Uint8Array(f.buffer,f.byteOffset,f.byteLength))}let B=_(i);e(Q,o,r,B);let s=v(B,r,Int32Array);return d.fromData(s,[r],"int32")}var zv="AGFzbQEAAAABFwNgBH9/f38Bf2AFf39/f38AYAJ/fwF/Ag8BA2VudgZtZW1vcnkCABADIB8AAAAAAAABAQEBAQECAQEBAQEBAQEAAAAAAQEBAQEBBgkBfwFBgIDAAAsH2wMfC2V4dHJhY3RfZjY0AAALZXh0cmFjdF9mMzIAAQtleHRyYWN0X2k2NAACC2V4dHJhY3RfaTMyAAMLZXh0cmFjdF9pMTYABApleHRyYWN0X2k4AAURdGFrZV9heGlzMF8yZF9mNjQABhF0YWtlX2F4aXMwXzJkX2YzMgAHEXRha2VfYXhpczBfMmRfaTY0AAgRdGFrZV9heGlzMF8yZF9pMzIACRF0YWtlX2F4aXMwXzJkX2kxNgAKEHRha2VfYXhpczBfMmRfaTgACxFjb3VudF9ub256ZXJvX2kzMgAMCXdoZXJlX2Y2NAANCXdoZXJlX2YzMgAOCXdoZXJlX2k2NAAPCXdoZXJlX2kzMgAQCXdoZXJlX2kxNgARCHdoZXJlX2k4ABIJd2hlcmVfdTMyABMJd2hlcmVfdTY0ABQLZXh0cmFjdF91NjQAFQtleHRyYWN0X3UzMgAWC2V4dHJhY3RfdTE2ABcKZXh0cmFjdF91OAAYCHdoZXJlX3U4ABkJd2hlcmVfdTE2ABoRdGFrZV9heGlzMF8yZF91NjQAGxF0YWtlX2F4aXMwXzJkX3UzMgAcEXRha2VfYXhpczBfMmRfdTE2AB0QdGFrZV9heGlzMF8yZF91OAAeCv0pH98BAQV/AkAgAw0AQQAPCyADQQFxIQQCQAJAIANBAUcNAEEAIQVBACEGDAELIANBfnEhB0EAIQUgASEIIAAhA0EAIQYDQAJAIAMoAgBFDQAgAiAGQQN0aiAIKwMAOQMAIAZBAWohBgsCQCADQQRqKAIARQ0AIAIgBkEDdGogCEEIaisDADkDACAGQQFqIQYLIAhBEGohCCADQQhqIQMgByAFQQJqIgVHDQALCwJAIARFDQAgACAFQQJ0aigCAEUNACACIAZBA3RqIAEgBUEDdGorAwA5AwAgBkEBaiEGCyAGC94BAQV/AkAgAw0AQQAPCyADQQFxIQQCQAJAIANBAUcNAEEAIQVBACEGDAELIANBfnEhB0EAIQUgASEIIAAhA0EAIQYDQAJAIAMoAgBFDQAgAiAGQQJ0aiAIKgIAOAIAIAZBAWohBgsCQCADQQRqKAIARQ0AIAIgBkECdGogCEEEaioCADgCACAGQQFqIQYLIAhBCGohCCADQQhqIQMgByAFQQJqIgVHDQALCwJAIARFDQAgACAFQQJ0IgNqKAIARQ0AIAIgBkECdGogASADaioCADgCACAGQQFqIQYLIAYL3wEBBX8CQCADDQBBAA8LIANBAXEhBAJAAkAgA0EBRw0AQQAhBUEAIQYMAQsgA0F+cSEHQQAhBSABIQggACEDQQAhBgNAAkAgAygCAEUNACACIAZBA3RqIAgpAwA3AwAgBkEBaiEGCwJAIANBBGooAgBFDQAgAiAGQQN0aiAIQQhqKQMANwMAIAZBAWohBgsgCEEQaiEIIANBCGohAyAHIAVBAmoiBUcNAAsLAkAgBEUNACAAIAVBAnRqKAIARQ0AIAIgBkEDdGogASAFQQN0aikDADcDACAGQQFqIQYLIAYL3gEBBX8CQCADDQBBAA8LIANBAXEhBAJAAkAgA0EBRw0AQQAhBUEAIQYMAQsgA0F+cSEHQQAhBSABIQggACEDQQAhBgNAAkAgAygCAEUNACACIAZBAnRqIAgoAgA2AgAgBkEBaiEGCwJAIANBBGooAgBFDQAgAiAGQQJ0aiAIQQRqKAIANgIAIAZBAWohBgsgCEEIaiEIIANBCGohAyAHIAVBAmoiBUcNAAsLAkAgBEUNACAAIAVBAnQiA2ooAgBFDQAgAiAGQQJ0aiABIANqKAIANgIAIAZBAWohBgsgBgvfAQEFfwJAIAMNAEEADwsgA0EBcSEEAkACQCADQQFHDQBBACEFQQAhBgwBCyADQX5xIQdBACEFIAEhCCAAIQNBACEGA0ACQCADKAIARQ0AIAIgBkEBdGogCC8BADsBACAGQQFqIQYLAkAgA0EEaigCAEUNACACIAZBAXRqIAhBAmovAQA7AQAgBkEBaiEGCyAIQQRqIQggA0EIaiEDIAcgBUECaiIFRw0ACwsCQCAERQ0AIAAgBUECdGooAgBFDQAgAiAGQQF0aiABIAVBAXRqLwEAOwEAIAZBAWohBgsgBgvOAQEEfwJAIAMNAEEADwsgA0EBcSEEAkACQCADQQFHDQBBACEFQQAhBgwBCyADQX5xIQdBACEFIAAhA0EAIQYDQAJAIAMoAgBFDQAgAiAGaiABIAVqLQAAOgAAIAZBAWohBgsCQCADQQRqKAIARQ0AIAIgBmogASAFakEBai0AADoAACAGQQFqIQYLIANBCGohAyAHIAVBAmoiBUcNAAsLAkAgBEUNACAAIAVBAnRqKAIARQ0AIAIgBmogASAFai0AADoAACAGQQFqIQYLIAYLzQEBBH8CQCAEIANsIgVFDQAgBUEBcSEGQQAhAwJAIAVBAUYNACAFQX5xIQdBACEDIAIhBSABIQgDQCAFIAAgCCgCACAEbEEDdGogAyAEcEEDdGorAwA5AwAgBUEIaiAAIAhBBGooAgAgBGxBA3RqIANBAWogBHBBA3RqKwMAOQMAIAVBEGohBSAIQQhqIQggByADQQJqIgNHDQALCyAGRQ0AIAIgA0EDdGogACABIANBAnRqKAIAIARsQQN0aiADIARwQQN0aisDADkDAAsLzAEBBH8CQCAEIANsIgVFDQAgBUEBcSEGQQAhAwJAIAVBAUYNACAFQX5xIQdBACEDIAIhBSABIQgDQCAFIAAgCCgCACAEbEECdGogAyAEcEECdGoqAgA4AgAgBUEEaiAAIAhBBGooAgAgBGxBAnRqIANBAWogBHBBAnRqKgIAOAIAIAVBCGohBSAIQQhqIQggByADQQJqIgNHDQALCyAGRQ0AIAIgA0ECdCIFaiAAIAEgBWooAgAgBGxBAnRqIAMgBHBBAnRqKgIAOAIACwvNAQEEfwJAIAQgA2wiBUUNACAFQQFxIQZBACEDAkAgBUEBRg0AIAVBfnEhB0EAIQMgAiEFIAEhCANAIAUgACAIKAIAIARsQQN0aiADIARwQQN0aikDADcDACAFQQhqIAAgCEEEaigCACAEbEEDdGogA0EBaiAEcEEDdGopAwA3AwAgBUEQaiEFIAhBCGohCCAHIANBAmoiA0cNAAsLIAZFDQAgAiADQQN0aiAAIAEgA0ECdGooAgAgBGxBA3RqIAMgBHBBA3RqKQMANwMACwvMAQEEfwJAIAQgA2wiBUUNACAFQQFxIQZBACEDAkAgBUEBRg0AIAVBfnEhB0EAIQMgAiEFIAEhCANAIAUgACAIKAIAIARsQQJ0aiADIARwQQJ0aigCADYCACAFQQRqIAAgCEEEaigCACAEbEECdGogA0EBaiAEcEECdGooAgA2AgAgBUEIaiEFIAhBCGohCCAHIANBAmoiA0cNAAsLIAZFDQAgAiADQQJ0IgVqIAAgASAFaigCACAEbEECdGogAyAEcEECdGooAgA2AgALC80BAQR/AkAgBCADbCIFRQ0AIAVBAXEhBkEAIQMCQCAFQQFGDQAgBUF+cSEHQQAhAyACIQUgASEIA0AgBSAAIAgoAgAgBGxBAXRqIAMgBHBBAXRqLwEAOwEAIAVBAmogACAIQQRqKAIAIARsQQF0aiADQQFqIARwQQF0ai8BADsBACAFQQRqIQUgCEEIaiEIIAcgA0ECaiIDRw0ACwsgBkUNACACIANBAXRqIAAgASADQQJ0aigCACAEbEEBdGogAyAEcEEBdGovAQA7AQALC7IBAQR/AkAgBCADbCIFRQ0AIAVBAXEhBkEAIQMCQCAFQQFGDQAgBUF+cSEHQQAhAyABIQUDQCACIANqIgggACAFKAIAIARsaiADIARwai0AADoAACAIQQFqIAAgBUEEaigCACAEbGogA0EBaiAEcGotAAA6AAAgBUEIaiEFIAcgA0ECaiIDRw0ACwsgBkUNACACIANqIAAgASADQQJ0aigCACAEbGogAyAEcGotAAA6AAALC+EBAgN/AnsCQCABDQBBAA8LQQAhAkEAIQMCQAJAIAFBBEkNACABQXxxIgMhAiAAIQT9DAAAAAAAAAAAAAAAAAAAAAAiBSEGA0AgBiAE/QACACAF/Tj9sQEhBiAEQRBqIQQgAkF8aiICDQALIAYgBiAG/Q0ICQoLDA0ODwABAgMAAQID/a4BIgYgBiAG/Q0EBQYHAAECAwABAgMAAQID/a4B/RsAIQIgASADRg0BCyABIANrIQEgACADQQJ0aiEEA0AgAiAEKAIAQQBHaiECIARBBGohBCABQX9qIgENAAsLIAILigMEA38CewF/AXsCQCAERQ0AQQAhBQJAIARBFEkNACADIAAgBEECdGpJIAAgAyAEQQN0IgZqIgdJcQ0AIAMgAiAGakkgAiAHSXENACADIAEgBmpJIAEgB0lxDQAgAf0RIQggAv0RIQlBACEGIARBfnEiBSEKIAAhBwNAIAMgBmogCSAIIAf9XQIA/QwAAAAAAAAAAAAAAAAAAAAA/Tf9UiIL/RsBIAZqQQhqIAv9GwAgBmr9XQMA/VcDAAH9CwMAIAdBCGohByAGQRBqIQYgCkF+aiIKDQALIAQgBUYNAQsgBUEBciEGAkAgBEEBcUUNACADIAVBA3QiB2ogASACIAAgBUECdGooAgAbIAdqKwMAOQMAIAYhBQsgBCAGRg0AIAVBA3QhBiAEIAVrIQogACAFQQJ0aiEHA0AgAyAGaiIEIAEgAiAHKAIAGyAGaisDADkDACAEQQhqIAEgAiAHQQRqKAIAGyAGakEIaisDADkDACAHQQhqIQcgBkEQaiEGIApBfmoiCg0ACwsL9AIEAX8CewJ/AXsCQCAERQ0AQQAhBQJAIARBDEkNACADIABrQRBJDQAgAyACa0EQSQ0AIAMgAWtBEEkNACAB/REhBiAC/REhB0EAIQggBEF8cSIFIQkDQCADIAhqIAcgBiAAIAhq/QACAP0MAAAAAAAAAAAAAAAAAAAAAP03/VIiCv0bAyAIakEMaiAK/RsCIAhqQQhqIAr9GwEgCGpBBGogCv0bACAIav1cAgD9VgIAAf1WAgAC/VYCAAP9CwIAIAhBEGohCCAJQXxqIgkNAAsgBCAFRg0BCyAFQQFyIQgCQCAEQQFxRQ0AIAMgBUECdCIJaiABIAIgACAJaigCABsgCWoqAgA4AgAgCCEFCyAEIAhGDQAgBUECdCEIIAQgBWshCQNAIAMgCGoiBCABIAIgACAIaiIFKAIAGyAIaioCADgCACAEQQRqIAEgAiAFQQRqKAIAGyAIakEEaioCADgCACAIQQhqIQggCUF+aiIJDQALCwuKAwQDfwJ7AX8BewJAIARFDQBBACEFAkAgBEEUSQ0AIAMgACAEQQJ0akkgACADIARBA3QiBmoiB0lxDQAgAyACIAZqSSACIAdJcQ0AIAMgASAGakkgASAHSXENACAB/REhCCAC/REhCUEAIQYgBEF+cSIFIQogACEHA0AgAyAGaiAJIAggB/1dAgD9DAAAAAAAAAAAAAAAAAAAAAD9N/1SIgv9GwEgBmpBCGogC/0bACAGav1dAwD9VwMAAf0LAwAgB0EIaiEHIAZBEGohBiAKQX5qIgoNAAsgBCAFRg0BCyAFQQFyIQYCQCAEQQFxRQ0AIAMgBUEDdCIHaiABIAIgACAFQQJ0aigCABsgB2opAwA3AwAgBiEFCyAEIAZGDQAgBUEDdCEGIAQgBWshCiAAIAVBAnRqIQcDQCADIAZqIgQgASACIAcoAgAbIAZqKQMANwMAIARBCGogASACIAdBBGooAgAbIAZqQQhqKQMANwMAIAdBCGohByAGQRBqIQYgCkF+aiIKDQALCwv0AgQBfwJ7An8BewJAIARFDQBBACEFAkAgBEEMSQ0AIAMgAGtBEEkNACADIAJrQRBJDQAgAyABa0EQSQ0AIAH9ESEGIAL9ESEHQQAhCCAEQXxxIgUhCQNAIAMgCGogByAGIAAgCGr9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/Tf9UiIK/RsDIAhqQQxqIAr9GwIgCGpBCGogCv0bASAIakEEaiAK/RsAIAhq/VwCAP1WAgAB/VYCAAL9VgIAA/0LAgAgCEEQaiEIIAlBfGoiCQ0ACyAEIAVGDQELIAVBAXIhCAJAIARBAXFFDQAgAyAFQQJ0IglqIAEgAiAAIAlqKAIAGyAJaigCADYCACAIIQULIAQgCEYNACAFQQJ0IQggBCAFayEJA0AgAyAIaiIEIAEgAiAAIAhqIgUoAgAbIAhqKAIANgIAIARBBGogASACIAVBBGooAgAbIAhqQQRqKAIANgIAIAhBCGohCCAJQX5qIgkNAAsLC6sDBAN/AnsBfwF7AkAgBEUNAEEAIQUCQCAEQRRJDQAgAyAAIARBAnRqSSAAIAMgBEEBdCIGaiIHSXENACADIAIgBmpJIAIgB0lxDQAgAyABIAZqSSABIAdJcQ0AIAH9ESEIIAL9ESEJQQAhBiAEQXxxIgUhCiAAIQcDQCADIAZqIAkgCCAH/QACAP0MAAAAAAAAAAAAAAAAAAAAAP03/VIiC/0bAyAGakEGaiAL/RsCIAZqQQRqIAv9GwEgBmpBAmogC/0bACAGav0IAQD9VQEAAf1VAQAC/VUBAAP9WwEAACAHQRBqIQcgBkEIaiEGIApBfGoiCg0ACyAEIAVGDQELIAVBAXIhBgJAIARBAXFFDQAgAyAFQQF0IgdqIAEgAiAAIAVBAnRqKAIAGyAHai8BADsBACAGIQULIAQgBkYNACAFQQF0IQYgBCAFayEKIAAgBUECdGohBwNAIAMgBmoiBCABIAIgBygCABsgBmovAQA7AQAgBEECaiABIAIgB0EEaigCABsgBmpBAmovAQA7AQAgB0EIaiEHIAZBBGohBiAKQX5qIgoNAAsLC5oDBAJ/AnsBfwF7AkAgBEUNAEEAIQUCQCAEQRRJDQAgAyAAIARBAnRqSSAAIAMgBGoiBklxDQAgAyACIARqSSACIAZJcQ0AIAMgASAEakkgASAGSXENACAEQXxxIQUgAf0RIQcgAv0RIQhBACEGIAAhCQNAIAMgBmogCCAHIAn9AAIA/QwAAAAAAAAAAAAAAAAAAAAA/Tf9UiIK/RsDIAZqQQNqIAr9GwIgBmpBAmogCv0bASAGakEBaiAK/RsAIAZq/QcAAP1UAAAB/VQAAAL9VAAAA/1aAAAAIAlBEGohCSAFIAZBBGoiBkcNAAsgBCAFRg0BCyAFQQFyIQYCQCAEQQFxRQ0AIAMgBWogASACIAAgBUECdGooAgAbIAVqLQAAOgAAIAYhBQsgBCAGRg0AIAVBAWohBkEAIARrIQQgACAFQQJ0aiEJA0AgAyAGaiIFQX9qIAEgAiAJKAIAGyAGakF/ai0AADoAACAFIAEgAiAJQQRqKAIAGyAGai0AADoAACAJQQhqIQkgBCAGQQJqIgZqQQFHDQALCwsSACAAIAEgAiADIAQQkICAgAALEgAgACABIAIgAyAEEI+AgIAACxAAIAAgASACIAMQgoCAgAALEAAgACABIAIgAxCDgICAAAsQACAAIAEgAiADEISAgIAACxAAIAAgASACIAMQhYCAgAALEgAgACABIAIgAyAEEJKAgIAACxIAIAAgASACIAMgBBCRgICAAAsSACAAIAEgAiADIAQQiICAgAALEgAgACABIAIgAyAEEImAgIAACxIAIAAgASACIAMgBBCKgICAAAsSACAAIAEgAiADIAQQi4CAgAAL",Un=null;function uA(){if(Un)return Un;let A=atob(zv),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Un=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Un.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Un}function Mk(A,r,I,e){return uA().exports.extract_f64(A,r,I,e)}function xk(A,r,I,e){return uA().exports.extract_f32(A,r,I,e)}function Jk(A,r,I,e){return uA().exports.extract_i64(A,r,I,e)}function Uk(A,r,I,e){return uA().exports.extract_u64(A,r,I,e)}function Lk(A,r,I,e){return uA().exports.extract_i32(A,r,I,e)}function Hk(A,r,I,e){return uA().exports.extract_u32(A,r,I,e)}function _k(A,r,I,e){return uA().exports.extract_i16(A,r,I,e)}function Yk(A,r,I,e){return uA().exports.extract_u16(A,r,I,e)}function vk(A,r,I,e){return uA().exports.extract_i8(A,r,I,e)}function Xk(A,r,I,e){return uA().exports.extract_u8(A,r,I,e)}function Tk(A,r,I,e,t){uA().exports.take_axis0_2d_f64(A,r,I,e,t)}function Pk(A,r,I,e,t){uA().exports.take_axis0_2d_f32(A,r,I,e,t)}function Kk(A,r,I,e,t){uA().exports.take_axis0_2d_i64(A,r,I,e,t)}function Vk(A,r,I,e,t){uA().exports.take_axis0_2d_u64(A,r,I,e,t)}function Wk(A,r,I,e,t){uA().exports.take_axis0_2d_i32(A,r,I,e,t)}function Ok(A,r,I,e,t){uA().exports.take_axis0_2d_u32(A,r,I,e,t)}function Zk(A,r,I,e,t){uA().exports.take_axis0_2d_i16(A,r,I,e,t)}function zk(A,r,I,e,t){uA().exports.take_axis0_2d_u16(A,r,I,e,t)}function jk(A,r,I,e,t){uA().exports.take_axis0_2d_i8(A,r,I,e,t)}function $k(A,r,I,e,t){uA().exports.take_axis0_2d_u8(A,r,I,e,t)}function Aq(A,r,I,e,t){uA().exports.where_f64(A,r,I,e,t)}function rq(A,r,I,e,t){uA().exports.where_f32(A,r,I,e,t)}function Iq(A,r,I,e,t){uA().exports.where_i64(A,r,I,e,t)}function eq(A,r,I,e,t){uA().exports.where_u64(A,r,I,e,t)}function tq(A,r,I,e,t){uA().exports.where_i32(A,r,I,e,t)}function oq(A,r,I,e,t){uA().exports.where_u32(A,r,I,e,t)}function nq(A,r,I,e,t){uA().exports.where_i16(A,r,I,e,t)}function iq(A,r,I,e,t){uA().exports.where_u16(A,r,I,e,t)}function gq(A,r,I,e,t){uA().exports.where_i8(A,r,I,e,t)}function Qq(A,r,I,e,t){uA().exports.where_u8(A,r,I,e,t)}var lu=64,jv={float64:Mk,float32:xk,int64:Jk,uint64:Uk,int32:Lk,uint32:Hk,int16:_k,uint16:Yk,int8:vk,uint8:Xk},$v={float64:Tk,float32:Pk,int64:Kk,uint64:Vk,int32:Wk,uint32:Ok,int16:Zk,uint16:zk,int8:jk,uint8:$k},hu={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function aq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=Math.min(A.size,r.size);if(I<lu*Y.thresholdMultiplier)return null;let e=r.dtype,t=jv[e],o=hu[e];if(!t||!o)return null;let n=A.dtype;if(n!=="int32"&&n!=="float64"&&n!=="int8"&&n!=="uint8"&&n!=="int16"&&n!=="uint16"&&n!=="float32"&&n!=="uint32")return null;let g=o.BYTES_PER_ELEMENT,i=A.offset,Q=A.data,a=new Int32Array(I);for(let l=0;l<I;l++)a[l]=Q[i+l]?1:0;let B=I*4,s=I*g,C=I*g;J(B+s+C),U();let E=q(a),u=r.offset,f=r.data.subarray(u,u+I),m=q(f),c=_(C),D=t(E,m,c,I),y=v(c,D,o);return d.fromData(y,[D],e)}function Bq(A,r,I){if(I!==0||A.ndim!==2||r.ndim!==2||!A.isCContiguous||!r.isCContiguous)return null;let[e,t]=A.shape,o=e*t;if(o<lu*Y.thresholdMultiplier)return null;let n=A.dtype,g=$v[n],i=hu[n];if(!g||!i)return null;let Q=i.BYTES_PER_ELEMENT,a=o*Q,B=o*4,s=o*Q;J(a+B+s),U();let C=A.offset,E=A.data.subarray(C,C+o),u=q(E),f=r.offset,m=r.data,c=new Int32Array(o);for(let h=0;h<o;h++)c[h]=Number(m[f+h]);let D=q(c),y=_(s);g(u,D,y,e,t);let l=v(y,o,i);return d.fromData(l,Array.from(r.shape),n)}var A8={float64:Aq,float32:rq,int64:Iq,uint64:eq,int32:tq,uint32:oq,int16:nq,uint16:iq,int8:gq,uint8:Qq};function sq(A,r,I){if(!A.isCContiguous||!r.isCContiguous||!I.isCContiguous)return null;let e=A.size;if(e!==r.size||e!==I.size||e<lu*Y.thresholdMultiplier)return null;let t=r.dtype;if(t!==I.dtype)return null;let o=A8[t],n=hu[t];if(!o||!n)return null;let g=n.BYTES_PER_ELEMENT,i=e*4,Q=e*g;J(i+Q*2+Q),U();let a=A.offset,B=A.data,s=new Int32Array(e);for(let h=0;h<e;h++)s[h]=B[a+h]?1:0;let C=q(s),E=r.offset,u=r.data.subarray(E,E+e),f=q(u),m=I.offset,c=I.data.subarray(m,m+e),D=q(c),y=_(Q);o(C,f,D,y,e);let l=v(y,e,n);return d.fromData(l,Array.from(r.shape),t)}function Cr(A,r,I){if(I){let e=A[r*2],t=A[r*2+1];return e!==0||t!==0}return!!A[r]}function EI(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function Cq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return A.copy();let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=A.copy(),a=Q.data,B=I[i],s=Array.from(I).filter((D,y)=>y!==i),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),f=pr(I),{baseOffsets:m,axisStride:c}=gA(I,f,0,i,C);if(e===1&&Q.isCContiguous){let D=JS(Q);if(D)return D}if(c===1&&xS(a,m,B,C,t))return Q;if(k(t)){let D=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<B;w++)h.push({re:D[b*2],im:D[b*2+1],idx:w}),b+=u;h.sort((w,N)=>EI(w.re,w.im,N.re,N.im));let p=m[l];for(let w=0;w<B;w++)y[p*2]=h[w].re,y[p*2+1]=h[w].im,p+=c}}else if(L(t)){let D=o,y=a;for(let l=0;l<C;l++){let h=[],b=E[l];for(let w=0;w<B;w++)h.push({value:D[b],idx:w}),b+=u;h.sort((w,N)=>w.value<N.value?-1:w.value>N.value?1:0);let p=m[l];for(let w=0;w<B;w++)y[p]=h[w].value,p+=c}}else for(let D=0;D<C;D++){let y=[],l=E[D];for(let b=0;b<B;b++)y.push(Number(o[l])),l+=u;y.sort((b,p)=>isNaN(b)&&isNaN(p)?0:isNaN(b)?1:isNaN(p)?-1:b-p);let h=m[D];for(let b=0;b<B;b++)a[h]=y[b],h+=c}return Q}function Eq(A,r=-1){let I=A.shape,e=I.length,t=A.dtype,o=A.data,n=A.offset,g=A.strides;if(e===0)return d.zeros([0],"int32");let i=r;if(i<0&&(i=e+i),i<0||i>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let Q=d.zeros(Array.from(I),"int32"),a=Q.data,B=I[i],s=Array.from(I).filter((D,y)=>y!==i),C=s.length===0?1:s.reduce((D,y)=>D*y,1),{baseOffsets:E,axisStride:u}=gA(I,g,n,i,C),f=pr(I),{baseOffsets:m,axisStride:c}=gA(I,f,0,i,C);if(e===1&&A.isCContiguous){let D=QR(A);if(D)return D}if(c===1&&u===1&&gR(o,a,E,m,B,C,t))return Q;if(k(t)){let D=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<B;p++)l.push({re:D[h*2],im:D[h*2+1],idx:p}),h+=u;l.sort((p,w)=>EI(p.re,p.im,w.re,w.im));let b=m[y];for(let p=0;p<B;p++)a[b]=l[p].idx,b+=c}}else if(L(t)){let D=o;for(let y=0;y<C;y++){let l=[],h=E[y];for(let p=0;p<B;p++)l.push({value:D[h],idx:p}),h+=u;l.sort((p,w)=>p.value<w.value?-1:p.value>w.value?1:0);let b=m[y];for(let p=0;p<B;p++)a[b]=l[p].idx,b+=c}}else for(let D=0;D<C;D++){let y=[],l=E[D];for(let b=0;b<B;b++)y.push({value:Number(o[l]),idx:b}),l+=u;y.sort((b,p)=>isNaN(b.value)&&isNaN(p.value)?0:isNaN(b.value)?1:isNaN(p.value)?-1:b.value-p.value);let h=m[D];for(let b=0;b<B;b++)a[h]=y[b].idx,h+=c}return Q}function uq(A){if(A.length===0)return d.zeros([0],"int32");let I=A[0].size;for(let B of A){if(B.ndim!==1)throw new Error("keys must be 1D arrays");if(B.size!==I)throw new Error("all keys must have the same length")}let e=qk(A);if(e)return e;let t=[];for(let B=0;B<I;B++)t.push(B);let o=A.map(B=>k(B.dtype)),n=A.map(B=>B.isCContiguous),g=A.map(B=>B.data),i=A.map(B=>B.offset);t.sort((B,s)=>{for(let C=A.length-1;C>=0;C--)if(o[C]){let E,u,f,m;if(n[C]){let c=g[C],D=i[C];E=c[(D+B)*2],u=c[(D+B)*2+1],f=c[(D+s)*2],m=c[(D+s)*2+1]}else{let c=A[C].iget(B),D=A[C].iget(s);E=c.re,u=c.im,f=D.re,m=D.im}if(E<f)return-1;if(E>f)return 1;if(u<m)return-1;if(u>m)return 1}else{let E,u;if(n[C]){let f=g[C],m=i[C];E=Number(f[m+B]),u=Number(f[m+s])}else E=Number(A[C].iget(B)),u=Number(A[C].iget(s));if(isNaN(E)&&isNaN(u))continue;if(isNaN(E))return 1;if(isNaN(u)||E<u)return-1;if(E>u)return 1}return 0});let Q=d.zeros([I],"int32"),a=Q.data;for(let B=0;B<I;B++)a[B]=t[B];return Q}function r8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++){let s=A[B],C=isNaN(s),E=isNaN(Q);!C&&(E||s<=Q)&&([A[a],A[B]]=[A[B],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function I8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I],n=A[t],g=A[e],i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i];[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++)A[B]<=Q&&([A[a],A[B]]=[A[B],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function e8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++){let s=A[B].value,C=isNaN(s),E=isNaN(Q);!C&&(E||s<=Q)&&([A[a],A[B]]=[A[B],A[a]],a++)}if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function t8(A,r){let I=0,e=A.length-1;for(;I<e;){let t=Math.floor((I+e)/2),o=A[I].value,n=A[t].value,g=A[e].value,i;o<=n&&n<=g||g<=n&&n<=o?i=t:n<=o&&o<=g||g<=o&&o<=n?i=I:i=e;let Q=A[i].value;[A[i],A[e]]=[A[e],A[i]];let a=I;for(let B=I;B<e;B++)A[B].value<=Q&&([A[a],A[B]]=[A[B],A[a]],a++);if([A[a],A[e]]=[A[e],A[a]],a===r)return;a<r?I=a+1:e=a-1}}function cq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype;if(t===0)return A.copy();let n=I;if(n<0&&(n=t+n),n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n],i=r;if(i<0&&(i=g+i),i<0||i>=g)throw new Error(`kth(=${r}) out of bounds (${g})`);if(t===1&&A.isCContiguous&&!k(o)){let f=A.copy(),m=kR(f,i);if(m)return m}let Q=A.copy(),a=Q.data,B=Array.from(e).filter((f,m)=>m!==n),s=B.length===0?1:B.reduce((f,m)=>f*m,1),C=pr(e),{baseOffsets:E,axisStride:u}=gA(e,C,0,n,s);if(u===1&&!k(o)&&RR(a,E,g,s,i,o))return Q;if(L(o)){let f=a;for(let m=0;m<s;m++){let c=[],D=E[m];for(let y=0;y<g;y++)c.push(f[D]),D+=u;I8(c,i),D=E[m];for(let y=0;y<g;y++)f[D]=c[y],D+=u}}else for(let f=0;f<s;f++){let m=[],c=E[f];for(let D=0;D<g;D++)m.push(Number(a[c])),c+=u;r8(m,i),c=E[f];for(let D=0;D<g;D++)a[c]=m[D],c+=u}return Q}function Dq(A,r,I=-1){let e=A.shape,t=e.length,o=A.dtype,n=A.data,g=A.offset,i=A.strides;if(t===0)return d.zeros([0],"int32");let Q=I;if(Q<0&&(Q=t+Q),Q<0||Q>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let a=e[Q],B=r;if(B<0&&(B=a+B),B<0||B>=a)throw new Error(`kth(=${r}) out of bounds (${a})`);if(t===1&&A.isCContiguous&&!k(o)){let l=rk(A,B);if(l)return l}let s=d.zeros(Array.from(e),"int32"),C=s.data,E=Array.from(e).filter((l,h)=>h!==Q),u=E.length===0?1:E.reduce((l,h)=>l*h,1),{baseOffsets:f,axisStride:m}=gA(e,i,g,Q,u),c=pr(e),{baseOffsets:D,axisStride:y}=gA(e,c,0,Q,u);if(y===1&&m===1&&!k(o)&&Ak(n,C,f,D,a,u,B,o))return s;if(L(o)){let l=n;for(let h=0;h<u;h++){let b=[],p=f[h];for(let N=0;N<a;N++)b.push({value:l[p],idx:N}),p+=m;t8(b,B);let w=D[h];for(let N=0;N<a;N++)C[w]=b[N].idx,w+=y}}else for(let l=0;l<u;l++){let h=[],b=f[l];for(let w=0;w<a;w++)h.push({value:Number(n[b]),idx:w}),b+=m;e8(h,B);let p=D[l];for(let w=0;w<a;w++)C[p]=h[w].idx,p+=y}return s}function fq(A){let r=A.dtype,I=A.size,e=A.isCContiguous,t=A.data,o=A.offset;if(k(r)){let n=[];if(e){let Q=t;for(let a=0;a<I;a++)n.push({re:Q[(o+a)*2],im:Q[(o+a)*2+1]})}else for(let Q=0;Q<I;Q++){let a=A.iget(Q);n.push({re:a.re,im:a.im})}n.sort((Q,a)=>EI(Q.re,Q.im,a.re,a.im));let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q].re,i[Q*2+1]=n[Q].im;return g}else{let n=[];if(e)for(let Q=0;Q<I;Q++)n.push(Number(t[o+Q]));else for(let Q=0;Q<I;Q++)n.push(Number(A.iget(Q)));n.sort((Q,a)=>isNaN(Q)&&isNaN(a)?0:isNaN(Q)?1:isNaN(a)?-1:Q-a);let g=d.zeros([I],"complex128"),i=g.data;for(let Q=0;Q<I;Q++)i[Q*2]=n[Q],i[Q*2+1]=0;return g}}function du(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[];for(let C=0;C<I;C++)i.push([]);let Q=[],a=1;for(let C=I-1;C>=0;C--)Q.unshift(a),a*=r[C];if(o&&!t&&I>=1){let C=[];for(let f=0;f<I;f++)C.push(new Int32Array(e));let E=0;for(let f=0;f<e;f++)if(n[g+f]){let m=f;for(let c=0;c<I;c++)C[c][E]=m/Q[c]|0,m-=C[c][E]*Q[c];E++}let u=[];for(let f=0;f<I;f++){let m=d.zeros([E],"int32");m.data.set(C[f].subarray(0,E)),u.push(m)}return u}if(o){for(let C=0;C<e;C++)if(Cr(n,g+C,t)){let E=C;for(let u=0;u<I;u++){let f=Math.floor(E/Q[u]);E=E%Q[u],i[u].push(f)}}}else for(let C=0;C<e;C++){let E=A.iget(C);if(t?E.re!==0||E.im!==0:!!E){let f=C;for(let m=0;m<I;m++){let c=Math.floor(f/Q[m]);f=f%Q[m],i[m].push(c)}}}let B=i[0]?.length??0,s=[];for(let C=0;C<I;C++){let E=d.zeros([B],"int32"),u=E.data;for(let f=0;f<B;f++)u[f]=i[C][f];s.push(E)}return s}function mq(A){let r=A.shape,I=r.length,e=A.size,t=k(A.dtype),o=A.isCContiguous,n=A.data,g=A.offset,i=[],Q=[],a=1;for(let u=I-1;u>=0;u--)Q.unshift(a),a*=r[u];if(o){for(let u=0;u<e;u++)if(Cr(n,g+u,t)){let f=[],m=u;for(let c=0;c<I;c++){let D=Math.floor(m/Q[c]);m=m%Q[c],f.push(D)}i.push(f)}}else for(let u=0;u<e;u++){let f=A.iget(u);if(t?f.re!==0||f.im!==0:!!f){let c=[],D=u;for(let y=0;y<I;y++){let l=Math.floor(D/Q[y]);D=D%Q[y],c.push(l)}i.push(c)}}let B=i.length,s=I===0?[B,1]:[B,I],C=d.zeros(s,"int32"),E=C.data;for(let u=0;u<B;u++){let f=i[u];for(let m=0;m<(I===0?1:I);m++)E[u*(I===0?1:I)+m]=f[m]??0}return C}function yq(A){let r=A.size,I=k(A.dtype),e=A.isCContiguous,t=A.data,o=A.offset;if(e&&!I){let Q=new Int32Array(r),a=0;for(let s=0;s<r;s++)t[o+s]&&(Q[a++]=s);let B=d.zeros([a],"int32");return B.data.set(Q.subarray(0,a)),B}let n=[];if(e)for(let Q=0;Q<r;Q++)Cr(t,o+Q,I)&&n.push(Q);else for(let Q=0;Q<r;Q++){let a=A.iget(Q);(I?a.re!==0||a.im!==0:a)&&n.push(Q)}let g=d.zeros([n.length],"int32"),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=n[Q];return g}function lq(A,r,I){if(r===void 0&&I===void 0)return du(A);if(r===void 0||I===void 0)throw new Error("either both or neither of x and y should be given");if(A.size===r.size&&r.size===I.size&&r.dtype===I.dtype&&A.shape.length===r.shape.length&&A.shape.every((V,$)=>V===r.shape[$])&&r.shape.every((V,$)=>V===I.shape[$])){let V=sq(A,r,I);if(V)return V}let e=A.shape,t=r.shape,o=I.shape,n=Math.max(e.length,t.length,o.length),g=V=>{let $=Array(n).fill(1);for(let O=0;O<V.length;O++)$[n-V.length+O]=V[O];return $},i=g(e),Q=g(t),a=g(o),B=[];for(let V=0;V<n;V++){let $=[i[V],Q[V],a[V]],O=Math.max(...$);for(let z of $)if(z!==1&&z!==O)throw new Error("operands could not be broadcast together");B.push(O)}let s=r.dtype,C=d.zeros(B,s),E=C.data,u=(V,$)=>{let O=[],z=1;for(let rA=V.length-1;rA>=0;rA--)O.unshift(z),z*=V[rA];for(;O.length<$.length;)O.unshift(0);for(let rA=0;rA<$.length;rA++)$[rA]===1&&B[rA]!==1&&(O[rA]=0);return O},f=u(e,i),m=u(t,Q),c=u(o,a),D=[],y=1;for(let V=B.length-1;V>=0;V--)D.unshift(y),y*=B[V];let l=B.reduce((V,$)=>V*$,1),h=k(A.dtype),b=k(s),p=A.isCContiguous,w=A.data,N=A.offset,F=r.isCContiguous,S=r.data,x=r.offset,H=I.isCContiguous,X=I.data,P=I.offset;if(e.length===B.length&&t.length===B.length&&o.length===B.length&&e.every((V,$)=>V===B[$])&&t.every((V,$)=>V===B[$])&&o.every((V,$)=>V===B[$])&&p&&F&&H)if(b){let V=E,$=S,O=X;if(h)for(let z=0;z<l;z++)Cr(w,N+z,!0)?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1]);else for(let z=0;z<l;z++)w[N+z]?(V[z*2]=$[(x+z)*2],V[z*2+1]=$[(x+z)*2+1]):(V[z*2]=O[(P+z)*2],V[z*2+1]=O[(P+z)*2+1])}else if(L(s)){let V=E,$=S,O=X;for(let z=0;z<l;z++)w[N+z]?V[z]=$[x+z]:V[z]=O[P+z]}else for(let V=0;V<l;V++)w[N+V]?E[V]=S[x+V]:E[V]=X[P+V];else for(let V=0;V<l;V++){let $=V,O=0,z=0,rA=0;for(let iA=0;iA<n;iA++){let CA=Math.floor($/D[iA]);$=$%D[iA],O+=CA*f[iA],z+=CA*m[iA],rA+=CA*c[iA]}let oA;if(p)oA=Cr(w,N+O,h);else{let iA=A.iget(O);oA=h?iA.re!==0||iA.im!==0:!!iA}if(oA)if(b)if(F){let iA=S;E[V*2]=iA[(x+z)*2],E[V*2+1]=iA[(x+z)*2+1]}else{let iA=r.iget(z);E[V*2]=iA.re,E[V*2+1]=iA.im}else F?E[V]=S[x+z]:E[V]=r.iget(z);else if(b)if(H){let iA=X;E[V*2]=iA[(P+rA)*2],E[V*2+1]=iA[(P+rA)*2+1]}else{let iA=I.iget(rA);E[V*2]=iA.re,E[V*2+1]=iA.im}else H?E[V]=X[P+rA]:E[V]=I.iget(rA)}return C}function hq(A,r,I="left"){if(A.ndim!==1)throw new Error("storage must be 1D");let e=A.size,t=r.size,o=k(A.dtype),n=A.isCContiguous,g=A.data,i=A.offset,Q=r.isCContiguous,a=r.data,B=r.offset;if(!o){let E=hk(A,r,I);if(E)return E}let s=d.zeros([t],"int32"),C=s.data;if(o)if(n&&Q){let E=g,u=a;for(let f=0;f<t;f++){let m=u[(B+f)*2],c=u[(B+f)*2+1],D=0,y=e;if(I==="left")for(;D<y;){let l=Math.floor((D+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<0?D=l+1:y=l}else for(;D<y;){let l=Math.floor((D+y)/2),h=E[(i+l)*2],b=E[(i+l)*2+1];EI(h,b,m,c)<=0?D=l+1:y=l}C[f]=D}}else for(let E=0;E<t;E++){let u=r.iget(E),f=u.re,m=u.im,c=0,D=e;if(I==="left")for(;c<D;){let y=Math.floor((c+D)/2),l=A.iget(y);EI(l.re,l.im,f,m)<0?c=y+1:D=y}else for(;c<D;){let y=Math.floor((c+D)/2),l=A.iget(y);EI(l.re,l.im,f,m)<=0?c=y+1:D=y}C[E]=c}else if(n&&Q)for(let E=0;E<t;E++){let u=Number(a[B+E]),f=0,m=e;if(I==="left")for(;f<m;){let c=Math.floor((f+m)/2);Number(g[i+c])<u?f=c+1:m=c}else for(;f<m;){let c=Math.floor((f+m)/2);Number(g[i+c])<=u?f=c+1:m=c}C[E]=f}else for(let E=0;E<t;E++){let u=Number(r.iget(E)),f=0,m=e;if(I==="left")for(;f<m;){let c=Math.floor((f+m)/2);Number(A.iget(c))<u?f=c+1:m=c}else for(;f<m;){let c=Math.floor((f+m)/2);Number(A.iget(c))<=u?f=c+1:m=c}C[E]=f}return s}function dq(A,r){let I=aq(A,r);if(I)return I;let e=r.dtype,t=k(A.dtype),o=k(e),n=Math.min(A.size,r.size),g=A.isCContiguous,i=A.data,Q=A.offset,a=r.isCContiguous,B=r.data,s=r.offset,C=0;if(g)for(let m=0;m<n;m++)Cr(i,Q+m,t)&&C++;else for(let m=0;m<n;m++){let c=A.iget(m);(t?c.re!==0||c.im!==0:c)&&C++}let E=d.zeros([C],e),u=E.data,f=0;if(g&&a)if(L(e)){let m=u,c=B;for(let D=0;D<n;D++)Cr(i,Q+D,t)&&(m[f++]=c[s+D])}else if(o){let m=u,c=B;for(let D=0;D<n;D++)Cr(i,Q+D,t)&&(m[f*2]=c[(s+D)*2],m[f*2+1]=c[(s+D)*2+1],f++)}else for(let m=0;m<n;m++)Cr(i,Q+m,t)&&(u[f++]=B[s+m]);else{let m=g?c=>Cr(i,Q+c,t):c=>{let D=A.iget(c);if(t){let y=D;return y.re!==0||y.im!==0}return!!D};if(L(e)){let c=u;for(let D=0;D<n;D++)m(D)&&(c[f++]=r.iget(D))}else if(o){let c=u;for(let D=0;D<n;D++)if(m(D)){let y=r.iget(D);c[f*2]=y.re,c[f*2+1]=y.im,f++}}else for(let c=0;c<n;c++)m(c)&&(u[f++]=r.iget(c))}return E}function IQ(A,r){let I=A.shape,e=I.length,t=A.data,o=A.size,n=A.offset,g=A.strides,i=k(A.dtype),Q=A.isCContiguous;if(r===void 0){let c=QS(A);if(c!==null)return c;let D=0;if(Q)for(let y=0;y<o;y++)Cr(t,n+y,i)&&D++;else for(let y=0;y<o;y++){let l=A.iget(y);if(i){let h=l;(h.re!==0||h.im!==0)&&D++}else l!==0&&l!==BigInt(0)&&D++}return D}let a=r;if(a<0&&(a=e+a),a<0||a>=e)throw new Error(`axis ${r} is out of bounds for array of dimension ${e}`);let B=Array.from(I).filter((c,D)=>D!==a);if(B.length===0)return IQ(A);let s=d.zeros(B,"int32"),C=s.data,E=I[a],u=B.reduce((c,D)=>c*D,1),{baseOffsets:f,axisStride:m}=gA(I,g,n,a,u);for(let c=0;c<u;c++){let D=0,y=f[c];for(let l=0;l<E;l++)Cr(t,y,i)&&D++,y+=m;C[c]=D}return s}function Ln(A,r=-1){return R(Cq(G(A),r))}function Hn(A,r=-1){return R(Eq(G(A),r))}function bu(A){return R(uq(A.map(r=>G(r))))}function _n(A,r,I=-1){return R(cq(G(A),r,I))}function Yn(A,r,I=-1){return R(Dq(G(A),r,I))}function pu(A){return R(fq(G(A)))}function vn(A){return dr(du(G(A)))}function Xn(A){return R(mq(G(A)))}function wu(A){return R(yq(G(A)))}function eQ(A,r,I){let e=lq(G(A),r?G(r):void 0,I?G(I):void 0);return Array.isArray(e)?dr(e):R(e)}function jI(A,r,I="left"){return R(hq(G(A),G(r),I))}function Nu(A,r){return R(dq(G(A),G(r)))}function tQ(A,r){if(Array.isArray(r)){let e=G(A).ndim,o=[...r.map(g=>g<0?e+g:g)].sort((g,i)=>i-g),n=G(A);for(let g of o){let i=IQ(n,g);if(typeof i=="number")return i;n=i}return R(n)}let I=IQ(G(A),r);return typeof I=="number"?I:R(I)}var n8="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",Tn=null;function oQ(){if(Tn)return Tn;let A=atob(n8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Tn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Tn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Tn}function Fu(A,r,I,e){oQ().exports.bitwise_and_i64(A,r,I,e)}function Gu(A,r,I,e){oQ().exports.bitwise_and_i32(A,r,I,e)}function Su(A,r,I,e){oQ().exports.bitwise_and_i16(A,r,I,e)}function Ru(A,r,I,e){oQ().exports.bitwise_and_i8(A,r,I,e)}var i8=64,g8={int64:Fu,uint64:Fu,int32:Gu,uint32:Gu,int16:Su,uint16:Su,int8:Ru,uint8:Ru},Q8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function bq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<i8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=g8[e],o=Q8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var a8="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",Pn=null;function nQ(){if(Pn)return Pn;let A=atob(a8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Pn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Pn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Pn}function ku(A,r,I,e){nQ().exports.bitwise_or_i64(A,r,I,e)}function qu(A,r,I,e){nQ().exports.bitwise_or_i32(A,r,I,e)}function Mu(A,r,I,e){nQ().exports.bitwise_or_i16(A,r,I,e)}function xu(A,r,I,e){nQ().exports.bitwise_or_i8(A,r,I,e)}var B8=64,s8={int64:ku,uint64:ku,int32:qu,uint32:qu,int16:Mu,uint16:Mu,int8:xu,uint8:xu},C8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function pq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<B8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=s8[e],o=C8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var E8="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",Kn=null;function iQ(){if(Kn)return Kn;let A=atob(E8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Kn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Kn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Kn}function Ju(A,r,I,e){iQ().exports.bitwise_xor_i64(A,r,I,e)}function Uu(A,r,I,e){iQ().exports.bitwise_xor_i32(A,r,I,e)}function Lu(A,r,I,e){iQ().exports.bitwise_xor_i16(A,r,I,e)}function Hu(A,r,I,e){iQ().exports.bitwise_xor_i8(A,r,I,e)}var u8=64,c8={int64:Ju,uint64:Ju,int32:Uu,uint32:Uu,int16:Lu,uint16:Lu,int8:Hu,uint8:Hu},D8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function wq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<u8*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=c8[e],o=D8[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}var f8="AGFzbQEAAAABBwFgA39/fwACDwEDZW52Bm1lbW9yeQIAEAMFBAAAAAAGCQF/AUGAgMAACwdIBA9iaXR3aXNlX25vdF9pNjQAAA9iaXR3aXNlX25vdF9pMzIAAQ9iaXR3aXNlX25vdF9pMTYAAg5iaXR3aXNlX25vdF9pOAADCocSBNAEAQZ/AkACQCACQX5xIgMNAEEAIQQMAQsgA0F/akEBdkEBaiIFQQNxIQYCQAJAIANBB08NAEEAIQQMAQsgBUF8cSIHQQF0IQRBACEDA0AgASADaiIFIAAgA2oiCP0AAwD9Tf0LAwAgBUEQaiAIQRBq/QADAP1N/QsDACAFQSBqIAhBIGr9AAMA/U39CwMAIAVBMGogCEEwav0AAwD9Tf0LAwAgA0HAAGohAyAHQXxqIgcNAAsLIAZFDQAgBCAGQQF0aiEIIAAgBEEDdCIFaiEDIAEgBWohBQNAIAUgA/0AAwD9Tf0LAwAgA0EQaiEDIAVBEGohBSAGQX9qIgYNAAsgCCEECwJAIAIgBE0NAAJAIAIgBGsiBkEESQ0AIAEgAGtBEEkNACAAIARBA3QiBWohAyABIAVqIQUgBCAGQX5xIgdqIQQgByEIA0AgBSAD/QADAP1N/QsDACADQRBqIQMgBUEQaiEFIAhBfmoiCA0ACyAGIAdGDQELIAQhBgJAIAIgBGtBA3EiCEUNACAEIAhqIQYgASAEQQN0IgVqIQMgACAFaiEFA0AgAyAFKQMAQn+FNwMAIANBCGohAyAFQQhqIQUgCEF/aiIIDQALCyAEIAJrQXxLDQAgBkEDdCEIIAIgBmshBgNAIAEgCGoiAyAAIAhqIgUpAwBCf4U3AwAgA0EIaiAFQQhqKQMAQn+FNwMAIANBEGogBUEQaikDAEJ/hTcDACADQRhqIAVBGGopAwBCf4U3AwAgAUEgaiEBIABBIGohACAGQXxqIgYNAAsLC9QEAQZ/AkACQCACQXxxIgMNAEEAIQQMAQsgA0F/akECdkEBaiIFQQNxIQYCQAJAIANBDU8NAEEAIQQMAQsgBUH8////B3EiB0ECdCEEQQAhAwNAIAEgA2oiBSAAIANqIgj9AAIA/U39CwIAIAVBEGogCEEQav0AAgD9Tf0LAgAgBUEgaiAIQSBq/QACAP1N/QsCACAFQTBqIAhBMGr9AAIA/U39CwIAIANBwABqIQMgB0F8aiIHDQALCyAGRQ0AIAQgBkECdGohCCAAIARBAnQiBWohAyABIAVqIQUDQCAFIAP9AAIA/U39CwIAIANBEGohAyAFQRBqIQUgBkF/aiIGDQALIAghBAsCQCACIARNDQACQCACIARrIgZBBEkNACABIABrQRBJDQAgACAEQQJ0IgVqIQMgASAFaiEFIAQgBkF8cSIHaiEEIAchCANAIAUgA/0AAgD9Tf0LAgAgA0EQaiEDIAVBEGohBSAIQXxqIggNAAsgBiAHRg0BCyAEIQYCQCACIARrQQNxIghFDQAgBCAIaiEGIAEgBEECdCIFaiEDIAAgBWohBQNAIAMgBSgCAEF/czYCACADQQRqIQMgBUEEaiEFIAhBf2oiCA0ACwsgBCACa0F8Sw0AIAZBAnQhCCACIAZrIQYDQCABIAhqIgMgACAIaiIFKAIAQX9zNgIAIANBBGogBUEEaigCAEF/czYCACADQQhqIAVBCGooAgBBf3M2AgAgA0EMaiAFQQxqKAIAQX9zNgIAIAFBEGohASAAQRBqIQAgBkF8aiIGDQALCwvUBAEGfwJAAkAgAkF4cSIDDQBBACEEDAELIANBf2pBA3ZBAWoiBUEDcSEGAkACQCADQRlPDQBBACEEDAELIAVB/P///wNxIgdBA3QhBEEAIQMDQCABIANqIgUgACADaiII/QABAP1N/QsBACAFQRBqIAhBEGr9AAEA/U39CwEAIAVBIGogCEEgav0AAQD9Tf0LAQAgBUEwaiAIQTBq/QABAP1N/QsBACADQcAAaiEDIAdBfGoiBw0ACwsgBkUNACAEIAZBA3RqIQggACAEQQF0IgVqIQMgASAFaiEFA0AgBSAD/QABAP1N/QsBACADQRBqIQMgBUEQaiEFIAZBf2oiBg0ACyAIIQQLAkAgAiAETQ0AAkAgAiAEayIGQQhJDQAgASAAa0EQSQ0AIAAgBEEBdCIFaiEDIAEgBWohBSAEIAZBeHEiB2ohBCAHIQgDQCAFIAP9AAEA/U39CwEAIANBEGohAyAFQRBqIQUgCEF4aiIIDQALIAYgB0YNAQsgBCEGAkAgAiAEa0EDcSIIRQ0AIAQgCGohBiABIARBAXQiBWohAyAAIAVqIQUDQCADIAUvAQBBf3M7AQAgA0ECaiEDIAVBAmohBSAIQX9qIggNAAsLIAQgAmtBfEsNACAGQQF0IQggAiAGayEGA0AgASAIaiIDIAAgCGoiBS8BAEF/czsBACADQQJqIAVBAmovAQBBf3M7AQAgA0EEaiAFQQRqLwEAQX9zOwEAIANBBmogBUEGai8BAEF/czsBACABQQhqIQEgAEEIaiEAIAZBfGoiBg0ACwsLhgQBBn8CQAJAIAJBcHEiAw0AQQAhAwwBCyADQX9qQQR2QQFqIgRBA3EhBQJAAkAgA0ExTw0AQQAhAwwBCyAEQfz///8BcSEGQQAhAwNAIAEgA2oiBCAAIANqIgf9AAAA/U39CwAAIARBEGogB0EQav0AAAD9Tf0LAAAgBEEgaiAHQSBq/QAAAP1N/QsAACAEQTBqIAdBMGr9AAAA/U39CwAAIANBwABqIQMgBkF8aiIGDQALCyAFRQ0AA0AgASADaiAAIANq/QAAAP1N/QsAACADQRBqIQMgBUF/aiIFDQALCwJAIAIgA00NAAJAIAIgA2siBkEQSQ0AIAEgAGtBEEkNACAAIANqIQQgASADaiEHIAMgBkFwcSIIaiEDIAghBQNAIAcgBP0AAAD9Tf0LAAAgBEEQaiEEIAdBEGohByAFQXBqIgUNAAsgBiAIRg0BCyADIQQCQCACIANrQQNxIgdFDQAgAyEEA0AgASAEaiAAIARqLQAAQX9zOgAAIARBAWohBCAHQX9qIgcNAAsLIAMgAmtBfEsNAANAIAEgBGoiAyAAIARqIgctAABBf3M6AAAgA0EBaiAHQQFqLQAAQX9zOgAAIANBAmogB0ECai0AAEF/czoAACADQQNqIAdBA2otAABBf3M6AAAgAUEEaiEBIABBBGohACAEIAJBfGoiAkcNAAsLCw==",Vn=null;function gQ(){if(Vn)return Vn;let A=atob(f8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Vn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Vn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Vn}function _u(A,r,I){gQ().exports.bitwise_not_i64(A,r,I)}function Yu(A,r,I){gQ().exports.bitwise_not_i32(A,r,I)}function vu(A,r,I){gQ().exports.bitwise_not_i16(A,r,I)}function Xu(A,r,I){gQ().exports.bitwise_not_i8(A,r,I)}var m8=64,y8={int64:_u,uint64:_u,int32:Yu,uint32:Yu,int16:vu,uint16:vu,int8:Xu,uint8:Xu},l8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Nq(A){if(!A.isCContiguous)return null;let r=A.size;if(r<m8*Y.thresholdMultiplier)return null;let I=A.dtype,e=y8[I],t=l8[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r*o;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,t);return d.fromData(s,Array.from(A.shape),I)}var h8="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",Wn=null;function eI(){if(Wn)return Wn;let A=atob(h8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Wn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Wn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Wn}function Tu(A,r,I,e){eI().exports.left_shift_i64(A,r,I,e)}function Pu(A,r,I,e){eI().exports.left_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Ku(A,r,I,e){eI().exports.left_shift_i32(A,r,I,e)}function Vu(A,r,I,e){eI().exports.left_shift_scalar_i32(A,r,I,e)}function Wu(A,r,I,e){eI().exports.left_shift_i16(A,r,I,e)}function Ou(A,r,I,e){eI().exports.left_shift_scalar_i16(A,r,I,e)}function Zu(A,r,I,e){eI().exports.left_shift_i8(A,r,I,e)}function zu(A,r,I,e){eI().exports.left_shift_scalar_i8(A,r,I,e)}var Fq=64,d8={int64:Tu,uint64:Tu,int32:Ku,uint32:Ku,int16:Wu,uint16:Wu,int8:Zu,uint8:Zu},b8={int64:Pu,uint64:Pu,int32:Vu,uint32:Vu,int16:Ou,uint16:Ou,int8:zu,uint8:zu},Gq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Sq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Fq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=d8[e],o=Gq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function Rq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Fq*Y.thresholdMultiplier)return null;let e=A.dtype,t=b8[e],o=Gq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var p8="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",On=null;function TA(){if(On)return On;let A=atob(p8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);On=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=On.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),On}function kq(A,r,I,e){TA().exports.right_shift_i64(A,r,I,e)}function qq(A,r,I,e){TA().exports.right_shift_scalar_i64(A,r,I,BigInt(Math.round(e)))}function Mq(A,r,I,e){TA().exports.right_shift_i32(A,r,I,e)}function xq(A,r,I,e){TA().exports.right_shift_scalar_i32(A,r,I,e)}function Jq(A,r,I,e){TA().exports.right_shift_i16(A,r,I,e)}function Uq(A,r,I,e){TA().exports.right_shift_scalar_i16(A,r,I,e)}function Lq(A,r,I,e){TA().exports.right_shift_i8(A,r,I,e)}function Hq(A,r,I,e){TA().exports.right_shift_scalar_i8(A,r,I,e)}function _q(A,r,I,e){TA().exports.right_shift_u64(A,r,I,e)}function Yq(A,r,I,e){TA().exports.right_shift_scalar_u64(A,r,I,BigInt(Math.round(e)))}function vq(A,r,I,e){TA().exports.right_shift_u32(A,r,I,e)}function Xq(A,r,I,e){TA().exports.right_shift_scalar_u32(A,r,I,e)}function Tq(A,r,I,e){TA().exports.right_shift_u16(A,r,I,e)}function Pq(A,r,I,e){TA().exports.right_shift_scalar_u16(A,r,I,e)}function Kq(A,r,I,e){TA().exports.right_shift_u8(A,r,I,e)}function Vq(A,r,I,e){TA().exports.right_shift_scalar_u8(A,r,I,e)}var Wq=64,w8={int64:kq,uint64:_q,int32:Mq,uint32:vq,int16:Jq,uint16:Tq,int8:Lq,uint8:Kq},N8={int64:qq,uint64:Yq,int32:xq,uint32:Xq,int16:Uq,uint16:Pq,int8:Hq,uint8:Vq},Oq={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zq(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size;if(I<Wq*Y.thresholdMultiplier)return null;let e=IA(A.dtype,r.dtype),t=w8[e],o=Oq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n,Q=I*n;J(g+i+Q),U();let a=A.offset,B=r.offset,s=A.data.subarray(a,a+I),C=r.data.subarray(B,B+I),E=q(s),u=q(C),f=_(Q);t(E,u,f,I);let m=v(f,I,o);return d.fromData(m,Array.from(A.shape),e)}function zq(A,r){if(!A.isCContiguous)return null;let I=A.size;if(I<Wq*Y.thresholdMultiplier)return null;let e=A.dtype,t=N8[e],o=Oq[e];if(!t||!o)return null;let n=o.BYTES_PER_ELEMENT,g=I*n,i=I*n;J(g+i),U();let Q=A.offset,a=A.data.subarray(Q,Q+I),B=q(a),s=_(i);t(B,s,I,r);let C=v(s,I,o);return d.fromData(C,Array.from(A.shape),e)}var F8="AGFzbQEAAAABBwFgA39/fwACDwEDZW52Bm1lbW9yeQIAEAMJCAAAAAAAAAAABgkBfwFBgIDAAAsHnwEIEWJpdHdpc2VfY291bnRfaTY0AAARYml0d2lzZV9jb3VudF91NjQAARFiaXR3aXNlX2NvdW50X2kzMgACEWJpdHdpc2VfY291bnRfdTMyAAMRYml0d2lzZV9jb3VudF9pMTYABBFiaXR3aXNlX2NvdW50X3UxNgAFEGJpdHdpc2VfY291bnRfaTgABhBiaXR3aXNlX2NvdW50X3U4AAcKoRUIxQIDBH8BewF+AkAgAkUNAEEAIQMCQCACQQZJDQACQCABIAAgAkEDdGpPDQAgACABIAJqSQ0BCyACQX5xIgMhBCABIQUgACEGA0AgBSAG/QADAP3AASIH/R0Ae/0SIAf9HQF7/R4BIAf9DQAIAAAAAAAAAAAAAAAAAAD9WQAAACAFQQJqIQUgBkEQaiEGIARBfmoiBA0ACyACIANGDQELIANBAXIhBQJAIAJBAXFFDQAgASADaiAAIANBA3RqKQMAIgggCEI/hyIIhSAIfXs8AAAgBSEDCyACIAVGDQAgASADaiEFIAIgA2shBCAAIANBA3RqIQYDQCAFIAYpAwAiCCAIQj+HIgiFIAh9ezwAACAFQQFqIAZBCGopAwAiCCAIQj+HIgiFIAh9ezwAACAGQRBqIQYgBUECaiEFIARBfmoiBA0ACwsL2AICBH8BewJAIAJFDQBBACEDAkAgAkEISQ0AAkAgASAAIAJBA3RqTw0AIAAgASACakkNAQsgAkF+cSIDIQQgACEFIAEhBgNAIAYgBf0AAwAiB/0dAHv9EiAH/R0Be/0eASAH/Q0ACAAAAAAAAAAAAAAAAAAA/VkAAAAgBUEQaiEFIAZBAmohBiAEQX5qIgQNAAsgAiADRg0BCyADIQYCQCACIANrQQNxIgRFDQAgACADQQN0aiEFIAMhBgNAIAEgBmogBSkDAHs8AAAgBUEIaiEFIAZBAWohBiAEQX9qIgQNAAsLIAMgAmtBfEsNACAAIAZBA3RqIQUDQCABIAZqIgQgBSkDAHs8AAAgBEEBaiAFQQhqKQMAezwAACAEQQJqIAVBEGopAwB7PAAAIARBA2ogBUEYaikDAHs8AAAgAUEEaiEBIAVBIGohBSAGIAJBfGoiAkcNAAsLC9UCAgR/AXsCQCACRQ0AQQAhAwJAIAJBCEkNAAJAIAEgACACQQJ0ak8NACAAIAEgAmpJDQELIAJBfHEiAyEEIAEhBSAAIQYDQCAFIAb9AAIA/aABIgf9GwBp/REgB/0bAWn9HAEgB/0bAmn9HAIgB/0bA2n9HAMgB/0NAAQIDAAAAAAAAAAAAAAAAP1aAAAAIAVBBGohBSAGQRBqIQYgBEF8aiIEDQALIAIgA0YNAQsgA0EBciEFAkAgAkEBcUUNACABIANqIAAgA0ECdGooAgAiBiAGQR91IgZzIAZraToAACAFIQMLIAIgBUYNACABIANqIQUgAiADayEEIAAgA0ECdGohBgNAIAUgBigCACICIAJBH3UiAnMgAmtpOgAAIAVBAWogBkEEaigCACICIAJBH3UiAnMgAmtpOgAAIAZBCGohBiAFQQJqIQUgBEF+aiIEDQALCwvnAgIEfwF7AkAgAkUNAEEAIQMCQCACQQxJDQACQCABIAAgAkECdGpPDQAgACABIAJqSQ0BCyACQXxxIgMhBCAAIQUgASEGA0AgBiAF/QACACIH/RsAaf0RIAf9GwFp/RwBIAf9GwJp/RwCIAf9GwNp/RwDIAf9DQAECAwAAAAAAAAAAAAAAAD9WgAAACAFQRBqIQUgBkEEaiEGIARBfGoiBA0ACyACIANGDQELIAMhBgJAIAJBA3EiBEUNACAAIANBAnRqIQUgAyEGA0AgASAGaiAFKAIAaToAACAFQQRqIQUgBkEBaiEGIARBf2oiBA0ACwsgAyACa0F8Sw0AIAAgBkECdGohBQNAIAEgBmoiBCAFKAIAaToAACAEQQFqIAVBBGooAgBpOgAAIARBAmogBUEIaigCAGk6AAAgBEEDaiAFQQxqKAIAaToAACABQQRqIQEgBUEQaiEFIAYgAkF8aiICRw0ACwsLiwMCBH8BewJAIAJFDQBBACEDAkAgAkEISQ0AAkAgASAAIAJBAXRqTw0AIAAgASACakkNAQsgAkF4cSIDIQQgASEFIAAhBgNAIAUgBv0AAQD9gAEiB/0ZAGn9ECAH/RkBaf0aASAH/RkCaf0aAiAH/RkDaf0aAyAH/RkEaf0aBCAH/RkFaf0aBSAH/RkGaf0aBiAH/RkHaf0aByAH/Q0AAgQGCAoMDgAAAAAAAAAA/VsAAAAgBUEIaiEFIAZBEGohBiAEQXhqIgQNAAsgAiADRg0BCyADQQFyIQUCQCACQQFxRQ0AIAEgA2ogACADQQF0ai8BACIGIAbBQQ91IgZzIAZrQf//A3FpOgAAIAUhAwsgAiAFRg0AIAEgA2ohBSACIANrIQQgACADQQF0aiEGA0AgBSAGLwEAIgIgAsFBD3UiAnMgAmtB//8DcWk6AAAgBUEBaiAGQQJqLwEAIgIgAsFBD3UiAnMgAmtB//8DcWk6AAAgBkEEaiEGIAVBAmohBSAEQX5qIgQNAAsLC4sDAgR/AXsCQCACRQ0AQQAhAwJAIAJBEEkNAAJAIAEgACACQQF0ak8NACAAIAEgAmpJDQELIAJBeHEiAyEEIAAhBSABIQYDQCAGIAX9AAEAIgf9GQBp/RAgB/0ZAWn9GgEgB/0ZAmn9GgIgB/0ZA2n9GgMgB/0ZBGn9GgQgB/0ZBWn9GgUgB/0ZBmn9GgYgB/0ZB2n9GgcgB/0NAAIEBggKDA4AAAAAAAAAAP1bAAAAIAVBEGohBSAGQQhqIQYgBEF4aiIEDQALIAIgA0YNAQsgAyEGAkAgAkEDcSIERQ0AIAAgA0EBdGohBSADIQYDQCABIAZqIAUvAQBpOgAAIAVBAmohBSAGQQFqIQYgBEF/aiIEDQALCyADIAJrQXxLDQAgACAGQQF0aiEFA0AgASAGaiIEIAUvAQBpOgAAIARBAWogBUECai8BAGk6AAAgBEECaiAFQQRqLwEAaToAACAEQQNqIAVBBmovAQBpOgAAIAFBBGohASAFQQhqIQUgBiACQXxqIgJHDQALCwuVAgEEfwJAIAJFDQBBACEDAkAgAkEQSQ0AIAEgAGtBEEkNACACQXBxIgMhBCABIQUgACEGA0AgBSAG/QAAAP1g/WL9CwAAIAVBEGohBSAGQRBqIQYgBEFwaiIEDQALIAIgA0YNAQsgA0EBciEFAkAgAkEBcUUNACABIANqIAAgA2otAAAiBiAGwEEHdSIGcyAGa0H/AXFpOgAAIAUhAwsgAiAFRg0AIAAgA2ohBSABIANqIQYgAiADayEEA0AgBiAFLQAAIgIgAsBBB3UiAnMgAmtB/wFxaToAACAGQQFqIAVBAWotAAAiAiACwEEHdSICcyACa0H/AXFpOgAAIAVBAmohBSAGQQJqIQYgBEF+aiIEDQALCwuMAgEEfwJAIAJFDQBBACEDAkAgAkEQSQ0AIAEgAGtBEEkNACACQXBxIgMhBCAAIQUgASEGA0AgBiAF/QAAAP1i/QsAACAFQRBqIQUgBkEQaiEGIARBcGoiBA0ACyACIANGDQELIAMhBQJAIAJBA3EiBkUNACADIQUDQCABIAVqIAAgBWotAABpOgAAIAVBAWohBSAGQX9qIgYNAAsLIAMgAmtBfEsNAANAIAEgBWoiBiAAIAVqIgQtAABpOgAAIAZBAWogBEEBai0AAGk6AAAgBkECaiAEQQJqLQAAaToAACAGQQNqIARBA2otAABpOgAAIAFBBGohASAAQQRqIQAgBSACQXxqIgJHDQALCws=",Zn=null;function tI(){if(Zn)return Zn;let A=atob(F8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Zn=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Zn.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Zn}function jq(A,r,I){tI().exports.bitwise_count_i64(A,r,I)}function $q(A,r,I){tI().exports.bitwise_count_u64(A,r,I)}function AM(A,r,I){tI().exports.bitwise_count_i32(A,r,I)}function rM(A,r,I){tI().exports.bitwise_count_u32(A,r,I)}function IM(A,r,I){tI().exports.bitwise_count_i16(A,r,I)}function eM(A,r,I){tI().exports.bitwise_count_u16(A,r,I)}function tM(A,r,I){tI().exports.bitwise_count_i8(A,r,I)}function oM(A,r,I){tI().exports.bitwise_count_u8(A,r,I)}var G8=64,S8={int64:jq,uint64:$q,int32:AM,uint32:rM,int16:IM,uint16:eM,int8:tM,uint8:oM},R8={int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function nM(A){if(!A.isCContiguous)return null;let r=A.size;if(r<G8*Y.thresholdMultiplier)return null;let I=A.dtype,e=S8[I],t=R8[I];if(!e||!t)return null;let o=t.BYTES_PER_ELEMENT,n=r*o,g=r;J(n+g),U();let i=A.offset,Q=A.data.subarray(i,i+r),a=q(Q),B=_(g);e(a,B,r);let s=v(B,r,Uint8Array);return d.fromData(s,Array.from(A.shape),"uint8")}function Er(A,r){if(!pA(A)&&A!=="bool")throw new TypeError(`ufunc '${r}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function zn(A,r){return A.isCContiguous&&r.isCContiguous&&A.shape.length===r.shape.length&&A.shape.every((I,e)=>I===r.shape[e])}function QM(A,r){if(Er(A.dtype,"bitwise_and"),typeof r=="number")return q8(A,r);if(Er(r.dtype,"bitwise_and"),zn(A,r)){let I=bq(A,r);return I||k8(A,r)}return yA(A,r,(I,e)=>I&e,"bitwise_and")}function k8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C&E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]&C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]&n[i+a];return e}function q8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]&B;else for(let C=0;C<n;C++)a[C]=s[o+C]&B}else for(let s=0;s<n;s++)a[s]=A.iget(s)&B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]&r;else for(let a=0;a<n;a++)Q[a]=t[o+a]&r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))&r;return i}function aM(A,r){if(Er(A.dtype,"bitwise_or"),typeof r=="number")return x8(A,r);if(Er(r.dtype,"bitwise_or"),zn(A,r)){let I=pq(A,r);return I||M8(A,r)}return yA(A,r,(I,e)=>I|e,"bitwise_or")}function M8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C|E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]|C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]|n[i+a];return e}function x8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]|B;else for(let C=0;C<n;C++)a[C]=s[o+C]|B}else for(let s=0;s<n;s++)a[s]=A.iget(s)|B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]|r;else for(let a=0;a<n;a++)Q[a]=t[o+a]|r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))|r;return i}function BM(A,r){if(Er(A.dtype,"bitwise_xor"),typeof r=="number")return U8(A,r);if(Er(r.dtype,"bitwise_xor"),zn(A,r)){let I=wq(A,r);return I||J8(A,r)}return yA(A,r,(I,e)=>I^e,"bitwise_xor")}function J8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;if(!L(A.dtype)||!L(r.dtype))for(let s=0;s<t;s++){let C=typeof o[g+s]=="bigint"?o[g+s]:BigInt(Math.round(Number(o[g+s]))),E=typeof n[i+s]=="bigint"?n[i+s]:BigInt(Math.round(Number(n[i+s])));a[s]=C^E}else{let s=o,C=n;for(let E=0;E<t;E++)a[E]=s[g+E]^C[i+E]}}else for(let a=0;a<t;a++)Q[a]=o[g+a]^n[i+a];return e}function U8(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]^B;else for(let C=0;C<n;C++)a[C]=s[o+C]^B}else for(let s=0;s<n;s++)a[s]=A.iget(s)^B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]^r;else for(let a=0;a<n;a++)Q[a]=t[o+a]^r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))^r;return i}function $u(A){Er(A.dtype,"bitwise_not");let r=Nq(A);if(r)return r;let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q;if(g){let B=t;if(o===0)for(let s=0;s<n;s++)a[s]=~B[s];else for(let s=0;s<n;s++)a[s]=~B[o+s]}else for(let B=0;B<n;B++)a[B]=~A.iget(B)}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=~t[a];else for(let a=0;a<n;a++)Q[a]=~t[o+a];else for(let a=0;a<n;a++)Q[a]=~Number(A.iget(a));return i}function sM(A){return $u(A)}function CM(A,r){if(Er(A.dtype,"left_shift"),typeof r=="number")return iM(A,r);if(Er(r.dtype,"left_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=Rq(A,I);return e||iM(A,I)}if(zn(A,r)){let I=Sq(A,r);return I||L8(A,r)}return yA(A,r,(I,e)=>I<<e,"left_shift")}function L8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let B=0;B<t;B++){let s=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),C=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=s<<C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]<<n[i+a];return e}function iM(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]<<B;else for(let C=0;C<n;C++)a[C]=s[o+C]<<B}else for(let s=0;s<n;s++)a[s]=A.iget(s)<<B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]<<r;else for(let a=0;a<n;a++)Q[a]=t[o+a]<<r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))<<r;return i}function EM(A,r){if(Er(A.dtype,"right_shift"),typeof r=="number")return gM(A,r);if(Er(r.dtype,"right_shift"),r.size===1||r.ndim===1&&r.shape[0]===1){let I=Number(r.iget(0)),e=zq(A,I);return e||gM(A,I)}if(zn(A,r)){let I=Zq(A,r);return I||H8(A,r)}return yA(A,r,(I,e)=>I>>e,"right_shift")}function H8(A,r){let I=IA(A.dtype,r.dtype),e=d.zeros(Array.from(A.shape),I),t=A.size,o=A.data,n=r.data,g=A.offset,i=r.offset,Q=e.data;if(L(I)){let a=Q;for(let B=0;B<t;B++){let s=typeof o[g+B]=="bigint"?o[g+B]:BigInt(Math.round(Number(o[g+B]))),C=typeof n[i+B]=="bigint"?n[i+B]:BigInt(Math.round(Number(n[i+B])));a[B]=s>>C}}else for(let a=0;a<t;a++)Q[a]=o[g+a]>>n[i+a];return e}function gM(A,r){let I=A.dtype,e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,I),Q=i.data;if(L(I)){let a=Q,B=BigInt(Math.round(r));if(g){let s=t;if(o===0)for(let C=0;C<n;C++)a[C]=s[C]>>B;else for(let C=0;C<n;C++)a[C]=s[o+C]>>B}else for(let s=0;s<n;s++)a[s]=A.iget(s)>>B}else if(g)if(o===0)for(let a=0;a<n;a++)Q[a]=t[a]>>r;else for(let a=0;a<n;a++)Q[a]=t[o+a]>>r;else for(let a=0;a<n;a++)Q[a]=Number(A.iget(a))>>r;return i}function uM(A,r=-1,I="big"){let e=Array.from(A.shape),t=e.length;if(r<0&&(r=t+r),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=e[r],n=Math.ceil(o/8),g=[...e];g[r]=n;let i=d.zeros(g,"uint8"),Q=i.data,a=A.offset,B=A.isCContiguous;if(t===1){for(let c=0;c<n;c++){let D=0;for(let y=0;y<8;y++){let l=c*8+y;if(l<o){let h=B?Number(A.data[a+l])!==0?1:0:Number(A.iget(l))!==0?1:0;I==="big"?D|=h<<7-y:D|=h<<y}}Q[c]=D}return i}let s=e.slice(0,r),C=e.slice(r+1),E=s.reduce((c,D)=>c*D,1),u=C.reduce((c,D)=>c*D,1),f=QQ(e),m=QQ(g);for(let c=0;c<E;c++)for(let D=0;D<u;D++)for(let y=0;y<n;y++){let l=0;for(let w=0;w<8;w++){let N=y*8+w;if(N<o){let F=0,S=c;for(let X=0;X<r;X++){let P=X<r-1?s.slice(X+1).reduce((V,$)=>V*$,1):1,Z=Math.floor(S/P);S%=P,F+=Z*f[X]}F+=N*f[r];let x=D;for(let X=r+1;X<t;X++){let P=X<t-1?C.slice(X-r).reduce((V,$)=>V*$,1):1,Z=Math.floor(x/P);x%=P,F+=Z*f[X]}let H=B?Number(A.data[a+F])!==0?1:0:Number(A.iget(F))!==0?1:0;I==="big"?l|=H<<7-w:l|=H<<w}}let h=0,b=c;for(let w=0;w<r;w++){let N=w<r-1?s.slice(w+1).reduce((S,x)=>S*x,1):1,F=Math.floor(b/N);b%=N,h+=F*m[w]}h+=y*m[r];let p=D;for(let w=r+1;w<t;w++){let N=w<t-1?C.slice(w-r).reduce((S,x)=>S*x,1):1,F=Math.floor(p/N);p%=N,h+=F*m[w]}Q[h]=l}return i}function cM(A,r=-1,I=-1,e="big"){if(A.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let t=Array.from(A.shape),o=t.length;if(r<0&&(r=o+r),r<0||r>=o)throw new Error(`axis ${r} is out of bounds for array of dimension ${o}`);let n=t[r],g=n*8;I>=0&&(g=I);let i=[...t];i[r]=g;let Q=d.zeros(i,"uint8"),a=Q.data,B=A.offset,s=A.isCContiguous;if(o===1){for(let D=0;D<n;D++){let y=Number(s?A.data[B+D]:A.iget(D));for(let l=0;l<8;l++){let h=D*8+l;if(h>=g)break;e==="big"?a[h]=y>>7-l&1:a[h]=y>>l&1}}return Q}let C=t.slice(0,r),E=t.slice(r+1),u=C.reduce((D,y)=>D*y,1),f=E.reduce((D,y)=>D*y,1),m=QQ(t),c=QQ(i);for(let D=0;D<u;D++)for(let y=0;y<f;y++)for(let l=0;l<n;l++){let h=0,b=D;for(let N=0;N<r;N++){let F=N<r-1?C.slice(N+1).reduce((x,H)=>x*H,1):1,S=Math.floor(b/F);b%=F,h+=S*m[N]}h+=l*m[r];let p=y;for(let N=r+1;N<o;N++){let F=N<o-1?E.slice(N-r).reduce((x,H)=>x*H,1):1,S=Math.floor(p/F);p%=F,h+=S*m[N]}let w=Number(s?A.data[B+h]:A.iget(h));for(let N=0;N<8;N++){let F=l*8+N;if(F>=g)break;let S=0;b=D;for(let x=0;x<r;x++){let H=x<r-1?C.slice(x+1).reduce((P,Z)=>P*Z,1):1,X=Math.floor(b/H);b%=H,S+=X*c[x]}S+=F*c[r],p=y;for(let x=r+1;x<o;x++){let H=x<o-1?E.slice(x-r).reduce((P,Z)=>P*Z,1):1,X=Math.floor(p/H);p%=H,S+=X*c[x]}e==="big"?a[S]=w>>7-N&1:a[S]=w>>N&1}}return Q}function QQ(A){let r=A.length,I=new Array(r),e=1;for(let t=r-1;t>=0;t--)I[t]=e,e*=A[t];return I}function DM(A){let r=A.dtype;Er(r,"bitwise_count");let I=nM(A);if(I)return I;let e=Array.from(A.shape),t=A.data,o=A.offset,n=A.size,g=A.isCContiguous,i=d.zeros(e,"uint8"),Q=i.data,a=r==="int8"||r==="int16"||r==="int32"||r==="int64";if(L(r))if(g){let B=t;if(o===0)for(let s=0;s<n;s++){let C=B[s];Q[s]=ju(a&&C<0n?-C:C)}else for(let s=0;s<n;s++){let C=B[o+s];Q[s]=ju(a&&C<0n?-C:C)}}else for(let B=0;B<n;B++){let s=A.iget(B);Q[B]=ju(a&&s<0n?-s:s)}else if(a)if(g)if(o===0)for(let B=0;B<n;B++)Q[B]=$I(Math.abs(t[B]));else for(let B=0;B<n;B++)Q[B]=$I(Math.abs(t[o+B]));else for(let B=0;B<n;B++)Q[B]=$I(Math.abs(Number(A.iget(B))));else{let B=r==="uint8"?255:r==="uint16"?65535:4294967295;if(g)if(o===0)for(let s=0;s<n;s++)Q[s]=$I(t[s]&B);else for(let s=0;s<n;s++)Q[s]=$I(t[o+s]&B);else for(let s=0;s<n;s++)Q[s]=$I(Number(A.iget(s))&B)}return i}function $I(A){A=A>>>0;let r=0;for(;A!==0;)A=A&A-1,r++;return r}function ju(A){A<0n&&(A=BigInt.asUintN(64,A));let r=0;for(;A!==0n;)A=A&A-1n,r++;return r}function jn(A,r){let I=typeof r=="number"?r:G(r);return R(QM(G(A),I))}function $n(A,r){let I=typeof r=="number"?r:G(r);return R(aM(G(A),I))}function Ai(A,r){let I=typeof r=="number"?r:G(r);return R(BM(G(A),I))}function ri(A){return R($u(G(A)))}function Ii(A){return R(sM(G(A)))}function ei(A,r){let I=typeof r=="number"?r:G(r);return R(CM(G(A),I))}function ti(A,r){let I=typeof r=="number"?r:G(r);return R(EM(G(A),I))}function Ac(A,r,I){return R(uM(G(A),r,I))}function rc(A,r,I,e){return R(cM(G(A),r,I,e))}function Ic(A){return R(DM(G(A)))}function aQ(A){if(!isFinite(A))return A;let r=Math.floor(A),I=A-r;return Math.abs(I-.5)<1e-10?r%2===0?r:r+1:Math.round(A)}function fM(A,r=0){eA(A.dtype,"around","Rounding is not defined for complex numbers.");let I=A.dtype,e=Array.from(A.shape),t=A.size,o=I==="float32"?"float32":"float64",n=d.zeros(e,o),g=n.data,i=Math.pow(10,r);if(A.isCContiguous){let Q=A.data,a=A.offset;for(let B=0;B<t;B++){let s=Number(Q[a+B]);g[B]=aQ(s*i)/i}}else for(let Q=0;Q<t;Q++){let a=Number(A.iget(Q));g[Q]=aQ(a*i)/i}return n}function mM(A){eA(A.dtype,"ceil","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.ceil(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.ceil(Number(A.iget(g)));return o}function yM(A){eA(A.dtype,"fix","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function lM(A){eA(A.dtype,"floor","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.floor(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.floor(Number(A.iget(g)));return o}function hM(A){eA(A.dtype,"rint","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=aQ(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=aQ(Number(A.iget(g)));return o}function dM(A){eA(A.dtype,"trunc","Rounding is not defined for complex numbers.");let r=A.dtype,I=Array.from(A.shape),e=A.size,t=r==="float32"?"float32":"float64",o=d.zeros(I,t),n=o.data;if(A.isCContiguous){let g=A.data,i=A.offset;for(let Q=0;Q<e;Q++)n[Q]=Math.trunc(Number(g[i+Q]))}else for(let g=0;g<e;g++)n[g]=Math.trunc(Number(A.iget(g)));return o}function Ae(A,r=0){return R(fM(G(A),r))}var BQ=Ae;function oi(A){return R(mM(G(A)))}function ni(A){return R(yM(G(A)))}function ii(A){return R(lM(G(A)))}function gi(A){return R(hM(G(A)))}function Qi(A){return R(dM(G(A)))}function ec(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?0:t?1:o||A<I?-1:A>I?1:r<e?-1:r>e?1:0}function v8(A,r,I,e){let t=isNaN(A)||isNaN(r),o=isNaN(I)||isNaN(e);return t&&o?!0:t||o?!1:A===I&&r===e}function rr(A,r=!1,I=!1,e=!1,t){if(t!==void 0){let h=Array.from(A.shape),b=h.length,p=t<0?b+t:t;if(p<0||p>=b)throw new Error(`unique: axis ${t} out of bounds for array of dimension ${b}`);let w=h[p],N=[];for(let P=0;P<w;P++){let Z=[],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let CA=V.length-1;CA>=0;CA--)rA[CA]=z%V[CA],z=Math.floor(z/V[CA]);let oA=[],iA=0;for(let CA=0;CA<b;CA++)oA.push(CA===p?P:rA[iA++]);Z.push(Number(A.get(...oA)))}N.push(Z.join(","))}let F=N.map((P,Z)=>({key:P,i:Z}));F.sort((P,Z)=>P.key<Z.key?-1:P.key>Z.key?1:0);let S=[],x;for(let{key:P,i:Z}of F)P!==x&&(S.push(Z),x=P);let H=h.map((P,Z)=>Z===p?S.length:P),X=d.zeros(H,A.dtype);for(let P=0;P<S.length;P++){let Z=S[P],V=h.filter((O,z)=>z!==p),$=V.reduce((O,z)=>O*z,1);for(let O=0;O<$;O++){let z=O,rA=new Array(V.length);for(let dA=V.length-1;dA>=0;dA--)rA[dA]=z%V[dA],z=Math.floor(z/V[dA]);let oA=[],iA=[],CA=0;for(let dA=0;dA<b;dA++)oA.push(dA===p?Z:rA[CA]),iA.push(dA===p?P:rA[CA]),dA!==p&&CA++;X.set(iA,Number(A.get(...oA)))}}return X}let o=A.dtype,n=A.size,g=A.data,i=A.offset;if(k(o)){let h=g,b=[];for(let O=0;O<n;O++)b.push({re:h[(i+O)*2],im:h[(i+O)*2+1],index:O});b.sort((O,z)=>ec(O.re,O.im,z.re,z.im));let p=[],w=[],N=new Array(n),F=[],S,x,H=0;for(let O=0;O<b.length;O++){let{re:z,im:rA,index:oA}=b[O];S===void 0||!v8(z,rA,S,x)?(S!==void 0&&F.push(H),p.push({re:z,im:rA}),w.push(oA),H=1,S=z,x=rA):H++}H>0&&F.push(H);let X=new Map,P=-1;for(let O=0;O<p.length;O++){let{re:z,im:rA}=p[O];isNaN(z)||isNaN(rA)?P=O:X.set(`${z},${rA}`,O)}for(let O=0;O<n;O++){let z=h[(i+O)*2],rA=h[(i+O)*2+1];isNaN(z)||isNaN(rA)?N[O]=P:N[O]=X.get(`${z},${rA}`)}let Z=d.zeros([p.length],o),V=Z.data;for(let O=0;O<p.length;O++)V[O*2]=p[O].re,V[O*2+1]=p[O].im;if(!r&&!I&&!e)return Z;let $={values:Z};if(r){let O=d.zeros([w.length],"int32"),z=O.data;for(let rA=0;rA<w.length;rA++)z[rA]=w[rA];$.indices=O}if(I){let O=d.zeros([N.length],"int32"),z=O.data;for(let rA=0;rA<N.length;rA++)z[rA]=N[rA];$.inverse=O}if(e){let O=d.zeros([F.length],"int32"),z=O.data;for(let rA=0;rA<F.length;rA++)z[rA]=F[rA];$.counts=O}return $}let Q=[];for(let h=0;h<n;h++)Q.push({value:Number(g[i+h]),index:h});Q.sort((h,b)=>isNaN(h.value)&&isNaN(b.value)?0:isNaN(h.value)?1:isNaN(b.value)?-1:h.value-b.value);let a=[],B=[],s=new Array(n),C=[],E,u=0;for(let h=0;h<Q.length;h++){let{value:b,index:p}=Q[h];E===void 0||isNaN(b)&&!isNaN(E)||!isNaN(b)&&isNaN(E)||!isNaN(b)&&!isNaN(E)&&b!==E?(E!==void 0&&C.push(u),a.push(b),B.push(p),u=1,E=b):u++}u>0&&C.push(u);let f=new Map,m=-1;for(let h=0;h<a.length;h++){let b=a[h];isNaN(b)?m=h:f.set(b,h)}for(let h=0;h<n;h++){let b=Number(g[i+h]);isNaN(b)?s[h]=m:s[h]=f.get(b)}let c=d.zeros([a.length],o),D=c.data,y=D instanceof BigInt64Array||D instanceof BigUint64Array;for(let h=0;h<a.length;h++)D[h]=y?BigInt(a[h]):a[h];if(!r&&!I&&!e)return c;let l={values:c};if(r){let h=d.zeros([B.length],"int32"),b=h.data;for(let p=0;p<B.length;p++)b[p]=B[p];l.indices=h}if(I){let h=d.zeros([s.length],"int32"),b=h.data;for(let p=0;p<s.length;p++)b[p]=s[p];l.inverse=h}if(e){let h=d.zeros([C.length],"int32"),b=h.data;for(let p=0;p<C.length;p++)b[p]=C[p];l.counts=h}return l}function Sr(A,r,I,e=0){if(I){let t=Number(A[(e+r)*2]),o=Number(A[(e+r)*2+1]);return`${t},${o}`}return String(Number(A[e+r]))}function bM(A,r){return tc(A,r)}function pM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set;for(let a=0;a<o.size;a++)n.add(Sr(o.data,a,e));let g=[];for(let a=0;a<t.size;a++){let B=Sr(t.data,a,e);n.has(B)&&g.push(a)}if(e){let a=d.zeros([g.length],I),B=a.data,s=t.data;for(let C=0;C<g.length;C++){let E=g[C];B[C*2]=s[E*2],B[C*2+1]=s[E*2+1]}return a}let i=d.zeros([g.length],I),Q=i.data;for(let a=0;a<g.length;a++)Q[a]=t.data[g[a]];return i}function tc(A,r){let I=Array.from(A.shape),e=A.size,t=k(A.dtype),o=new Set;for(let i=0;i<r.size;i++)o.add(Sr(r.data,i,t,r.offset));let n=d.zeros(I,"bool"),g=n.data;for(let i=0;i<e;i++){let Q=Sr(A.data,i,t,A.offset);g[i]=o.has(Q)?1:0}return n}function wM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=new Set;for(let Q=0;Q<r.size;Q++)o.add(Sr(r.data,Q,e,r.offset));let n=[];for(let Q=0;Q<t.size;Q++){let a=Sr(t.data,Q,e);o.has(a)||n.push(Q)}if(e){let Q=d.zeros([n.length],I),a=Q.data,B=t.data;for(let s=0;s<n.length;s++){let C=n[s];a[s*2]=B[C*2],a[s*2+1]=B[C*2+1]}return Q}let g=d.zeros([n.length],I),i=g.data;for(let Q=0;Q<n.length;Q++)i[Q]=t.data[n[Q]];return g}function NM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set,g=new Set;for(let C=0;C<t.size;C++)n.add(Sr(t.data,C,e));for(let C=0;C<o.size;C++)g.add(Sr(o.data,C,e));let i=[],Q=[];for(let C=0;C<t.size;C++){let E=Sr(t.data,C,e);g.has(E)||i.push(C)}for(let C=0;C<o.size;C++){let E=Sr(o.data,C,e);n.has(E)||Q.push(C)}if(e){let C=[],E=t.data,u=o.data;for(let c of i)C.push({re:E[c*2],im:E[c*2+1]});for(let c of Q)C.push({re:u[c*2],im:u[c*2+1]});C.sort((c,D)=>ec(c.re,c.im,D.re,D.im));let f=d.zeros([C.length],I),m=f.data;for(let c=0;c<C.length;c++)m[c*2]=C[c].re,m[c*2+1]=C[c].im;return f}let a=[];for(let C of i)a.push(Number(t.data[C]));for(let C of Q)a.push(Number(o.data[C]));a.sort((C,E)=>isNaN(C)&&isNaN(E)?0:isNaN(C)?1:isNaN(E)?-1:C-E);let B=d.zeros([a.length],I),s=B.data;for(let C=0;C<a.length;C++)s[C]=a[C];return B}function FM(A,r){let I=A.dtype,e=k(I),t=rr(A),o=rr(r),n=new Set,g=[];if(e){let B=t.data,s=o.data;for(let u=0;u<t.size;u++){let f=B[u*2],m=B[u*2+1],c=`${f},${m}`;n.has(c)||(n.add(c),g.push({re:f,im:m}))}for(let u=0;u<o.size;u++){let f=s[u*2],m=s[u*2+1],c=`${f},${m}`;n.has(c)||(n.add(c),g.push({re:f,im:m}))}g.sort((u,f)=>ec(u.re,u.im,f.re,f.im));let C=d.zeros([g.length],I),E=C.data;for(let u=0;u<g.length;u++)E[u*2]=g[u].re,E[u*2+1]=g[u].im;return C}let i=[];for(let B=0;B<t.size;B++){let s=Number(t.data[B]),C=String(s);n.has(C)||(n.add(C),i.push(s))}for(let B=0;B<o.size;B++){let s=Number(o.data[B]),C=String(s);n.has(C)||(n.add(C),i.push(s))}i.sort((B,s)=>isNaN(B)&&isNaN(s)?0:isNaN(B)?1:isNaN(s)?-1:B-s);let Q=d.zeros([i.length],I),a=Q.data;for(let B=0;B<i.length;B++)a[B]=i[B];return Q}function GM(A,r="fb"){let I=A.dtype,e=A.data,t=A.size,o=A.offset,n=k(I);if(t===0)return d.zeros([0],I);let g=C=>{if(n){let E=e[(o+C)*2],u=e[(o+C)*2+1];return E===0&&u===0}return Number(e[o+C])===0},i=0;if(r==="f"||r==="fb")for(;i<t&&g(i);)i++;let Q=t-1;if(r==="b"||r==="fb")for(;Q>=i&&g(Q);)Q--;if(i>Q)return d.zeros([0],I);let a=Q-i+1;if(n){let C=d.zeros([a],I),E=C.data;for(let u=0;u<a;u++)E[u*2]=e[(o+i+u)*2],E[u*2+1]=e[(o+i+u)*2+1];return C}let B=d.zeros([a],I),s=B.data;for(let C=0;C<a;C++)s[C]=e[o+i+C];return B}function SM(A){let I=rr(A,!0,!0,!0);return{values:I.values,indices:I.indices,inverse_indices:I.inverse,counts:I.counts}}function RM(A){let I=rr(A,!1,!1,!0);return{values:I.values,counts:I.counts}}function kM(A){let I=rr(A,!1,!0,!1);return{values:I.values,inverse_indices:I.inverse}}function qM(A){return rr(A)}function sQ(A,r=!1,I=!1,e=!1,t){let o=rr(G(A),r,I,e,t);return"values"in o?{values:R(o.values),indices:o.indices?R(o.indices):void 0,inverse:o.inverse?R(o.inverse):void 0,counts:o.counts?R(o.counts):void 0}:R(o)}function oc(A,r){return R(bM(G(A),G(r)))}function nc(A,r){return R(pM(G(A),G(r)))}function ic(A,r){return R(tc(G(A),G(r)))}function gc(A,r){return R(wM(G(A),G(r)))}function Qc(A,r){return R(NM(G(A),G(r)))}function ac(A,r){return R(FM(G(A),G(r)))}function Bc(A,r){return R(GM(G(A),r))}function CQ(A){let r=SM(G(A));return{values:R(r.values),indices:R(r.indices),inverse_indices:R(r.inverse_indices),counts:R(r.counts)}}function EQ(A){let r=RM(G(A));return{values:R(r.values),counts:R(r.counts)}}function uQ(A){let r=kM(G(A));return{values:R(r.values),inverse_indices:R(r.inverse_indices)}}function sc(A){return R(qM(G(A)))}var T8="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHIQINY29ycmVsYXRlX2Y2NAAADWNvcnJlbGF0ZV9mMzIAAQqtCgKOBQQIfwJ7A38BfAJAIANBf2oiBiABaiIHRQ0AIANBA3QgAmoiA0F4aiEIIANBCGohCSAAIQpBACELA0ACQAJAQQAgCyIMIAZrIgMgAyAMSxsiA0EEaiAMQQFqIgsgASAMIAFJGyINTQ0A/QwAAAAAAAAAAAAAAAAAAAAAIg4hDwwBCyAMIAwgBiAMIAZJGyIDayEQIAkgA0EDdCIDayECIAogA2shEf0MAAAAAAAAAAAAAAAAAAAAACIPIQ4DQCAOIBFBEGr9AAMAIAL9AAMA/fIB/fABIQ4gDyAR/QADACACQXBq/QADAP3yAf3wASEPIBBBCGohEiACQSBqIQIgEUEgaiERIBBBBGoiAyEQIBIgDU0NAAsLAkACQCADQQJqIA1NDQAgAyESDAELIAggA0EDdCIRaiECIAAgEWohEQNAIA8gEf0AAwAgAv0AAwD98gH98AEhDyADQQRqIRAgAkEQaiECIBFBEGohESADQQJqIhIhAyAQIA1NDQALCyAOIA/98AEiD/0hACAP/SEBoCETAkAgEiANTw0AAkACQCANIBJrQQNxIhENACASIQIMAQsgEkEDdCEDIBIhAgNAIBMgACADaisDACAIIANqKwMAoqAhEyADQQhqIQMgAkEBaiECIBFBf2oiEQ0ACwsgEiANa0F8Sw0AIAJBA3QhAyANIAJrIRADQCATIAAgA2oiAisDACAIIANqIhErAwCioCACQQhqKwMAIBFBCGorAwCioCACQRBqKwMAIBFBEGorAwCioCACQRhqKwMAIBFBGGorAwCioCETIANBIGohAyAQQXxqIhANAAsLIAQgDEEDdGogEzkDACAIQXhqIQggCkEIaiEKIAsgB0cNAAsLC5oFBAh/AnsDfwF9AkAgA0F/aiIGIAFqIgdFDQAgA0ECdCACaiIDQXxqIQggA0EMaiEJIAAhCkEAIQsDQAJAAkBBACALIgwgBmsiAyADIAxLGyIDQQhqIAxBAWoiCyABIAwgAUkbIg1NDQD9DAAAAAAAAAAAAAAAAAAAAAAiDiEPDAELIAwgDCAGIAwgBkkbIgNrIRAgCSADQQJ0IgNrIQIgCiADayER/QwAAAAAAAAAAAAAAAAAAAAAIg8hDgNAIA4gEUEQav0AAgAgAv0AAgD95gH95AEhDiAPIBH9AAIAIAJBcGr9AAIA/eYB/eQBIQ8gEEEQaiESIAJBIGohAiARQSBqIREgEEEIaiIDIRAgEiANTQ0ACwsCQAJAIANBBGogDU0NACADIRIMAQsgCCADQQJ0IhFqIQIgACARaiERA0AgDyAR/QACACAC/QACAP3mAf3kASEPIANBCGohECACQRBqIQIgEUEQaiERIANBBGoiEiEDIBAgDU0NAAsLIA4gD/3kASIP/R8DIA/9HwIgD/0fACAP/R8BkpKSIRMCQCASIA1PDQACQAJAIA0gEmtBA3EiEQ0AIBIhAgwBCyASQQJ0IQMgEiECA0AgEyAAIANqKgIAIAggA2oqAgCUkiETIANBBGohAyACQQFqIQIgEUF/aiIRDQALCyASIA1rQXxLDQAgAkECdCEDIA0gAmshEANAIBMgACADaiICKgIAIAggA2oiESoCAJSSIAJBBGoqAgAgEUEEaioCAJSSIAJBCGoqAgAgEUEIaioCAJSSIAJBDGoqAgAgEUEMaioCAJSSIRMgA0EQaiEDIBBBfGoiEA0ACwsgBCAMQQJ0aiATOAIAIAhBfGohCCAKQQRqIQogCyAHRw0ACwsL",ai=null;function MM(){if(ai)return ai;let A=atob(T8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);ai=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=ai.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),ai}function xM(A,r,I,e,t,o){MM().exports.correlate_f64(A,r,I,e,t,o)}function JM(A,r,I,e,t,o){MM().exports.correlate_f32(A,r,I,e,t,o)}var P8=32,K8={float64:xM,float32:JM},V8={float64:Float64Array,float32:Float32Array};function UM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<P8*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=K8[o],g=V8[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,B=t*i;J(Q+a+B),U();let s=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(s,s+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[s+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let f=q(E),m=q(u),c=_(B);n(f,I,m,e,c,t);let D=v(c,t,g);return d.fromData(D,[t],o)}var W8="AGFzbQEAAAABCgFgBn9/f39/fwACDwEDZW52Bm1lbW9yeQIAEAMDAgAABgkBfwFBgIDAAAsHHwIMY29udm9sdmVfZjY0AAAMY29udm9sdmVfZjMyAAEKiQMCxgEDA38BfAR/AkAgA0F/aiIGIAFqIgdFDQBBACEIA0BEAAAAAAAAAAAhCQJAQQAgCCAGayIDIAMgCEsbIgogCEEBaiILIAEgCCABSRsiDE8NACAAIAggBiAIIAZJG0EDdCINayEDIAIgDWohDUQAAAAAAAAAACEJA0AgCSADKwMAIA0rAwCioCEJIANBCGohAyANQXhqIQ0gCkEBaiIKIAxJDQALCyAEIAhBA3RqIAk5AwAgAEEIaiEAIAshCCALIAdHDQALCwu+AQMDfwF9BH8CQCADQX9qIgYgAWoiB0UNAEEAIQgDQEMAAAAAIQkCQEEAIAggBmsiAyADIAhLGyIKIAhBAWoiCyABIAggAUkbIgxPDQAgACAIIAYgCCAGSRtBAnQiDWshAyACIA1qIQ1DAAAAACEJA0AgCSADKgIAIA0qAgCUkiEJIANBBGohAyANQXxqIQ0gCkEBaiIKIAxJDQALCyAEIAhBAnRqIAk4AgAgAEEEaiEAIAshCCALIAdHDQALCws=",Bi=null;function LM(){if(Bi)return Bi;let A=atob(W8),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Bi=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Bi.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Bi}function HM(A,r,I,e,t,o){LM().exports.convolve_f64(A,r,I,e,t,o)}function _M(A,r,I,e,t,o){LM().exports.convolve_f32(A,r,I,e,t,o)}var O8=32,Z8={float64:HM,float32:_M},z8={float64:Float64Array,float32:Float32Array};function YM(A,r){if(!A.isCContiguous||!r.isCContiguous)return null;let I=A.size,e=r.size,t=I+e-1;if(t<O8*Y.thresholdMultiplier)return null;let o=A.dtype==="float32"&&r.dtype==="float32"?"float32":"float64",n=Z8[o],g=z8[o];if(!n||!g)return null;let i=g.BYTES_PER_ELEMENT,Q=I*i,a=e*i,B=t*i;J(Q+a+B),U();let s=A.offset,C=r.offset,E,u;if(A.dtype===o)E=A.data.subarray(s,s+I);else{let y=new g(I),l=A.data;for(let h=0;h<I;h++)y[h]=Number(l[s+h]);E=y}if(r.dtype===o)u=r.data.subarray(C,C+e);else{let y=new g(e),l=r.data;for(let h=0;h<e;h++)y[h]=Number(l[C+h]);u=y}let f=q(E),m=q(u),c=_(B);n(f,I,m,e,c,t);let D=v(c,t,g);return d.fromData(D,[t],o)}function vM(A,r,I=0){eA(A.dtype,"bincount","bincount requires integer input.");let e=A.data,t=A.size,o=0;for(let g=0;g<t;g++){let i=Number(e[g]);if(i<0||!Number.isInteger(i))throw new Error("'x' argument must contain non-negative integers");i>o&&(o=i)}let n=Math.max(o+1,I);if(r!==void 0){if(r.size!==t)throw new Error("weights array must have same length as x");let g=r.data,i=new Float64Array(n);for(let Q=0;Q<t;Q++){let a=Number(e[Q]);i[a]+=Number(g[Q])}return d.fromData(i,[n],"float64")}else{let g=new Float64Array(n);for(let i=0;i<t;i++){let Q=Number(e[i]);g[Q]++}return d.fromData(g,[n],"float64")}}function XM(A,r,I=!1){eA(A.dtype,"digitize","digitize requires real numbers."),eA(r.dtype,"digitize","digitize requires real numbers.");let e=A.data,t=r.data,o=A.size,n=r.size,g=new Float64Array(o),i=!0;n>1&&(i=Number(t[1])>=Number(t[0]));for(let Q=0;Q<o;Q++){let a=Number(e[Q]),B;if(i)I?B=j8(t,n,a):B=si(t,n,a);else if(I)for(B=0;B<n&&Number(t[B])>=a;)B++;else for(B=0;B<n&&Number(t[B])>a;)B++;g[Q]=B}return d.fromData(g,[...A.shape],"float64")}function j8(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<I?e=o+1:t=o}return e}function si(A,r,I){let e=0,t=r;for(;e<t;){let o=e+t>>>1;Number(A[o])<=I?e=o+1:t=o}return e}function TM(A,r=10,I,e=!1,t){eA(A.dtype,"histogram","histogram requires real numbers."),typeof r!="number"&&eA(r.dtype,"histogram","histogram requires real numbers.");let o=A.data,n=A.size,g;if(typeof r=="number"){let B,s;if(I)[B,s]=I;else{B=1/0,s=-1/0;for(let E=0;E<n;E++){let u=Number(o[E]);u<B&&(B=u),u>s&&(s=u)}B===s&&(B=B-.5,s=s+.5)}g=[];let C=(s-B)/r;for(let E=0;E<=r;E++)g.push(B+E*C)}else{let B=r.data;g=[];for(let s=0;s<r.size;s++)g.push(Number(B[s]))}let i=g.length-1,Q=new Float64Array(i),a=t?.data;for(let B=0;B<n;B++){let s=Number(o[B]),C=a?Number(a[B]):1,E=si(g,g.length,s)-1;if(!(E<0)){if(E>=i)if(s===g[i])E=i-1;else continue;Q[E]+=C}}if(e){let B=0;for(let s=0;s<i;s++)B+=Q[s];for(let s=0;s<i;s++){let C=g[s+1]-g[s];Q[s]=Q[s]/(B*C)}}return{hist:d.fromData(Q,[i],"float64"),bin_edges:d.fromData(new Float64Array(g),[g.length],"float64")}}function PM(A,r,I=10,e,t=!1,o){eA(A.dtype,"histogram2d","histogram2d requires real numbers."),eA(r.dtype,"histogram2d","histogram2d requires real numbers.");let n=A.data,g=r.data,i=A.size;if(r.size!==i)throw new Error("x and y must have the same length");let Q,a,B,s;if(typeof I=="number"?(B=I,s=I):Array.isArray(I)&&I.length===2?(I[0],B=I[0],s=I[1]):(B=10,s=10),typeof B=="number"){let m,c;if(e)[m,c]=e[0];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(n[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}Q=[];let D=(c-m)/B;for(let y=0;y<=B;y++)Q.push(m+y*D)}else{let m=B.data;Q=[];for(let c=0;c<B.size;c++)Q.push(Number(m[c]))}if(typeof s=="number"){let m,c;if(e)[m,c]=e[1];else{m=1/0,c=-1/0;for(let y=0;y<i;y++){let l=Number(g[y]);l<m&&(m=l),l>c&&(c=l)}m===c&&(m-=.5,c+=.5)}a=[];let D=(c-m)/s;for(let y=0;y<=s;y++)a.push(m+y*D)}else{let m=s.data;a=[];for(let c=0;c<s.size;c++)a.push(Number(m[c]))}let C=Q.length-1,E=a.length-1,u=new Float64Array(C*E),f=o?.data;for(let m=0;m<i;m++){let c=Number(n[m]),D=Number(g[m]),y=f?Number(f[m]):1,l=si(Q,Q.length,c)-1,h=si(a,a.length,D)-1;if(l<0||l>=C)if(c===Q[C]&&l===C)l=C-1;else continue;if(h<0||h>=E)if(D===a[E]&&h===E)h=E-1;else continue;u[l*E+h]+=y}if(t){let m=0;for(let c=0;c<u.length;c++)m+=u[c];for(let c=0;c<C;c++)for(let D=0;D<E;D++){let y=Q[c+1]-Q[c],l=a[D+1]-a[D],h=y*l;u[c*E+D]=u[c*E+D]/(m*h)}}return{hist:d.fromData(u,[C,E],"float64"),x_edges:d.fromData(new Float64Array(Q),[Q.length],"float64"),y_edges:d.fromData(new Float64Array(a),[a.length],"float64")}}function KM(A,r=10,I,e=!1,t){eA(A.dtype,"histogramdd","histogramdd requires real numbers.");let o=A.shape,n=A.data,g,i;if(o.length===1)g=o[0],i=1;else if(o.length===2)g=o[0],i=o[1];else throw new Error("sample must be 1D or 2D array");let Q;if(typeof r=="number")Q=new Array(i).fill(r);else if(Q=r,Q.length!==i)throw new Error("bins array length must match number of dimensions");let a=[];for(let m=0;m<i;m++){let c,D;if(I&&I[m])[c,D]=I[m];else{c=1/0,D=-1/0;for(let b=0;b<g;b++){let p=Number(i===1?n[b]:n[b*i+m]);p<c&&(c=p),p>D&&(D=p)}c===D&&(c-=.5,D+=.5)}let y=Q[m],l=[],h=(D-c)/y;for(let b=0;b<=y;b++)l.push(c+b*h);a.push(l)}let B=Q.slice(),s=B.reduce((m,c)=>m*c,1),C=new Float64Array(s),E=new Array(i);E[i-1]=1;for(let m=i-2;m>=0;m--)E[m]=E[m+1]*Q[m+1];let u=t?.data;for(let m=0;m<g;m++){let c=u?Number(u[m]):1,D=0,y=!1;for(let l=0;l<i;l++){let h=Number(i===1?n[m]:n[m*i+l]),b=a[l],p=Q[l],w=si(b,b.length,h)-1;if(w<0||w>=p)if(h===b[p]&&w===p)w=p-1;else{y=!0;break}D+=w*E[l]}y||(C[D]+=c)}if(e){let m=0;for(let D=0;D<s;D++)m+=C[D];let c=new Float64Array(s);for(let D=0;D<s;D++){let y=1,l=D;for(let h=0;h<i;h++){let b=Math.floor(l/E[h])%Q[h],p=a[h];y*=p[b+1]-p[b]}c[D]=y}for(let D=0;D<s;D++)C[D]=C[D]/(m*c[D])}let f=a.map(m=>d.fromData(new Float64Array(m),[m.length],"float64"));return{hist:d.fromData(C,B,"float64"),edges:f}}function Ec(A,r,I="full"){let e=A.data,t=r.data,o=A.size,n=r.size,g=k(A.dtype)||k(r.dtype),i=o+n-1;if(g){let B=new Float64Array(i),s=new Float64Array(i),C=k(A.dtype),E=k(r.dtype);for(let f=0;f<i;f++){let m=0,c=0,D=f-n+1;for(let y=0;y<o;y++){let l=y-D;if(l>=0&&l<n){let h,b,p,w;C?(h=e[y*2],b=e[y*2+1]):(h=Number(e[y]),b=0),E?(p=t[l*2],w=t[l*2+1]):(p=Number(t[l]),w=0),m+=h*p+b*w,c+=b*p-h*w}}B[f]=m,s[f]=c}let u=(f,m,c,D=0)=>{let y=new Float64Array(c*2);for(let l=0;l<c;l++)y[l*2]=f[D+l],y[l*2+1]=m[D+l];return d.fromData(y,[c],"complex128")};if(I==="full")return u(B,s,i);if(I==="same"){let f=Math.floor((i-o)/2);return u(B,s,o,f)}else{let f=Math.max(o,n)-Math.min(o,n)+1,m=Math.min(o,n)-1;return u(B,s,f,m)}}let Q=UM(A,r);if(Q){if(I==="full")return Q;let B=Q.data;if(I==="same"){let s=Math.floor((i-o)/2),C=new Float64Array(o);for(let E=0;E<o;E++)C[E]=B[s+E];return d.fromData(C,[o],Q.dtype)}else{let s=Math.max(o,n)-Math.min(o,n)+1,C=Math.min(o,n)-1,E=new Float64Array(s);for(let u=0;u<s;u++)E[u]=B[C+u];return d.fromData(E,[s],Q.dtype)}}let a=new Float64Array(i);for(let B=0;B<i;B++){let s=0,C=B-n+1;for(let E=0;E<o;E++){let u=E-C;u>=0&&u<n&&(s+=Number(e[E])*Number(t[u]))}a[B]=s}if(I==="full")return d.fromData(a,[i],"float64");if(I==="same"){let B=Math.floor((i-o)/2),s=new Float64Array(o);for(let C=0;C<o;C++)s[C]=a[B+C];return d.fromData(s,[o],"float64")}else{let B=Math.max(o,n)-Math.min(o,n)+1,s=Math.min(o,n)-1,C=new Float64Array(B);for(let E=0;E<B;E++)C[E]=a[s+E];return d.fromData(C,[B],"float64")}}function VM(A,r,I="full"){let e=r.size,t=A.size,o=k(r.dtype);if(!o&&!k(A.dtype)){let i=YM(A,r);if(i){let Q=t+e-1;if(I==="full")return i;let a=i.data;if(I==="same"){let B=Math.floor((Q-t)/2),s=new Float64Array(t);for(let C=0;C<t;C++)s[C]=a[B+C];return d.fromData(s,[t],i.dtype)}else{let B=Math.max(t,e)-Math.min(t,e)+1,s=Math.min(t,e)-1,C=new Float64Array(B);for(let E=0;E<B;E++)C[E]=a[s+E];return d.fromData(C,[B],i.dtype)}}}let n=r.data,g;if(o){let i=new Float64Array(e*2);for(let Q=0;Q<e;Q++){let a=e-1-Q;i[Q*2]=n[a*2],i[Q*2+1]=n[a*2+1]}g=d.fromData(i,[e],r.dtype)}else{let i=new Float64Array(e);for(let Q=0;Q<e;Q++)i[Q]=Number(n[e-1-Q]);g=d.fromData(i,[e],"float64")}if(o){let i=g.data;for(let Q=0;Q<e;Q++)i[Q*2+1]=-i[Q*2+1]}return Ec(A,g,I)}function uc(A,r,I=!0,e=!1,t){let o=A.shape,n=A.data,g=k(A.dtype)||r!==void 0&&k(r.dtype),i;if(t!==void 0?i=t:i=e?0:1,o.length===1)if(r!==void 0){let u=r.data,f=A.size,m=k(A.dtype),c=k(r.dtype);if(r.size!==f)throw new Error("m and y must have same length");if(g){let w=0,N=0,F=0,S=0;for(let oA=0;oA<f;oA++)m?(w+=n[oA*2],N+=n[oA*2+1]):w+=Number(n[oA]),c?(F+=u[oA*2],S+=u[oA*2+1]):F+=Number(u[oA]);w/=f,N/=f,F/=f,S/=f;let x=0,H=0,X=0,P=0,Z=0,V=0,$=0,O=0;for(let oA=0;oA<f;oA++){let iA,CA,dA,hr;m?(iA=n[oA*2]-w,CA=n[oA*2+1]-N):(iA=Number(n[oA])-w,CA=0),c?(dA=u[oA*2]-F,hr=u[oA*2+1]-S):(dA=Number(u[oA])-F,hr=0),x+=iA*iA+CA*CA,X+=dA*dA+hr*hr,Z+=iA*dA+CA*hr,V+=CA*dA-iA*hr,$+=dA*iA+hr*CA,O+=hr*iA-dA*CA}let z=f-i;if(z<=0){let oA=new Float64Array(8);return oA.fill(NaN),d.fromData(oA,[2,2],"complex128")}x/=z,X/=z,Z/=z,V/=z,$/=z,O/=z;let rA=new Float64Array(8);return rA[0]=x,rA[1]=H,rA[2]=Z,rA[3]=V,rA[4]=$,rA[5]=O,rA[6]=X,rA[7]=P,d.fromData(rA,[2,2],"complex128")}let D=0,y=0;for(let w=0;w<f;w++)D+=Number(n[w]),y+=Number(u[w]);D/=f,y/=f;let l=0,h=0,b=0;for(let w=0;w<f;w++){let N=Number(n[w])-D,F=Number(u[w])-y;l+=N*N,h+=F*F,b+=N*F}let p=f-i;return p<=0?d.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(l/=p,h/=p,b/=p,d.fromData(new Float64Array([l,b,b,h]),[2,2],"float64"))}else{let u=A.size;if(g){let D=0,y=0;for(let b=0;b<u;b++)D+=n[b*2],y+=n[b*2+1];D/=u,y/=u;let l=0;for(let b=0;b<u;b++){let p=n[b*2]-D,w=n[b*2+1]-y;l+=p*p+w*w}let h=u-i;return h<=0?d.fromData(new Float64Array([NaN,0]),[],"complex128"):(l/=h,d.fromData(new Float64Array([l,0]),[],"complex128"))}let f=0;for(let D=0;D<u;D++)f+=Number(n[D]);f/=u;let m=0;for(let D=0;D<u;D++){let y=Number(n[D])-f;m+=y*y}let c=u-i;return c<=0?d.fromData(new Float64Array([NaN]),[],"float64"):(m/=c,d.fromData(new Float64Array([m]),[],"float64"))}let Q,a;I?(Q=o[0],a=o[1]):(Q=o[1],a=o[0]);let B=a-i;if(g){let u=new Float64Array(Q),f=new Float64Array(Q);for(let c=0;c<Q;c++){let D=0,y=0;for(let l=0;l<a;l++){let h=I?c*a+l:l*Q+c;D+=n[h*2],y+=n[h*2+1]}u[c]=D/a,f[c]=y/a}let m=new Float64Array(Q*Q*2);if(B<=0)return m.fill(NaN),d.fromData(m,[Q,Q],"complex128");for(let c=0;c<Q;c++)for(let D=0;D<Q;D++){let y=0,l=0;for(let b=0;b<a;b++){let p=I?c*a+b:b*Q+c,w=I?D*a+b:b*Q+D,N=n[p*2]-u[c],F=n[p*2+1]-f[c],S=n[w*2]-u[D],x=n[w*2+1]-f[D];y+=N*S+F*x,l+=F*S-N*x}let h=(c*Q+D)*2;m[h]=y/B,m[h+1]=l/B}return d.fromData(m,[Q,Q],"complex128")}let s=new Float64Array(Q*a);for(let u=0;u<Q;u++){let f=0;for(let D=0;D<a;D++){let y=I?u*a+D:D*Q+u;f+=Number(n[y])}let m=f/a,c=u*a;for(let D=0;D<a;D++){let y=I?u*a+D:D*Q+u;s[c+D]=Number(n[y])-m}}let C=new Float64Array(Q*Q);if(B<=0)return C.fill(NaN),d.fromData(C,[Q,Q],"float64");let E=1/B;for(let u=0;u<Q;u++){let f=u*a;for(let m=u;m<Q;m++){let c=m*a,D=0;for(let l=0;l<a;l++)D+=s[f+l]*s[c+l];let y=D*E;C[u*Q+m]=y,C[m*Q+u]=y}}return d.fromData(C,[Q,Q],"float64")}function WM(A,r,I=!0){let e=k(A.dtype)||r!==void 0&&k(r.dtype);if(A.shape.length===1&&r===void 0)return e?d.fromData(new Float64Array([1,0]),[],"complex128"):d.fromData(new Float64Array([1]),[],"float64");let t=uc(A,r,I,!1),o=t.data,g=t.shape[0];if(e){let B=new Float64Array(g*g*2);for(let s=0;s<g;s++)for(let C=0;C<g;C++){let E=o[(s*g+C)*2],u=o[(s*g+C)*2+1],f=o[(s*g+s)*2],m=o[(C*g+C)*2],c=(s*g+C)*2;if(f<=0||m<=0)B[c]=NaN,B[c+1]=NaN;else{let D=Math.sqrt(f*m);B[c]=E/D,B[c+1]=u/D}}return d.fromData(B,[g,g],"complex128")}let i=new Float64Array(g*g),Q=o,a=new Float64Array(g);for(let B=0;B<g;B++){let s=Q[B*g+B];a[B]=s>0?1/Math.sqrt(s):NaN}for(let B=0;B<g;B++)for(let s=B;s<g;s++){let C=Q[B*g+s]*a[B]*a[s];i[B*g+s]=C,i[s*g+B]=C}return d.fromData(i,[g,g],"float64")}function OM(A,r=10,I,e){eA(A.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let t=A.data,o=A.size,n,g;if(I)[n,g]=I;else{n=1/0,g=-1/0;for(let B=0;B<o;B++){let s=Number(t[B]);isNaN(s)||(s<n&&(n=s),s>g&&(g=s))}!isFinite(n)||!isFinite(g)?(n=0,g=1):n===g&&(n=n-.5,g=g+.5)}let i;typeof r=="number"?i=r:i=Cc(t,o,n,g,r),i=Math.max(1,Math.round(i));let Q=new Float64Array(i+1),a=(g-n)/i;for(let B=0;B<=i;B++)Q[B]=n+B*a;return d.fromData(Q,[i+1],"float64")}function Cc(A,r,I,e,t){if(r===0)return 1;let o=e-I;if(o===0)return 1;let n=[],g=0;for(let u=0;u<r;u++){let f=Number(A[u]);isNaN(f)||(n.push(f),g+=f)}let i=n.length;if(i===0)return 1;let Q=g/i,a=0;for(let u=0;u<i;u++){let f=n[u]-Q;a+=f*f}let B=Math.sqrt(a/i);n.sort((u,f)=>u-f);let s=n[Math.floor(i*.25)]??0,E=(n[Math.floor(i*.75)]??0)-s;switch(t){case"sqrt":return Math.ceil(Math.sqrt(i));case"sturges":return Math.ceil(Math.log2(i)+1);case"rice":return Math.ceil(2*Math.pow(i,1/3));case"scott":{if(B===0)return 1;let u=3.5*B/Math.pow(i,1/3);return Math.ceil(o/u)}case"fd":{if(E===0)return Cc(A,r,I,e,"sturges");let u=2*E/Math.pow(i,1/3);return Math.ceil(o/u)}case"doane":{let u=$8(n,Q,B),f=Math.sqrt(6*(i-2)/((i+1)*(i+3)));return Math.ceil(1+Math.log2(i)+Math.log2(1+Math.abs(u)/f))}case"stone":return Cc(A,r,I,e,"sturges");default:{let u=Math.ceil(Math.log2(i)+1),f=E===0?u:Math.ceil(o/(2*E/Math.pow(i,1/3)));return Math.max(u,f)}}}function $8(A,r,I){if(I===0)return 0;let e=A.length,t=0;for(let o=0;o<e;o++)t+=Math.pow((A[o]-r)/I,3);return t/e}function ZM(A,r,I=1,e=-1){eA(A.dtype,"trapezoid","trapezoid requires real numbers."),r!==void 0&&eA(r.dtype,"trapezoid","trapezoid requires real numbers.");let t=Array.from(A.shape),o=t.length;if(e<0&&(e=o+e),e<0||e>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let n=t[e];if(n<2)throw new Error("trapezoid requires at least 2 samples along axis");let g;if(r!==void 0){if(r.size!==n)throw new Error(`x array size (${r.size}) must match y axis size (${n})`);let u=r.data;g=new Float64Array(n);for(let f=0;f<n;f++)g[f]=Number(u[f])}else{g=new Float64Array(n);for(let u=0;u<n;u++)g[u]=u*I}let i=[...t];if(i.splice(e,1),o===1){let u=A.data,f=0;for(let m=0;m<n-1;m++){let c=Number(u[m]),D=Number(u[m+1]),y=g[m+1]-g[m];f+=.5*(c+D)*y}return f}let Q=i.reduce((u,f)=>u*f,1),a=new Float64Array(Q),B=new Array(o),s=1;for(let u=o-1;u>=0;u--)B[u]=s,s*=t[u];let C=new Array(i.length);s=1;for(let u=i.length-1;u>=0;u--)C[u]=s,s*=i[u];let E=A.data;for(let u=0;u<Q;u++){let f=[],m=u;for(let l=0;l<i.length;l++){let h=Math.floor(m/C[l]);m%=C[l],f.push(h)}let c=[],D=0;for(let l=0;l<o;l++)l===e?c.push(0):(c.push(f[D]),D++);let y=0;for(let l=0;l<n-1;l++){c[e]=l;let h=0;for(let F=0;F<o;F++)h+=c[F]*B[F];c[e]=l+1;let b=0;for(let F=0;F<o;F++)b+=c[F]*B[F];let p=Number(E[h]),w=Number(E[b]),N=g[l+1]-g[l];y+=.5*(p+w)*N}a[u]=y}return i.length===0?a[0]:d.fromData(a,i,"float64")}function cc(A,r,I){let e=r?G(r):void 0;return R(vM(G(A),e,I))}function Dc(A,r,I){return R(XM(G(A),G(r),I))}function cQ(A,r,I,e,t){let o=r instanceof AA?G(r):r,n=t?G(t):void 0,g=TM(G(A),o,I,e,n);return[R(g.hist),R(g.bin_edges)]}function DQ(A,r,I,e,t,o){let n;if(Array.isArray(I)&&I.length===2){let Q=I[0]instanceof AA?G(I[0]):I[0],a=I[1]instanceof AA?G(I[1]):I[1];n=[Q,a]}else n=I;let g=o?G(o):void 0,i=PM(G(A),G(r),n,e,t,g);return[R(i.hist),R(i.x_edges),R(i.y_edges)]}function fQ(A,r,I,e,t){let o=t?G(t):void 0,n=KM(G(A),r,I,e,o);return[R(n.hist),n.edges.map(g=>R(g))]}function fc(A,r,I){return R(Ec(G(A),G(r),I))}function mc(A,r,I){return R(VM(G(A),G(r),I))}function yc(A,r,I,e,t){return R(uc(G(A),r?G(r):void 0,I,e,t))}function lc(A,r,I){return R(WM(G(A),r?G(r):void 0,I))}function mQ(A,r,I,e){return R(OM(G(A),r,I,e?G(e):void 0))}function hc(A,r,I,e){let t=ZM(G(A),r?G(r):void 0,I,e);return typeof t=="number"?t:R(t)}var rX="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",Ci=null;function ur(){if(Ci)return Ci;let A=atob(rX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ci=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ci.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ci}function zM(A,r,I){ur().exports.diff_f64(A,r,I)}function jM(A,r,I){ur().exports.diff_f32(A,r,I)}function dc(A,r,I){ur().exports.diff_i64(A,r,I)}function bc(A,r,I){ur().exports.diff_i32(A,r,I)}function pc(A,r,I){ur().exports.diff_i16(A,r,I)}function wc(A,r,I){ur().exports.diff_i8(A,r,I)}function $M(A,r,I,e){ur().exports.diff_2d_f64(A,r,I,e)}function Ax(A,r,I,e){ur().exports.diff_2d_f32(A,r,I,e)}function Nc(A,r,I,e){ur().exports.diff_2d_i64(A,r,I,e)}function Fc(A,r,I,e){ur().exports.diff_2d_i32(A,r,I,e)}function Gc(A,r,I,e){ur().exports.diff_2d_i16(A,r,I,e)}function Sc(A,r,I,e){ur().exports.diff_2d_i8(A,r,I,e)}var IX=64,eX={float64:zM,float32:jM,int64:dc,uint64:dc,int32:bc,uint32:bc,int16:pc,uint16:pc,int8:wc,uint8:wc},tX={float64:$M,float32:Ax,int64:Nc,uint64:Nc,int32:Fc,uint32:Fc,int16:Gc,uint16:Gc,int8:Sc,uint8:Sc},oX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function rx(A,r){if(!A.isCContiguous)return null;let I=A.shape,e=I.length,t=r<0?e+r:r;if(t!==e-1)return null;let o=A.size;if(o<IX*Y.thresholdMultiplier)return null;let n=A.dtype,g=oX[n];if(!g)return null;let i=I[t],Q=i-1;if(Q<=0)return null;let a=g.BYTES_PER_ELEMENT,B=o/i,s=B*Q,C=o*a,E=s*a;J(C+E),U();let u=A.offset,f=A.data.subarray(u,u+o),m=q(f),c=_(E),D=Array.from(I);if(D[t]=Q,e===1){let l=eX[n];if(!l)return null;l(m,c,Q)}else{let l=tX[n];if(!l)return null;l(m,c,B,i)}let y=v(c,s,g);return d.fromData(y,D,n)}var nX="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",Ei=null;function Rr(){if(Ei)return Ei;let A=atob(nX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Ei=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Ei.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Ei}function Ix(A,r,I,e){Rr().exports.gradient_f64(A,r,I,e)}function ex(A,r,I,e){Rr().exports.gradient_f32(A,r,I,e)}function tx(A,r,I,e){Rr().exports.gradient_i64(A,r,I,e)}function ox(A,r,I,e){Rr().exports.gradient_u64(A,r,I,e)}function nx(A,r,I,e){Rr().exports.gradient_i32(A,r,I,e)}function ix(A,r,I,e){Rr().exports.gradient_u32(A,r,I,e)}function gx(A,r,I,e){Rr().exports.gradient_i16(A,r,I,e)}function Qx(A,r,I,e){Rr().exports.gradient_u16(A,r,I,e)}function ax(A,r,I,e){Rr().exports.gradient_i8(A,r,I,e)}function Bx(A,r,I,e){Rr().exports.gradient_u8(A,r,I,e)}var iX=64,gX={float64:Ix,float32:ex,int64:tx,uint64:ox,int32:nx,uint32:ix,int16:gx,uint16:Qx,int8:ax,uint8:Bx},QX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array},aX={float64:Float64Array,float32:Float32Array,int64:Float64Array,uint64:Float64Array,int32:Float64Array,uint32:Float64Array,int16:Float64Array,uint16:Float64Array,int8:Float64Array,uint8:Float64Array},BX={float64:"float64",float32:"float32",int64:"float64",uint64:"float64",int32:"float64",uint32:"float64",int16:"float64",uint16:"float64",int8:"float64",uint8:"float64"};function sx(A,r){if(!A.isCContiguous||A.shape.length!==1)return null;let I=A.size;if(I<iX*Y.thresholdMultiplier||I<2)return null;let e=A.dtype,t=gX[e],o=QX[e],n=aX[e],g=BX[e];if(!t||!o||!n||!g)return null;let i=o.BYTES_PER_ELEMENT,Q=n.BYTES_PER_ELEMENT,a=I*i,B=I*Q;J(a+B),U();let s=A.offset,C=A.data.subarray(s,s+I),E=q(C),u=_(B);t(E,u,I,r);let f=v(u,I,n);return d.fromData(f,[I],g)}function Cx(A,r=1,I=-1){if(r<0)throw new Error(`order must be non-negative but got ${r}`);if(r===0)return A.copy();let e=Array.from(A.shape),t=e.length,o=I<0?t+I:I;if(o<0||o>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);if(e[o]<r+1)throw new Error(`diff requires at least ${r+1} elements along axis ${I}, but got ${e[o]}`);if(r===1&&!k(A.dtype)){let g=rx(A,o);if(g)return g}let n=A;for(let g=0;g<r;g++)n=sX(n,o);return n}function sX(A,r){let I=Array.from(A.shape),e=I.length,t=I[r],o=[...I];o[r]=t-1;let n=A.dtype,g=k(n),i=L(n)?"float64":n,Q=d.zeros(o,i),a=Q.data,B=A.strides,s=Q.size,C=A.offset;for(let E=0;E<s;E++){let u=E,f=new Array(e);for(let l=e-1;l>=0;l--)f[l]=u%o[l],u=Math.floor(u/o[l]);let m=[...f],c=[...f];c[r]=m[r]+1;let D=0,y=0;for(let l=0;l<e;l++)D+=m[l]*B[l],y+=c[l]*B[l];if(g){let l=A.data,h=l[(C+D)*2],b=l[(C+D)*2+1],p=l[(C+y)*2],w=l[(C+y)*2+1];a[E*2]=p-h,a[E*2+1]=w-b}else{let l=(L(n),Number(A.data[C+D])),h=(L(n),Number(A.data[C+y]));a[E]=h-l}}return Q}function Ex(A,r=null,I=null){let e=A.size,t=A.dtype,o=k(t),n=L(t)?"float64":t,g=Math.max(0,e-1),i=I?I.length:0,Q=r?r.length:0,a=i+g+Q,B=d.zeros([a],n),s=B.data,C=0;if(I)if(o)for(let E of I)s[C*2]=E,s[C*2+1]=0,C++;else for(let E of I)s[C++]=E;if(o)for(let E=0;E<g;E++){let u=A.iget(E),f=A.iget(E+1);s[C*2]=f.re-u.re,s[C*2+1]=f.im-u.im,C++}else for(let E=0;E<g;E++){let u=(L(t),Number(A.iget(E))),f=(L(t),Number(A.iget(E+1)));s[C++]=f-u}if(r)if(o)for(let E of r)s[C*2]=E,s[C*2+1]=0,C++;else for(let E of r)s[C++]=E;return B}function ux(A,r=1,I=null){let t=Array.from(A.shape).length,o;if(I===null)o=Array.from({length:t},(i,Q)=>Q);else if(typeof I=="number"){let i=I<0?t+I:I;if(i<0||i>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);o=[i]}else o=I.map(i=>{let Q=i<0?t+i:i;if(Q<0||Q>=t)throw new Error(`axis ${i} is out of bounds for array of dimension ${t}`);return Q});let n;if(typeof r=="number")n=o.map(()=>r);else{if(r.length!==o.length)throw new Error("Number of spacings must match number of axes");n=r}if(o.length===1&&A.shape.length===1&&!k(A.dtype)&&typeof r=="number"){let i=sx(A,n[0]);if(i)return i}let g=[];for(let i=0;i<o.length;i++)g.push(CX(A,o[i],n[i]));return g.length===1?g[0]:g}function CX(A,r,I){let e=Array.from(A.shape),t=e.length,o=e[r];if(o<2)throw new Error(`Shape of array along axis ${r} must be at least 2, but got ${o}`);let n=A.dtype,g=k(n),i=L(n)?"float64":n==="float32"?"float32":g?n:"float64",Q=d.zeros(e,i),a=Q.data,B=A.strides,s=I,C=2*s,E=A.size,u=A.offset;for(let f=0;f<E;f++){let m=f,c=new Array(t);for(let l=t-1;l>=0;l--)c[l]=m%e[l],m=Math.floor(m/e[l]);let D=u;for(let l=0;l<t;l++)D+=c[l]*B[l];let y=c[r];if(g){let l=A.data,h=a,b,p;if(y===0){let w=[...c];w[r]=1;let N=0;for(let X=0;X<t;X++)N+=w[X]*B[X];let F=l[D*2],S=l[D*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(x-F)/s,p=(H-S)/s}else if(y===o-1){let w=[...c];w[r]=o-2;let N=0;for(let X=0;X<t;X++)N+=w[X]*B[X];let F=l[D*2],S=l[D*2+1],x=l[(u+N)*2],H=l[(u+N)*2+1];b=(F-x)/s,p=(S-H)/s}else{let w=[...c],N=[...c];w[r]=y+1,N[r]=y-1;let F=0,S=0;for(let Z=0;Z<t;Z++)F+=w[Z]*B[Z],S+=N[Z]*B[Z];let x=l[(u+F)*2],H=l[(u+F)*2+1],X=l[(u+S)*2],P=l[(u+S)*2+1];b=(x-X)/C,p=(H-P)/C}h[f*2]=b,h[f*2+1]=p}else{let l;if(y===0){let h=[...c];h[r]=1;let b=0;for(let N=0;N<t;N++)b+=h[N]*B[N];let p=(L(n),Number(A.data[D]));l=((L(n),Number(A.data[u+b]))-p)/s}else if(y===o-1){let h=[...c];h[r]=o-2;let b=0;for(let N=0;N<t;N++)b+=h[N]*B[N];let p=(L(n),Number(A.data[D])),w=(L(n),Number(A.data[u+b]));l=(p-w)/s}else{let h=[...c],b=[...c];h[r]=y+1,b[r]=y-1;let p=0,w=0;for(let S=0;S<t;S++)p+=h[S]*B[S],w+=b[S]*B[S];let N=(L(n),Number(A.data[u+p])),F=(L(n),Number(A.data[u+w]));l=(N-F)/C}a[f]=l}}return Q}function ui(A,r,I){return R(Cx(G(A),r,I))}function Rc(A,r,I){return R(Ex(G(A),r??null,I??null))}function yQ(A,r,I){let e=ux(G(A),r,I);return Array.isArray(e)?dr(e):R(e)}function cx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=ne(r),o=d.zeros(I,t),n=o.data,g=A.data;for(let i=0;i<e;i++)n[i]=g[i*2];return o}return A.copy()}function Dx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let o=ne(r),n=d.zeros(I,o),g=n.data,i=A.data;for(let Q=0;Q<e;Q++)g[Q]=i[Q*2+1];return n}let t=r==="float32"?"float32":"float64";return d.zeros(I,t)}function fx(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(k(r)){let t=nA(r),o=e*2,n=new t(o),g=A.data;for(let i=0;i<e;i++)n[i*2]=g[i*2],n[i*2+1]=-g[i*2+1];return d.fromData(n,I,r)}return A.copy()}function mx(A,r=!1){let I=A.dtype,e=Array.from(A.shape),t=A.size,o=d.zeros(e,"float64"),n=o.data;if(k(I)){let g=A.data;for(let i=0;i<t;i++){let Q=g[i*2],a=g[i*2+1],B=Math.atan2(a,Q);r&&(B=B*180/Math.PI),n[i]=B}}else for(let g=0;g<t;g++){let i=A.iget(g),a=(i instanceof T?i.re:Number(i))>=0?0:Math.PI;r&&(a=a*180/Math.PI),n[g]=a}return o}function kc(A){return R(cx(G(A)))}function qc(A){return R(Dx(G(A)))}function ci(A){return R(fx(G(A)))}function Mc(A,r){return R(mx(G(A),r))}var cX="AGFzbQEAAAABDgJgA39/fwBgBH9/f38AAg8BA2VudgZtZW1vcnkCABADAwIAAQYJAX8BQYCAwAALBxsCCmluZGljZXNfMmQAAAppbmRpY2VzXzNkAAEKsQQCwwMDAX8CewN/AkAgAiABbCIDRQ0AQQAhAQJAAkAgA0EESQ0AIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYgACEHA0AgByAF/RsAIAT9GwBu/REgBf0bASAE/RsBbv0cASAF/RsCIAT9GwJu/RwCIAX9GwMgBP0bA279HAP9CwIAIAdBEGohByAF/QwEAAAABAAAAAQAAAAEAAAA/a4BIQUgBkF8aiIGDQALIAMgAUYNAQsgACABQQJ0aiEHA0AgByABIAJuNgIAIAdBBGohByADIAFBAWoiAUcNAAsLIANBAnQhCEEAIQECQCADQQRJDQAgACAIaiEHIAL9ESEE/QwAAAAAAQAAAAIAAAADAAAAIQUgA0F8cSIBIQYDQCAHIAX9GwAgBP0bAHD9ESAF/RsBIAT9GwFw/RwBIAX9GwIgBP0bAnD9HAIgBf0bAyAE/RsDcP0cA/0LAgAgB0EQaiEHIAX9DAQAAAAEAAAABAAAAAQAAAD9rgEhBSAGQXxqIgYNAAsgAyABRg0BCyAAIAggAUECdGpqIQcDQCAHIAEgAnA2AgAgB0EEaiEHIAMgAUEBaiIBRw0ACwsLagEFfwJAIAMgAmwiBCABbCIFRQ0AIAVBA3QhBiAFQQJ0IQdBACEBA0AgACABIARuNgIAIAAgB2ogASADbiIIIAJwNgIAIAAgBmogASAIIANsazYCACAAQQRqIQAgBSABQQFqIgFHDQALCws=",Di=null;function yx(){if(Di)return Di;let A=atob(cX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Di=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Di.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Di}function lx(A,r,I){yx().exports.indices_2d(A,r,I)}function hx(A,r,I,e){yx().exports.indices_3d(A,r,I,e)}var DX=64;function dx(A,r){if(r!=="int32")return null;let I=A.length;if(I<2||I>3)return null;let e=A.reduce((i,Q)=>i*Q,1);if(e<DX*Y.thresholdMultiplier)return null;let t=I*e,o=t*4;J(o),U();let n=_(o);I===2?lx(n,A[0],A[1]):hx(n,A[0],A[1],A[2]);let g=v(n,t,Int32Array);return d.fromData(g,[I,...A],"int32")}function xc(A,r){let I=A.shape,e=I.length,t=r.length;if(t<e)throw new Error("input operand has more dimensions than allowed by the axis remapping");let o=Fr([Array.from(I),r]);if(o===null)throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);for(let n=0;n<t;n++)if(o[n]!==r[n])throw new Error(`operands could not be broadcast together with shape (${I.join(",")}) (${r.join(",")})`);return sr(A,r)}function bx(A){if(A.length===0)return[];if(A.length===1)return[A[0]];let r=A.map(e=>Array.from(e.shape)),I=Fr(r);if(I===null)throw new Error(`operands could not be broadcast together with shapes ${r.map(e=>`(${e.join(",")})`).join(" ")}`);return A.map(e=>sr(e,I))}function px(A,r,I){let e=A.shape,t=e.length,o=A.dtype;if(I===void 0){let E=A.size;for(let c of r){let D=c<0?E+c:c;if(D<0||D>=E)throw new Error(`index ${c} is out of bounds for axis 0 with size ${E}`)}let u=r.length,f=nA(o);if(!f)throw new Error(`Cannot take from array with dtype ${o}`);let m=new f(u);for(let c=0;c<u;c++){let D=r[c];D<0&&(D=E+D);let y=A.iget(D);L(o),m[c]=y}return d.fromData(m,[u],o)}let n=I<0?t+I:I;if(n<0||n>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let g=e[n];for(let E of r){let u=E<0?g+E:E;if(u<0||u>=g)throw new Error(`index ${E} is out of bounds for axis ${n} with size ${g}`)}let i=Array.from(e);i[n]=r.length;let Q=i.reduce((E,u)=>E*u,1),a=nA(o);if(!a)throw new Error(`Cannot take from array with dtype ${o}`);let B=new a(Q),s=HA(i),C=new Array(t).fill(0);for(let E=0;E<Q;E++){let u=[...C],f=C[n],m=r[f];m<0&&(m=g+m),u[n]=m;let c=A.get(...u),D=0;for(let y=0;y<t;y++)D+=C[y]*s[y];L(o),B[D]=c;for(let y=t-1;y>=0&&(C[y]++,!(C[y]<i[y]));y--)C[y]=0}return d.fromData(B,i,o)}function wx(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=new Array(r.length).fill(I);else{o=[];for(let n=0;n<I.size;n++){let g=I.iget(n);o.push(g instanceof T?g.re:g)}if(o.length===1)o=new Array(r.length).fill(o[0]);else if(o.length!==r.length){let n=[...o];o=[];for(let g=0;g<r.length;g++)o.push(n[g%n.length])}}for(let n=0;n<r.length;n++){let g=r[n];if(g<0&&(g=e+g),g<0||g>=e)throw new Error(`index ${r[n]} is out of bounds for axis 0 with size ${e}`);let i=o[n];L(t)?typeof i!="bigint"&&(i=BigInt(Math.round(Number(i)))):typeof i=="bigint"&&(i=Number(i)),A.iset(g,i)}}function Nx(A,r){if(r.length===0)throw new Error("choices cannot be empty");let I=A.shape,e=r.length,t=r[0].dtype,o=r.map(s=>Array.from(s.shape));o.unshift(Array.from(I));let n=Fr(o);if(n===null)throw new Error("operands could not be broadcast together");let g=sr(A,n),i=r.map(s=>sr(s,n)),Q=n.reduce((s,C)=>s*C,1),a=nA(t);if(!a)throw new Error(`Cannot choose with dtype ${t}`);let B=new a(Q);for(let s=0;s<Q;s++){let C=Number(g.iget(s));if(C<0||C>=e)throw new Error(`index ${C} is out of bounds for axis 0 with size ${e}`);let E=i[C].iget(s);L(t),B[s]=E}return d.fromData(B,n,t)}function Fx(A,r,I=!1){if(A.ndim!==r.ndim)return!1;for(let t=0;t<A.ndim;t++)if(A.shape[t]!==r.shape[t])return!1;let e=A.size;for(let t=0;t<e;t++){let o=A.iget(t),n=r.iget(t);if(I){let g=typeof o=="number"&&Number.isNaN(o),i=typeof n=="number"&&Number.isNaN(n);if(g&&i)continue}if(o!==n)return!1}return!0}function Gx(A,r,I){let e=Bq(A,r,I);if(e)return e;let t=A.shape,o=t.length,n=A.dtype,g=I<0?o+I:I;if(g<0||g>=o)throw new Error(`axis ${I} is out of bounds for array of dimension ${o}`);let i=r.shape;if(i.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${i.length} vs ${o}`);for(let w=0;w<o;w++)if(w!==g&&i[w]!==t[w]&&i[w]!==1&&t[w]!==1)throw new Error(`index ${i[w]} is out of bounds for size ${t[w]} in dimension ${w}`);let Q=Array.from(i),a=Q.reduce((w,N)=>w*N,1),B=nA(n);if(!B)throw new Error(`Cannot take_along_axis with dtype ${n}`);let s=new B(a),C=HA(t),E=HA(i),u=t[g],f=HA(Q),m=new Array(o),c=L(n),D=A.isCContiguous,y=r.isCContiguous,l=A.data,h=A.offset,b=r.data,p=r.offset;for(let w=0;w<a;w++){let N=w;for(let H=0;H<o;H++)m[H]=N/f[H]|0,N-=m[H]*f[H];let F=0;for(let H=0;H<o;H++){let X=i[H]===1?0:m[H];F+=X*E[H]}let S=Number(y?b[p+F]:r.iget(F));S<0&&(S=u+S);let x=0;for(let H=0;H<o;H++){let X=H===g?S:t[H]===1?0:m[H];x+=X*C[H]}if(D)s[w]=l[h+x];else{let H=A.iget(x);s[w]=H}}return d.fromData(s,Q,n)}function Sx(A,r,I,e){let t=A.shape,o=t.length,n=A.dtype,g=e<0?o+e:e;if(g<0||g>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=r.shape,Q=I.shape;if(i.length!==o||Q.length!==o)throw new Error("indices, arr, and values must have same ndim");let a=t[g],B=HA(t),s=HA(i),C=HA(Q),E=i.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=new Array(o),m=u;for(let p=o-1;p>=0;p--)f[p]=m%i[p],m=Math.floor(m/i[p]);let c=0;for(let p=0;p<o;p++)c+=f[p]*s[p];let D=Number(r.iget(c));if(D<0&&(D=a+D),D<0||D>=a)throw new Error(`index ${D} is out of bounds for axis ${g} with size ${a}`);let y=0;for(let p=0;p<o;p++){let w=Q[p]===1?0:f[p];y+=w*C[p]}let l=I.iget(y),h=[...f];h[g]=D;let b=0;for(let p=0;p<o;p++)b+=h[p]*B[p];L(n)?typeof l!="bigint"&&(l=BigInt(Math.round(Number(l)))):typeof l=="bigint"&&(l=Number(l)),A.iset(b,l)}}function Rx(A,r,I){let e=A.size,t=A.dtype,o;if(typeof I=="number"||typeof I=="bigint")o=[I];else{o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}}let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function kx(A,r,I){let e=r.shape,t=e.length,o=r.dtype,n=L(o);if(I===void 0){let b=Math.min(A.size,r.size),p=A.isCContiguous,w=A.data,N=A.offset,F=0;if(p)for(let P=0;P<b;P++)w[N+P]&&F++;else for(let P=0;P<b;P++)A.iget(P)&&F++;let S=nA(o);if(!S)throw new Error(`Cannot compress with dtype ${o}`);let x=new S(F),H=0,X=r.isCContiguous;if(p&&X){let P=r.data,Z=r.offset;if(n){let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}else{let V=x,$=P;for(let O=0;O<b;O++)w[N+O]&&(V[H++]=$[Z+O])}}else for(let P=0;P<b;P++)(p?w[N+P]:A.iget(P))&&(x[H]=r.iget(P),H++);return d.fromData(x,[F],o)}let g=I<0?t+I:I;if(g<0||g>=t)throw new Error(`axis ${I} is out of bounds for array of dimension ${t}`);let i=e[g],Q=Math.min(A.size,i),a=[],B=A.isCContiguous,s=A.data,C=A.offset;for(let b=0;b<Q;b++)(B?s[C+b]:A.iget(b))&&a.push(b);let E=a.length,u=[...e];u[g]=E;let f=u.reduce((b,p)=>b*p,1),m=nA(o);if(!m)throw new Error(`Cannot compress with dtype ${o}`);let c=new m(f),D=e.slice(g+1).reduce((b,p)=>b*p,1),y=e.slice(0,g).reduce((b,p)=>b*p,1),l=0;if(r.isCContiguous){let b=r.data,p=r.offset;for(let w=0;w<y;w++){let N=p+w*i*D;for(let F=0;F<E;F++){let S=N+a[F]*D;c.set(b.subarray(S,S+D),l),l+=D}}}else for(let b=0;b<y;b++)for(let p=0;p<E;p++){let w=a[p];for(let N=0;N<D;N++){let F=b*i*D+w*D+N;c[l++]=r.iget(F)}}return d.fromData(c,u,o)}function qx(A,r,I=0){if(A.length!==r.length)throw new Error("condlist and choicelist must have same length");if(A.length===0)throw new Error("condlist and choicelist cannot be empty");let e=[...A.map(s=>Array.from(s.shape)),...r.map(s=>Array.from(s.shape))],t=Fr(e);if(t===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let o=r[0].dtype,n=t.reduce((s,C)=>s*C,1),g=nA(o);if(!g)throw new Error(`Cannot select with dtype ${o}`);let i=I;L(o)?i=typeof I=="bigint"?I:BigInt(I):i=typeof I=="bigint"?Number(I):I;let Q=new g(n);for(let s=0;s<n;s++)L(o),Q[s]=i;let a=A.map(s=>sr(s,t)),B=r.map(s=>sr(s,t));for(let s=0;s<n;s++)for(let C=0;C<A.length;C++)if(a[C].iget(s)){let E=B[C].iget(s);L(o),Q[s]=E;break}return d.fromData(Q,t,o)}function Mx(A,r,I){let e=A.size,t=A.dtype,o=[];for(let g=0;g<I.size;g++){let i=I.iget(g);o.push(i instanceof T?i.re:i)}if(o.length===0)return;let n=0;for(let g=0;g<e;g++)if(r.iget(g)){let Q=o[n%o.length];L(t)?typeof Q!="bigint"&&(Q=BigInt(Math.round(Number(Q)))):typeof Q=="bigint"&&(Q=Number(Q)),A.iset(g,Q),n++}}function Jc(A,r=2){if(r<1)throw new Error("ndim must be at least 1");let I=new Int32Array(A);for(let t=0;t<A;t++)I[t]=t;let e=[];for(let t=0;t<r;t++)e.push(d.fromData(new Int32Array(I),[A],"int32"));return e}function xx(A){let r=A.shape,I=r.length;if(I<2)throw new Error("array must be at least 2-D");let e=r[0];for(let t=1;t<I;t++)if(r[t]!==e)throw new Error("All dimensions of input must be equal");return Jc(e,I)}function Uc(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=0;g<=Math.min(n+r,e-1);g++)g>=0&&(t.push(n),o.push(g));return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function Jx(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Uc(I[0],r,I[1])}function Lc(A,r=0,I){let e=I??A,t=[],o=[];for(let n=0;n<A;n++)for(let g=Math.max(n+r,0);g<e;g++)t.push(n),o.push(g);return[d.fromData(new Int32Array(t),[t.length],"int32"),d.fromData(new Int32Array(o),[o.length],"int32")]}function Ux(A,r=0){let I=A.shape;if(I.length!==2)throw new Error("array must be 2-D");return Lc(I[0],r,I[1])}function Lx(A,r,I=0){let e=r(A,I),t=e.shape;if(t.length!==2||t[0]!==A||t[1]!==A)throw new Error("mask_func must return n x n array");let o=[],n=[];for(let g=0;g<A;g++)for(let i=0;i<A;i++)e.get(g,i)&&(o.push(g),n.push(i));return[d.fromData(new Int32Array(o),[o.length],"int32"),d.fromData(new Int32Array(n),[n.length],"int32")]}function Hx(A,r="int32"){let I=dx(A,r);if(I)return I;let e=A.length,t=[e,...A],o=t.reduce((a,B)=>a*B,1),n=nA(r);if(!n)throw new Error(`Cannot create indices with dtype ${r}`);let g=new n(o),i=A.reduce((a,B)=>a*B,1),Q=new Array(e);Q[e-1]=1;for(let a=e-2;a>=0;a--)Q[a]=Q[a+1]*A[a+1];for(let a=0;a<e;a++){let B=a*i,s=A[a],C=Q[a];if(r==="int64"){let E=g;for(let u=0;u<i;u++)E[B+u]=BigInt(Math.floor(u/C)%s)}else{let E=g;for(let u=0;u<i;u++)E[B+u]=Math.floor(u/C)%s}}return d.fromData(g,t,r)}function _x(...A){let r=A.length,I=[];for(let e=0;e<r;e++){let t=A[e],o=t.size,n=t.dtype,g=new Array(r).fill(1);g[e]=o;let i=nA(n);if(!i)throw new Error(`Cannot create ix_ with dtype ${n}`);let Q=new i(o);for(let a=0;a<o;a++){let B=t.iget(a);L(n),Q[a]=B}I.push(d.fromData(Q,g,n))}return I}function Yx(A,r,I="raise"){if(A.length!==r.length)throw new Error("multi_index length must equal dims length");if(A.length===0)throw new Error("multi_index cannot be empty");let e=A[0].size,t=r.length,o=new Int32Array(e),n=new Array(t),g=1;for(let i=t-1;i>=0;i--)n[i]=g,g*=r[i];for(let i=0;i<e;i++){let Q=0;for(let a=0;a<t;a++){let B=Number(A[a].iget(i)),s=r[a];if(I==="wrap")B=(B%s+s)%s;else if(I==="clip")B=Math.max(0,Math.min(B,s-1));else if(B<0||B>=s)throw new Error(`index ${B} is out of bounds for axis ${a} with size ${s}`);Q+=B*n[a]}o[i]=Q}return d.fromData(o,[e],"int32")}function vx(A,r,I="C"){let e=r.length,t,o;if(typeof A=="number")t=[A],o=[];else{t=[];for(let a=0;a<A.size;a++)t.push(Number(A.iget(a)));o=Array.from(A.shape)}let n=t.length,g=r.reduce((a,B)=>a*B,1),i=new Array(e);if(I==="C"){let a=1;for(let B=e-1;B>=0;B--)i[B]=a,a*=r[B]}else{let a=1;for(let B=0;B<e;B++)i[B]=a,a*=r[B]}let Q=[];for(let a=0;a<e;a++){let B=new Int32Array(n);Q.push(d.fromData(B,o.length?o:[1],"int32"))}for(let a=0;a<n;a++){let B=t[a];if(B<0||B>=g)throw new Error(`index ${B} is out of bounds for array with size ${g}`);if(I==="C")for(let s=0;s<e;s++){let C=Math.floor(B/i[s]);B=B%i[s],Q[s].data[a]=C%r[s]}else for(let s=e-1;s>=0;s--){let C=Math.floor(B/i[s]);B=B%i[s],Q[s].data[a]=C%r[s]}}return typeof A=="number"?Q.map(a=>{let B=a.iget(0);return d.fromData(new Int32Array([Number(B)]),[],"int32")}):Q}function Xx(A,r,I=!1){let e=A.shape,t=e.length;if(t<2)throw new Error("array must be at least 2-d");let o;if(t===2)o=e[1]+1;else{o=1;for(let Q=1;Q<t;Q++){let a=1;for(let B=Q;B<t;B++)a*=e[B];o+=a}}let n=A.size,g=Math.min(...e);I&&t===2&&(g=Math.max(e[0],e[1]));let i=A.isCContiguous;if(typeof r=="number")if(i){let Q=A.data,a=A.offset;if(L(A.dtype)){let B=Q,s=BigInt(Math.round(r));for(let C=0;C<g;C++){let E=C*o;if(E>=n)break;B[a+E]=s}}else for(let B=0;B<g;B++){let s=B*o;if(s>=n)break;Q[a+s]=r}}else for(let Q=0;Q<g&&Q*o<n;Q++)A.iset(Q*o,r);else{let Q=r.size;if(i&&r.isCContiguous){let a=A.data,B=A.offset,s=r.data,C=r.offset;if(L(A.dtype)){let E=a,u=s;for(let f=0;f<g;f++){let m=f*o;if(m>=n)break;E[B+m]=u[C+f%Q]}}else{let E=a,u=s;for(let f=0;f<g;f++){let m=f*o;if(m>=n)break;E[B+m]=u[C+f%Q]}}}else for(let a=0;a<g&&a*o<n;a++)A.iset(a*o,r.iget(a%Q))}}function Tx(A,r,I){let e=Array.from(A.shape),t=e.length;if(r<0&&(r+=t),r<0||r>=t)throw new Error(`axis ${r} is out of bounds for array of dimension ${t}`);let o=[];for(let s=0;s<t;s++)s!==r&&o.push(e[s]);if(o.length===0){let s=I(A);if(typeof s=="number"){let C=d.zeros([1],A.dtype);return C.data[0]=s,C}return s}if(t===2){let[s,C]=e;if(r===0){let E=[];for(let f=0;f<C;f++){let m=new Float64Array(s);for(let D=0;D<s;D++)m[D]=Number(A.get(D,f));let c=d.fromData(m,[s],"float64");E.push(I(c))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let f=d.zeros([C],"float64");for(let m=0;m<C;m++)f.data[m]=E[m];return f}else{let f=[u.size,C],m=d.zeros(f,"float64");for(let c=0;c<C;c++){let D=E[c];for(let y=0;y<D.size;y++)m.data[y*C+c]=Number(D.iget(y))}return m}}else{let E=[];for(let f=0;f<s;f++){let m=new Float64Array(C);for(let D=0;D<C;D++)m[D]=Number(A.get(f,D));let c=d.fromData(m,[C],"float64");E.push(I(c))}let u=E[0];if(u===void 0)return d.zeros([0],"float64");if(typeof u=="number"){let f=d.zeros([s],"float64");for(let m=0;m<s;m++)f.data[m]=E[m];return f}else{let f=[s,u.size],m=d.zeros(f,"float64");for(let c=0;c<s;c++){let D=E[c];for(let y=0;y<D.size;y++)m.data[c*D.size+y]=Number(D.iget(y))}return m}}}if(t===1){let s=I(A);if(typeof s=="number"){let C=d.zeros([1],"float64");return C.data[0]=s,C}return s}let n=e[r],g=o.reduce((s,C)=>s*C,1);function i(s){let C=new Array(o.length),E=s;for(let u=o.length-1;u>=0;u--)C[u]=E%o[u],E=Math.floor(E/o[u]);return C}function Q(s,C){let E=[],u=0;for(let f=0;f<t;f++)E.push(f===r?C:s[u++]);return Number(A.get(...E))}let a=[];for(let s=0;s<g;s++){let C=i(s),E=new Float64Array(n);for(let f=0;f<n;f++)E[f]=Q(C,f);let u=d.fromData(E,[n],"float64");a.push(I(u))}let B=a[0];if(B===void 0)return d.zeros([0],"float64");if(typeof B=="number"){let s=d.zeros(o,"float64");for(let C=0;C<g;C++)s.data[C]=a[C];return s}else{let s=[...o,...Array.from(B.shape)],C=d.zeros(s,"float64"),E=B.size;for(let u=0;u<g;u++){let f=a[u];for(let m=0;m<E;m++)C.data[u*E+m]=Number(f.iget(m))}return C}}function Px(A,r,I){let e=A,t=A.shape.length;for(let o of I){let n=o<0?o+t:o;if(n<0||n>=t)throw new Error(`axis ${o} is out of bounds for array of dimension ${t}`);if(e=r(e,n),e.shape.length<t){let g=Array.from(e.shape);g.splice(n,0,1);let i=HA(g);e=new d(e.data,g,i,0,e.dtype)}}return e}function Hc(A,r){return A.data.buffer===r.data.buffer}function Kx(A,r){return Hc(A,r)}var Jr={divide:"warn",over:"warn",under:"ignore",invalid:"warn"};function _c(){return{...Jr}}function Vx(A,r,I,e,t){let o=_c();return A!==void 0&&(Jr.divide=A,Jr.over=A,Jr.under=A,Jr.invalid=A),r!==void 0&&(Jr.divide=r),I!==void 0&&(Jr.over=I),e!==void 0&&(Jr.under=e),t!==void 0&&(Jr.invalid=t),o}function fi(A,r){return $A(xc(G(A),r),A)}function lQ(...A){let r=A.map(G);return bx(r).map(I=>R(I))}function hQ(...A){if(A.length===0)return[];if(A.length===1)return[...A[0]];let r=[...A[0]];for(let I=1;I<A.length;I++){let e=A[I],t=Math.max(r.length,e.length),o=[];for(let n=0;n<t;n++){let g=n<r.length?r[r.length-1-n]:1,i=n<e.length?e[e.length-1-n]:1;if(g===i)o.unshift(g);else if(g===1)o.unshift(i);else if(i===1)o.unshift(g);else throw new Error(`Cannot broadcast shapes: dimensions ${g} and ${i} are incompatible`)}r=o}return r}function re(A,r,I){return R(px(G(A),r,I))}function Ie(A,r,I){let e=Array.isArray(I)?G(QA(I)):G(I);wx(G(A),r,e)}function Yc(A,r,I){return R(Gx(G(A),G(r),I))}function dQ(A,r,I,e){Sx(G(A),G(r),G(I),e)}function mi(A,r){let I=r.map(G);return R(Nx(G(A),I))}function uI(A,r,I){return R(kx(G(A),G(r),I))}function vc(A,r,I=0){let e;return r instanceof AA?e=Array.from(r.data):Array.isArray(r[0])?e=r.flat():e=r,re(A,e,I)}function Xc(A,r,I){return uI(r,A,I)}function Tc(A,r,I=0){let e=A.map(G),t=r.map(G);return R(qx(e,t,I))}function bQ(A,r,I){Mx(G(A),G(r),G(I))}function pQ(A,r,I){Rx(G(A),G(r),G(I))}function wQ(A,r){let I=G(A),e=A.shape,t=A.size,o=A.dtype;if(typeof r=="number"||typeof r=="bigint"){A.fill(r);return}let n=G(r),g=r.shape,i=Fr([g,e]);if(!i)throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);if(i.length!==e.length||!i.every((a,B)=>a===e[B]))throw new Error(`could not broadcast input array from shape (${g.join(",")}) into shape (${e.join(",")})`);let Q=xc(n,e);if(L(o))for(let a=0;a<t;a++){let B=Q.iget(a),s=typeof B=="bigint"?B:BigInt(Math.round(Number(B)));I.iset(a,s)}else if(o==="bool")for(let a=0;a<t;a++){let B=Q.iget(a);I.iset(a,B?1:0)}else for(let a=0;a<t;a++){let B=Q.iget(a);I.iset(a,Number(B))}}function Pc(A,r="int32"){return R(Hx(A,r))}function NQ(...A){let r=A.map(G);return _x(...r).map(I=>R(I))}function Kc(A,r,I="raise"){let e=A.map(G);return R(Yx(e,r,I))}function Vc(A,r){let I=typeof A=="number"?G(QA([A])):G(A);return vx(I,r).map(e=>R(e))}function Wc(A,r=2){return Jc(A,r).map(I=>R(I))}function Oc(A){return xx(G(A)).map(r=>R(r))}function FQ(A,r,I=!1){Xx(G(A),r,I)}function Zc(A,r=0,I){return Uc(A,r,I).map(e=>R(e))}function zc(A,r=0){return Jx(G(A),r).map(I=>R(I))}function jc(A,r=0,I){return Lc(A,r,I).map(e=>R(e))}function $c(A,r=0){return Ux(G(A),r).map(I=>R(I))}function AD(A,r,I=0){return Lx(A,(t,o)=>G(r(t,o)),I).map(t=>R(t))}function GQ(A,r,I=!1){return Fx(G(A),G(r),I)}function SQ(A,r){return oS(G(A),G(r))}function rD(A,r,I){let e=t=>{let o=A(R(t));return typeof o=="number"?o:G(o)};return R(Tx(G(I),r,e))}function ID(A,r,I){let e=(t,o)=>G(A(R(t),o));return R(Px(G(r),e,I))}function RQ(A,r){return Hc(G(A),G(r))}function kQ(A,r){return Kx(G(A),G(r))}var qQ=_c,MQ=Vx;var xQ=rm,JQ=Im,UQ=em,LQ=Ee,HQ=Ce,_Q=tm,YQ=om;function vQ(A,r){return _i(G(A),r?.max_line_width??null,r?.precision??null,r?.suppress_small??null,r?.separator??" ",r?.prefix??"",r?.suffix??"",r?.threshold??null,r?.edgeitems??null,r?.floatmode??null,r?.sign??null)}function XQ(A,r,I,e){return nm(G(A),r,I,e)}function ee(A,r,I){return Yi(G(A),r,I)}function TQ(A){if(A instanceof AA)return A.ndim;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return 0;if(Array.isArray(A)){let r=0,I=A;for(;Array.isArray(I)&&I.length>0;)r++,I=I[0];return r}return 0}function yi(A){if(A instanceof AA)return A.shape;if(typeof A=="number"||typeof A=="bigint"||typeof A=="boolean")return[];if(Array.isArray(A)){let r=[],I=A;for(;Array.isArray(I)&&I.length>0;)r.push(I.length),I=I[0];return r}return[]}function PQ(A){return A instanceof AA?A.size:typeof A=="number"||typeof A=="bigint"||typeof A=="boolean"?1:Array.isArray(A)?yi(A).reduce((I,e)=>I*e,1):1}function KQ(A,...r){let I=A.storage,e=A.shape;if(r.length===0){if(A.size!==1)throw new Error("can only convert an array of size 1 to a scalar");return I.isCContiguous?I.data[I.offset]:I.iget(0)}if(r.length===1)return I.isCContiguous?I.data[I.offset+r[0]]:I.iget(r[0]);if(r.length!==e.length)throw new Error("incorrect number of indices for array");return I.get(...r)}function VQ(A){let r=A.shape,I=A.storage,e=r.length;if(e===0)return I.iget(0);if(I.isCContiguous){let a=function(B,s){let C=r[s],E=i[s];if(s===e-1){let f=new Array(C);for(let m=0;m<C;m++)f[m]=n[g+B+m];return f}let u=new Array(C);for(let f=0;f<C;f++)u[f]=a(B+f*E,s+1);return u};var o=a;let n=I.data,g=I.offset;if(e===1){let B=r[0],s=new Array(B);for(let C=0;C<B;C++)s[C]=n[g+C];return s}let i=new Array(e),Q=1;for(let B=e-1;B>=0;B--)i[B]=Q,Q*=r[B];return a(0,0)}if(e===1){let n=[];for(let g=0;g<r[0];g++)n.push(I.iget(g));return n}function t(n,g){if(g===e)return I.get(...n);let i=[];for(let Q=0;Q<r[g];Q++)n[g]=Q,i.push(t(n,g+1));return i}return t(new Array(e),0)}function WQ(A,r="C"){let I=A.storage;r==="F"&&console.warn('tobytes with order="F" not fully implemented, returning C-order');let e=I.data,t=e.BYTES_PER_ELEMENT;if(I.isCContiguous){let g=e.byteOffset+I.offset*t,i=A.size*t;return new Uint8Array(e.buffer,g,i)}let n=A.copy().data;return new Uint8Array(n.buffer,n.byteOffset,A.size*t)}function OQ(A,r=!1){let e=A.data.BYTES_PER_ELEMENT;if(e===1)return r?A:A.copy();let t=r?A:A.copy(),o=t.data,n=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);for(let g=0;g<o.length;g++){let i=g*e;for(let Q=0;Q<e/2;Q++){let a=n[i+Q];n[i+Q]=n[i+e-1-Q],n[i+e-1-Q]=a}}return t}function ZQ(A,r){if(!r||r===A.dtype)return A.copy();throw new Error("view with different dtype not fully implemented")}function zQ(A,r,I="",e=""){throw new Error("tofile requires Node.js file system access. Use serializeNpy for portable serialization.")}function jQ(A,r){let I=A.storage,e=A.dtype,t=A.size;if(r instanceof T){if(!(e==="complex64"||e==="complex128"))throw new Error("Cannot fill non-complex array with complex value");if(I.isCContiguous){let n=I.data,g=I.offset;for(let i=0;i<t;i++)n[(g+i)*2]=r.re,n[(g+i)*2+1]=r.im}else for(let n=0;n<t;n++)I.iset(n,r)}else if(typeof r=="bigint")if(I.isCContiguous)I.data.fill(r,I.offset,I.offset+t);else for(let o=0;o<t;o++)I.iset(o,r);else{let o=typeof r=="boolean"?r?1:0:r;if(I.isCContiguous)I.data.fill(o,I.offset,I.offset+t);else for(let n=0;n<t;n++)I.iset(n,o)}}var mX="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",li=null;function te(){if(li)return li;let A=atob(mX),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);li=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=li.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),li}function Wx(A,r,I,e,t){te().exports.pad_2d_f64(A,r,I,e,t)}function Ox(A,r,I,e,t){te().exports.pad_2d_f32(A,r,I,e,t)}function eD(A,r,I,e,t){te().exports.pad_2d_i64(A,r,I,e,t)}function tD(A,r,I,e,t){te().exports.pad_2d_i32(A,r,I,e,t)}function oD(A,r,I,e,t){te().exports.pad_2d_i16(A,r,I,e,t)}function nD(A,r,I,e,t){te().exports.pad_2d_i8(A,r,I,e,t)}var yX=64,lX={float64:Wx,float32:Ox,int64:eD,uint64:eD,int32:tD,uint32:tD,int16:oD,uint16:oD,int8:nD,uint8:nD},hX={float64:Float64Array,float32:Float32Array,int64:BigInt64Array,uint64:BigUint64Array,int32:Int32Array,uint32:Uint32Array,int16:Int16Array,uint16:Uint16Array,int8:Int8Array,uint8:Uint8Array};function Zx(A,r){if(!A.isCContiguous||A.shape.length!==2)return null;let I=A.size;if(I<yX*Y.thresholdMultiplier)return null;let e=A.dtype,t=lX[e],o=hX[e];if(!t||!o)return null;let n=A.shape[0],g=A.shape[1],i=n+2*r,Q=g+2*r,a=i*Q,B=o.BYTES_PER_ELEMENT,s=I*B,C=a*B;J(s+C),U();let E=A.offset,u=A.data.subarray(E,E+I),f=q(u),m=_(C);t(f,m,n,g,r);let c=v(m,a,o);return d.fromData(c,[i,Q],e)}function iD(A,r,I){let e=r instanceof AA?r:QA(Array.isArray(r)?r:[r]);if(I===void 0){let t=yr(A),o=yr(e);return _I([t,o],0)}return _I([A,e],I)}function $Q(A,r,I){let e=Array.isArray(r)?r:[r],t=[...A.shape],o=A.storage;if(I===void 0){let m=yr(A),c=m.storage,D=[],y=new Set(e.map(l=>l<0?m.size+l:l));for(let l=0;l<m.size;l++)y.has(l)||D.push(c.iget(l));return QA(D,A.dtype)}let n=I<0?t.length+I:I,g=t[n],i=new Set(e.map(m=>m<0?g+m:m)),Q=g-i.size,a=[...t];a[n]=Q;let B=er(a,A.dtype),s=B.storage,C=[],E=1;for(let m=t.length-1;m>=0;m--)C.unshift(E),E*=t[m];let u=[];E=1;for(let m=a.length-1;m>=0;m--)u.unshift(E),E*=a[m];let f=t.reduce((m,c)=>m*c,1);for(let m=0;m<f;m++){let c=[],D=m;for(let b=0;b<t.length;b++)c.push(Math.floor(D/C[b])),D=D%C[b];if(i.has(c[n]))continue;let y=0;for(let b of i)b<c[n]&&y++;let l=[...c];l[n]-=y;let h=0;for(let b=0;b<a.length;b++)h+=l[b]*u[b];s.iset(h,o.iget(m))}return B}function gD(A,r,I,e){let t=Array.isArray(r)?r:[r],o=I instanceof AA?I:QA(Array.isArray(I)?I:[I]);if(e===void 0){let n=yr(A),g=yr(o),i=n.data,Q=g.data,a=Array.from(i);if(t.length===1){let B=t[0],s=B<0?n.size+B:B,C=Array.from(Q);a.splice(s,0,...C)}else{let B=t.map((s,C)=>({idx:s<0?n.size+s:s,valIdx:C})).sort((s,C)=>s.idx-C.idx);for(let s=0;s<B.length;s++){let{idx:C,valIdx:E}=B[s],u=Q[E%Q.length];a.splice(C+s,0,u)}}return QA(a,A.dtype)}throw new Error("insert along axis not fully implemented in standalone")}function QD(A,r,I="constant",e=0){let t=[...A.shape],o=t.length,n;typeof r=="number"?n=Array(o).fill([r,r]):Array.isArray(r)&&typeof r[0]=="number"?n=Array(o).fill(r):n=r;let g=t.map((u,f)=>u+n[f][0]+n[f][1]);if(I==="constant"&&e===0&&o===2&&typeof r=="number"){let u=Zx(A.storage,r);if(u)return new AA(u)}if(I!=="constant")throw new Error(`pad mode '${I}' not fully implemented in standalone`);let i=er(g,A.dtype),Q=i.storage;if(e!==0)for(let u=0;u<i.size;u++)Q.iset(u,e);let a=A.storage,B=[],s=1;for(let u=t.length-1;u>=0;u--)B.unshift(s),s*=t[u];let C=[];s=1;for(let u=g.length-1;u>=0;u--)C.unshift(s),s*=g[u];let E=t.reduce((u,f)=>u*f,1);for(let u=0;u<E;u++){let f=[],m=u;for(let D=0;D<t.length;D++)f.push(Math.floor(m/B[D])),m=m%B[D];let c=0;for(let D=0;D<g.length;D++)c+=(f[D]+n[D][0])*C[D];Q.iset(c,a.iget(u))}return i}var sD=["int8","int16","int32","int64"],CD=["uint8","uint16","uint32","uint64"],jx=[...sD,...CD],aD=["float32","float64"],BD=["complex64","complex128"],dX=[...jx,...aD,...BD],zx={bool:0,int8:1,uint8:2,int16:3,uint16:4,int32:5,uint32:6,int64:7,uint64:8,float32:9,float64:10,complex64:11,complex128:12};function hi(A,r,I="safe"){let e=A instanceof AA?A.dtype:A;if(I==="no"||I==="equiv")return e===r;if(I==="unsafe")return!0;let t=zx[e]??-1,o=zx[r]??-1;if(I==="safe"){if(pA(e)&&fA(r)){let n={int8:8,int16:16,int32:32,int64:64,uint8:8,uint16:16,uint32:32,uint64:64,bool:1,float32:0,float64:0,complex64:0,complex128:0},g={float32:24,float64:53,int8:0,int16:0,int32:0,int64:0,uint8:0,uint16:0,uint32:0,uint64:0,bool:0,complex64:24,complex128:53},i=n[e]??64,Q=g[r]??0;return i<=Q}return!!(pA(e)&&k(r)||fA(e)&&k(r)||t<=o)}return I==="same_kind"?!!(pA(e)&&pA(r)||fA(e)&&fA(r)||k(e)&&k(r)||e==="bool"&&pA(r)||e==="bool"&&r==="bool"||fA(e)&&k(r)):!1}function Aa(...A){if(A.length===0)return"float64";let r=!1,I=!1;for(let e of A){let t=e.dtype;k(t)?(r=!0,t==="complex128"&&(I=!0)):fA(t)?t==="float64"&&(I=!0):pA(t)&&(t==="int64"||t==="uint64"||t==="int32"||t==="uint32")&&(I=!0)}return r?I?"complex128":"complex64":I?"float64":"float32"}function ra(...A){if(A.length===0)return"float64";let r=A.map(o=>o instanceof AA?o.dtype:o),I=r.some(k),e=r.some(fA),t=r.some(pA);if(I){let o=r.some(i=>i==="float64"),n=r.some(i=>i==="complex128"),g=r.some(i=>i==="int64"||i==="uint64"||i==="int32"||i==="uint32");return n||o||g?"complex128":"complex64"}if(e){let o=r.some(n=>n==="float64");return t&&(r.some(g=>g==="int32"||g==="uint32"||g==="int64"||g==="uint64")||o)||o?"float64":"float32"}if(t){let o=r.some(Q=>sD.includes(Q)),n=r.some(Q=>CD.includes(Q)),g={bool:8,int8:8,uint8:8,int16:16,uint16:16,int32:32,uint32:32,int64:64,uint64:64,float32:0,float64:0,complex64:0,complex128:0},i=Math.max(...r.map(Q=>g[Q]??0));return o&&n?i>=32?"int64":i>=16?"int32":"int16":o?i>=64?"int64":i>=32?"int32":i>=16?"int16":"int8":i>=64?"uint64":i>=32?"uint32":i>=16?"uint16":"uint8"}return"bool"}function Ia(A){return typeof A=="boolean"?"bool":typeof A=="bigint"?A>=0n?A<=255n?"uint8":A<=65535n?"uint16":A<=4294967295n?"uint32":"uint64":A>=-128n&&A<=127n?"int8":A>=-32768n&&A<=32767n?"int16":A>=-2147483648n&&A<=2147483647n?"int32":"int64":Number.isInteger(A)?A>=0?A<=255?"uint8":A<=65535?"uint16":A<=4294967295?"uint32":"int64":A>=-128&&A<=127?"int8":A>=-32768&&A<=32767?"int16":A>=-2147483648&&A<=2147483647?"int32":"int64":"float64"}function ea(A,r){let I=A instanceof AA?A.dtype:A;if(typeof r=="string")switch(r){case"number":case"numeric":return dX.includes(I);case"integer":case"int":return jx.includes(I);case"signedinteger":return sD.includes(I);case"unsignedinteger":return CD.includes(I);case"floating":case"float":return aD.includes(I);case"complexfloating":case"complex":return BD.includes(I);case"inexact":return aD.includes(I)||BD.includes(I);default:return I===r}return I===r}function ta(A){return A}function oa(A,r="GDFgdf",I="d"){let e={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128"},t={b:0,B:1,h:2,H:3,i:4,I:5,l:6,L:7,f:8,g:9.1,d:9,F:10,G:11.1,D:11};if(A.length===0)return I;let o=[];for(let i of A){let Q=e[i];Q&&o.push(Q)}if(o.length===0)return I;let n=I,g=1/0;for(let i of r){let Q=e[i];if(!Q)continue;let a=t[i]??1/0,B=!0;for(let s of o)if(!hi(s,Q,"safe")){B=!1;break}B&&a<g&&(g=a,n=i)}return n}function Ir(A){return A instanceof AA?A:QA(A)}function ED(A){let r=Ir(A),I=r.data,e=r.size;if(e===0)return QA([1]);let t=[1];for(let o=0;o<e;o++){let n=I[o],g=new Array(t.length+1).fill(0);for(let i=0;i<t.length;i++)g[i]+=t[i],g[i+1]-=t[i]*n;t=g}return QA(t)}function uD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]+=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function cD(A,r=1){let I=Ir(A);for(let e=0;e<r;e++){let t=I.data,o=I.size;if(o<=1)return QA([0]);let n=[];for(let g=0;g<o-1;g++){let i=o-1-g;n.push(t[g]*i)}I=QA(n)}return I}function DD(A,r){let I=[...Ir(A).data],e=[...Ir(r).data];if(e.length===0||e.length===1&&e[0]===0)throw new Error("Division by zero polynomial");for(;I.length>1&&I[0]===0;)I.shift();for(;e.length>1&&e[0]===0;)e.shift();if(I.length<e.length)return[QA([0]),QA(I)];let t=[],o=[...I];for(;o.length>=e.length;){let n=o[0]/e[0];t.push(n);for(let g=0;g<e.length;g++)o[g]-=n*e[g];o.shift()}for(;o.length>1&&Math.abs(o[0])<1e-15;)o.shift();return[QA(t.length>0?t:[0]),QA(o.length>0?o:[0])]}function fD(A,r,I){let e=A.data,t=r.data,o=A.size;if(I>=o)throw new Error("polyfit: degree must be less than number of points");let n=[];for(let s=0;s<o;s++){let C=[];for(let E=I;E>=0;E--)C.push(Math.pow(e[s],E));n.push(C)}let g=[],i=[];for(let s=0;s<=I;s++){g.push([]);for(let E=0;E<=I;E++){let u=0;for(let f=0;f<o;f++)u+=n[f][s]*n[f][E];g[s].push(u)}let C=0;for(let E=0;E<o;E++)C+=n[E][s]*t[E];i.push(C)}let Q=I+1,a=g.map((s,C)=>[...s,i[C]]);for(let s=0;s<Q;s++){let C=s;for(let E=s+1;E<Q;E++)Math.abs(a[E][s])>Math.abs(a[C][s])&&(C=E);[a[s],a[C]]=[a[C],a[s]];for(let E=s+1;E<Q;E++){let u=a[E][s]/a[s][s];for(let f=s;f<=Q;f++)a[E][f]-=u*a[s][f]}}let B=new Array(Q).fill(0);for(let s=Q-1;s>=0;s--){let C=a[s][Q];for(let E=s+1;E<Q;E++)C-=a[s][E]*B[E];B[s]=C/a[s][s]}return QA(B)}function mD(A,r=1,I=0){let e=Ir(A),t=Array.isArray(I)?I:[I];for(let o=0;o<r;o++){let n=e.data,g=e.size,i=[];for(let a=0;a<g;a++){let B=g-a;i.push(n[a]/B)}let Q=o<t.length?t[o]:0;i.push(Q),e=QA(i)}return e}function yD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=I.size+e.size-1,g=new Array(n).fill(0);for(let i=0;i<I.size;i++)for(let Q=0;Q<e.size;Q++)g[i+Q]+=t[i]*o[Q];return QA(g)}function lD(A,r){let I=Ir(A),e=Ir(r),t=I.data,o=e.data,n=Math.max(I.size,e.size),g=new Array(n).fill(0);for(let Q=0;Q<I.size;Q++)g[n-I.size+Q]+=t[Q];for(let Q=0;Q<e.size;Q++)g[n-e.size+Q]-=o[Q];let i=0;for(;i<g.length-1&&g[i]===0;)i++;return QA(g.slice(i))}function hD(A,r){let I=Ir(A),e=I.data;if(typeof r=="number"){let Q=e[0];for(let a=1;a<I.size;a++)Q=Q*r+e[a];return Q}let t=r instanceof AA?r:QA(r),o=t.data,n=t.size,g=I.size,i=new Float64Array(n);for(let Q=0;Q<n;Q++){let a=Number(o[Q]),B=Number(e[0]);for(let s=1;s<g;s++)B=B*a+Number(e[s]);i[Q]=B}return new AA(d.fromData(i,Array.from(t.shape),"float64"))}function dD(A){let I=[...Ir(A).data];for(;I.length>1&&I[0]===0;)I.shift();let e=0;for(;I.length>1&&I[I.length-1]===0;)I.pop(),e++;let t=I.length-1;if(t+e===0)return $x([],[]);let n=[],g=[];if(t===1)n.push(-I[1]/I[0]),g.push(0);else if(t===2){let B=I[0],s=I[1],C=I[2],E=s*s-4*B*C;if(E>=0){let u=Math.sqrt(E);n.push((-s+u)/(2*B),(-s-u)/(2*B)),g.push(0,0)}else{let u=Math.sqrt(-E);n.push(-s/(2*B),-s/(2*B)),g.push(u/(2*B),-u/(2*B))}}else if(t>=3){let B=bX(I,t);for(let s of B)n.push(s.re),g.push(s.im)}for(let B=0;B<e;B++)n.push(0),g.push(0);let i=n.map((B,s)=>s);i.sort((B,s)=>{let C=Math.sqrt(n[B]**2+g[B]**2),E=Math.sqrt(n[s]**2+g[s]**2);return Math.abs(C-E)>1e-10?E-C:Math.abs(n[B]-n[s])>1e-10?n[s]-n[B]:g[s]-g[B]});let Q=i.map(B=>n[B]),a=i.map(B=>g[B]);return $x(Q,a)}function $x(A,r){let I=A.length,e=new Float64Array(2*I);for(let o=0;o<I;o++)e[2*o]=A[o],e[2*o+1]=r[o];let t=d.fromData(e,[I],"complex128");return new AA(t)}function bX(A,r){let I=Array.from({length:r},()=>new Array(r).fill(0)),e=A[0];for(let t=0;t<r;t++)I[0][t]=-A[t+1]/e;for(let t=1;t<r;t++)I[t][t-1]=1;return pX(I,r)}function pX(A,r){let I=[],t=r,o=0,n=100*r,g=r,i=0;for(;t>0&&o<n;){if(o++,t===g?i++:(i=0,g=t),t===1){I.push({re:A[0][0],im:0}),t=0;break}if(t===2){I.push(...AJ(A[0][0],A[0][1],A[1][0],A[1][1])),t=0;break}let Q=t-1;for(;Q>0;){let E=Math.abs(A[Q-1][Q-1])+Math.abs(A[Q][Q]),u=222e-18*(E===0?1:E);if(Math.abs(A[Q][Q-1])<=u){A[Q][Q-1]=0;break}Q--}let a=t-Q;if(a===1){I.push({re:A[t-1][t-1],im:0}),t--;continue}if(a===2){I.push(...AJ(A[t-2][t-2],A[t-2][t-1],A[t-1][t-2],A[t-1][t-1])),t-=2;continue}let B;if(i>0&&i%10===0)B=Math.abs(A[t-1][t-2])+Math.abs(A[t-2][t-3]);else{let E=A[t-2][t-2],u=A[t-2][t-1],f=A[t-1][t-2],m=A[t-1][t-1],c=E+m,D=E*m-u*f,y=c*c-4*D;if(y>=0){let l=Math.sqrt(y),h=(c+l)/2,b=(c-l)/2;B=Math.abs(h-m)<Math.abs(b-m)?h:b}else B=m}for(let E=Q;E<t;E++)A[E][E]=A[E][E]-B;let s=[],C=[];for(let E=Q;E<t-1;E++){let u=Math.hypot(A[E][E],A[E+1][E]),f=u===0?1:A[E][E]/u,m=u===0?0:A[E+1][E]/u;s.push(f),C.push(m);for(let c=E;c<t;c++){let D=A[E][c],y=A[E+1][c];A[E][c]=f*D+m*y,A[E+1][c]=-m*D+f*y}}for(let E=0;E<s.length;E++){let u=Q+E,f=s[E],m=C[E],c=Math.min(u+2,t-1);for(let D=Q;D<=c;D++){let y=A[D][u],l=A[D][u+1];A[D][u]=f*y+m*l,A[D][u+1]=-m*y+f*l}}for(let E=Q;E<t;E++)A[E][E]=A[E][E]+B}if(t>0)for(let Q=0;Q<t;Q++)I.push({re:A[Q][Q],im:0});return I}function AJ(A,r,I,e){let t=A+e,o=A*e-r*I,n=t*t-4*o;if(n>=0){let g=Math.sqrt(n);return[{re:(t+g)/2,im:0},{re:(t-g)/2,im:0}]}else{let g=Math.sqrt(-n);return[{re:t/2,im:g/2},{re:t/2,im:-g/2}]}}var di=new Uint8Array([147,78,85,77,80,89]),bD=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];function pD(){let A=new ArrayBuffer(2);return new DataView(A).setInt16(0,256,!0),new Int16Array(A)[0]===256}var wX={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},na={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},rJ={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};function IJ(A){if(A.startsWith("[")||A.startsWith("("))throw new Ur(`Structured/compound dtypes are not supported: ${A}`);let r="",I=A;(A[0]==="<"||A[0]===">"||A[0]==="="||A[0]==="|")&&(r=A[0],I=A.slice(1));let e=I[0];if(e&&e in rJ)throw new Ur(`Unsupported dtype: ${rJ[e]} (${A}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let t=wX[I];if(!t)throw new Ur(`Unknown or unsupported dtype descriptor: ${A}. Supported types: ${bD.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=pD(),n=r==="<"||r==="|"||r==="="&&o,g=r===">"||r==="="&&!o,i=parseInt(I.slice(1),10),Q=i>1&&(g&&o||n&&!o);return{dtype:t,needsByteSwap:Q,itemsize:i}}var Ur=class extends Error{constructor(r){super(r),this.name="UnsupportedDTypeError"}},jA=class extends Error{constructor(r){super(r),this.name="InvalidNpyError"}};function ia(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=wD(r);return ND(r,I)}function wD(A){if(A.length<10)throw new jA("File too small to be a valid NPY file");for(let Q=0;Q<di.length;Q++)if(A[Q]!==di[Q])throw new jA("Invalid NPY magic number");let r=A[6],I=A[7];if(r!==1&&r!==2&&r!==3)throw new jA(`Unsupported NPY version: ${r}.${I}`);let e,t;r===1?(e=A[8]|A[9]<<8,t=10):(e=A[8]|A[9]<<8|A[10]<<16|A[11]<<24,t=12);let o=t+e;if(A.length<o)throw new jA("File truncated: header extends beyond file");let n=A.slice(t,o),g=new TextDecoder("utf-8").decode(n).trim(),i=NX(g);return{version:{major:r,minor:I},header:i,dataOffset:o}}function ND(A,r){let{header:I,dataOffset:e}=r,{dtype:t,needsByteSwap:o,itemsize:n}=IJ(I.descr),g=I.shape.reduce((u,f)=>u*f,1),i=g*n,Q=A.length-e;if(Q<i)throw new jA(`File truncated: expected ${i} bytes of data, got ${Q}`);let a=new ArrayBuffer(i);new Uint8Array(a).set(A.subarray(e,e+i));let s=FX(a,t,g,o,n),C=I.shape,E;if(I.fortran_order&&C.length>1){let u=[...C].reverse(),f=d.fromData(s,u,t);E=GX(f,u),C=I.shape}else E=d.fromData(s,[...C],t);return new AA(E)}function NX(A){let r=A.match(/'descr'\s*:\s*'([^']+)'/),I=A.match(/'fortran_order'\s*:\s*(True|False)/),e=A.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!r||!I||!e)throw new jA(`Failed to parse NPY header: ${A}`);let t=r[1],o=I[1]==="True",n=e[1].trim(),g;return n===""?g=[]:g=n.split(",").map(i=>i.trim()).filter(i=>i!=="").map(i=>{let Q=parseInt(i,10);if(isNaN(Q))throw new jA(`Invalid shape value: ${i}`);return Q}),{descr:t,fortran_order:o,shape:g}}function FX(A,r,I,e,t){let o=nA(r);if(!o)throw new jA(`Cannot create array for dtype: ${r}`);let n=k(r),g=n?I*2:I;if(!e)return new o(A,0,g);let i=new Uint8Array(A),Q=new Uint8Array(A.byteLength);if(n){let a=t/2;for(let B=0;B<I*2;B++){let s=B*a;for(let C=0;C<a;C++)Q[s+C]=i[s+a-1-C]}}else for(let a=0;a<I;a++){let B=a*t;for(let s=0;s<t;s++)Q[B+s]=i[B+t-1-s]}return new o(Q.buffer,0,g)}function GX(A,r){let I=r.length,e=A.size,t=A.dtype,o=nA(t);if(!o)throw new jA(`Cannot create array for dtype: ${t}`);let n=new o(e),g=[...r].reverse(),i=eJ(r),Q=eJ(g),a=new Array(I).fill(0);for(let B=0;B<e;B++){let s=B;for(let E=0;E<I;E++){let u=i[E];a[E]=Math.floor(s/u),s=s%u}let C=0;for(let E=0;E<I;E++)C+=a[I-1-E]*Q[E];L(t),n[C]=A.iget(B)}return d.fromData(n,g,t)}function eJ(A){let r=new Array(A.length),I=1;for(let e=A.length-1;e>=0;e--)r[e]=I,I*=A[e];return r}function bi(A){let r=A.shape,I=A.dtype,e=na[I],t=r.length===0?"()":r.length===1?`(${r[0]},)`:`(${r.join(", ")})`,o=`{'descr': '${e}', 'fortran_order': False, 'shape': ${t}, }`,n=12,i=(64-(n+o.length+1)%64)%64;o=o+" ".repeat(i)+`
6
- `;let Q=new TextEncoder().encode(o),a=Q.length,B=A.size,s=Hr(I),C=B*s,E=n+a+C,u=new Uint8Array(E);u.set(di,0),u[6]=3,u[7]=0,u[8]=a&255,u[9]=a>>8&255,u[10]=a>>16&255,u[11]=a>>24&255,u.set(Q,n);let f=n+a;return SX(A,u.subarray(f),s),u}function SX(A,r,I){let e=A.dtype,t=A.size,o=pD(),n=L(e),g=k(e),i=A.storage;if(i.isCContiguous&&i.offset===0&&o){let a=i.data,B=new Uint8Array(a.buffer,a.byteOffset,t*I);r.set(B)}else{let a=new DataView(r.buffer,r.byteOffset,r.byteLength);for(let B=0;B<t;B++){let s=i.iget(B),C=B*I;n?RX(a,C,s,e==="uint64"):g?kX(a,C,s,e):qX(a,C,s,e)}}}function RX(A,r,I,e){e?A.setBigUint64(r,I,!0):A.setBigInt64(r,I,!0)}function kX(A,r,I,e){e==="complex128"?(A.setFloat64(r,I.re,!0),A.setFloat64(r+8,I.im,!0)):(A.setFloat32(r,I.re,!0),A.setFloat32(r+4,I.im,!0))}function qX(A,r,I,e){switch(e){case"float64":A.setFloat64(r,I,!0);break;case"float32":A.setFloat32(r,I,!0);break;case"int32":A.setInt32(r,I,!0);break;case"int16":A.setInt16(r,I,!0);break;case"int8":A.setInt8(r,I);break;case"uint32":A.setUint32(r,I,!0);break;case"uint16":A.setUint16(r,I,!0);break;case"uint8":case"bool":A.setUint8(r,I);break;default:throw new Error(`Unsupported dtype for serialization: ${e}`)}}var oI=(()=>{let A=[],r=new Uint32Array(256);for(let I=0;I<256;I++){let e=I;for(let t=0;t<8;t++)e=e&1?3988292384^e>>>1:e>>>1;r[I]=e}A.push(r);for(let I=1;I<8;I++){let e=new Uint32Array(256);for(let t=0;t<256;t++)e[t]=A[I-1][t]>>>8^r[A[I-1][t]&255];A.push(e)}return A})();function FD(A){let r=oI[0],I=oI[1],e=oI[2],t=oI[3],o=oI[4],n=oI[5],g=oI[6],i=oI[7],Q=A.length,a=4294967295,B=0,s=Q-7;for(;B<s;){let C=(a^(A[B]|A[B+1]<<8|A[B+2]<<16|A[B+3]<<24))>>>0,E=A[B+4]|A[B+5]<<8|A[B+6]<<16|A[B+7]<<24;a=i[C&255]^g[C>>>8&255]^n[C>>>16&255]^o[C>>>24&255]^t[E&255]^e[E>>>8&255]^I[E>>>16&255]^r[E>>>24&255],B+=8}for(;B<Q;)a=r[(a^A[B])&255]^a>>>8,B++;return(a^4294967295)>>>0}async function nJ(A){let r=gJ(A),I=new Map;for(let e of r){let t=await MX(e);I.set(e.name,t)}return I}function iJ(A){let r=gJ(A),I=new Map;for(let e of r){if(e.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${e.name}. Use readZip() (async) for DEFLATE-compressed files.`);I.set(e.name,e.compressedData)}return I}function gJ(A){let r=A instanceof ArrayBuffer?new Uint8Array(A):A,I=new DataView(r.buffer,r.byteOffset,r.byteLength),e=[],t=-1;for(let Q=r.length-22;Q>=0;Q--)if(I.getUint32(Q,!0)===101010256){t=Q;break}if(t===-1)throw new Error("Invalid ZIP file: end of central directory not found");let o=I.getUint32(t+16,!0),n=I.getUint16(t+10,!0),g=[],i=o;for(let Q=0;Q<n&&I.getUint32(i,!0)===33639248;Q++){let B=I.getUint16(i+10,!0),s=I.getUint32(i+16,!0),C=I.getUint32(i+20,!0),E=I.getUint32(i+24,!0),u=I.getUint16(i+28,!0),f=I.getUint16(i+30,!0),m=I.getUint16(i+32,!0),c=I.getUint32(i+42,!0),D=r.slice(i+46,i+46+u),y=new TextDecoder("utf-8").decode(D);g.push({name:y,compressionMethod:B,crc32:s,compressedSize:C,uncompressedSize:E,localHeaderOffset:c}),i=i+46+u+f+m}for(let Q of g){let a=Q.localHeaderOffset;if(I.getUint32(a,!0)!==67324752)throw new Error(`Invalid local file header at offset ${a}`);let s=I.getUint16(a+26,!0),C=I.getUint16(a+28,!0),E=a+30+s+C,u=r.slice(E,E+Q.compressedSize);e.push({name:Q.name,compressedData:u,compressionMethod:Q.compressionMethod,crc32:Q.crc32,compressedSize:Q.compressedSize,uncompressedSize:Q.uncompressedSize})}return e}async function MX(A){if(A.compressionMethod===0)return A.compressedData;if(A.compressionMethod===8)return await xX(A.compressedData);throw new Error(`Unsupported compression method: ${A.compressionMethod}`)}async function xX(A){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let r=new DecompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function GD(A,r={}){let I=r.force??!1,e=await nJ(A);return QJ(e,I)}function SD(A,r={}){let I=r.force??!1,e=iJ(A);return QJ(e,I)}function QJ(A,r){let I=new Map,e=[],t=new Map;for(let[o,n]of A){if(!o.endsWith(".npy"))continue;let g=o.slice(0,-4);try{let i=ia(n);I.set(g,i)}catch(i){if(i instanceof Ur&&r)e.push(g),t.set(g,i.message);else throw i}}return{arrays:I,skipped:e,errors:t}}async function aJ(A,r={}){let I=await GD(A,r);return Object.fromEntries(I.arrays)}function BJ(A,r={}){let I=SD(A,r);return Object.fromEntries(I.arrays)}async function sJ(A,r={}){let I=r.compress??!1,e=[],t=new TextEncoder;for(let[E,u]of A){let f=FD(u),m,c;I?(m=await UX(u),m.length<u.length?c=8:(m=u,c=0)):(m=u,c=0),e.push({name:E,data:u,compressedData:m,crc:f,compressionMethod:c,offset:0})}let o=new Map;for(let E of e)o.set(E.name,t.encode(E.name));let n=0;for(let E of e)n+=30+o.get(E.name).length+E.compressedData.length;let g=0;for(let E of e)g+=46+o.get(E.name).length;let Q=n+g+22,a=new Uint8Array(Q),B=new DataView(a.buffer),s=0;for(let E of e)E.offset=s,s=EJ(a,B,s,E,o.get(E.name));let C=s;for(let E of e)s=uJ(a,B,s,E,o.get(E.name));return cJ(B,s,e.length,g,C),a}function CJ(A){let r=[],I=new TextEncoder;for(let[s,C]of A){let E=FD(C);r.push({name:s,data:C,compressedData:C,crc:E,compressionMethod:0,offset:0})}let e=new Map;for(let s of r)e.set(s.name,I.encode(s.name));let t=0;for(let s of r)t+=30+e.get(s.name).length+s.compressedData.length;let o=0;for(let s of r)o+=46+e.get(s.name).length;let g=t+o+22,i=new Uint8Array(g),Q=new DataView(i.buffer),a=0;for(let s of r)s.offset=a,a=EJ(i,Q,a,s,e.get(s.name));let B=a;for(let s of r)a=uJ(i,Q,a,s,e.get(s.name));return cJ(Q,a,r.length,o,B),i}function EJ(A,r,I,e,t){return r.setUint32(I,67324752,!0),I+=4,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,A.set(t,I),I+=t.length,A.set(e.compressedData,I),I+=e.compressedData.length,I}function uJ(A,r,I,e,t){return r.setUint32(I,33639248,!0),I+=4,r.setUint16(I,20,!0),I+=2,r.setUint16(I,e.compressionMethod===8?20:10,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,e.compressionMethod,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,33,!0),I+=2,r.setUint32(I,e.crc,!0),I+=4,r.setUint32(I,e.compressedData.length,!0),I+=4,r.setUint32(I,e.data.length,!0),I+=4,r.setUint16(I,t.length,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint16(I,0,!0),I+=2,r.setUint32(I,0,!0),I+=4,r.setUint32(I,e.offset,!0),I+=4,A.set(t,I),I+=t.length,I}function cJ(A,r,I,e,t){A.setUint32(r,101010256,!0),r+=4,A.setUint16(r,0,!0),r+=2,A.setUint16(r,0,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint16(r,I,!0),r+=2,A.setUint32(r,e,!0),r+=4,A.setUint32(r,t,!0),r+=4,A.setUint16(r,0,!0)}async function UX(A){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let r=new CompressionStream("deflate-raw"),I=new Uint8Array(A.length);I.set(A);let e=r.writable.getWriter();e.write(I),e.close();let t=r.readable.getReader(),o=[];for(;;){let{done:Q,value:a}=await t.read();if(Q)break;o.push(a)}let n=o.reduce((Q,a)=>Q+a.length,0),g=new Uint8Array(n),i=0;for(let Q of o)g.set(Q,i),i+=Q.length;return g}async function DJ(A,r={}){let I=mJ(A);return sJ(I,{compress:r.compress??!1})}function fJ(A){let r=mJ(A);return CJ(r)}function mJ(A){let r=new Map;if(Array.isArray(A)){for(let e=0;e<A.length;e++){let t=A[e],o=bi(t);r.set(`arr_${e}.npy`,o)}return r}let I=A instanceof Map?A.entries():Object.entries(A);for(let[e,t]of I){if(typeof e!="string"||e.length===0)throw new Error("Array names must be non-empty strings");let o=bi(t),n=e.endsWith(".npy")?e:`${e}.npy`;r.set(n,o)}return r}function RD(A,r={}){let{delimiter:I,comments:e="#",skiprows:t=0,usecols:o,max_rows:n,dtype:g="float64",missing_values:i,filling_values:Q}=r,a=A.split(/\r?\n/);if(t>0&&(a=a.slice(t)),a=a.filter(u=>{let f=u.trim();return!(f===""||e&&f.startsWith(e))}),n!==void 0&&n>0&&(a=a.slice(0,n)),a.length===0)return QA([],g);let B=[],s=new Set(i?Array.isArray(i)?i:[i]:[]),C=Q!==void 0?Q:g.includes("int")||g==="bool"?0:NaN;for(let u of a){let f;I===void 0?f=u.trim().split(/\s+/):f=u.split(I),o!==void 0&&(f=(Array.isArray(o)?o:[o]).map(D=>(D<0&&(D=f.length+D),f[D]??"")));let m=f.map(c=>{let D=c.trim();if(s.has(D)||D==="")return C;let y=parseFloat(D);return isNaN(y)?C:y});B.push(m)}let E=B[0]?.length??0;for(let u=1;u<B.length;u++)if(B[u].length!==E)throw new Error(`Inconsistent number of columns: row 0 has ${E} columns, row ${u} has ${B[u].length} columns`);return E===1?QA(B.map(u=>u[0]),g):QA(B,g)}function yJ(A,r={}){let I={...r,missing_values:r.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:r.filling_values??NaN};return RD(A,I)}function lJ(A,r,I="float64"){let e=typeof r=="string"?new RegExp(r,"gm"):new RegExp(r.source,"gm"),t=[],o;for(;(o=e.exec(A))!==null;)if(o.length>1){let n=o.slice(1).map(g=>{let i=parseFloat(g);return isNaN(i)?0:i});t.push(n)}return t.length===0?QA([],I):t[0].length===1?QA(t.map(n=>n[0]),I):QA(t,I)}function hJ(A,r){let I=typeof A=="bigint"?Number(A):A,e=r.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!e)return String(I);let[,t,o,n,g]=e,i=n!==void 0?parseInt(n,10):void 0,Q;switch(g){case"d":Q=Math.round(I).toString();break;case"f":Q=I.toFixed(i??6);break;case"e":Q=I.toExponential(i??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":Q=I.toExponential(i??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let a=i??6,B=Math.floor(Math.log10(Math.abs(I)));B>=-4&&B<a?(Q=I.toPrecision(a),Q.includes(".")&&(Q=Q.replace(/\.?0+$/,""))):Q=I.toExponential(a-1),g==="G"&&(Q=Q.toUpperCase());break}case"s":Q=String(I);break;default:Q=String(I)}if(o){let a=parseInt(o,10);if(Q.length<a){let B=" ".repeat(a-Q.length);t==="-"?Q=Q+B:Q=B+Q}}return t==="+"&&I>=0&&!Q.startsWith("-")&&(Q="+"+Q),Q}function dJ(A,r={}){let{fmt:I="%.18e",delimiter:e=" ",newline:t=`
7
- `,header:o,footer:n,comments:g="# "}=r;if(A.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let i=[];if(o!==void 0){let a=o.split(/\r?\n/);for(let B of a)B.startsWith(g.trimEnd())?i.push(B):i.push(g+B)}let Q=A.toArray();if(A.ndim===1)for(let a of Q)i.push(hJ(a,I));else for(let a of Q){let B=a.map(s=>hJ(s,I));i.push(B.join(e))}if(n!==void 0){let a=n.split(/\r?\n/);for(let B of a)B.startsWith(g.trimEnd())?i.push(B):i.push(g+B)}return i.join(t)+t}var j=A=>{if(A instanceof sA)return A;let r=A.base?j(A.base):void 0;return sA.fromStorage(A.storage,r)},sA=class A extends AA{constructor(r,I){super(r,I),this._base=I}static fromStorage(r,I){return new A(r,I)}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Hr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(r){let I=this._storage.dtype,e=this.size;if(L(I)){let t=typeof r=="bigint"?r:BigInt(Math.round(Number(r)));for(let o=0;o<e;o++)this._storage.iset(o,t)}else if(I==="bool"){let t=r?1:0;for(let o=0;o<e;o++)this._storage.iset(o,t)}else{let t=Number(r);for(let o=0;o<e;o++)this._storage.iset(o,t)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let r=0;r<this.shape[0];r++)yield this._storage.iget(r);else for(let r=0;r<this.shape[0];r++)yield this.slice(String(r))}get(r){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let I=r.map((e,t)=>{let o=e;if(o<0&&(o=this.shape[t]+o),o<0||o>=this.shape[t])throw new Error(`Index ${e} is out of bounds for axis ${t} with size ${this.shape[t]}`);return o});return this._storage.get(...I)}set(r,I){if(r.length!==this.ndim)throw new Error(`Index has ${r.length} dimensions, but array has ${this.ndim} dimensions`);let e=r.map((o,n)=>{let g=o;if(g<0&&(g=this.shape[n]+g),g<0||g>=this.shape[n])throw new Error(`Index ${o} is out of bounds for axis ${n} with size ${this.shape[n]}`);return g}),t=this.dtype;if(k(t))this._storage.set(e,I);else if(L(t)){let o=I instanceof T?I.re:Number(I),n=typeof I=="bigint"?I:BigInt(Math.round(o));this._storage.set(e,n)}else if(t==="bool"){let n=(I instanceof T?I.re:Number(I))?1:0;this._storage.set(e,n)}else{let o=I instanceof T?I.re:Number(I);this._storage.set(e,o)}}copy(){return new A(this._storage.copy())}astype(r,I=!0){let e=super.astype(r,I);return e instanceof A?e:new A(e._storage)}row(r){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(r),":")}col(r){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(r))}rows(r,I){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${r}:${I}`,":")}cols(r,I){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${r}:${I}`)}reshape(...r){let I=r.length===1&&Array.isArray(r[0])?r[0]:r,e=zt(this,I).storage,o=e.data===this.data?this._base??this:void 0;return A.fromStorage(e,o)}ravel(){let r=jt(this).storage,e=r.data===this.data?this._base??this:void 0;return A.fromStorage(r,e)}put(r,I){let e=I instanceof A?I._storage:I;Ie(this,r,e)}compress(r,I){let e=r instanceof A?r:A.fromStorage(d.fromData(new Uint8Array(r.map(t=>t?1:0)),[r.length],"bool"));return j(uI(e,this,I))}choose(r){return j(mi(this,r))}clip(r,I){return j(Bt(this,r,I))}iindex(r,I=0){let e;if(r instanceof A){e=[];for(let t=0;t<r.size;t++){let o=r.storage.iget(t),n=typeof o=="bigint"?Number(o):o instanceof T?o.re:o;e.push(n)}}else Array.isArray(r)&&r.length>0&&Array.isArray(r[0])?e=r.flat():e=r;return this.take(e,I)}bindex(r,I){return j(uI(r,this,I))}toString(){return ee(this)}toArray(){if(this.ndim===0)return this._storage.iget(0);let r=this.shape,I=r.length,e=(t,o)=>{if(o===I)return this._storage.get(...t);let n=[];for(let g=0;g<r[o];g++)t[o]=g,n.push(e(t,o+1));return n};return e(new Array(I),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let e=this._storage.data,t=e.BYTES_PER_ELEMENT,o=this._storage.offset*t,n=this.size*t;return e.buffer.slice(o,o+n)}let I=this.copy()._storage.data;return I.buffer.slice(0,this.size*I.BYTES_PER_ELEMENT)}item(...r){if(r.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(r.length===1){let I=r[0];if(I<0||I>=this.size)throw new Error(`index ${I} is out of bounds for size ${this.size}`);return this._storage.iget(I)}return this.get(r)}byteswap(r=!1){let I=r?this:this.copy(),e=I._storage.data,t=e.BYTES_PER_ELEMENT;if(t===1)return I;let o=e.buffer,n=new DataView(o);for(let g=0;g<e.length;g++){let i=g*t;if(t===2){let Q=n.getUint8(i),a=n.getUint8(i+1);n.setUint8(i,a),n.setUint8(i+1,Q)}else if(t===4){let Q=n.getUint8(i),a=n.getUint8(i+1),B=n.getUint8(i+2),s=n.getUint8(i+3);n.setUint8(i,s),n.setUint8(i+1,B),n.setUint8(i+2,a),n.setUint8(i+3,Q)}else if(t===8){let Q=n.getUint8(i),a=n.getUint8(i+1),B=n.getUint8(i+2),s=n.getUint8(i+3),C=n.getUint8(i+4),E=n.getUint8(i+5),u=n.getUint8(i+6),f=n.getUint8(i+7);n.setUint8(i,f),n.setUint8(i+1,u),n.setUint8(i+2,E),n.setUint8(i+3,C),n.setUint8(i+4,s),n.setUint8(i+5,B),n.setUint8(i+6,a),n.setUint8(i+7,Q)}}return I}view(r){if(!r||r===this.dtype)return A.fromStorage(this._storage,this._base??this);let I=Hr(this.dtype),e=Hr(r);if(I!==e)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let t=nA(r);if(!t)throw new Error(`Unsupported dtype: ${r}`);let o=this._storage.data,n=o.byteOffset+this._storage.offset*I,g=new t(o.buffer,n,this.size),i=d.fromData(g,[...this.shape],r,[...this._storage.strides],0);return A.fromStorage(i,this._base??this)}tofile(r,I="",e=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}round(r=0){return this.around(r)}conjugate(){return this.conj()}around(r=0){return j(Ae(this,r))}allclose(r,I=1e-5,e=1e-8){return ZI(this,r,I,e)}isclose(r,I=1e-5,e=1e-8){return j(Gn(this,r,I,e))}average(r,I){let e=Ho(this,I,r);return e instanceof AA?j(e):e}dot(r){let I=qI(this,r);return I instanceof AA?j(I):I}trace(){let r=MI(this);return r instanceof AA?j(r):r}inner(r){let I=UI(this,r);return I instanceof AA?j(I):I}tensordot(r,I=2){let e=HI(this,r,I);return e instanceof AA?j(e):e}divmod(r){let I=it(this,r);return[j(I[0]),j(I[1])]}searchsorted(r,I="left"){return j(jI(this,r,I))}sqrt(){return j(Ye(this))}exp(){return j(Xe(this))}exp2(){return j(Te(this))}expm1(){return j(Pe(this))}log(){return j(Ke(this))}log2(){return j(Ve(this))}log10(){return j(We(this))}log1p(){return j(Oe(this))}absolute(){return j(je(this))}negative(){return j($e(this))}sign(){return j(At(this))}positive(){return j(et(this))}reciprocal(){return j(tt(this))}ceil(){return j(oi(this))}fix(){return j(ni(this))}floor(){return j(ii(this))}rint(){return j(gi(this))}trunc(){return j(Qi(this))}sin(){return j(lt(this))}cos(){return j(ht(this))}tan(){return j(dt(this))}arcsin(){return j(bt(this))}arccos(){return j(pt(this))}arctan(){return j(wt(this))}degrees(){return j(Gt(this))}radians(){return j(St(this))}sinh(){return j(Rt(this))}cosh(){return j(kt(this))}tanh(){return j(qt(this))}arcsinh(){return j(Mt(this))}arccosh(){return j(xt(this))}arctanh(){return j(Jt(this))}bitwise_not(){return j(ri(this))}invert(){return j(Ii(this))}logical_not(){return j(Cn(this))}isfinite(){return j(un(this))}isinf(){return j(cn(this))}isnan(){return j(Dn(this))}isnat(){return j(fn(this))}signbit(){return j(yn(this))}spacing(){return j(hn(this))}cbrt(){return j(ot(this))}fabs(){return j(nt(this))}square(){return j(gt(this))}conj(){return j(ci(this))}flatten(){return j(yr(this))}argwhere(){return j(Xn(this))}add(r){return j(Le(this,r))}subtract(r){return j(He(this,r))}multiply(r){return j(_e(this,r))}divide(r){return j(SI(this,r))}mod(r){return j(rt(this,r))}floor_divide(r){return j(It(this,r))}power(r){return j(ve(this,r))}logaddexp(r){return j(Ze(this,r))}logaddexp2(r){return j(ze(this,r))}arctan2(r){return j(Nt(this,r))}hypot(r){return j(Ft(this,r))}greater(r){return j(dn(this,r))}greater_equal(r){return j(bn(this,r))}less(r){return j(pn(this,r))}less_equal(r){return j(wn(this,r))}equal(r){return j(Nn(this,r))}not_equal(r){return j(Fn(this,r))}bitwise_and(r){return j(jn(this,r))}bitwise_or(r){return j($n(this,r))}bitwise_xor(r){return j(Ai(this,r))}left_shift(r){return j(ei(this,r))}right_shift(r){return j(ti(this,r))}logical_and(r){return j(Bn(this,r))}logical_or(r){return j(sn(this,r))}logical_xor(r){return j(En(this,r))}copysign(r){return j(mn(this,r))}nextafter(r){return j(ln(this,r))}remainder(r){return j(Qt(this,r))}heaviside(r){return j(at(this,r))}matmul(r){return j(Zt(this,r))}outer(r){return j(LI(this,r))}sum(r,I=!1){let e=po(this,r,I);return e instanceof AA?j(e):e}mean(r,I=!1){let e=wo(this,r,I);return e instanceof AA?j(e):e}prod(r,I=!1){let e=No(this,r,I);return e instanceof AA?j(e):e}max(r,I=!1){let e=Fo(this,r,I);return e instanceof AA?j(e):e}min(r,I=!1){let e=So(this,r,I);return e instanceof AA?j(e):e}ptp(r,I=!1){let e=ko(this,r,I);return e instanceof AA?j(e):e}nansum(r,I=!1){let e=To(this,r,I);return e instanceof AA?j(e):e}nanprod(r,I=!1){let e=Po(this,r,I);return e instanceof AA?j(e):e}nanmean(r,I=!1){let e=Ko(this,r,I);return e instanceof AA?j(e):e}nanmin(r,I=!1){let e=Oo(this,r,I);return e instanceof AA?j(e):e}nanmax(r,I=!1){let e=Zo(this,r,I);return e instanceof AA?j(e):e}argmin(r){let I=qo(this,r);return I instanceof AA?j(I):I}argmax(r){let I=Mo(this,r);return I instanceof AA?j(I):I}nanargmin(r){let I=zo(this,r);return I instanceof AA?j(I):I}nanargmax(r){let I=jo(this,r);return I instanceof AA?j(I):I}var(r,I=0,e=!1){let t=sI(this,r,I,e);return t instanceof AA?j(t):t}std(r,I=0,e=!1){let t=xo(this,r,I,e);return t instanceof AA?j(t):t}nanvar(r,I=0,e=!1){let t=Vo(this,r,I,e);return t instanceof AA?j(t):t}nanstd(r,I=0,e=!1){let t=Wo(this,r,I,e);return t instanceof AA?j(t):t}all(r,I=!1){let e=_o(this,r,I);return e instanceof AA?j(e):e}any(r,I=!1){let e=Yo(this,r,I);return e instanceof AA?j(e):e}median(r,I=!1){let e=Jo(this,r,I);return e instanceof AA?j(e):e}nanmedian(r,I=!1){let e=rn(this,r,I);return e instanceof AA?j(e):e}percentile(r,I,e=!1){let t=Uo(this,r,I,e);return t instanceof AA?j(t):t}quantile(r,I,e=!1){let t=Lo(this,r,I,e);return t instanceof AA?j(t):t}nanquantile(r,I,e=!1){let t=In(this,r,I,e);return t instanceof AA?j(t):t}nanpercentile(r,I,e=!1){let t=en(this,r,I,e);return t instanceof AA?j(t):t}cumsum(r){return j(vo(this,r))}cumprod(r){return j(Xo(this,r))}nancumsum(r){return j($o(this,r))}nancumprod(r){return j(An(this,r))}sort(r=-1){return j(Ln(this,r))}argsort(r=-1){return j(Hn(this,r))}partition(r,I=-1){return j(_n(this,r,I))}argpartition(r,I=-1){return j(Yn(this,r,I))}diagonal(r=0,I=0,e=1){return j(xI(this,r,I,e))}resize(r){return j(oo(this,r))}diff(r=1,I=-1){return j(ui(this,r,I))}take(r,I){return j(re(this,r,I))}repeat(r,I){return j(eo(this,r,I))}transpose(r){return j(JI(this,r))}squeeze(r){return j($t(this,r))}expand_dims(r){return j(Ao(this,r))}swapaxes(r,I){return j(ro(this,r,I))}moveaxis(r,I){return j(Io(this,r,I))}nonzero(){return vn(this).map(j)}};function kD(...A){let r=[],I="xy";for(let g of A)g instanceof sA?r.push(g):typeof g=="object"&&"indexing"in g&&(I=g.indexing||"xy");if(r.length===0)return[];if(r.length===1)return[r[0].copy()];let e=r.map(g=>g.size);I==="xy"&&r.length>=2&&(r=[r[1],r[0],...r.slice(2)],[e[0],e[1]]=[e[1],e[0]]);let t=e,o=t.length,n=[];for(let g=0;g<r.length;g++){let i=r[g],Q=i.size,a=new Array(o).fill(1);a[g]=Q;let B=i.reshape(...a),s=fi(B,t),C=sA.fromStorage(s.storage.copy());n.push(C)}return I==="xy"&&n.length>=2&&([n[0],n[1]]=[n[1],n[0]]),n}var M=A=>{if(A instanceof sA)return A;let r=A.base?M(A.base):void 0;return sA.fromStorage(A.storage,r)};function bJ(A,r){return M(fi(A,r))}function pJ(A,r,I){return M(re(A,r,I))}function wJ(A,r,I){return M(Yc(A,r,I))}function NJ(A,r){return M(mi(A,r))}function FJ(A,r,I){return M(uI(A,r,I))}function GJ(A,r,I=0){return M(vc(A,r,I))}function SJ(A,r,I){return M(Xc(A,r,I))}function RJ(A,r,I=0){return M(Tc(A,r,I))}function kJ(A,r="int32"){return M(Pc(A,r))}function qJ(A,r,I="raise"){return M(Kc(A,r,I))}function MJ(A,r){return Vc(A,r).map(M)}function xJ(A,r=2){return Wc(A,r).map(M)}function JJ(A){return Oc(A).map(M)}function UJ(A,r=0,I){return Zc(A,r,I).map(M)}function LJ(A,r=0){return zc(A,r).map(M)}function HJ(A,r=0,I){return jc(A,r,I).map(M)}function _J(A,r=0){return $c(A,r).map(M)}function YJ(A,r,I=0){return AD(A,r,I).map(M)}function vJ(A,r,I){return M(rD(t=>A(M(t)),r,I))}function XJ(A,r,I){return M(ID((t,o)=>A(M(t),o),r,I))}function TJ(A,r){return M(Le(A,r))}function PJ(A,r){return M(He(A,r))}function KJ(A,r){return M(_e(A,r))}function VJ(A){return M(Ye(A))}function qD(A,r){return M(ve(A,r))}function WJ(A){return M(Xe(A))}function OJ(A){return M(Te(A))}function ZJ(A){return M(Pe(A))}function zJ(A){return M(Ke(A))}function jJ(A){return M(Ve(A))}function $J(A){return M(We(A))}function AU(A){return M(Oe(A))}function rU(A,r){return M(Ze(A,r))}function IU(A,r){return M(ze(A,r))}function MD(A){return M(je(A))}function eU(A){return M($e(A))}function tU(A){return M(At(A))}function oU(A,r){return M(rt(A,r))}function nU(A,r){return M(SI(A,r))}function iU(A,r){return M(It(A,r))}function gU(A){return M(et(A))}function QU(A){return M(tt(A))}function aU(A){return M(ot(A))}function BU(A){return M(nt(A))}function sU(A,r){let I=it(A,r);return[M(I[0]),M(I[1])]}function CU(A){return M(gt(A))}function EU(A,r){return M(Qt(A,r))}function uU(A,r){return M(at(A,r))}function cU(A,r){return M(ys(A,r))}function DU(A,r){return M(ls(A,r))}function fU(A){let r=hs(A);return[M(r[0]),M(r[1])]}function mU(A,r){return M(ds(A,r))}function yU(A,r){return M(bs(A,r))}function lU(A,r){return M(ps(A,r))}function hU(A){let r=ws(A);return[M(r[0]),M(r[1])]}function dU(A,r,I){return M(Bt(A,r,I))}function bU(A,r){return M(Ns(A,r))}function pU(A,r){return M(Fs(A,r))}function wU(A,r){return M(Gs(A,r))}function NU(A,r){return M(Ss(A,r))}function FU(A,r=0,I,e){return M(Rs(A,r,I,e))}function GU(A,r,I,e,t){return M(ks(A,r,I,e,t))}function SU(A,r=Math.PI,I=-1,e=2*Math.PI){return M(qs(A,r,I,e))}function RU(A){return M(Ms(A))}function kU(A){return M(xs(A))}function qU(A,r){return M(jn(A,r))}function MU(A,r){return M($n(A,r))}function xU(A,r){return M(Ai(A,r))}function xD(A){return M(ri(A))}function JU(A){return M(Ii(A))}function JD(A,r){return M(ei(A,r))}function UD(A,r){return M(ti(A,r))}function UU(A,r,I){return M(Ac(A,r,I))}function LU(A,r,I,e){return M(rc(A,r,I,e))}function HU(A){return M(Ic(A))}function _U(A){return M(kc(A))}function YU(A){return M(qc(A))}function LD(A){return M(ci(A))}function vU(A,r){return M(Mc(A,r))}function XU(A,r=BA){return M(er(A,r))}function TU(A,r=BA){return M(Xi(A,r))}function PU(A,r=BA){return M(Ti(A,r))}function KU(A,r,I){return M(Pi(A,r,I))}function VU(A,r){return M(QA(A,r))}function WU(A,r,I=1,e=BA){return M(Ka(A,r,I,e))}function OU(A,r,I=50,e=BA){return M(Va(A,r,I,e))}function ZU(A,r,I=50,e=10,t=BA){return M(Wa(A,r,I,e,t))}function zU(A,r,I=50,e=BA){return M(Oa(A,r,I,e))}function jU(A,r,I=0,e=BA){return M(Ki(A,r,I,e))}function $U(A,r=BA){return M(Za(A,r))}function A2(A,r){return M(QI(A,r))}function r2(A,r){return M(za(A,r))}function I2(A,r){return M(ja(A,r))}function e2(A,r){return M($a(A,r))}function t2(A,r,I){return M(AB(A,r,I))}function o2(A){return M(rB(A))}function n2(A,r){return M(IB(A,r))}function i2(A,r){return M(eB(A,r))}function g2(A,r){return M(tB(A,r))}function Q2(A,r){return M(oB(A,r))}function a2(A,r,I){return M(nB(A,r,I))}function B2(A,r=0){return M(Vi(A,r))}function s2(A,r=0){return M(iB(A,r))}function C2(A,r,I=0,e=BA){return M(gB(A,r,I,e))}function E2(A,r=0){return M(QB(A,r))}function u2(A,r=0){return M(aB(A,r))}function c2(A,r,I=!1){return M(BB(A,r,I))}function D2(A,r=BA,I=-1,e=0){return M(sB(A,r,I,e))}function f2(A,r,I=BA){return M(CB(A,r,I))}function m2(A,r=BA,I=-1){return M(EB(A,r,I))}function y2(A,r=BA,I=-1,e){return M(uB(A,r,I,e))}function l2(A,r=BA,I=-1,e=""){return M(cB(A,r,I,e))}function h2(A,r,I){return M(ui(A,r,I))}function d2(A,r,I){return M(Rc(A,r,I))}function b2(A,r){let I=qI(A,r);return I instanceof AA?M(I):I}function p2(A,r=0,I=0,e=1){let t=MI(A,r,I,e);return t instanceof AA?M(t):t}function w2(A,r=0,I=0,e=1){return M(xI(A,r,I,e))}function N2(A,r){return M(ZC(A,r))}function F2(A,r){return M(JI(A,r))}function G2(A,r){let I=UI(A,r);return I instanceof AA?M(I):I}function S2(A,r){return M(LI(A,r))}function R2(A,r,I=2){let e=HI(A,r,I);return e instanceof AA?M(e):e}function k2(A,r,I=-1){let e=yg(A,r,I);return e instanceof AA?M(e):e}function q2(A){return M(lg(A))}function M2(A,r){return M(hg(A,r))}function x2(A,r){return M(zC(A,r))}function J2(A,r){return M(jC(A,r))}function U2(A,r,I=-1,e=-1,t=-1,o){let n=dg(A,r,I,e,t,o),g=IA(A.dtype,r.dtype);if(n instanceof T){let Q=nA(g==="complex64"?"float32":"float64"),a=new Q(2);return a[0]=n.re,a[1]=n.im,sA.fromStorage(d.fromData(a,[],g))}if(typeof n=="number"||typeof n=="bigint"){if(k(g)){let B=nA(g==="complex64"?"float32":"float64"),s=new B(2);return s[0]=Number(n),s[1]=0,sA.fromStorage(d.fromData(s,[],g))}let i=nA(g),Q=new i(1);return Q[0]=n,sA.fromStorage(d.fromData(Q,[],g))}return M(n)}function L2(A,r){return M(Zt(A,r))}function H2(A,r){return M(Bn(A,r))}function _2(A,r){return M(sn(A,r))}function Y2(A){return M(Cn(A))}function v2(A,r){return M(En(A,r))}function X2(A){return M(un(A))}function T2(A){return M(cn(A))}function P2(A){return M(Dn(A))}function K2(A){return M(fn(A))}function V2(A){return M(gu(A))}function W2(A){return M(Qu(A))}function O2(A){return M(au(A))}function Z2(A){return M(Bu(A))}function z2(A,r){return M(su(A,r))}function j2(A,r){return M(mn(A,r))}function $2(A){return M(yn(A))}function AL(A,r){return M(ln(A,r))}function rL(A){return M(hn(A))}function IL(A,r){return M(dn(A,r))}function eL(A,r){return M(bn(A,r))}function tL(A,r){return M(pn(A,r))}function oL(A,r){return M(wn(A,r))}function nL(A,r){return M(Nn(A,r))}function iL(A,r){return M(Fn(A,r))}function gL(A,r,I=1e-5,e=1e-8){return M(Gn(A,r,I,e))}function QL(A){return M(ED(A))}function aL(A,r){return M(uD(A,r))}function BL(A,r=1){return M(cD(A,r))}function sL(A,r){let I=DD(A,r);return[M(I[0]),M(I[1])]}function CL(A,r,I){return M(fD(A,r,I))}function EL(A,r=1,I=0){return M(mD(A,r,I))}function uL(A,r){return M(yD(A,r))}function cL(A,r){return M(lD(A,r))}function DL(A,r){let I=hD(A,r);return I instanceof AA?M(I):I}function fL(A){return M(dD(A))}function mL(A,r,I){let e=po(A,r,I);return e instanceof AA?M(e):e}function yL(A,r,I){let e=wo(A,r,I);return e instanceof AA?M(e):e}function lL(A,r,I){let e=No(A,r,I);return e instanceof AA?M(e):e}function hL(A,r,I){let e=ko(A,r,I);return e instanceof AA?M(e):e}function dL(A,r){let I=qo(A,r);return I instanceof AA?M(I):I}function bL(A,r){let I=Mo(A,r);return I instanceof AA?M(I):I}function pL(A,r,I,e){let t=sI(A,r,I,e);return t instanceof AA?M(t):t}function wL(A,r,I,e){let t=xo(A,r,I,e);return t instanceof AA?M(t):t}function NL(A,r,I){let e=Jo(A,r,I);return e instanceof AA?M(e):e}function FL(A,r,I,e){let t=Uo(A,r,I,e);return t instanceof AA?M(t):t}function GL(A,r,I,e){let t=Lo(A,r,I,e);return t instanceof AA?M(t):t}function SL(A,r,I,e){let t=Ho(A,r,I,e);return t instanceof AA?M(t):t}function RL(A,r,I){let e=_o(A,r,I);return e instanceof AA?M(e):e}function kL(A,r,I){let e=Yo(A,r,I);return e instanceof AA?M(e):e}function HD(A,r){return M(vo(A,r))}function _D(A,r){return M(Xo(A,r))}function qL(A,r,I){let e=To(A,r,I);return e instanceof AA?M(e):e}function ML(A,r,I){let e=Po(A,r,I);return e instanceof AA?M(e):e}function xL(A,r,I){let e=Ko(A,r,I);return e instanceof AA?M(e):e}function JL(A,r,I,e){let t=Vo(A,r,I,e);return t instanceof AA?M(t):t}function UL(A,r,I,e){let t=Wo(A,r,I,e);return t instanceof AA?M(t):t}function LL(A,r,I){let e=Oo(A,r,I);return e instanceof AA?M(e):e}function HL(A,r,I){let e=Zo(A,r,I);return e instanceof AA?M(e):e}function _L(A,r){let I=zo(A,r);return I instanceof AA?M(I):I}function YL(A,r){let I=jo(A,r);return I instanceof AA?M(I):I}function vL(A,r){return M($o(A,r))}function XL(A,r){return M(An(A,r))}function TL(A,r,I){let e=rn(A,r,I);return e instanceof AA?M(e):e}function PL(A,r,I,e){let t=In(A,r,I,e);return t instanceof AA?M(t):t}function KL(A,r,I,e){let t=en(A,r,I,e);return t instanceof AA?M(t):t}function YD(A,r=0){return M(Ae(A,r))}function VL(A){return M(oi(A))}function WL(A){return M(ni(A))}function OL(A){return M(ii(A))}function ZL(A){return M(gi(A))}function zL(A){return M(Qi(A))}function jL(A,r){return M(oc(A,r))}function $L(A,r){return M(nc(A,r))}function AH(A,r){return M(ic(A,r))}function rH(A,r){return M(gc(A,r))}function IH(A,r){return M(Qc(A,r))}function eH(A,r){return M(ac(A,r))}function tH(A,r){return M(Bc(A,r))}function oH(A){return M(sc(A))}function nH(A,r,I){return M(iD(A,r,I))}function vD(A,r,I){return M($Q(A,r,I))}function iH(A,r,I,e){return M(gD(A,r,I,e))}function gH(A,r,I="constant",e=0){return M(QD(A,r,I,e))}function QH(A,r){return M(zt(A,r))}function aH(A){return M(yr(A))}function BH(A){return M(jt(A))}function sH(A,r){return M($t(A,r))}function CH(A,r){return M(Ao(A,r))}function EH(A,r,I){return M(ro(A,r,I))}function uH(A,r,I){return M(Io(A,r,I))}function cH(A,r,I=0){return M($C(A,r,I))}function XD(A,r=0){return M(_I(A,r))}function DH(A,r=0){return M(AE(A,r))}function fH(A){return M(pg(A))}function mH(A){return M(rE(A))}function yH(A){return M(IE(A))}function lH(A){return M(eE(A))}function hH(A){return M(tE(A))}function dH(A,r=0){return oE(A,r).map(M)}function bH(A,r){return M(nE(A,r))}function pH(A,r,I){return M(eo(A,r,I))}function wH(A,r){return M(to(A,r))}function NH(A){return M(iE(A))}function FH(A){return M(gE(A))}function GH(A,r=1,I=[0,1]){return M(QE(A,r,I))}function SH(A,r,I){return M(aE(A,r,I))}function RH(A,r){return M(oo(A,r))}function kH(A,r=-1){return M(Ln(A,r))}function qH(A,r=-1){return M(Hn(A,r))}function MH(A){return M(bu(A))}function xH(A,r,I=-1){return M(_n(A,r,I))}function JH(A,r,I=-1){return M(Yn(A,r,I))}function UH(A){return M(pu(A))}function LH(A){return vn(A).map(M)}function HH(A){return M(Xn(A))}function _H(A){return M(wu(A))}function YH(A,r){return M(Nu(A,r))}function vH(A,r,I){return M(cc(A,r,I))}function XH(A,r,I){return M(Dc(A,r,I))}function TH(A,r,I){return M(fc(A,r,I))}function PH(A,r,I){return M(mc(A,r,I))}function KH(A,r,I,e,t){return M(yc(A,r,I,e,t))}function VH(A,r,I){return M(lc(A,r,I))}function WH(A,r,I,e){let t=hc(A,r,I,e);return t instanceof AA?M(t):t}function OH(A){return M(lt(A))}function ZH(A){return M(ht(A))}function zH(A){return M(dt(A))}function TD(A){return M(bt(A))}function PD(A){return M(pt(A))}function KD(A){return M(wt(A))}function VD(A,r){return M(Nt(A,r))}function jH(A,r){return M(Ft(A,r))}function $H(A){return M(Gt(A))}function A9(A){return M(St(A))}function r9(A){return M(AC(A))}function I9(A){return M(rC(A))}function e9(A){return M(Rt(A))}function t9(A){return M(kt(A))}function o9(A){return M(qt(A))}function WD(A){return M(Mt(A))}function OD(A){return M(xt(A))}function ZD(A){return M(Jt(A))}var lr=624,Qa=397,IT=2567483615,zD=2147483648,jD=2147483647,cr={mt:new Uint32Array(lr),mti:lr+1};function i9(A){let r=cr.mt;r[0]=A>>>0;for(let I=1;I<lr;I++){let e=r[I-1]^r[I-1]>>>30;r[I]=Math.imul(1812433253,e)+I>>>0}cr.mti=lr}function rf(){let A=cr.mt,r,I=[0,IT];if(cr.mti>=lr){let e;for(cr.mti===lr+1&&i9(5489),e=0;e<lr-Qa;e++)r=A[e]&zD|A[e+1]&jD,A[e]=A[e+Qa]^r>>>1^I[r&1];for(;e<lr-1;e++)r=A[e]&zD|A[e+1]&jD,A[e]=A[e+(Qa-lr)]^r>>>1^I[r&1];r=A[lr-1]&zD|A[0]&jD,A[lr-1]=A[Qa-1]^r>>>1^I[r&1],cr.mti=0}return r=A[cr.mti++],r^=r>>>11,r^=r<<7&2636928640,r^=r<<15&4022730752,r^=r>>>18,r>>>0}function tA(){let A=rf()>>>5,r=rf()>>>6;return(A*67108864+r)/9007199254740992}var eT=2468251765,tT=1492356589,oT=1135663077,nT=2337405405,iT=3389127133,gT=1232336661,tf=16,aa=4;function KA(A){return A>>>0}function $D(A,r){return A=KA(KA(A)^r.val),r.val=KA(Math.imul(r.val,eT)),A=KA(Math.imul(A,r.val)),A=KA(A^A>>>tf),A}function QT(A,r){let I=KA(KA(Math.imul(iT,KA(A)))-KA(Math.imul(gT,KA(r))));return I=KA(I^I>>>tf),I}function aT(A){let r=[0,0,0,0],I=[A>>>0],e={val:oT};for(let t=0;t<aa;t++)t<I.length?r[t]=$D(I[t],e):r[t]=$D(0,e);for(let t=0;t<aa;t++)for(let o=0;o<aa;o++)if(t!==o){let n=$D(r[t],e);r[o]=QT(r[o],n)}return r}function BT(A,r){let I=[],e=nT;for(let t=0;t<r;t++){let o=A[t%aa],n=KA(o^e);e=KA(Math.imul(e,tT)),n=KA(Math.imul(n,e)),n=KA(n^n>>>tf),I.push(n)}return I}var sT=BigInt("4865540595714422341"),CT=BigInt("2549297995355413924"),ET=CT<<BigInt(64)|sT,Af=BigInt("0xffffffffffffffff"),If=(BigInt(1)<<BigInt(128))-BigInt(1);function uT(A){let r=A>>BigInt(64),I=A&Af,e=(r^I)&Af,t=Number(A>>BigInt(122));return(e>>BigInt(t)|e<<BigInt(64-t))&Af}function ef(A,r){return A*ET+r&If}function n9(A){let r=aT(A),I=BT(r,8),e=BigInt(I[0])|BigInt(I[1])<<BigInt(32),t=BigInt(I[2])|BigInt(I[3])<<BigInt(32),o=BigInt(I[4])|BigInt(I[5])<<BigInt(32),n=BigInt(I[6])|BigInt(I[7])<<BigInt(32),g=e<<BigInt(64)|t,i=(o<<BigInt(64)|n)<<BigInt(1);i=(i|BigInt(1))&If;let Q=BigInt(0);return Q=ef(Q,i),Q=Q+g&If,Q=ef(Q,i),{state:Q,inc:i}}function cT(A){return A.state=ef(A.state,A.inc),uT(A.state)}function DT(A){let I=cT(A)>>BigInt(11);return Number(I)/9007199254740992}var wi=class{constructor(r){if(r!==void 0)this._pcgState=n9(r);else{let I=Math.floor(Math.random()*4294967296);this._pcgState=n9(I)}}_randomFloat(){return DT(this._pcgState)}random(r){if(r===void 0)return this._randomFloat();let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=this._randomFloat();return t}integers(r,I,e){if(I===void 0&&(I=r,r=0),e===void 0)return Math.floor(this._randomFloat()*(I-r))+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"int64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=BigInt(Math.floor(this._randomFloat()*i)+r);return n}standard_normal(r){if(r===void 0)return Dr(this._randomFloat.bind(this));let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n+=2){let[g,i]=Ni(this._randomFloat.bind(this));o[n]=g,n+1<e&&(o[n+1]=i)}return t}normal(r=0,I=1,e){if(e===void 0)return Dr(this._randomFloat.bind(this))*I+r;let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i+=2){let[Q,a]=Ni(this._randomFloat.bind(this));g[i]=Q*I+r,i+1<o&&(g[i+1]=a*I+r)}return n}uniform(r=0,I=1,e){if(e===void 0)return this._randomFloat()*(I-r)+r;let t=Array.isArray(e)?e:[e],o=t.reduce((Q,a)=>Q*a,1),n=d.zeros(t,"float64"),g=n.data,i=I-r;for(let Q=0;Q<o;Q++)g[Q]=this._randomFloat()*i+r;return n}choice(r,I,e=!0,t){return m9(r,I,e,t,this._randomFloat.bind(this))}permutation(r){return l9(r,this._randomFloat.bind(this))}shuffle(r){d9(r,this._randomFloat.bind(this))}exponential(r=1,I){if(I===void 0)return-Math.log(1-this._randomFloat())*r;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=-Math.log(1-this._randomFloat())*r;return o}poisson(r=1,I){if(I===void 0)return cI(r,this._randomFloat.bind(this));let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(cI(r,this._randomFloat.bind(this)));return o}binomial(r,I,e){if(e===void 0)return Fi(r,I,this._randomFloat.bind(this));let t=Array.isArray(e)?e:[e],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(Fi(r,I,this._randomFloat.bind(this)));return n}};function g9(A){return new wi(A)}function Q9(A){A==null&&(A=Math.floor(Date.now()^Math.random()*4294967296)),i9(A>>>0)}function a9(){return{mt:Array.from(cr.mt),mti:cr.mti}}function B9(A){cr.mt=new Uint32Array(A.mt),cr.mti=A.mti}function Dr(A){let r,I;do r=A(),I=A();while(r===0);return Math.sqrt(-2*Math.log(r))*Math.cos(2*Math.PI*I)}function Ni(A){let r,I;do r=A(),I=A();while(r===0);let e=Math.sqrt(-2*Math.log(r)),t=2*Math.PI*I;return[e*Math.cos(t),e*Math.sin(t)]}function cI(A,r){if(A<30){let I=Math.exp(-A),e=0,t=1;do e++,t*=r();while(t>I);return e-1}else{let I=Dr(r);return Math.max(0,Math.round(A+Math.sqrt(A)*I))}}function Fi(A,r,I){if(A*r<10&&A*(1-r)<10){let e=0;for(let t=0;t<A;t++)I()<r&&e++;return e}else{let e=A*r,t=Math.sqrt(A*r*(1-r)),o=Dr(I);return Math.max(0,Math.min(A,Math.round(e+t*o)))}}function Gi(A){if(A===void 0)return tA();let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=tA();return e}function s9(...A){if(A.length===0)return tA();let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t++)e[t]=tA();return I}function C9(...A){if(A.length===0)return Dr(tA);let r=A.reduce((t,o)=>t*o,1),I=d.zeros(A,"float64"),e=I.data;for(let t=0;t<r;t+=2){let[o,n]=Ni(tA);e[t]=o,t+1<r&&(e[t+1]=n)}return I}function of(A,r,I,e="int64"){r==null&&(r=A,A=0);let t=r-A;if(I===void 0)return Math.floor(tA()*t)+A;let o=Array.isArray(I)?I:[I],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,e),i=g.data;if(L(e)){let Q=i;for(let a=0;a<n;a++)Q[a]=BigInt(Math.floor(tA()*t)+A)}else{let Q=i;for(let a=0;a<n;a++)Q[a]=Math.floor(tA()*t)+A}return g}function E9(A=0,r=1,I){if(I===void 0)return tA()*(r-A)+A;let e=Array.isArray(I)?I:[I],t=e.reduce((i,Q)=>i*Q,1),o=d.zeros(e,"float64"),n=o.data,g=r-A;for(let i=0;i<t;i++)n[i]=tA()*g+A;return o}function u9(A=0,r=1,I){if(I===void 0)return Dr(tA)*r+A;let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g+=2){let[i,Q]=Ni(tA);n[g]=i*r+A,g+1<t&&(n[g+1]=Q*r+A)}return o}function c9(A){if(A===void 0)return Dr(tA);let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o+=2){let[n,g]=Ni(tA);t[o]=n,o+1<I&&(t[o+1]=g)}return e}function nf(A=1,r){if(r===void 0)return-Math.log(1-tA())*A;let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"float64"),o=t.data;for(let n=0;n<e;n++)o[n]=-Math.log(1-tA())*A;return t}function D9(A=1,r){if(r===void 0)return cI(A,tA);let I=Array.isArray(r)?r:[r],e=I.reduce((n,g)=>n*g,1),t=d.zeros(I,"int64"),o=t.data;for(let n=0;n<e;n++)o[n]=BigInt(cI(A,tA));return t}function f9(A,r,I){if(I===void 0)return Fi(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(Fi(A,r,tA));return o}function m9(A,r,I=!0,e,t=tA){let o;if(typeof A=="number")o=Array.from({length:A},(s,C)=>C);else{let s=A.size;o=[];for(let C=0;C<s;C++)o.push(Number(A.iget(C)))}let n=o.length;if(n===0)throw new Error("cannot take a sample from an empty sequence");let g;if(e!==void 0){if(Array.isArray(e))g=e;else{let C=e.size;g=[];for(let E=0;E<C;E++)g.push(Number(e.iget(E)))}if(g.length!==n)throw new Error("p and a must have the same size");let s=g.reduce((C,E)=>C+E,0);Math.abs(s-1)>1e-10&&(g=g.map(C=>C/s))}if(r===void 0){if(g){let s=t(),C=0;for(let E=0;E<n;E++)if(C+=g[E],s<C)return o[E];return o[n-1]}return o[Math.floor(t()*n)]}let i=Array.isArray(r)?r:[r],Q=i.reduce((s,C)=>s*C,1);if(!I&&Q>n)throw new Error("cannot take a larger sample than population when replace=false");let a=d.zeros(i,"float64"),B=a.data;if(I)if(g){let s=new Array(n);s[0]=g[0];for(let C=1;C<n;C++)s[C]=s[C-1]+g[C];for(let C=0;C<Q;C++){let E=t(),u=0;for(;u<n-1&&E>=s[u];)u++;B[C]=o[u]}}else for(let s=0;s<Q;s++)B[s]=o[Math.floor(t()*n)];else{let s=[...o],C=g?[...g]:void 0;for(let E=0;E<Q;E++){let u;if(C){let f=C.reduce((D,y)=>D+y,0),m=t()*f,c=0;u=0;for(let D=0;D<s.length;D++)if(c+=C[D],m<c){u=D;break}u===0&&m>=c&&(u=s.length-1)}else u=Math.floor(t()*s.length);B[E]=s[u],s.splice(u,1),C&&C.splice(u,1)}}return a}function y9(A,r,I=!0,e){return m9(A,r,I,e,tA)}function l9(A,r=tA){let I;if(typeof A=="number"){let t=new Float64Array(A);for(let o=0;o<A;o++)t[o]=o;I=d.fromData(t,[A],"float64")}else I=A.copy();let e=I.size;for(let t=e-1;t>0;t--){let o=Math.floor(r()*(t+1)),n=I.iget(t);I.iset(t,I.iget(o)),I.iset(o,n)}return I}function h9(A){return l9(A,tA)}function d9(A,r=tA){let I=A.size;for(let e=I-1;e>0;e--){let t=Math.floor(r()*(e+1)),o=A.iget(e);A.iset(e,A.iget(t)),A.iset(t,o)}}function b9(A){d9(A,tA)}function p9(A){return Gi(A)}function w9(A){return Gi(A)}function N9(A){return Gi(A)}function F9(A,r,I){return r===void 0&&(r=A,A=1),of(A,r+1,I)}function G9(A){let r=new Uint8Array(A);for(let I=0;I<A;I++)r[I]=rf()&255;return r}var S9={name:"MT19937",state:cr};function R9(){return S9}function k9(A){S9=A}function q9(A){return nf(1,A)}function M9(A,r){if(A<=0)throw new Error("shape must be positive");return Ba(A,1,r)}function x9(A){if(A===void 0)return Math.tan(Math.PI*(tA()-.5));let r=Array.isArray(A)?A:[A],I=r.reduce((o,n)=>o*n,1),e=d.zeros(r,"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=Math.tan(Math.PI*(tA()-.5));return e}function J9(A,r){if(A<=0)throw new Error("df must be positive");let I=g=>{let i=Dr(g),Q=VA(A/2,2,g);return i/Math.sqrt(Q/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function VA(A,r,I){if(A<1){let o=I();return VA(1+A,r,I)*Math.pow(o,1/A)}let e=A-1/3,t=1/Math.sqrt(9*e);for(;;){let o,n;do o=Dr(I),n=1+t*o;while(n<=0);n=n*n*n;let g=I(),i=o*o;if(g<1-.0331*i*i||Math.log(g)<.5*i+e*(1-n+Math.log(n)))return e*n*r}}function Ba(A,r=1,I){if(A<=0)throw new Error("shape must be positive");if(r<=0)throw new Error("scale must be positive");if(I===void 0)return VA(A,r,tA);let e=Array.isArray(I)?I:[I],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=VA(A,r,tA);return o}function U9(A,r,I){if(A<=0||r<=0)throw new Error("a and b must be positive");let e=i=>{let Q=VA(A,1,i),a=VA(r,1,i);return Q/(Q+a)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function L9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i()-.5;return A-r*Math.sign(Q)*Math.log(1-2*Math.abs(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function H9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A+r*Math.log(Q/(1-Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function _9(A=0,r=1,I){if(r<=0)throw new Error("sigma must be positive");let e=i=>Math.exp(A+r*Dr(i));if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function Y9(A=0,r=1,I){if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=i();return A-r*Math.log(-Math.log(Q))};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function v9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(1-i,-1/A)-1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function X9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(i,1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function T9(A=1,r){if(A<=0)throw new Error("scale must be positive");let I=g=>{let i=g();return A*Math.sqrt(-2*Math.log(i))};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function P9(A,r,I,e){if(A>r||r>I||A===I)throw new Error("must have left <= mode <= right and left < right");let t=Q=>{let a=Q(),B=(r-A)/(I-A);return a<B?A+Math.sqrt(a*(I-A)*(r-A)):I-Math.sqrt((1-a)*(I-A)*(I-r))};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function K9(A,r,I){if(A<=0)throw new Error("mean must be positive");if(r<=0)throw new Error("scale must be positive");let e=i=>{let Q=Dr(i),a=Q*Q,B=A/(2*r),s=A+B*(A*a-Math.sqrt(4*A*r*a+A*A*a*a));return i()<=A/(A+s)?s:A*A/s};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function V9(A,r){if(A<=0)throw new Error("a must be positive");let I=g=>{let i=g();return Math.pow(-Math.log(1-i),1/A)};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"float64"),n=o.data;for(let g=0;g<t;g++)n[g]=I(tA);return o}function W9(A,r){if(A<=0)throw new Error("df must be positive");return Ba(A/2,2,r)}function O9(A,r,I){if(A<=0)throw new Error("df must be positive");if(r<0)throw new Error("nonc must be non-negative");let e=i=>{if(r===0)return VA(A/2,2,i);let Q=cI(r/2,i);return VA(A/2+Q,2,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function Z9(A,r,I){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");let e=i=>{let Q=VA(A/2,2,i),a=VA(r/2,2,i);return Q/A/(a/r)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}function z9(A,r,I,e){if(A<=0)throw new Error("dfnum must be positive");if(r<=0)throw new Error("dfden must be positive");if(I<0)throw new Error("nonc must be non-negative");let t=Q=>{let a=VA(I===0?A/2:A/2+cI(I/2,Q),2,Q),B=VA(r/2,2,Q);return a/A/(B/r)};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"float64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=t(tA);return g}function j9(A,r){if(A<=0||A>1)throw new Error("p must be in (0, 1]");let I=g=>{if(A===1)return 1;let i=g();return Math.floor(Math.log(i)/Math.log(1-A))+1};if(r===void 0)return I(tA);let e=Array.isArray(r)?r:[r],t=e.reduce((g,i)=>g*i,1),o=d.zeros(e,"int64"),n=o.data;for(let g=0;g<t;g++)n[g]=BigInt(I(tA));return o}function $9(A,r,I,e){if(A<0)throw new Error("ngood must be non-negative");if(r<0)throw new Error("nbad must be non-negative");if(I<0)throw new Error("nsample must be non-negative");if(I>A+r)throw new Error("nsample must be <= ngood + nbad");let t=Q=>{let a=A,B=r,s=0,C=I;for(;C>0;){let E=a+B;if(E===0)break;Q()<a/E?(s++,a--):B--,C--}return s};if(e===void 0)return t(tA);let o=Array.isArray(e)?e:[e],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function A_(A,r){if(A<=0||A>=1)throw new Error("p must be in (0, 1)");let I=Math.log(1-A),e=i=>{let Q=i(),a=i(),B=1-Math.exp(I*Q);if(a>=B||a===0)return 1;let s=Math.log(a),C=Math.log(B);return s>=C?1:s>=2*C?2:Math.floor(1+s/C)};if(r===void 0)return e(tA);let t=Array.isArray(r)?r:[r],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function r_(A,r,I){if(A<=0)throw new Error("n must be positive");if(r<=0||r>1)throw new Error("p must be in (0, 1]");let e=i=>{if(r===1)return 0;let Q=VA(A,(1-r)/r,i);return cI(Q,i)};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"int64"),g=n.data;for(let i=0;i<o;i++)g[i]=BigInt(e(tA));return n}function I_(A,r){if(A<=1)throw new Error("a must be > 1");let I=A-1,e=Math.pow(2,I),t=Q=>{for(;;){let a=1-Q(),B=Q(),s=Math.floor(Math.pow(a,-1/I)),C=Math.pow(1+1/s,I);if(B*s*(C-1)/(e-1)<=C/e)return s}};if(r===void 0)return t(tA);let o=Array.isArray(r)?r:[r],n=o.reduce((Q,a)=>Q*a,1),g=d.zeros(o,"int64"),i=g.data;for(let Q=0;Q<n;Q++)i[Q]=BigInt(t(tA));return g}function e_(A,r,I){let e=Array.isArray(r)?r:Array.from({length:r.size},(C,E)=>Number(r.iget(E))),t=e.length;if(t===0)throw new Error("pvals must have at least one element");let o=e.reduce((C,E)=>C+E,0),n=e.map(C=>C/o),g=C=>{let E=new Array(t).fill(0),u=A,f=1;for(let m=0;m<t-1&&u>0;m++){let c=n[m]/f,D=Fi(u,Math.min(1,Math.max(0,c)),C);E[m]=D,u-=D,f-=n[m]}return E[t-1]=u,E};if(I===void 0){let C=g(tA),E=d.zeros([t],"int64"),u=E.data;for(let f=0;f<t;f++)u[f]=BigInt(C[f]);return E}let i=Array.isArray(I)?I:[I],Q=i.reduce((C,E)=>C*E,1),a=[...i,t],B=d.zeros(a,"int64"),s=B.data;for(let C=0;C<Q;C++){let E=g(tA);for(let u=0;u<t;u++)s[C*t+u]=BigInt(E[u])}return B}function t_(A,r,I,e="warn",t=1e-8){let o=Array.isArray(A)?A:Array.from({length:A.size},(u,f)=>Number(A.iget(f))),n=o.length,g;if(Array.isArray(r))g=r;else{g=[];for(let u=0;u<n;u++){g.push([]);for(let f=0;f<n;f++)g[u].push(Number(r.iget(u*n+f)))}}let i=Array(n).fill(0).map(()=>Array(n).fill(0));for(let u=0;u<n;u++)for(let f=0;f<=u;f++){let m=g[u][f];for(let c=0;c<f;c++)m-=i[u][c]*i[f][c];if(u===f){if(m<-t){if(e==="raise")throw new Error("covariance matrix is not positive semi-definite");e==="warn"&&console.warn("covariance matrix is not positive semi-definite"),m=0}i[u][f]=Math.sqrt(Math.max(0,m))}else i[u][f]=i[f][f]!==0?m/i[f][f]:0}let Q=u=>{let f=[];for(let c=0;c<n;c++)f.push(Dr(u));let m=[];for(let c=0;c<n;c++){let D=o[c];for(let y=0;y<=c;y++)D+=i[c][y]*f[y];m.push(D)}return m};if(I===void 0){let u=Q(tA),f=d.zeros([n],"float64"),m=f.data;for(let c=0;c<n;c++)m[c]=u[c];return f}let a=Array.isArray(I)?I:[I],B=a.reduce((u,f)=>u*f,1),s=[...a,n],C=d.zeros(s,"float64"),E=C.data;for(let u=0;u<B;u++){let f=Q(tA);for(let m=0;m<n;m++)E[u*n+m]=f[m]}return C}function o_(A,r){let I=Array.isArray(A)?A:Array.from({length:A.size},(a,B)=>Number(A.iget(B))),e=I.length;if(e<2)throw new Error("alpha must have at least 2 elements");for(let a of I)if(a<=0)throw new Error("all alpha values must be positive");let t=a=>{let B=[],s=0;for(let C=0;C<e;C++){let E=VA(I[C],1,a);B.push(E),s+=E}return B.map(C=>C/s)};if(r===void 0){let a=t(tA),B=d.zeros([e],"float64"),s=B.data;for(let C=0;C<e;C++)s[C]=a[C];return B}let o=Array.isArray(r)?r:[r],n=o.reduce((a,B)=>a*B,1),g=[...o,e],i=d.zeros(g,"float64"),Q=i.data;for(let a=0;a<n;a++){let B=t(tA);for(let s=0;s<e;s++)Q[a*e+s]=B[s]}return i}function n_(A,r,I){if(r<0)throw new Error("kappa must be non-negative");let e=i=>{if(r===0)return 2*Math.PI*i()-Math.PI;let Q=1+Math.sqrt(1+4*r*r),a=(Q-Math.sqrt(2*Q))/(2*r),B=(1+a*a)/(2*a);for(;;){let s=i(),C=Math.cos(Math.PI*s),E=(1+B*C)/(B+C),u=r*(B-E),f=i();if(u*(2-u)>f||Math.log(u/f)+1-u>=0)return((i()>.5?Math.acos(E):-Math.acos(E))+A+Math.PI)%(2*Math.PI)-Math.PI}};if(I===void 0)return e(tA);let t=Array.isArray(I)?I:[I],o=t.reduce((i,Q)=>i*Q,1),n=d.zeros(t,"float64"),g=n.data;for(let i=0;i<o;i++)g[i]=e(tA);return n}var mT="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",Si=null;function kr(){if(Si)return Si;let A=atob(mT),r=new Uint8Array(A.length);for(let e=0;e<A.length;e++)r[e]=A.charCodeAt(e);Si=new WebAssembly.Instance(new WebAssembly.Module(r),{env:{memory:K()}});let I=Si.exports.__heap_base;return I&&typeof I.value=="number"&&W(I.value),Si}function gf(A){return kr().exports.fft_scratch_size(A)}function Qf(A,r,I,e,t){kr().exports.fft_batch_c128(A,r,I,e,t)}function af(A,r,I,e,t){kr().exports.ifft_batch_c128(A,r,I,e,t)}function i_(A,r,I,e,t){kr().exports.fft2_c128(A,r,I,e,t)}function g_(A,r,I,e,t){kr().exports.ifft2_c128(A,r,I,e,t)}function Q_(A,r){return kr().exports.fft2_scratch_size(A,r)}function a_(A,r,I,e,t){kr().exports.rfft2_f64(A,r,I,e,t)}function B_(A,r){return kr().exports.rfft2_scratch_size(A,r)}function s_(A,r,I,e,t,o){kr().exports.irfft2_f64(A,r,I,e,t,o)}function C_(A,r){return kr().exports.irfft2_scratch_size(A,r)}function yT(A,r,I){let e=A.length;e!==0&&e!==1&&((e&e-1)===0?sa(A,r,I):hT(A,r,I))}var Ri=new Map;function lT(A,r){let I=`${A}_${r}`,e=Ri.get(I);if(e)return e;let t=new Float64Array(A/2),o=new Float64Array(A/2),n=r?1:-1;for(let g=0;g<A/2;g++){let i=n*2*Math.PI*g/A;t[g]=Math.cos(i),o[g]=Math.sin(i)}if(e={cos:t,sin:o},Ri.set(I,e),Ri.size>100){let g=Ri.keys().next().value;Ri.delete(g)}return e}function sa(A,r,I){let e=A.length,t=0;for(let g=0;g<e-1;g++){if(g<t){let Q=A[g];A[g]=A[t],A[t]=Q,Q=r[g],r[g]=r[t],r[t]=Q}let i=e>>1;for(;i<=t;)t-=i,i>>=1;t+=i}let{cos:o,sin:n}=lT(e,I);for(let g=2;g<=e;g*=2){let i=g>>1,Q=e/g;for(let a=0;a<e;a+=g)for(let B=0,s=0;B<i;B++,s+=Q){let C=o[s],E=n[s],u=a+B,f=a+B+i,m=A[u],c=r[u],D=A[f],y=r[f],l=C*D-E*y,h=C*y+E*D;A[u]=m+l,r[u]=c+h,A[f]=m-l,r[f]=c-h}}if(I){let g=1/e;for(let i=0;i<e;i++)A[i]=A[i]*g,r[i]=r[i]*g}}function hT(A,r,I){let e=A.length,t=1;for(;t<2*e-1;)t*=2;let o=I?1:-1,n=new Float64Array(e),g=new Float64Array(e);for(let s=0;s<e;s++){let C=o*Math.PI*s*s/e;n[s]=Math.cos(C),g[s]=Math.sin(C)}let i=new Float64Array(t),Q=new Float64Array(t);for(let s=0;s<e;s++){let C=n[s],E=g[s];i[s]=A[s]*C-r[s]*E,Q[s]=r[s]*C+A[s]*E}let a=new Float64Array(t),B=new Float64Array(t);a[0]=n[0],B[0]=-g[0];for(let s=1;s<e;s++)a[s]=n[s],B[s]=-g[s],a[t-s]=n[s],B[t-s]=-g[s];sa(i,Q,!1),sa(a,B,!1);for(let s=0;s<t;s++){let C=i[s],E=Q[s],u=a[s],f=B[s];i[s]=C*u-E*f,Q[s]=C*f+E*u}sa(i,Q,!0);for(let s=0;s<e;s++){let C=i[s],E=Q[s],u=n[s],f=g[s];A[s]=C*u-E*f,r[s]=E*u+C*f}if(I)for(let s=0;s<e;s++)A[s]=A[s]/e,r[s]=r[s]/e}function Ea(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!1)}function ki(A,r,I=-1,e="backward"){return oe(A,r!==void 0?[r]:void 0,[I],e,!0)}function Bf(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!1)}function E_(A,r,I=[-2,-1],e="backward"){return oe(A,r,I,e,!0)}function u_(A,r,I,e="backward"){return oe(A,r,I,e,!1)}function c_(A,r,I,e="backward"){return oe(A,r,I,e,!0)}function oe(A,r,I,e="backward",t=!1){let o=Array.from(A.shape),n=o.length;if(A.size===0)return d.zeros(o,"complex128");if(n===0){let a=d.zeros([1],"complex128"),B=A.iget(0),s=B instanceof T?B.re:Number(B),C=B instanceof T?B.im:0,E=a.data;return E[0]=s,E[1]=C,d.fromData(a.data,[],"complex128")}let g;if(I===void 0)if(r===void 0)g=Array.from({length:n},(a,B)=>B);else{g=[];for(let a=0;a<r.length;a++)g.push(n-r.length+a)}else g=I.map(a=>a<0?n+a:a);let i=[...o];if(r!==void 0)for(let a=0;a<r.length;a++){let B=g[a];i[B]=r[a]}let Q=qi(A);if(r!==void 0&&(Q=dT(Q,i,g)),g.length===2&&Q.ndim===2&&e==="backward"&&Q.isCContiguous){let a=Q.shape[g[0]],B=Q.shape[g[1]];if(g[0]===0&&g[1]===1&&a>=nI*Y.thresholdMultiplier&&B>=nI*Y.thresholdMultiplier){let C=a*B*2,E=Q_(a,B),u=C*8,f=E*8;J(u*2+f),U();let m=Q.data,c=q(m.subarray(0,C)),D=_(u),y=_(f);(t?g_:i_)(c,D,y,a,B);let h=v(D,C,Float64Array);return d.fromData(h,[a,B],"complex128")}}for(let a of g)Q=pT(Q,a,t,e);return Q}function qi(A){let r=A.dtype,I=Array.from(A.shape),e=A.size;if(r==="complex128"||r==="complex64"){let g=d.zeros(I,"complex128"),i=g.data,Q=A.data;for(let a=0;a<e*2;a++)i[a]=Q[a];return g}let t=d.zeros(I,"complex128"),o=t.data,n=A.data;if(r==="float64"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="float32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint32"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint16"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="uint8"){let g=n;for(let i=0;i<e;i++)o[i*2]=g[i]}else if(r==="int64"||r==="uint64"){let g=n;for(let i=0;i<e;i++)o[i*2]=Number(g[i])}else for(let g=0;g<e;g++)o[g*2]=Number(n[g]);return t}function dT(A,r,I){let e=Array.from(A.shape),t=A;for(let o of I){let n=e[o],g=r[o];n!==g&&(g>n?t=bT(t,o,g):t=sf(t,o,g),e[o]=g)}return t}function bT(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,B)=>a*B,1),Q=e.slice(r+1).reduce((a,B)=>a*B,1);for(let a=0;a<i;a++)for(let B=0;B<t;B++)for(let s=0;s<Q;s++){let C=(a*t+B)*Q+s,E=(a*I+B)*Q+s;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}function sf(A,r,I){let e=Array.from(A.shape),t=e[r];e[r]=I;let o=d.zeros(e,"complex128"),n=o.data,g=A.data,i=e.slice(0,r).reduce((a,B)=>a*B,1),Q=e.slice(r+1).reduce((a,B)=>a*B,1);for(let a=0;a<i;a++)for(let B=0;B<I;B++)for(let s=0;s<Q;s++){let C=(a*t+B)*Q+s,E=(a*I+B)*Q+s;n[E*2]=g[C*2],n[E*2+1]=g[C*2+1]}return o}var nI=32;function pT(A,r,I,e){let t=Array.from(A.shape),o=t[r];if(o===0)return A;let n=d.zeros(t,"complex128"),g=n.data,i=A.data,Q=t.slice(0,r).reduce((C,E)=>C*E,1),a=t.slice(r+1).reduce((C,E)=>C*E,1);if(a===1&&o>=nI*Y.thresholdMultiplier){let C=Q*o*2,E=gf(o),u=C*8,f=E*8;J(u*2+f),U();let m=i.subarray(0,C),c=q(m),D=_(u),y=_(f);(I?af:Qf)(c,D,y,o,Q);let h=v(D,C,Float64Array);if(g.set(h),e==="ortho"){let b=I?Math.sqrt(o):1/Math.sqrt(o);for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&!I){let b=1/o;for(let p=0;p<C;p++)g[p]=g[p]*b}else if(e==="forward"&&I)for(let b=0;b<C;b++)g[b]=g[b]*o;return n}if(a>1&&o>=nI*Y.thresholdMultiplier){let C=Q*a,E=C*o*2,u=gf(o),f=E*8,m=u*8;J(f*2+m),U();let c=new Float64Array(E),D=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let S=D*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;c[S+x*2]=i[H],c[S+x*2+1]=i[H+1]}D++}let y=q(c),l=_(f),h=_(m);(I?af:Qf)(y,l,h,o,C);let p=v(l,E,Float64Array);D=0;for(let N=0;N<Q;N++)for(let F=0;F<a;F++){let S=D*o*2;for(let x=0;x<o;x++){let H=((N*o+x)*a+F)*2;g[H]=p[S+x*2],g[H+1]=p[S+x*2+1]}D++}let w=Q*o*a*2;if(e==="ortho"){let N=I?Math.sqrt(o):1/Math.sqrt(o);for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&!I){let N=1/o;for(let F=0;F<w;F++)g[F]=g[F]*N}else if(e==="forward"&&I)for(let N=0;N<w;N++)g[N]=g[N]*o;return n}let B=new Float64Array(o),s=new Float64Array(o);for(let C=0;C<Q;C++)for(let E=0;E<a;E++){for(let u=0;u<o;u++){let f=(C*o+u)*a+E;B[u]=i[f*2],s[u]=i[f*2+1]}if(yT(B,s,I),e==="ortho"){let u=1/Math.sqrt(o);if(I){let f=Math.sqrt(o);for(let m=0;m<o;m++)B[m]=B[m]*f,s[m]=s[m]*f}else for(let f=0;f<o;f++)B[f]=B[f]*u,s[f]=s[f]*u}else if(e==="forward"&&!I){let u=1/o;for(let f=0;f<o;f++)B[f]=B[f]*u,s[f]=s[f]*u}else if(!(e==="backward"&&I)){if(e==="forward"&&I)for(let u=0;u<o;u++)B[u]=B[u]*o,s[u]=s[u]*o}for(let u=0;u<o;u++){let f=(C*o+u)*a+E;g[f*2]=B[u],g[f*2+1]=s[u]}}return n}function ua(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=Ea(A,g,I,e),Q=Math.floor(g/2)+1;return sf(i,n,Q)}function Mi(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=[...t];Q[n]=i;let a=d.zeros(Q,"complex128"),B=a.data,s=qi(A).data,C=t.slice(0,n).reduce((f,m)=>f*m,1),E=t.slice(n+1).reduce((f,m)=>f*m,1);for(let f=0;f<C;f++)for(let m=0;m<E;m++){for(let c=0;c<g;c++){let D=(f*g+c)*E+m,y=(f*i+c)*E+m;B[y*2]=s[D*2],B[y*2+1]=s[D*2+1]}for(let c=g;c<i;c++){let D=i-c,y=(f*g+D)*E+m,l=(f*i+c)*E+m;B[l*2]=s[y*2],B[l*2+1]=-s[y*2+1]}}let u=ki(a,i,I,e);return Ca(u)}function D_(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&!k(A.dtype)){let B=t[0],s=t[1];if(B>=nI*Y.thresholdMultiplier&&s>=nI*Y.thresholdMultiplier){let C=Math.floor(s/2)+1,E=B_(B,s),u=B*s*8,f=B*C*2*8,m=E*8;J(u+f+m),U();let c=A.dtype==="float64"?A.data.subarray(A.offset,A.offset+B*s):Float64Array.from(A.data.subarray(A.offset,A.offset+B*s)),D=q(c),y=_(f),l=_(m);a_(D,y,l,B,s);let h=v(y,B*C*2,Float64Array);return d.fromData(h,[B,C],"complex128")}}let i=Bf(A,r,I,e),Q=r?r[1]:t[g],a=Math.floor(Q/2)+1;return sf(i,g,a)}function f_(A,r,I=[-2,-1],e="backward"){let t=Array.from(A.shape),o=t.length,n=I[0]<0?o+I[0]:I[0],g=I[1]<0?o+I[1]:I[1],i=t[g],Q=r?r[1]:(i-1)*2,a=r?r[0]:t[n];if(o===2&&n===0&&g===1&&e==="backward"&&!r&&A.isCContiguous&&k(A.dtype)){let s=t[0],C=t[1];if(s>=nI*Y.thresholdMultiplier&&Q>=nI*Y.thresholdMultiplier){let E=C_(s,Q),u=s*C*2*8,f=s*Q*8,m=E*8;J(u+f+m),U();let c=A.data.subarray(A.offset,A.offset+s*C*2),D=q(c),y=_(f),l=_(m);s_(D,y,l,s,C,Q);let h=v(y,s*Q,Float64Array);return d.fromData(h,[s,Q],"float64")}}let B=Mi(A,Q,g,e);return B=ki(B,a,n,e),Ca(B)}function m_(A,r,I,e="backward"){let o=Array.from(A.shape).length,n;if(I===void 0?n=Array.from({length:o},(a,B)=>B):n=I.map(a=>a<0?o+a:a),n.length===0)return qi(A);let g=A;for(let a=0;a<n.length-1;a++){let B=n[a],s=r?r[a]:void 0;g=Ea(g,s,B,e)}let i=n[n.length-1],Q=r?r[n.length-1]:void 0;return ua(g,Q,i,e)}function y_(A,r,I,e="backward"){let t=Array.from(A.shape),o=t.length,n;if(I===void 0?n=Array.from({length:o},(B,s)=>s):n=I.map(B=>B<0?o+B:B),n.length===0)return Ca(qi(A));let g=n[n.length-1],i=t[g],Q=r?[...r]:n.map((B,s)=>s===n.length-1?(i-1)*2:t[B]),a=Mi(A,Q[n.length-1],g,e);for(let B=n.length-2;B>=0;B--){let s=n[B];a=ki(a,Q[B],s,e)}return Ca(a)}function l_(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=t[n],i=r??(g-1)*2,Q=d_(qi(A)),a=Mi(Q,i,I,e),B=a.data;for(let s=0;s<a.size;s++)B[s]=B[s]*i;return a}function h_(A,r,I=-1,e="backward"){let t=Array.from(A.shape),o=t.length,n=I<0?o+I:I,g=r??t[n],i=ua(A,g,I,e),Q=d_(i),a=Q.data;for(let B=0;B<Q.size*2;B++)a[B]=a[B]/g;return Q}function d_(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"complex128"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n*2]=o[n*2],t[n*2+1]=-o[n*2+1];return e}function Ca(A){let r=Array.from(A.shape),I=A.size,e=d.zeros(r,"float64"),t=e.data,o=A.data;for(let n=0;n<I;n++)t[n]=o[n*2];return e}function b_(A,r=1){let I=d.zeros([A],"float64"),e=I.data,t=Math.floor((A-1)/2)+1;for(let o=0;o<t;o++)e[o]=o/(A*r);for(let o=t;o<A;o++)e[o]=(o-A)/(A*r);return I}function p_(A,r=1){let I=Math.floor(A/2)+1,e=d.zeros([I],"float64"),t=e.data;for(let o=0;o<I;o++)t[o]=o/(A*r);return e}function w_(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?Math.floor(I[g]/2):0);return F_(A,o)}function N_(A,r){let I=Array.from(A.shape),e=I.length,t;r===void 0?t=Array.from({length:e},(n,g)=>g):typeof r=="number"?t=[r<0?e+r:r]:t=r.map(n=>n<0?e+n:n);let o=I.map((n,g)=>t.includes(g)?-Math.floor(I[g]/2):0);return F_(A,o)}function F_(A,r){let I=Array.from(A.shape),e=A.dtype,t=A.size,o=d.zeros(I,e),n=e==="complex128"||e==="complex64",g=new Array(I.length);g[I.length-1]=1;for(let i=I.length-2;i>=0;i--)g[i]=g[i+1]*I[i+1];for(let i=0;i<t;i++){let Q=new Array(I.length),a=i;for(let C=0;C<I.length;C++)Q[C]=Math.floor(a/g[C]),a=a%g[C];let B=Q.map((C,E)=>{let u=C+r[E],f=I[E];return u=(u%f+f)%f,u}),s=0;for(let C=0;C<I.length;C++)s+=B[C]*g[C];if(n){let C=A.data,E=o.data;E[s*2]=C[i*2],E[s*2+1]=C[i*2+1]}else{let C=A.iget(i);o.iset(s,C)}}return o}function Lr(A){return sA.fromStorage(A.storage)}function NT(A){return Lr(ia(A))}var FT=wD;function GT(A,r){return Lr(ND(A,r))}async function ST(A,r={}){let I=await GD(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,Lr(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}function RT(A,r={}){let I=SD(A,r),e=new Map;for(let[t,o]of I.arrays)e.set(t,Lr(o));return{arrays:e,skipped:I.skipped,errors:I.errors}}async function kT(A,r={}){let I=await aJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=Lr(o);return e}function qT(A,r={}){let I=BJ(A,r),e={};for(let[t,o]of Object.entries(I))e[t]=Lr(o);return e}function MT(A,r={}){return Lr(RD(A,r))}function xT(A,r={}){return Lr(yJ(A,r))}function JT(A,r,I="float64"){return Lr(lJ(A,r,I))}function aA(A){return A&&typeof A=="object"&&"_data"in A&&"_shape"in A?sA.fromStorage(A):A}var UT={seed:Q9,get_state:a9,set_state:B9,get_bit_generator:R9,set_bit_generator:k9,default_rng:g9,Generator:wi,random:A=>aA(Gi(A)),rand:(...A)=>aA(s9(...A)),randn:(...A)=>aA(C9(...A)),randint:(A,r,I,e)=>aA(of(A,r,I,e)),random_sample:A=>aA(p9(A)),ranf:A=>aA(w9(A)),sample:A=>aA(N9(A)),random_integers:(A,r,I)=>aA(F9(A,r,I)),bytes:G9,uniform:(A,r,I)=>aA(E9(A,r,I)),normal:(A,r,I)=>aA(u9(A,r,I)),standard_normal:A=>aA(c9(A)),exponential:(A,r)=>aA(nf(A,r)),standard_exponential:A=>aA(q9(A)),gamma:(A,r,I)=>aA(Ba(A,r,I)),standard_gamma:(A,r)=>aA(M9(A,r)),beta:(A,r,I)=>aA(U9(A,r,I)),chisquare:(A,r)=>aA(W9(A,r)),noncentral_chisquare:(A,r,I)=>aA(O9(A,r,I)),f:(A,r,I)=>aA(Z9(A,r,I)),noncentral_f:(A,r,I,e)=>aA(z9(A,r,I,e)),standard_cauchy:A=>aA(x9(A)),standard_t:(A,r)=>aA(J9(A,r)),laplace:(A,r,I)=>aA(L9(A,r,I)),logistic:(A,r,I)=>aA(H9(A,r,I)),lognormal:(A,r,I)=>aA(_9(A,r,I)),gumbel:(A,r,I)=>aA(Y9(A,r,I)),pareto:(A,r)=>aA(v9(A,r)),power:(A,r)=>aA(X9(A,r)),rayleigh:(A,r)=>aA(T9(A,r)),triangular:(A,r,I,e)=>aA(P9(A,r,I,e)),wald:(A,r,I)=>aA(K9(A,r,I)),weibull:(A,r)=>aA(V9(A,r)),poisson:(A,r)=>aA(D9(A,r)),binomial:(A,r,I)=>aA(f9(A,r,I)),geometric:(A,r)=>aA(j9(A,r)),hypergeometric:(A,r,I,e)=>aA($9(A,r,I,e)),logseries:(A,r)=>aA(A_(A,r)),negative_binomial:(A,r,I)=>aA(r_(A,r,I)),zipf:(A,r)=>aA(I_(A,r)),multinomial:(A,r,I)=>aA(e_(A,r,I)),multivariate_normal:(A,r,I,e,t)=>aA(t_(A,r,I,e,t)),dirichlet:(A,r)=>aA(o_(A,r)),vonmises:(A,r,I)=>aA(n_(A,r,I)),choice:(A,r,I,e)=>aA(y9(A,r,I,e)),permutation:A=>aA(h9(A)),shuffle:b9};function PA(A){return A instanceof sA||A instanceof AA?A.storage:A}var LT={fft:(A,r,I,e)=>sA.fromStorage(Ea(PA(A),r,I,e)),ifft:(A,r,I,e)=>sA.fromStorage(ki(PA(A),r,I,e)),fft2:(A,r,I,e)=>sA.fromStorage(Bf(PA(A),r,I,e)),ifft2:(A,r,I,e)=>sA.fromStorage(E_(PA(A),r,I,e)),fftn:(A,r,I,e)=>sA.fromStorage(u_(PA(A),r,I,e)),ifftn:(A,r,I,e)=>sA.fromStorage(c_(PA(A),r,I,e)),rfft:(A,r,I,e)=>sA.fromStorage(ua(PA(A),r,I,e)),irfft:(A,r,I,e)=>sA.fromStorage(Mi(PA(A),r,I,e)),rfft2:(A,r,I,e)=>sA.fromStorage(D_(PA(A),r,I,e)),irfft2:(A,r,I,e)=>sA.fromStorage(f_(PA(A),r,I,e)),rfftn:(A,r,I,e)=>sA.fromStorage(m_(PA(A),r,I,e)),irfftn:(A,r,I,e)=>sA.fromStorage(y_(PA(A),r,I,e)),hfft:(A,r,I,e)=>sA.fromStorage(l_(PA(A),r,I,e)),ihfft:(A,r,I,e)=>sA.fromStorage(h_(PA(A),r,I,e)),fftfreq:(A,r)=>sA.fromStorage(b_(A,r)),rfftfreq:(A,r)=>sA.fromStorage(p_(A,r)),fftshift:(A,r)=>sA.fromStorage(w_(PA(A),r)),ifftshift:(A,r)=>sA.fromStorage(N_(PA(A),r))},HT="1.1.0";0&&(module.exports={Complex,DTYPE_TO_DESCR,InvalidNpyError,NDArray,NDArrayCore,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,add,all,allclose,amax,amin,angle,any,append,apply_along_axis,apply_over_axes,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argmax,argmin,argpartition,argsort,argwhere,around,array,array2string,array_equal,array_equiv,array_repr,array_split,array_str,asanyarray,asarray,asarray_chkfinite,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,base_repr,binary_repr,bincount,bindex,bitwise_and,bitwise_count,bitwise_invert,bitwise_left_shift,bitwise_not,bitwise_or,bitwise_right_shift,bitwise_xor,block,broadcast_arrays,broadcast_shapes,broadcast_to,byteswap,can_cast,cbrt,ceil,choose,clip,column_stack,common_type,compress,concat,concatenate,conj,conjugate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,delete_,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,einsum_path,empty,empty_like,equal,exp,exp2,expand_dims,expm1,extract,eye,fabs,fft,fill,fill_diagonal,fix,flatnonzero,flatten,flip,fliplr,flipud,float_power,floor,floor_divide,fmax,fmin,fmod,format_float_positional,format_float_scientific,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromstring,full,full_like,gcd,genfromtxt,geomspace,get_printoptions,geterr,gradient,greater,greater_equal,heaviside,histogram,histogram2d,histogram_bin_edges,histogramdd,hsplit,hstack,hypot,i0,identity,iindex,imag,in1d,indices,inner,insert,interp,intersect1d,invert,isclose,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,issubdtype,item,iterable,ix_,kron,lcm,ldexp,left_shift,less,less_equal,lexsort,linalg,linspace,loadNpz,loadNpzSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,matmul,matrix_transpose,matvec,max,maximum,may_share_memory,mean,median,meshgrid,min,min_scalar_type,minimum,mintypecode,mod,modf,moveaxis,multiply,nan_to_num,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanpercentile,nanprod,nanquantile,nanstd,nansum,nanvar,ndim,negative,nextafter,nonzero,not_equal,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,permute_dims,place,poly,polyadd,polyder,polydiv,polyfit,polyint,polymul,polysub,polyval,positive,pow,power,printoptions,prod,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real,real_if_close,reciprocal,remainder,repeat,require,reshape,resize,result_type,right_shift,rint,roll,rollaxis,roots,rot90,round,round_,row_stack,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,set_printoptions,setdiff1d,seterr,setxor1d,shape,shares_memory,sign,signbit,sin,sinc,sinh,size,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,std,subtract,sum,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,tobytes,tofile,tolist,trace,transpose,trapezoid,tri,tril,tril_indices,tril_indices_from,trim_zeros,triu,triu_indices,triu_indices_from,true_divide,trunc,typename,union1d,unique,unique_all,unique_counts,unique_inverse,unique_values,unpackbits,unravel_index,unstack,unwrap,vander,var:null,variance,vdot,vecdot,vecmat,view,vsplit,vstack,wasmConfig,where,zeros,zeros_like});
8
- //# sourceMappingURL=numpy-ts.node.cjs.map