@cimplify/sdk 0.108.0 → 0.110.2

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 (608) hide show
  1. package/LICENSE +21 -0
  2. package/dist/advanced.d.mts +4 -3
  3. package/dist/advanced.d.ts +4 -3
  4. package/dist/advanced.js +24 -24
  5. package/dist/advanced.mjs +5 -5
  6. package/dist/animation-4EXBXRVX.js +27 -0
  7. package/dist/animation-6DICNWUP.mjs +6 -0
  8. package/dist/audio-DhvyjqdA.d.mts +249 -0
  9. package/dist/audio-m0w8cnxq.d.ts +249 -0
  10. package/dist/avatars.d.mts +110 -0
  11. package/dist/avatars.d.ts +110 -0
  12. package/dist/avatars.js +82 -0
  13. package/dist/avatars.mjs +5 -0
  14. package/dist/backend-gUCzs5Kg.d.mts +3866 -0
  15. package/dist/backend-gUCzs5Kg.d.ts +3866 -0
  16. package/dist/{catalogue-B4eLL8Mi.d.ts → catalogue-CPTMyBUz.d.mts} +109 -221
  17. package/dist/catalogue-DzrTXP3v.d.mts +541 -0
  18. package/dist/catalogue-DzrTXP3v.d.ts +541 -0
  19. package/dist/{catalogue-OT89_Ifs.d.mts → catalogue-OTuS5zp-.d.ts} +109 -221
  20. package/dist/chunk-22BD3RHN.mjs +1809 -0
  21. package/dist/chunk-25T4JHEA.mjs +21 -0
  22. package/dist/chunk-2AQ237Y4.js +508 -0
  23. package/dist/chunk-2IC4H6OV.mjs +48 -0
  24. package/dist/chunk-2LHLG4OB.mjs +71 -0
  25. package/dist/chunk-2O2CG465.js +1709 -0
  26. package/dist/chunk-2Q4DTHXK.js +316 -0
  27. package/dist/chunk-2QTQ6BUH.mjs +46 -0
  28. package/dist/chunk-2UN4SFLR.mjs +100 -0
  29. package/dist/chunk-2V75I7K3.js +454 -0
  30. package/dist/chunk-2V7IL4HC.js +10 -0
  31. package/dist/chunk-34XBXUMW.js +296 -0
  32. package/dist/chunk-3C4C654I.js +71 -0
  33. package/dist/chunk-3DAD2LDF.mjs +72 -0
  34. package/dist/chunk-3GXH2NFD.mjs +4 -0
  35. package/dist/chunk-3O47ZFW3.js +961 -0
  36. package/dist/chunk-3OY3VYNF.mjs +11 -0
  37. package/dist/chunk-3S6WPBZL.js +2936 -0
  38. package/dist/chunk-3TUOUP5T.js +399 -0
  39. package/dist/chunk-3VEH23I5.mjs +1380 -0
  40. package/dist/chunk-3ZYSAW2T.mjs +263 -0
  41. package/dist/chunk-4ANVF274.js +103 -0
  42. package/dist/chunk-4C7I3ELN.js +388 -0
  43. package/dist/chunk-4DYKAYFO.mjs +8 -0
  44. package/dist/chunk-4ZDR72SG.js +329 -0
  45. package/dist/chunk-52YS45RR.js +1066 -0
  46. package/dist/chunk-5325XSCH.js +107 -0
  47. package/dist/chunk-5AD5X6AV.js +13 -0
  48. package/dist/chunk-5BYDGGWO.mjs +197 -0
  49. package/dist/chunk-5C3C7VDM.mjs +55 -0
  50. package/dist/chunk-5HFMY3D7.js +660 -0
  51. package/dist/chunk-5LH2QN3T.js +1862 -0
  52. package/dist/chunk-5PJEXSOW.js +44 -0
  53. package/dist/chunk-5SXDH3Y7.js +90 -0
  54. package/dist/chunk-5YFBGGCK.mjs +502 -0
  55. package/dist/chunk-5YWN6H5Q.mjs +133 -0
  56. package/dist/chunk-66QP3SMN.js +402 -0
  57. package/dist/chunk-6DAEZKIG.mjs +385 -0
  58. package/dist/chunk-6DATW7TB.mjs +420 -0
  59. package/dist/{chunk-JRGK3NXR.mjs → chunk-6ETDAU62.mjs} +72 -212
  60. package/dist/chunk-6H254EVP.mjs +178 -0
  61. package/dist/chunk-6PFNJPBJ.mjs +820 -0
  62. package/dist/chunk-6PJWXIFX.mjs +357 -0
  63. package/dist/chunk-6SWKWCMS.js +80 -0
  64. package/dist/chunk-6VVXXX7S.js +808 -0
  65. package/dist/chunk-6WUBSMTX.js +1403 -0
  66. package/dist/chunk-73SGZLAQ.mjs +35 -0
  67. package/dist/chunk-76L2V6KD.mjs +4 -0
  68. package/dist/chunk-7AAIAVAA.js +1531 -0
  69. package/dist/chunk-7ARSJPV3.mjs +93 -0
  70. package/dist/chunk-7BHW5GTC.mjs +1234 -0
  71. package/dist/chunk-7DQSDKDU.js +6 -0
  72. package/dist/chunk-7IQQQENP.mjs +401 -0
  73. package/dist/chunk-7KFTYENS.js +11357 -0
  74. package/dist/chunk-7SM6XSPZ.js +3171 -0
  75. package/dist/chunk-7SXOHAIR.mjs +28 -0
  76. package/dist/chunk-A2MAX6S4.js +90 -0
  77. package/dist/chunk-A33OORT7.mjs +1530 -0
  78. package/dist/{chunk-U6ACF76H.mjs → chunk-A36JRXXH.mjs} +1075 -1845
  79. package/dist/chunk-A7BU3BK4.js +52 -0
  80. package/dist/chunk-A7MQSN2V.mjs +77 -0
  81. package/dist/chunk-A7V4L2IT.mjs +416 -0
  82. package/dist/chunk-AABEK6XU.js +226 -0
  83. package/dist/chunk-AGV33FWC.mjs +5005 -0
  84. package/dist/chunk-AHNR3BXI.js +108 -0
  85. package/dist/chunk-AQ5RLBU2.mjs +286 -0
  86. package/dist/chunk-AQOE6WCG.js +1270 -0
  87. package/dist/chunk-ATAWRACV.mjs +62 -0
  88. package/dist/chunk-ATCURNUV.js +14 -0
  89. package/dist/chunk-AWPV33OO.js +6 -0
  90. package/dist/chunk-AYJPHKYV.js +337 -0
  91. package/dist/chunk-AZ5BGWHB.js +162 -0
  92. package/dist/chunk-AZAXD44P.js +1373 -0
  93. package/dist/chunk-BBGKQIJJ.mjs +406 -0
  94. package/dist/chunk-BP4JLSUA.js +1453 -0
  95. package/dist/{chunk-SUCE7FWA.mjs → chunk-BTUSVHIE.mjs} +539 -978
  96. package/dist/chunk-BU6OK542.mjs +818 -0
  97. package/dist/chunk-CVSRWM6W.js +418 -0
  98. package/dist/chunk-CYBMFMJD.mjs +247 -0
  99. package/dist/chunk-DDJLDOUX.mjs +217 -0
  100. package/dist/{chunk-V32BCG7M.js → chunk-DFZWHNRG.js} +75 -215
  101. package/dist/chunk-DJ2C7AVG.js +644 -0
  102. package/dist/chunk-DS2VU4WW.mjs +102 -0
  103. package/dist/chunk-DSAG7T5P.js +7290 -0
  104. package/dist/chunk-E2QPPH7I.js +327 -0
  105. package/dist/chunk-E65WCTIG.mjs +1187 -0
  106. package/dist/{chunk-33VCYWVL.mjs → chunk-E6QQKDNE.mjs} +30 -42
  107. package/dist/chunk-ECDK6QBF.mjs +981 -0
  108. package/dist/chunk-EIB4OWVQ.mjs +620 -0
  109. package/dist/chunk-EQUZYCGO.js +250 -0
  110. package/dist/chunk-F3UJ6ZRM.mjs +313 -0
  111. package/dist/chunk-F63N2ZTQ.js +7023 -0
  112. package/dist/chunk-F6XRYEM3.mjs +26 -0
  113. package/dist/chunk-FE6VCE4K.js +5030 -0
  114. package/dist/chunk-FLWD6GRR.js +1372 -0
  115. package/dist/chunk-FQBFWJBS.mjs +110 -0
  116. package/dist/chunk-FXVJ2HFU.js +26 -0
  117. package/dist/chunk-FZMQMQBW.js +312 -0
  118. package/dist/chunk-G3EEC44R.js +53 -0
  119. package/dist/{chunk-KG3WT4PR.mjs → chunk-GCKWKLZF.mjs} +73 -104
  120. package/dist/chunk-GCX7TY4D.mjs +6826 -0
  121. package/dist/chunk-GDB6TCSD.js +450 -0
  122. package/dist/chunk-GDCV4IWO.mjs +21 -0
  123. package/dist/chunk-GDZT5LZ5.js +170 -0
  124. package/dist/chunk-GHPUYD4I.mjs +213 -0
  125. package/dist/chunk-GHS6MIL6.mjs +1432 -0
  126. package/dist/chunk-GPS2THCL.mjs +11 -0
  127. package/dist/{chunk-EV2EVOYS.js → chunk-GTJWQAGU.js} +31 -42
  128. package/dist/chunk-GVTI6UJQ.mjs +130 -0
  129. package/dist/chunk-GXKI64OT.mjs +1138 -0
  130. package/dist/chunk-GYDYF2WX.js +275 -0
  131. package/dist/chunk-GYLP6UG4.mjs +705 -0
  132. package/dist/chunk-H3OQKK6X.js +1158 -0
  133. package/dist/chunk-H5DFSCJ6.js +40 -0
  134. package/dist/chunk-HAGEIC2L.mjs +186 -0
  135. package/dist/chunk-HAJ4JRFO.js +293 -0
  136. package/dist/chunk-HDR72GB6.js +188 -0
  137. package/dist/chunk-HF5HPS4T.mjs +40 -0
  138. package/dist/chunk-HK6LOFDS.js +218 -0
  139. package/dist/chunk-HMWYTXCY.mjs +143 -0
  140. package/dist/chunk-HPCSRCMA.js +89 -0
  141. package/dist/chunk-HSEO6TPU.js +247 -0
  142. package/dist/chunk-I5FOHCLH.js +132 -0
  143. package/dist/chunk-IDLW4NWA.mjs +85 -0
  144. package/dist/chunk-IIDZ5WUX.js +61 -0
  145. package/dist/chunk-IR74FJHU.js +2332 -0
  146. package/dist/chunk-IRVFYAKP.mjs +100 -0
  147. package/dist/{chunk-XBL3TMPC.mjs → chunk-IZDWAL53.mjs} +1795 -3287
  148. package/dist/chunk-J2KZXIU3.js +51 -0
  149. package/dist/chunk-J2U6PJSO.js +91 -0
  150. package/dist/chunk-J5AJNY2N.js +283 -0
  151. package/dist/chunk-J6KQZ4FO.mjs +821 -0
  152. package/dist/{chunk-OWW5GUSB.js → chunk-JGBCIKJV.js} +7 -6
  153. package/dist/chunk-JKGTBMU7.mjs +25 -0
  154. package/dist/chunk-JR3TNEQC.js +422 -0
  155. package/dist/chunk-JURRXY2J.mjs +29 -0
  156. package/dist/chunk-K3HW5I2A.mjs +317 -0
  157. package/dist/chunk-K46SMZ66.mjs +103 -0
  158. package/dist/chunk-K4UDGE3Z.mjs +6 -0
  159. package/dist/chunk-KDQOR4QQ.mjs +350 -0
  160. package/dist/chunk-KDTVOLHI.mjs +288 -0
  161. package/dist/chunk-KGHJH5KJ.mjs +35 -0
  162. package/dist/chunk-KIZOA5LX.mjs +140 -0
  163. package/dist/chunk-KK6HYVBI.mjs +242 -0
  164. package/dist/chunk-KMKWGXMK.js +856 -0
  165. package/dist/chunk-KPA6K5IB.js +80 -0
  166. package/dist/chunk-KU7O4IXU.mjs +260 -0
  167. package/dist/chunk-KVFNRJOR.mjs +11142 -0
  168. package/dist/chunk-KZJRSXHK.js +2432 -0
  169. package/dist/chunk-LHWPRUJL.js +79 -0
  170. package/dist/chunk-LIV3KXJG.mjs +369 -0
  171. package/dist/chunk-LKV4LACG.js +21 -0
  172. package/dist/chunk-LUY45X3U.mjs +263 -0
  173. package/dist/chunk-LYEZZEEF.mjs +17 -0
  174. package/dist/chunk-M5EXQZYY.mjs +1519 -0
  175. package/dist/chunk-ME6HGG4I.mjs +1338 -0
  176. package/dist/chunk-MEXP6DA6.js +31 -0
  177. package/dist/chunk-MG52AW3H.js +902 -0
  178. package/dist/chunk-MIPO6F72.js +334 -0
  179. package/dist/{chunk-5QW7CQBA.js → chunk-MKIJQL5Q.js} +211 -321
  180. package/dist/chunk-MN3YETVN.mjs +17 -0
  181. package/dist/chunk-MOBSBXVE.mjs +2391 -0
  182. package/dist/chunk-MOMOZEUM.mjs +88 -0
  183. package/dist/chunk-MRFUNRAP.js +62 -0
  184. package/dist/chunk-MTIHEW2M.js +433 -0
  185. package/dist/chunk-N4RGGDEL.mjs +73 -0
  186. package/dist/chunk-NH654HAT.js +10 -0
  187. package/dist/chunk-NHJUGZUR.mjs +253 -0
  188. package/dist/chunk-NMQT4HG3.mjs +757 -0
  189. package/dist/chunk-NPSYB6DC.mjs +906 -0
  190. package/dist/chunk-NW2GPMSO.js +857 -0
  191. package/dist/chunk-NXKQOQ6L.js +76 -0
  192. package/dist/chunk-NXLAZIJZ.js +309 -0
  193. package/dist/chunk-NYWNA5CF.js +148 -0
  194. package/dist/chunk-NZTKLY2W.js +1442 -0
  195. package/dist/chunk-O2ICABUD.js +36 -0
  196. package/dist/chunk-OIVVQQ22.js +862 -0
  197. package/dist/chunk-OKC2B4O3.mjs +312 -0
  198. package/dist/chunk-OLWFPDBK.js +2220 -0
  199. package/dist/chunk-OMTVH334.js +3779 -0
  200. package/dist/chunk-OQRVEM56.mjs +362 -0
  201. package/dist/chunk-OXMIBOD4.js +337 -0
  202. package/dist/chunk-PBL6YL5L.mjs +288 -0
  203. package/dist/chunk-PDOELNNQ.js +97 -0
  204. package/dist/chunk-PDQJY2GZ.js +136 -0
  205. package/dist/chunk-PKOZXD2Q.js +1274 -0
  206. package/dist/chunk-PPF2BYFL.mjs +2191 -0
  207. package/dist/chunk-PQTQKNKD.js +539 -0
  208. package/dist/chunk-PRSR4FAV.mjs +81 -0
  209. package/dist/chunk-PTRNO5UD.js +95 -0
  210. package/dist/chunk-Q2Y3VMKH.js +2000 -0
  211. package/dist/chunk-QCZOE65N.js +96 -0
  212. package/dist/chunk-QDYFLATW.mjs +52 -0
  213. package/dist/chunk-QQABGCMM.js +22 -0
  214. package/dist/chunk-QS6TRHMR.js +345 -0
  215. package/dist/chunk-R56P64LB.mjs +208 -0
  216. package/dist/chunk-RCQ2MPBV.js +428 -0
  217. package/dist/chunk-RFVRPYR2.mjs +856 -0
  218. package/dist/chunk-RKBLPGPV.js +11521 -0
  219. package/dist/chunk-RM2V4IND.mjs +327 -0
  220. package/dist/chunk-RQXN5A34.mjs +613 -0
  221. package/dist/chunk-RUVGVNOF.mjs +2687 -0
  222. package/dist/chunk-SAFJIGYB.mjs +165 -0
  223. package/dist/chunk-SKQFLBDD.js +263 -0
  224. package/dist/chunk-SMK6JU2F.mjs +2092 -0
  225. package/dist/{chunk-UVRPC2P7.js → chunk-SNNEOS5Z.js} +1984 -3476
  226. package/dist/chunk-SPCRQ6NO.mjs +1246 -0
  227. package/dist/chunk-SWX4SALA.mjs +19 -0
  228. package/dist/{chunk-JVODCGFP.mjs → chunk-SYEO2WV4.mjs} +128 -238
  229. package/dist/chunk-T2QQMX2N.js +10 -0
  230. package/dist/chunk-T3AFF3L7.mjs +57 -0
  231. package/dist/chunk-T6Z2EXYL.js +712 -0
  232. package/dist/chunk-T7LOXGYX.js +118 -0
  233. package/dist/chunk-TJCAE7RC.mjs +1315 -0
  234. package/dist/chunk-TJI3K6RP.js +137 -0
  235. package/dist/chunk-TL2SVO4P.mjs +55 -0
  236. package/dist/chunk-TM63CYGN.mjs +399 -0
  237. package/dist/chunk-TU5RYTYU.mjs +13 -0
  238. package/dist/chunk-TVJZ4GPS.js +1553 -0
  239. package/dist/chunk-TWM6DLYF.js +371 -0
  240. package/dist/chunk-U63OC4TQ.js +30 -0
  241. package/dist/{chunk-L5GKVQVJ.js → chunk-U6BVSJZ6.js} +25 -57
  242. package/dist/chunk-U6UVWEAK.mjs +792 -0
  243. package/dist/chunk-UCEPNO6N.mjs +11048 -0
  244. package/dist/{chunk-ANT574FD.js → chunk-UCR5HRYM.js} +74 -105
  245. package/dist/chunk-UG5BTOTF.mjs +334 -0
  246. package/dist/chunk-UGH37BQW.mjs +157 -0
  247. package/dist/chunk-V7ZRH3PY.mjs +271 -0
  248. package/dist/chunk-VBGHBL3E.mjs +1394 -0
  249. package/dist/chunk-VRBDAS5I.js +920 -0
  250. package/dist/chunk-VVE3Y76O.js +230 -0
  251. package/dist/chunk-W65JIRI4.mjs +1182 -0
  252. package/dist/chunk-WHYKAT7G.js +62 -0
  253. package/dist/{chunk-YOIVZ6OA.mjs → chunk-WIZRUIZB.mjs} +25 -57
  254. package/dist/chunk-WKWTDZS7.js +385 -0
  255. package/dist/chunk-WLMINRC4.mjs +78 -0
  256. package/dist/chunk-WOF3AD3J.js +22 -0
  257. package/dist/chunk-WWKMOA76.js +1262 -0
  258. package/dist/chunk-X5A5FOWW.js +615 -0
  259. package/dist/chunk-X6CN6KQF.mjs +192 -0
  260. package/dist/chunk-XD2PMH46.mjs +517 -0
  261. package/dist/chunk-XJA2NGTI.mjs +88 -0
  262. package/dist/chunk-XJIHN3BY.mjs +8 -0
  263. package/dist/chunk-XK6UDWJS.js +203 -0
  264. package/dist/chunk-XPG3N5CF.mjs +415 -0
  265. package/dist/chunk-XVZ2NKSU.mjs +74 -0
  266. package/dist/chunk-XYP45OLE.js +117 -0
  267. package/dist/chunk-XZSDGZX6.mjs +301 -0
  268. package/dist/chunk-Y2EMGN4T.mjs +120 -0
  269. package/dist/chunk-Y3XWP5XW.mjs +298 -0
  270. package/dist/chunk-Y4K22JL6.js +228 -0
  271. package/dist/chunk-Y65LXQGA.mjs +3164 -0
  272. package/dist/chunk-Y66WVMO5.mjs +87 -0
  273. package/dist/chunk-Y7JWLB25.mjs +7280 -0
  274. package/dist/chunk-YCDXAJKU.js +175 -0
  275. package/dist/chunk-YRDQCCIS.js +152 -0
  276. package/dist/chunk-YV52DGSA.js +111 -0
  277. package/dist/chunk-YXGZQPUD.js +94 -0
  278. package/dist/chunk-Z3A3AFVU.mjs +102 -0
  279. package/dist/chunk-ZCY6YKKP.mjs +475 -0
  280. package/dist/chunk-ZEQHXVU5.js +215 -0
  281. package/dist/chunk-ZF7JCXCI.js +284 -0
  282. package/dist/chunk-ZJBRUH6V.js +29 -0
  283. package/dist/chunk-ZMIL4ZOA.js +365 -0
  284. package/dist/chunk-ZR5ULMN2.mjs +337 -0
  285. package/dist/chunk-ZXREOYOW.js +87 -0
  286. package/dist/{client-BSP9U1O1.d.mts → client-CX_WR0-J.d.mts} +2 -2
  287. package/dist/client-Dytx_ZTC.d.ts +230 -0
  288. package/dist/{client-B878xeAP.d.ts → client-dqOhP9Nc.d.ts} +2 -2
  289. package/dist/client-hTKbCuhG.d.mts +230 -0
  290. package/dist/clock-B-UAjkKa.d.mts +5 -0
  291. package/dist/clock-B-UAjkKa.d.ts +5 -0
  292. package/dist/config-BlXQluJR.d.mts +36 -0
  293. package/dist/config-BlXQluJR.d.ts +36 -0
  294. package/dist/courier-Cnn-edJ4.d.ts +95 -0
  295. package/dist/courier-FmGfkvIN.d.mts +95 -0
  296. package/dist/crowd-DdHFbqKK.d.ts +186 -0
  297. package/dist/crowd-hOVSAmA3.d.mts +186 -0
  298. package/dist/danfo-BEBapFlX.d.mts +146 -0
  299. package/dist/danfo-UQ_PTIIx.d.ts +146 -0
  300. package/dist/{elements-Bty6Qs_N.d.mts → elements-DdsRig-2.d.mts} +1548 -257
  301. package/dist/{elements-Bty6Qs_N.d.ts → elements-DdsRig-2.d.ts} +1548 -257
  302. package/dist/engines/godot.d.mts +56 -0
  303. package/dist/engines/godot.d.ts +56 -0
  304. package/dist/engines/godot.js +28 -0
  305. package/dist/engines/godot.mjs +3 -0
  306. package/dist/engines/wasm.d.mts +11 -0
  307. package/dist/engines/wasm.d.ts +11 -0
  308. package/dist/engines/wasm.js +178 -0
  309. package/dist/engines/wasm.mjs +176 -0
  310. package/dist/fallback-CrG_lTFk.d.mts +270 -0
  311. package/dist/fallback-CrG_lTFk.d.ts +270 -0
  312. package/dist/fallback-KDB4Y2CE.mjs +6 -0
  313. package/dist/fallback-Y26TQENE.js +19 -0
  314. package/dist/features-CZB4rmcD.d.mts +118 -0
  315. package/dist/features-CZB4rmcD.d.ts +118 -0
  316. package/dist/fit-BWiE7rgA.d.mts +44 -0
  317. package/dist/fit-DK0oT7zO.d.ts +44 -0
  318. package/dist/five-a-side-Bv1AOUy3.d.mts +115 -0
  319. package/dist/five-a-side-EC51SJY1.d.ts +115 -0
  320. package/dist/fluid-ARr0qUIL.d.ts +939 -0
  321. package/dist/fluid-DLlEj2cs.d.mts +939 -0
  322. package/dist/game/conformance.d.mts +84 -0
  323. package/dist/game/conformance.d.ts +84 -0
  324. package/dist/game/conformance.js +1025 -0
  325. package/dist/game/conformance.mjs +994 -0
  326. package/dist/game/heap.d.mts +40 -0
  327. package/dist/game/heap.d.ts +40 -0
  328. package/dist/game/heap.js +48 -0
  329. package/dist/game/heap.mjs +7 -0
  330. package/dist/game/kit/canvas.d.mts +240 -0
  331. package/dist/game/kit/canvas.d.ts +240 -0
  332. package/dist/game/kit/canvas.js +3566 -0
  333. package/dist/game/kit/canvas.mjs +1039 -0
  334. package/dist/game/kit/courier.d.mts +17 -0
  335. package/dist/game/kit/courier.d.ts +17 -0
  336. package/dist/game/kit/courier.js +66 -0
  337. package/dist/game/kit/courier.mjs +49 -0
  338. package/dist/game/kit/danfo.d.mts +11 -0
  339. package/dist/game/kit/danfo.d.ts +11 -0
  340. package/dist/game/kit/danfo.js +109 -0
  341. package/dist/game/kit/danfo.mjs +44 -0
  342. package/dist/game/kit/engine.d.mts +29 -0
  343. package/dist/game/kit/engine.d.ts +29 -0
  344. package/dist/game/kit/engine.js +183 -0
  345. package/dist/game/kit/engine.mjs +30 -0
  346. package/dist/game/kit/five-a-side.d.mts +11 -0
  347. package/dist/game/kit/five-a-side.d.ts +11 -0
  348. package/dist/game/kit/five-a-side.js +86 -0
  349. package/dist/game/kit/five-a-side.mjs +41 -0
  350. package/dist/game/kit/frontier.d.mts +344 -0
  351. package/dist/game/kit/frontier.d.ts +344 -0
  352. package/dist/game/kit/frontier.js +435 -0
  353. package/dist/game/kit/frontier.mjs +14 -0
  354. package/dist/game/kit/genesis.d.mts +752 -0
  355. package/dist/game/kit/genesis.d.ts +752 -0
  356. package/dist/game/kit/genesis.js +380 -0
  357. package/dist/game/kit/genesis.mjs +15 -0
  358. package/dist/game/kit/ludo.d.mts +15 -0
  359. package/dist/game/kit/ludo.d.ts +15 -0
  360. package/dist/game/kit/ludo.js +87 -0
  361. package/dist/game/kit/ludo.mjs +42 -0
  362. package/dist/game/kit/runner.d.mts +12 -0
  363. package/dist/game/kit/runner.d.ts +12 -0
  364. package/dist/game/kit/runner.js +83 -0
  365. package/dist/game/kit/runner.mjs +46 -0
  366. package/dist/game/kit/shootout.d.mts +13 -0
  367. package/dist/game/kit/shootout.d.ts +13 -0
  368. package/dist/game/kit/shootout.js +122 -0
  369. package/dist/game/kit/shootout.mjs +57 -0
  370. package/dist/game/kit/slots.d.mts +392 -0
  371. package/dist/game/kit/slots.d.ts +392 -0
  372. package/dist/game/kit/slots.js +215 -0
  373. package/dist/game/kit/slots.mjs +6 -0
  374. package/dist/game/kit/tycoon.d.mts +16 -0
  375. package/dist/game/kit/tycoon.d.ts +16 -0
  376. package/dist/game/kit/tycoon.js +145 -0
  377. package/dist/game/kit/tycoon.mjs +44 -0
  378. package/dist/game/kit/word.d.mts +11 -0
  379. package/dist/game/kit/word.d.ts +11 -0
  380. package/dist/game/kit/word.js +78 -0
  381. package/dist/game/kit/word.mjs +41 -0
  382. package/dist/game/kit/worlds.d.mts +18 -0
  383. package/dist/game/kit/worlds.d.ts +18 -0
  384. package/dist/game/kit/worlds.js +74 -0
  385. package/dist/game/kit/worlds.mjs +49 -0
  386. package/dist/game/kit.d.mts +53 -0
  387. package/dist/game/kit.d.ts +53 -0
  388. package/dist/game/kit.js +2610 -0
  389. package/dist/game/kit.mjs +101 -0
  390. package/dist/game/prepared.d.mts +14 -0
  391. package/dist/game/prepared.d.ts +14 -0
  392. package/dist/game/prepared.js +81 -0
  393. package/dist/game/prepared.mjs +32 -0
  394. package/dist/game-Bx8onkhX.d.mts +1451 -0
  395. package/dist/game-fgQy2YIm.d.ts +1451 -0
  396. package/dist/game-theme-CBTw1b_d.d.mts +35 -0
  397. package/dist/game-theme-Dg-ict5A.d.ts +35 -0
  398. package/dist/game.d.mts +3546 -0
  399. package/dist/game.d.ts +3546 -0
  400. package/dist/game.js +4455 -0
  401. package/dist/game.mjs +50 -0
  402. package/dist/graphics-C6YjWYvP.d.ts +5 -0
  403. package/dist/graphics-Dk2yQnYN.d.mts +5 -0
  404. package/dist/guest-DrsA00XD.d.mts +732 -0
  405. package/dist/guest-wIdfoT05.d.ts +732 -0
  406. package/dist/hit-stop-BKkVwTq7.d.mts +43 -0
  407. package/dist/hit-stop-D-8pPYnM.d.ts +43 -0
  408. package/dist/hot-Crn9XpHJ.d.ts +29 -0
  409. package/dist/hot-DH3nOhQD.d.mts +29 -0
  410. package/dist/{index-CQStGb3B.d.mts → index-6gkHMGAq.d.mts} +2 -2
  411. package/dist/index-B8ybCKJI.d.ts +41 -0
  412. package/dist/{index-DJwXmoaP.d.ts → index-B98Xac8e.d.ts} +2 -2
  413. package/dist/{index-B7oA_1XI.d.ts → index-B_ByTtIT.d.ts} +2 -2
  414. package/dist/index-DHjNHb1c.d.mts +41 -0
  415. package/dist/{index-DhUSTAhT.d.mts → index-DbAN_VQE.d.mts} +2 -2
  416. package/dist/index.d.mts +134 -24
  417. package/dist/index.d.ts +134 -24
  418. package/dist/index.js +407 -248
  419. package/dist/index.mjs +184 -58
  420. package/dist/interactives-authoring.d.mts +231 -0
  421. package/dist/interactives-authoring.d.ts +231 -0
  422. package/dist/interactives-authoring.js +1743 -0
  423. package/dist/interactives-authoring.mjs +1704 -0
  424. package/dist/interactives-canvas.global.js +148 -0
  425. package/dist/interactives-guest.d.mts +20 -0
  426. package/dist/interactives-guest.d.ts +20 -0
  427. package/dist/interactives-guest.js +63 -0
  428. package/dist/interactives-guest.json +1 -0
  429. package/dist/interactives-guest.mjs +61 -0
  430. package/dist/interactives-jsc.global.js +9357 -0
  431. package/dist/interactives-meters.d.mts +93 -0
  432. package/dist/interactives-meters.d.ts +93 -0
  433. package/dist/interactives-meters.js +252 -0
  434. package/dist/interactives-meters.mjs +68 -0
  435. package/dist/interactives-production.d.mts +430 -0
  436. package/dist/interactives-production.d.ts +430 -0
  437. package/dist/interactives-production.js +1231 -0
  438. package/dist/interactives-production.mjs +1170 -0
  439. package/dist/interactives-record.d.mts +112 -0
  440. package/dist/interactives-record.d.ts +112 -0
  441. package/dist/interactives-record.js +302 -0
  442. package/dist/interactives-record.mjs +295 -0
  443. package/dist/interactives-runtime.d.mts +61 -0
  444. package/dist/interactives-runtime.d.ts +61 -0
  445. package/dist/interactives-runtime.js +442 -0
  446. package/dist/interactives-runtime.mjs +25 -0
  447. package/dist/interactives-studio-kernel.global.js +1 -0
  448. package/dist/interactives-studio.d.mts +806 -0
  449. package/dist/interactives-studio.d.ts +806 -0
  450. package/dist/interactives-studio.js +5741 -0
  451. package/dist/interactives-studio.mjs +5651 -0
  452. package/dist/interactives-tick.d.mts +90 -0
  453. package/dist/interactives-tick.d.ts +90 -0
  454. package/dist/interactives-tick.js +203 -0
  455. package/dist/interactives-tick.mjs +6 -0
  456. package/dist/interactives-web.d.mts +762 -0
  457. package/dist/interactives-web.d.ts +762 -0
  458. package/dist/interactives-web.js +5000 -0
  459. package/dist/interactives-web.mjs +4628 -0
  460. package/dist/interactives.d.mts +2430 -0
  461. package/dist/interactives.d.ts +2430 -0
  462. package/dist/interactives.js +5723 -0
  463. package/dist/interactives.mjs +4333 -0
  464. package/dist/juice-CoHxlpKA.d.ts +42 -0
  465. package/dist/juice-DQztFS43.d.mts +42 -0
  466. package/dist/launch-T2f4_Di4.d.mts +151 -0
  467. package/dist/launch-d6oreMzR.d.ts +151 -0
  468. package/dist/library-DXYaMFhi.d.mts +69 -0
  469. package/dist/library-DXYaMFhi.d.ts +69 -0
  470. package/dist/link-BUTqGmyi.d.mts +38 -0
  471. package/dist/link-BUTqGmyi.d.ts +38 -0
  472. package/dist/lint.js +104 -204
  473. package/dist/lint.mjs +103 -203
  474. package/dist/local-D8_I6UeL.d.mts +6967 -0
  475. package/dist/local-VZkqsCzR.d.ts +6967 -0
  476. package/dist/lockstep-BLf6dglI.d.mts +321 -0
  477. package/dist/lockstep-D50Ia0JW.d.ts +321 -0
  478. package/dist/ludo-B8ClkDqr.d.ts +205 -0
  479. package/dist/ludo-BOuohQ-M.d.mts +205 -0
  480. package/dist/mock/cli.mjs +200 -56
  481. package/dist/mock/library.js +200 -56
  482. package/dist/mock/library.mjs +200 -56
  483. package/dist/mock/msw.js +200 -56
  484. package/dist/mock/msw.mjs +200 -56
  485. package/dist/native-BodxSh03.d.mts +16 -0
  486. package/dist/native-DUHMT8gA.d.ts +16 -0
  487. package/dist/network-ZXLD7l1b.d.mts +19 -0
  488. package/dist/network-ZXLD7l1b.d.ts +19 -0
  489. package/dist/online-XeymeM9s.d.ts +381 -0
  490. package/dist/online-d7W_Al9a.d.mts +381 -0
  491. package/dist/params-DxFb5G_U.d.mts +155 -0
  492. package/dist/params-DxFb5G_U.d.ts +155 -0
  493. package/dist/play-BRRlfLhX.d.ts +940 -0
  494. package/dist/play-ClrMd_e8.d.mts +940 -0
  495. package/dist/policy-CCw8tXLm.d.mts +3078 -0
  496. package/dist/policy-CMqOSQIu.d.ts +3078 -0
  497. package/dist/ports-B_0v_P3A.d.mts +13 -0
  498. package/dist/ports-CGU_3e_0.d.ts +13 -0
  499. package/dist/prefetch-BHnicOQj.d.ts +117 -0
  500. package/dist/prefetch-CBXgYacv.d.mts +117 -0
  501. package/dist/{price-CSztR02F.d.mts → price-BOzexBww.d.mts} +1 -1
  502. package/dist/{price-C_vasx9A.d.ts → price-C1h9sPxE.d.ts} +1 -1
  503. package/dist/protocol-C8qbpUbT.d.mts +242 -0
  504. package/dist/protocol-C8qbpUbT.d.ts +242 -0
  505. package/dist/rapier-AZHT4YI7.js +7886 -0
  506. package/dist/rapier-ODEPCQA6.mjs +7792 -0
  507. package/dist/react.d.mts +157 -15
  508. package/dist/react.d.ts +157 -15
  509. package/dist/react.js +5564 -5904
  510. package/dist/react.mjs +5451 -5808
  511. package/dist/runner-CQcLL7By.d.ts +189 -0
  512. package/dist/runner-D46Yj-wE.d.mts +189 -0
  513. package/dist/runtime-BRWfkf_q.d.mts +51 -0
  514. package/dist/runtime-DyuBMkKM.d.ts +51 -0
  515. package/dist/scheduling-D2ajXpMC.d.ts +224 -0
  516. package/dist/scheduling-DSRbbaZb.d.mts +224 -0
  517. package/dist/schema-BrWxzKp6.d.mts +63 -0
  518. package/dist/schema-BrWxzKp6.d.ts +63 -0
  519. package/dist/server/evict.js +34 -37
  520. package/dist/server/evict.mjs +34 -37
  521. package/dist/server/tanstack.d.mts +49 -3
  522. package/dist/server/tanstack.d.ts +49 -3
  523. package/dist/server/tanstack.js +169 -117
  524. package/dist/server/tanstack.mjs +166 -118
  525. package/dist/{server-Dckg4Vdr.d.ts → server-D29IIuDV.d.ts} +136 -130
  526. package/dist/{server-B6dW7-Lj.d.mts → server-DQMWPnc8.d.mts} +136 -130
  527. package/dist/server.d.mts +45 -5
  528. package/dist/server.d.ts +45 -5
  529. package/dist/server.js +171 -227
  530. package/dist/server.mjs +165 -225
  531. package/dist/session-grant-CJ27DwrT.d.mts +19 -0
  532. package/dist/session-grant-CJ27DwrT.d.ts +19 -0
  533. package/dist/shootout-BJZeX6FG.d.ts +140 -0
  534. package/dist/shootout-tcZd1Rxt.d.mts +140 -0
  535. package/dist/state-replica-stMtdkVD.d.mts +42 -0
  536. package/dist/state-replica-stMtdkVD.d.ts +42 -0
  537. package/dist/studio-CowqWqez.d.mts +14 -0
  538. package/dist/studio-CowqWqez.d.ts +14 -0
  539. package/dist/styles.css +1 -1
  540. package/dist/template-AhCdB1kW.d.mts +190 -0
  541. package/dist/template-BkEGVTQj.d.ts +190 -0
  542. package/dist/terrain-BMxEc6Oc.d.ts +429 -0
  543. package/dist/terrain-C-XC1Oui.d.mts +429 -0
  544. package/dist/testing/msw.d.mts +28 -4
  545. package/dist/testing/msw.d.ts +28 -4
  546. package/dist/testing/msw.js +15 -21
  547. package/dist/testing/msw.mjs +15 -21
  548. package/dist/testing/suite.d.mts +6 -5
  549. package/dist/testing/suite.d.ts +6 -5
  550. package/dist/testing/suite.js +89 -124
  551. package/dist/testing/suite.mjs +81 -116
  552. package/dist/testing.d.mts +27 -1227
  553. package/dist/testing.d.ts +27 -1227
  554. package/dist/testing.js +127 -131
  555. package/dist/testing.mjs +19 -23
  556. package/dist/tick-transport-C8QEh8Uw.d.mts +50 -0
  557. package/dist/tick-transport-UjHY3xK1.d.ts +50 -0
  558. package/dist/timeline-protocol-hp6e8zFB.d.mts +47 -0
  559. package/dist/timeline-protocol-hp6e8zFB.d.ts +47 -0
  560. package/dist/tokens-DhanQRQS.d.mts +21 -0
  561. package/dist/tokens-K8yxwd6G.d.ts +21 -0
  562. package/dist/tree-C-Io2Hbx.d.mts +35 -0
  563. package/dist/tree-CP_qSW4H.d.ts +35 -0
  564. package/dist/tycoon-B5KHk2Xx.d.mts +255 -0
  565. package/dist/tycoon-hmHo-3HX.d.ts +255 -0
  566. package/dist/types-BQkxPwZP.d.mts +219 -0
  567. package/dist/types-D_f6UUxM.d.ts +219 -0
  568. package/dist/ui-DwHicuFv.d.mts +563 -0
  569. package/dist/ui-hi7S2YcH.d.ts +563 -0
  570. package/dist/{sign-in-DQlIdqsi.d.mts → url-52ndUruG.d.mts} +15 -1
  571. package/dist/{sign-in-DQlIdqsi.d.ts → url-52ndUruG.d.ts} +15 -1
  572. package/dist/utils.d.mts +3 -3
  573. package/dist/utils.d.ts +3 -3
  574. package/dist/utils.js +37 -37
  575. package/dist/utils.mjs +4 -4
  576. package/dist/vars-Dc_PrhBK.d.mts +511 -0
  577. package/dist/vars-Dc_PrhBK.d.ts +511 -0
  578. package/dist/vm-IUARFFAI.mjs +63 -0
  579. package/dist/vm-N7L6MGGH.js +65 -0
  580. package/dist/weave-delivery-CW-Kstut.d.mts +360 -0
  581. package/dist/weave-delivery-CW-Kstut.d.ts +360 -0
  582. package/dist/web-Dss74a7v.d.ts +883 -0
  583. package/dist/web-f9ZQPoyw.d.mts +883 -0
  584. package/dist/web-transport-C7MkBL0a.d.ts +19 -0
  585. package/dist/web-transport-aYEqXMd9.d.mts +19 -0
  586. package/dist/weight-CPGjsgjV.d.ts +92 -0
  587. package/dist/weight-tF1ODR1p.d.mts +92 -0
  588. package/dist/word-BcX9Jcmv.d.mts +70 -0
  589. package/dist/word-C7sVPLHm.d.ts +70 -0
  590. package/dist/world-PvILHDR1.d.ts +2285 -0
  591. package/dist/world-qekkXjJv.d.mts +2285 -0
  592. package/dist/worlds-Br2Pb0Cs.d.ts +109 -0
  593. package/dist/worlds-D5ydYr7d.d.mts +109 -0
  594. package/engines/c/cimplify.h +108 -0
  595. package/engines/c/cimplify.lib.js +11 -0
  596. package/engines/godot/addons/cimplify/cimplify.gd +97 -0
  597. package/engines/rust/interactives-ctx/Cargo.toml +9 -0
  598. package/engines/rust/interactives-ctx/src/lib.rs +189 -0
  599. package/package.json +189 -3
  600. package/vendor/rapier3d-compat/LICENSE +201 -0
  601. package/vendor/rapier3d-compat/PATCHES.md +61 -0
  602. package/dist/chunk-2P4KXFB6.js +0 -274
  603. package/dist/chunk-3G6RQLXK.mjs +0 -21
  604. package/dist/chunk-3V4DVXV3.mjs +0 -254
  605. package/dist/chunk-EDK3LNM6.js +0 -2436
  606. package/dist/chunk-F7J3HK27.js +0 -4549
  607. package/dist/chunk-U4MW6PYU.mjs +0 -23
  608. package/dist/chunk-XREIZ56K.js +0 -26
@@ -0,0 +1,2332 @@
1
+ 'use strict';
2
+
3
+ var chunk2V7IL4HC_js = require('./chunk-2V7IL4HC.js');
4
+ var chunkJGBCIKJV_js = require('./chunk-JGBCIKJV.js');
5
+
6
+ // src/game/kernel/fmath.ts
7
+ var fmath_exports = {};
8
+ chunkJGBCIKJV_js.__export(fmath_exports, {
9
+ FMATH_CONSTANTS: () => FMATH_CONSTANTS,
10
+ acos: () => acos,
11
+ asin: () => asin,
12
+ atan: () => atan,
13
+ atan2: () => atan2,
14
+ cos: () => cos,
15
+ exp: () => exp,
16
+ exp2: () => exp2,
17
+ f32Bits: () => f32Bits,
18
+ f32From: () => f32From,
19
+ log: () => log,
20
+ log2: () => log2,
21
+ pow: () => pow,
22
+ sin: () => sin,
23
+ tan: () => tan
24
+ });
25
+ var f64 = new Float64Array(1), w64 = new Uint32Array(f64.buffer), f32 = new Float32Array(1), w32 = new Uint32Array(f32.buffer), fround = Math.fround;
26
+ function f32Bits(x) {
27
+ return f32[0] = x, w32[0];
28
+ }
29
+ function f32From(bits) {
30
+ return w32[0] = bits >>> 0, f32[0];
31
+ }
32
+ function f64From(hi, lo) {
33
+ return w64[0] = lo >>> 0, w64[1] = hi >>> 0, f64[0];
34
+ }
35
+ function lowWord(x) {
36
+ return f64[0] = x, w64[0];
37
+ }
38
+ function d(hex) {
39
+ return f64From(Number.parseInt(hex.slice(0, 8), 16), Number.parseInt(hex.slice(8), 16));
40
+ }
41
+ var EXP2_TABLE = [
42
+ "3ff0000000000000",
43
+ "3fefd9b0d3158574",
44
+ "3fefb5586cf9890f",
45
+ "3fef9301d0125b51",
46
+ "3fef72b83c7d517b",
47
+ "3fef54873168b9aa",
48
+ "3fef387a6e756238",
49
+ "3fef1e9df51fdee1",
50
+ "3fef06fe0a31b715",
51
+ "3feef1a7373aa9cb",
52
+ "3feedea64c123422",
53
+ "3feece086061892d",
54
+ "3feebfdad5362a27",
55
+ "3feeb42b569d4f82",
56
+ "3feeab07dd485429",
57
+ "3feea47eb03a5585",
58
+ "3feea09e667f3bcd",
59
+ "3fee9f75e8ec5f74",
60
+ "3feea11473eb0187",
61
+ "3feea589994cce13",
62
+ "3feeace5422aa0db",
63
+ "3feeb737b0cdc5e5",
64
+ "3feec49182a3f090",
65
+ "3feed503b23e255d",
66
+ "3feee89f995ad3ad",
67
+ "3feeff76f2fb5e47",
68
+ "3fef199bdd85529c",
69
+ "3fef3720dcef9069",
70
+ "3fef5818dcfba487",
71
+ "3fef7c97337b9b5f",
72
+ "3fefa4afa2a490da",
73
+ "3fefd0765b6e4540"
74
+ ], EXP2_HI = EXP2_TABLE.map((h) => Number.parseInt(h.slice(0, 8), 16)), EXP2_LO = EXP2_TABLE.map((h) => Number.parseInt(h.slice(8), 16)), EXP2_POLY = [d("3fac6af84b912394"), d("3fcebfce50fac4f3"), d("3fe62e42ff0c52d6")], EXP_POLY = [d("3ebc6af84b912394"), d("3f2ebfce50fac4f3"), d("3f962e42ff0c52d6")], INV_LN2_N = d("40471547652b82fe"), SHIFT = d("4338000000000000"), SHIFT_SCALED = d("42e8000000000000"), EXP_LOW = -104, EXP_HIGH = 89, EXP2_LOW = -151, EXP2_HIGH = 129, INV_C = [
75
+ "3ff661ec79f8f3be",
76
+ "3ff571ed4aaf883d",
77
+ "3ff49539f0f010b0",
78
+ "3ff3c995b0b80385",
79
+ "3ff30d190c8864a5",
80
+ "3ff25e227b0b8ea0",
81
+ "3ff1bb4a4a1a343f",
82
+ "3ff12358f08ae5ba",
83
+ "3ff0953f419900a7",
84
+ "3ff0000000000000",
85
+ "3fee608cfd9a47ac",
86
+ "3feca4b31f026aa0",
87
+ "3feb2036576afce6",
88
+ "3fe9c2d163a1aa2d",
89
+ "3fe886e6037841ed",
90
+ "3fe767dcf5534862"
91
+ ].map(d), LOG_C = [
92
+ "bfd57bf7808caade",
93
+ "bfd2bef0a7c06ddb",
94
+ "bfd01eae7f513a67",
95
+ "bfcb31d8a68224e9",
96
+ "bfc6574f0ac07758",
97
+ "bfc1aa2bc79c8100",
98
+ "bfba4e76ce8c0e5e",
99
+ "bfb1973c5a611ccc",
100
+ "bfa252f438e10c1e",
101
+ "0000000000000000",
102
+ "3faaa5aa5df25984",
103
+ "3fbc5e53aa362eb4",
104
+ "3fc526e57720db08",
105
+ "3fcbc2860d224770",
106
+ "3fd1058bc8a07ee1",
107
+ "3fd4043057b6ee09"
108
+ ].map(d), LOG2_C = [
109
+ "bfdefec65b963019",
110
+ "bfdb0b6832d4fca4",
111
+ "bfd7418b0a1fb77b",
112
+ "bfd39de91a6dcf7b",
113
+ "bfd01d9bf3f2b631",
114
+ "bfc97c1d1b3b7af0",
115
+ "bfc2f9e393af3c9f",
116
+ "bfb960cbbf788d5c",
117
+ "bfaa6f9db6475fce",
118
+ "0000000000000000",
119
+ "3fb338ca9f24f53d",
120
+ "3fc476a9543891ba",
121
+ "3fce840b4ac4e4d2",
122
+ "3fd40645f0c6651c",
123
+ "3fd88e9c2c1b9ff8",
124
+ "3fdce0a44eb17bcc"
125
+ ].map(d), LN2 = d("3fe62e42fefa39ef"), LOG_POLY = ["bfd00ea348b88334", "3fd5575b0be00b6a", "bfdffffef20a4123"].map(d), LOG2_POLY = ["bfd712b6f70a7e4d", "3fdecabf496832e0", "bfe715479ffae3de", "3ff715475f35c8b8"].map(d), POW_POLY = ["3fd27616c9496e0b", "bfd71969a075c67a", "3fdec70a6ca7badd", "bfe7154748bef6c8", "3ff71547652ab82b"].map(d), POW_SIGN_BIAS = 65536, POW_OVERFLOW = d("405fffffffd1d571"), POW_SATURATE = d("405fffffffa3aae2"), POW_UNDERFLOW = -150, LOG_OFF = 1060306944, SUBNORMAL_SCALE = 8388608, SUBNORMAL_BIAS = 23 << 23, MIN_NORMAL = 8388608, INFINITY_BITS = 2139095040, ONE_BITS = 1065353216, SIGN = 2147483648, ABS = 2147483647, EXPONENT_MASK = 4286578688, F32_MAX = f32From(2139095039), HPI_INV = d("41645f306dc9c883"), HPI = d("3ff921fb54442d18"), PI63 = d("3c1921fb54442d18"), COS_C1 = d("bfdffffffd0c621c"), COS_C2 = d("3fa55553e1068f19"), COS_C3 = d("bf56c087e89a359d"), COS_C4 = d("3ef99343027bf8c3"), SIN_S1 = d("bfc555545995a603"), SIN_S2 = d("3f81107605230bc4"), SIN_S3 = d("bf2994eb3774cf24"), QUADRANT_SIGN = [1, -1, -1, 1], LARGE_TOP = 1071, QUADRANT_ROUND = 8388608, INV_PIO4 = [
126
+ 162,
127
+ 41721,
128
+ 10680707,
129
+ 2734261102,
130
+ 4186140238,
131
+ 2205044292,
132
+ 1850622997,
133
+ 1313084713,
134
+ 1142237692,
135
+ 355073063,
136
+ 704390999,
137
+ 4230436817,
138
+ 660066805,
139
+ 1473377588,
140
+ 3522507997,
141
+ 4113882560,
142
+ 886948059,
143
+ 3720403810,
144
+ 3235603093,
145
+ 3680671129,
146
+ 1653971260,
147
+ 2509847619,
148
+ 2570863504,
149
+ 1011060801
150
+ ], QUARTER_PI = Math.PI / 4, HALF_PI = Math.PI / 2, TAN_PI_8 = d("3fda827999fcef34"), ATAN_TERMS = 14, ATAN_COEFFS = Array.from({ length: (14) }, (_, k) => (k % 2 === 0 ? 1 : -1) * (1 / (2 * k + 1))), U64 = (1n << 64n) - 1n, U32 = (1n << 32n) - 1n;
151
+ function clampTo(x, low2, high2) {
152
+ return Number.isNaN(x) ? low2 : Math.min(Math.max(x, low2), high2);
153
+ }
154
+ function exp2Table(xd, shift, poly2, signBias) {
155
+ let shifted = xd + shift, ki = lowWord(shifted), kd = shifted - shift, r = xd - kd, i = ki & 31, hi = EXP2_HI[i] + (ki + signBias >>> 0 << 15) >>> 0, s = f64From(hi, EXP2_LO[i]), z = poly2[0] * r + poly2[1], r2 = r * r, y = poly2[2] * r + 1;
156
+ return (z * r2 + y) * s;
157
+ }
158
+ function exp(x) {
159
+ return Number.isNaN(x) ? Number.NaN : fround(exp2Table(INV_LN2_N * clampTo(x, (-104), (89)), SHIFT, EXP_POLY, 0));
160
+ }
161
+ function exp2(x) {
162
+ return Number.isNaN(x) ? Number.NaN : fround(exp2Table(clampTo(x, (-151), (129)), SHIFT_SCALED, EXP2_POLY, 0));
163
+ }
164
+ function normalized(ix) {
165
+ let abs = (ix & (2147483647)) >>> 0;
166
+ return abs >= (8388608) ? abs : f32Bits(fround(f32From(abs) * (8388608))) - SUBNORMAL_BIAS >>> 0;
167
+ }
168
+ function split(ix) {
169
+ let tmp = ix - (1060306944) >>> 0, i = tmp >>> 19 & 15, top = (tmp & (4286578688)) >>> 0, k = (top | 0) >> 23, z = f32From(ix - top >>> 0);
170
+ return [i, k, z * INV_C[i] - 1];
171
+ }
172
+ function logSpecial(x, y) {
173
+ let ix = f32Bits(x);
174
+ return ix << 1 >>> 0 ? ix === (2139095040) ? x : (ix & (2147483648)) !== 0 || ix << 1 >>> 0 >= (2139095040) << 1 >>> 0 ? Number.NaN : y : Number.NEGATIVE_INFINITY;
175
+ }
176
+ function log(x) {
177
+ let [i, k, r] = split(normalized(f32Bits(x))), y0 = LOG_C[i] + k * LN2, r2 = r * r, y = LOG_POLY[1] * r + LOG_POLY[2];
178
+ return y = LOG_POLY[0] * r2 + y, y = y * r2 + (y0 + r), logSpecial(fround(x), fround(y));
179
+ }
180
+ function log2(x) {
181
+ let [i, k, r] = split(normalized(f32Bits(x))), y0 = LOG2_C[i] + k, r2 = r * r, y = LOG2_POLY[1] * r + LOG2_POLY[2];
182
+ y = LOG2_POLY[0] * r2 + y;
183
+ let p = LOG2_POLY[3] * r + y0;
184
+ return y = y * r2 + p, logSpecial(fround(x), fround(y));
185
+ }
186
+ function powLog2(ix) {
187
+ let [i, k, r] = split(ix), y0 = LOG2_C[i] + k, r2 = r * r, y = POW_POLY[0] * r + POW_POLY[1], p = POW_POLY[2] * r + POW_POLY[3], r4 = r2 * r2, q = POW_POLY[4] * r + y0;
188
+ return q = p * r2 + q, y * r4 + q;
189
+ }
190
+ function integerKind(iy) {
191
+ let e = iy >>> 23 & 255;
192
+ if (e < 127) return 0;
193
+ if (e > 150) return 2;
194
+ let shift = 150 - e;
195
+ return (shift === 0 ? 0 : (iy & (1 << shift >>> 0) - 1) >>> 0) !== 0 ? 0 : (iy & 1 << shift >>> 0) !== 0 ? 1 : 2;
196
+ }
197
+ function zeroInfNan(i) {
198
+ return (i << 1 >>> 0) - 1 >>> 0 >= ((2139095040) << 1 >>> 0) - 1 >>> 0;
199
+ }
200
+ function pow(xIn, yIn) {
201
+ let x = fround(xIn), y = fround(yIn), ix = f32Bits(x), iy = f32Bits(y), ax = ix << 1 >>> 0 >>> 1;
202
+ if (zeroInfNan(iy))
203
+ return !(iy << 1 >>> 0) || ix === (1065353216) ? 1 : ix << 1 >>> 0 > (2139095040) << 1 >>> 0 || iy << 1 >>> 0 > (2139095040) << 1 >>> 0 ? Number.NaN : ax === (1065353216) ? 1 : ax < (1065353216) == ((iy & (2147483648)) === 0) ? 0 : fround(y * y);
204
+ let yint = integerKind(iy), negative = (ix & (2147483648)) !== 0, odd = negative && yint === 1;
205
+ if (zeroInfNan(ix)) {
206
+ if (Number.isNaN(x)) return Number.NaN;
207
+ let square = fround(x * x), x2 = odd ? -square : square;
208
+ return (iy & (2147483648)) !== 0 ? fround(1 / x2) : x2;
209
+ }
210
+ if (negative && yint === 0) return Number.NaN;
211
+ let ylogx = y * powLog2(normalized(ix)), signed = (magnitude) => odd ? -magnitude : magnitude;
212
+ return ylogx > POW_OVERFLOW ? signed(Number.POSITIVE_INFINITY) : ylogx > POW_SATURATE ? signed(F32_MAX) : ylogx <= (-150) ? signed(0) : fround(exp2Table(clampTo(ylogx, (-151), (129)), SHIFT_SCALED, EXP2_POLY, odd ? (65536) : 0));
213
+ }
214
+ function poly(x, n, flip, s) {
215
+ let xs = x * s, x2 = x * x, x3 = x2 * xs, x4 = x2 * x2, x5 = x3 * x2, x6 = x4 * x2, c2 = COS_C3 * flip + x2 * (COS_C4 * flip), s1 = SIN_S2 + x2 * SIN_S3, c1 = flip + x2 * (COS_C1 * flip), sv = xs + x3 * SIN_S1, cv = c1 + x4 * (COS_C2 * flip), sine = sv + x5 * s1, cosine = cv + x6 * c2;
216
+ return (n & 1) !== 0 ? [cosine, sine] : [sine, cosine];
217
+ }
218
+ function sincosWide(xIn) {
219
+ let x = fround(xIn), bits = f32Bits(x);
220
+ if ((bits >>> 20 & 2047) < (1071)) {
221
+ let n2 = (x * HPI_INV | 0) + (8388608) >> 24;
222
+ return poly(x - n2 * HPI, n2, (n2 & 2) !== 0 ? -1 : 1, QUADRANT_SIGN[n2 & 3]);
223
+ }
224
+ if (!Number.isFinite(x)) return [Number.NaN, Number.NaN];
225
+ let sign = bits >>> 31, at = bits >>> 26 & 15, shift = bits >>> 23 & 7, m = BigInt((bits & 16777215 | 8388608) << shift >>> 0), res0 = m * BigInt(INV_PIO4[at]) & U32, res1 = m * BigInt(INV_PIO4[at + 4]), res = (m * BigInt(INV_PIO4[at + 8]) >> 32n | res0 << 32n) & U64;
226
+ res = res + res1 & U64;
227
+ let n = (res + (1n << 61n) & U64) >> 62n;
228
+ res = res - (n << 62n) & U64;
229
+ let signedRes = res >= 1n << 63n ? res - (1n << 64n) : res, reduced2 = Number(signedRes) * PI63, quadrant = Number(n) + sign | 0;
230
+ return poly(reduced2, Number(n), (quadrant & 2) !== 0 ? -1 : 1, QUADRANT_SIGN[quadrant & 3]);
231
+ }
232
+ function sin(x) {
233
+ return fround(sincosWide(x)[0]);
234
+ }
235
+ function cos(x) {
236
+ return fround(sincosWide(x)[1]);
237
+ }
238
+ function tan(x) {
239
+ let [s, c] = sincosWide(x);
240
+ return fround(s / c);
241
+ }
242
+ function atanUnit(t) {
243
+ let big = t > TAN_PI_8, u = big ? (t - 1) / (t + 1) : t, u2 = u * u, p = 0;
244
+ for (let k = (14) - 1; k >= 0; k--) p = ATAN_COEFFS[k] + u2 * p;
245
+ return (big ? QUARTER_PI : 0) + u * p;
246
+ }
247
+ function atan2Wide(y, x) {
248
+ if (Number.isNaN(x) || Number.isNaN(y)) return Number.NaN;
249
+ let ax = Math.abs(x), ay = Math.abs(y), high2 = Math.max(ax, ay), low2 = Math.min(ax, ay), t = high2 === 0 ? 0 : low2 === Number.POSITIVE_INFINITY ? 1 : low2 / high2, v = atanUnit(t);
250
+ return ay > ax && (v = HALF_PI - v), (x < 0 || Object.is(x, -0)) && (v = Math.PI - v), y < 0 || Object.is(y, -0) ? -v : v;
251
+ }
252
+ function atan2(y, x) {
253
+ return fround(atan2Wide(fround(y), fround(x)));
254
+ }
255
+ function atan(x) {
256
+ return fround(atan2Wide(fround(x), 1));
257
+ }
258
+ function asin(xIn) {
259
+ let x = fround(xIn);
260
+ return Math.abs(x) > 1 ? Number.NaN : fround(atan2Wide(x, Math.sqrt((1 - x) * (1 + x))));
261
+ }
262
+ function acos(xIn) {
263
+ let x = fround(xIn);
264
+ return Math.abs(x) > 1 ? Number.NaN : fround(atan2Wide(Math.sqrt((1 - x) * (1 + x)), x));
265
+ }
266
+ var FMATH_CONSTANTS = {
267
+ EXP2_HI,
268
+ EXP2_LO,
269
+ EXP2_POLY,
270
+ EXP_POLY,
271
+ INV_LN2_N,
272
+ SHIFT,
273
+ SHIFT_SCALED,
274
+ EXP_LOW: (-104),
275
+ EXP_HIGH: (89),
276
+ EXP2_LOW: (-151),
277
+ EXP2_HIGH: (129),
278
+ INV_C,
279
+ LOG_C,
280
+ LOG2_C,
281
+ LN2,
282
+ LOG_POLY,
283
+ LOG2_POLY,
284
+ POW_POLY,
285
+ POW_SIGN_BIAS: (65536),
286
+ POW_OVERFLOW,
287
+ POW_SATURATE,
288
+ POW_UNDERFLOW: (-150),
289
+ LOG_OFF: (1060306944),
290
+ SUBNORMAL_SCALE: (8388608),
291
+ SUBNORMAL_BIAS,
292
+ MIN_NORMAL: (8388608),
293
+ INFINITY_BITS: (2139095040),
294
+ ONE_BITS: (1065353216),
295
+ F32_MAX,
296
+ HPI_INV,
297
+ HPI,
298
+ PI63,
299
+ COS_C1,
300
+ COS_C2,
301
+ COS_C3,
302
+ COS_C4,
303
+ SIN_S1,
304
+ SIN_S2,
305
+ SIN_S3,
306
+ LARGE_TOP: (1071),
307
+ QUADRANT_ROUND: (8388608),
308
+ INV_PIO4,
309
+ QUARTER_PI,
310
+ HALF_PI,
311
+ TAN_PI_8,
312
+ ATAN_COEFFS
313
+ };
314
+
315
+ // src/game/kernel/isa.ts
316
+ var isa_exports = {};
317
+ chunkJGBCIKJV_js.__export(isa_exports, {
318
+ ACCESS_ARRAY: () => (65536),
319
+ ACCESS_HIGH: () => (4096),
320
+ ACCESS_INDEXED: () => ACCESS_INDEXED,
321
+ ACCESS_NEIGHBOUR: () => (1024),
322
+ ACCESS_POOL: () => ACCESS_POOL,
323
+ ACCESS_READ: () => (256),
324
+ ACCESS_SCRATCH: () => (2048),
325
+ ACCESS_SPAWN: () => (8192),
326
+ ACCESS_TABLE: () => ACCESS_TABLE,
327
+ ACCESS_TABLE_MASK: () => (15),
328
+ ACCESS_TABLE_SHIFT: () => (19),
329
+ ACCESS_WRITE: () => (512),
330
+ ARG_FMAX: () => (1),
331
+ ARG_FMIN: () => (0),
332
+ ARG_IMAX: () => (3),
333
+ ARG_IMIN: () => (2),
334
+ ARG_UMAX: () => (5),
335
+ ARG_UMIN: () => (4),
336
+ ATTACH_AUDIO: () => (5),
337
+ ATTACH_CHEMISTRY_GRID: () => (7),
338
+ ATTACH_SPAWN_TABLE: () => (9),
339
+ ATTACH_UI: () => (4),
340
+ ATTACH_VOXELS: () => (6),
341
+ CELL_WRAP: () => CELL_WRAP,
342
+ CHANNEL_WORDS: () => (4),
343
+ CROSS_BLOCK: () => (256),
344
+ CROSS_OP: () => CROSS_OP,
345
+ CURVE_BEZIER: () => (3),
346
+ CURVE_HEADER: () => (4),
347
+ CURVE_HERMITE: () => (2),
348
+ CURVE_LINEAR: () => (1),
349
+ CURVE_MAX_CHANNELS: () => (4),
350
+ CURVE_MAX_KEYS: () => (256),
351
+ CURVE_STEP: () => (0),
352
+ DATA_FLOAD: () => (12290),
353
+ DATA_KEYOF: () => (12288),
354
+ DATA_LIST: () => (12304),
355
+ DATA_LIST_MAX: () => (4096),
356
+ DATA_PGET: () => (12305),
357
+ DATA_PICK: () => (12336),
358
+ DATA_PSET: () => (12306),
359
+ DATA_REPORT_HEADER: () => (70),
360
+ DATA_ROWOF: () => (12289),
361
+ DATA_ROWS: () => (12291),
362
+ DATA_SEND: () => (12320),
363
+ DATA_TABLES: () => (16),
364
+ DATA_TALLIES: () => (64),
365
+ DATA_TALLY: () => (12307),
366
+ DEFAULT_EVENT_CAPACITY: () => (4096),
367
+ DST_BITS: () => (8),
368
+ EVENT_HEADER_WORDS: () => (2),
369
+ EVENT_STRIDE: () => (10),
370
+ FIELD_MAX: () => (64),
371
+ FLAG_GROUPS: () => (2),
372
+ FLAG_NEIGHBOURS: () => (1),
373
+ GRAPH_EMPTY: () => (4294967295),
374
+ GROUP_DEFAULT: () => (1),
375
+ GROUP_WORDS: () => (4),
376
+ H_ARGS: () => (5),
377
+ H_CONSTANTS: () => (6),
378
+ H_EVENTS: () => (14),
379
+ H_FLAGS: () => (2),
380
+ H_GROUPS: () => (9),
381
+ H_INSTRUCTIONS: () => (8),
382
+ H_LOOPS: () => (7),
383
+ H_MAGIC: () => (0),
384
+ H_POSITION_X: () => (11),
385
+ H_POSITION_Y: () => (12),
386
+ H_POSITION_Z: () => (13),
387
+ H_REGISTERS: () => (3),
388
+ H_SLOTS: () => (4),
389
+ H_STATE: () => (10),
390
+ H_VERSION: () => (1),
391
+ INSTRUCTION_WORDS: () => (4),
392
+ KERNEL_CALLS_FEATURE: () => KERNEL_CALLS_FEATURE,
393
+ KERNEL_CALL_EXPORT_NAMES: () => KERNEL_CALL_EXPORT_NAMES,
394
+ KERNEL_DATA_EXPORT_NAMES: () => KERNEL_DATA_EXPORT_NAMES,
395
+ KERNEL_EXPORT_NAMES: () => KERNEL_EXPORT_NAMES,
396
+ KERNEL_EXTENDED_FEATURE: () => KERNEL_EXTENDED_FEATURE,
397
+ KERNEL_FEATURE: () => KERNEL_FEATURE,
398
+ KERNEL_GATHER_FEATURE: () => KERNEL_GATHER_FEATURE,
399
+ KERNEL_ISA_BASE: () => (1),
400
+ KERNEL_ISA_CALLS: () => (2),
401
+ KERNEL_ISA_EXTENDED: () => (4),
402
+ KERNEL_ISA_VERSION: () => (4),
403
+ KERNEL_ISA_WRITES: () => (3),
404
+ KERNEL_LIBRARY_PATH: () => KERNEL_LIBRARY_PATH,
405
+ KERNEL_MLP_FEATURE: () => KERNEL_MLP_FEATURE,
406
+ KERNEL_MOE_FEATURE: () => KERNEL_MOE_FEATURE,
407
+ KERNEL_QUERY_RANK_FEATURE: () => KERNEL_QUERY_RANK_FEATURE,
408
+ KERNEL_SCAN_FEATURE: () => KERNEL_SCAN_FEATURE,
409
+ KERNEL_SIMD_FEATURE: () => KERNEL_SIMD_FEATURE,
410
+ KERNEL_STAGE_EXPORT_NAMES: () => KERNEL_STAGE_EXPORT_NAMES,
411
+ KERNEL_WRITES_FEATURE: () => KERNEL_WRITES_FEATURE,
412
+ KERNEL_WRITE_EXPORT_NAMES: () => KERNEL_WRITE_EXPORT_NAMES,
413
+ KIND_BOOL: () => (3),
414
+ KIND_F32: () => (0),
415
+ KIND_I32: () => (1),
416
+ KIND_U32: () => (2),
417
+ LIBRARY_HEADER_WORDS: () => (4),
418
+ LIBRARY_MAGIC: () => (827083587),
419
+ LOOKUP_OP: () => LOOKUP_OP,
420
+ LOOP_COUNT_F32: () => (1),
421
+ LUT1_HEADER: () => (4),
422
+ LUT1_MAX: () => (65536),
423
+ LUT2_HEADER: () => (8),
424
+ LUT2_MAX: () => LUT2_MAX,
425
+ LUT_LINEAR: () => (1),
426
+ LUT_WRAP: () => (2),
427
+ MAX_CHANNELS: () => (64),
428
+ MAX_EVENT_WORDS: () => (8),
429
+ MAX_GROUPS: () => (256),
430
+ MAX_REGISTERS: () => (4096),
431
+ MAX_SLOTS: () => (256),
432
+ MAX_SPAWN_FIELDS: () => (64),
433
+ MAX_TRIPS: () => (65536),
434
+ MAX_UNIFORMS: () => (4096),
435
+ MLP_MAX_OUTPUTS: () => (32),
436
+ MLP_MAX_WIDTH: () => (128),
437
+ NONE: () => (4294967295),
438
+ Op: () => Op,
439
+ PICK_F32: () => (1),
440
+ PICK_U32: () => (0),
441
+ PROGRAM_HEADER_WORDS: () => (16),
442
+ PROGRAM_MAGIC: () => (827345731),
443
+ QFILTER_ANY: () => (2),
444
+ QFILTER_EQUAL: () => (1),
445
+ QFILTER_NONE: () => (3),
446
+ QUERY_BOX: () => (2),
447
+ QUERY_CONE: () => (1),
448
+ QUERY_FILTERED: () => (4),
449
+ QUERY_SEGMENT: () => (3),
450
+ QUERY_SHAPE: () => (3),
451
+ QUERY_SPHERE: () => (0),
452
+ RECUR: () => RECUR,
453
+ RECUR_EXCLUSIVE: () => (32),
454
+ RECUR_KINDS: () => (17),
455
+ RECUR_KIND_MASK: () => (31),
456
+ RECUR_WIDE: () => (64),
457
+ REDUCE_FMAX: () => (3),
458
+ REDUCE_FMIN: () => (2),
459
+ REDUCE_FSUM: () => (0),
460
+ REDUCE_IMAX: () => (5),
461
+ REDUCE_IMIN: () => (4),
462
+ REDUCE_ISUM: () => (1),
463
+ REDUCE_UMAX: () => (7),
464
+ REDUCE_UMIN: () => (6),
465
+ RING_COUNT: () => (0),
466
+ RING_DROPPED: () => (1),
467
+ RING_HEADER_WORDS: () => (2),
468
+ SAMPLER_WORDS: () => (8),
469
+ SAMPLE_BILINEAR: () => (1),
470
+ SAMPLE_NEAREST: () => (0),
471
+ SAMPLE_NORMAL_X: () => (2),
472
+ SAMPLE_NORMAL_Y: () => (3),
473
+ SAMPLE_NORMAL_Z: () => (4),
474
+ SCAN_F_EXCLUSIVE: () => (1),
475
+ SCAN_F_INCLUSIVE: () => (0),
476
+ SCAN_I_EXCLUSIVE: () => (3),
477
+ SCAN_I_INCLUSIVE: () => (2),
478
+ SCATTER_FADD: () => (0),
479
+ SCATTER_IADD: () => (1),
480
+ SEND: () => SEND,
481
+ SERVICE_ANCHOR: () => (16),
482
+ SERVICE_BITS: () => (8),
483
+ SERVICE_CHEMISTRY: () => (21),
484
+ SERVICE_CLIP_WEIGHT: () => (11),
485
+ SERVICE_FLOW: () => (5),
486
+ SERVICE_FORCE: () => (6),
487
+ SERVICE_GROUND_HEIGHT: () => (3),
488
+ SERVICE_IK_TARGET: () => (13),
489
+ SERVICE_IMPULSE: () => (7),
490
+ SERVICE_INSTANCE: () => (14),
491
+ SERVICE_INSTANCE_COLOUR: () => (15),
492
+ SERVICE_KILL: () => (23),
493
+ SERVICE_LINE_OF_SIGHT: () => (2),
494
+ SERVICE_MASK: () => (255),
495
+ SERVICE_OVERLAP: () => (9),
496
+ SERVICE_PATH: () => (4),
497
+ SERVICE_PICK: () => (18),
498
+ SERVICE_PLAY_CLIP: () => (12),
499
+ SERVICE_RAYCAST: () => (1),
500
+ SERVICE_SIGNATURES: () => SERVICE_SIGNATURES,
501
+ SERVICE_SOUND: () => (17),
502
+ SERVICE_SPAWN: () => (22),
503
+ SERVICE_SWEEP: () => (10),
504
+ SERVICE_VELOCITY: () => (8),
505
+ SERVICE_VOXEL_GET: () => (19),
506
+ SERVICE_VOXEL_SET: () => (20),
507
+ SIMD_CROSS: () => (28948),
508
+ SIMD_CROSS_WIDTH: () => (3),
509
+ SIMD_DOT: () => (28944),
510
+ SIMD_DOT_F32: () => (0),
511
+ SIMD_DOT_I32: () => (1),
512
+ SIMD_EXTRACT: () => (28929),
513
+ SIMD_LANE_BITS: () => (3),
514
+ SIMD_LANE_MASK: () => SIMD_LANE_MASK,
515
+ SIMD_LENGTH: () => (28946),
516
+ SIMD_MAP: () => (28672),
517
+ SIMD_MAP_OPS: () => (256),
518
+ SIMD_MAX_WIDTH: () => (4),
519
+ SIMD_MIN_WIDTH: () => (2),
520
+ SIMD_NORMALIZE: () => (28947),
521
+ SIMD_PACK: () => (28931),
522
+ SIMD_REDUCE: () => (28945),
523
+ SIMD_REPLACE: () => (28930),
524
+ SIMD_SCALAR_A: () => (8),
525
+ SIMD_SCALAR_B: () => (16),
526
+ SIMD_SCALAR_C: () => (32),
527
+ SIMD_SHUFFLE: () => (28928),
528
+ SIMD_WIDTH_MASK: () => (7),
529
+ SORT_DESCENDING: () => (4),
530
+ SORT_KEY_F32: () => (2),
531
+ SORT_KEY_I32: () => (1),
532
+ SORT_KEY_MASK: () => (3),
533
+ SORT_KEY_U32: () => (0),
534
+ SORT_RADIX_BITS: () => (8),
535
+ SPAWN_STATS_WORDS: () => (3),
536
+ STATUS_FAILURE: () => (0),
537
+ STATUS_RUNNING: () => (2),
538
+ STATUS_SUCCESS: () => (1),
539
+ UNIFORM: () => (2147483648),
540
+ XOP: () => (175),
541
+ XOP_COMPONENTS_EDGES: () => (20483),
542
+ XOP_COMPONENTS_GRID: () => (20480),
543
+ XOP_DEDUP: () => (4),
544
+ XOP_FIELD: () => (17),
545
+ XOP_GATHER: () => (16),
546
+ XOP_GROUP: () => (3),
547
+ XOP_MAX: () => (65535),
548
+ XOP_MLP_IN: () => (24576),
549
+ XOP_MLP_MOE: () => (24579),
550
+ XOP_MLP_OUT: () => (24578),
551
+ XOP_MLP_RUN: () => (24577),
552
+ XOP_PROPAGATE_GRID: () => (20482),
553
+ XOP_QFILTER: () => (4098),
554
+ XOP_QRANK: () => (4100),
555
+ XOP_QSHAPE: () => (4097),
556
+ XOP_QSTOP: () => (4099),
557
+ XOP_QUERY: () => (4096),
558
+ XOP_RANGE: () => XOP_RANGE,
559
+ XOP_RANGE_SHIFT: () => (12),
560
+ XOP_REACH_GRID: () => (20481),
561
+ XOP_RECUR: () => (32),
562
+ XOP_RECUR_IN: () => (33),
563
+ XOP_SORT: () => (1),
564
+ XOP_TOPK: () => (2),
565
+ crossRow: () => crossRow,
566
+ curveWords: () => curveWords,
567
+ deferredService: () => deferredService,
568
+ lookupOp: () => lookupOp,
569
+ operandCount: () => operandCount,
570
+ recurCoefficient: () => recurCoefficient,
571
+ recurFloatOutput: () => recurFloatOutput,
572
+ recurStateWords: () => recurStateWords,
573
+ recurSub: () => recurSub,
574
+ serviceOf: () => serviceOf,
575
+ serviceVersion: () => serviceVersion,
576
+ sortKey: () => sortKey,
577
+ stageEndingOp: () => stageEndingOp,
578
+ stageEnds: () => stageEnds,
579
+ xopRange: () => xopRange
580
+ });
581
+ var KERNEL_ISA_VERSION = 4, KERNEL_ISA_BASE = 1, KERNEL_ISA_CALLS = 2, KERNEL_ISA_WRITES = 3, KERNEL_FEATURE = "kernel_isa_1", KERNEL_CALLS_FEATURE = "kernel_isa_2", KERNEL_WRITES_FEATURE = "kernel_isa_3", KERNEL_ISA_EXTENDED = 4, KERNEL_EXTENDED_FEATURE = "kernel_isa_4", PROGRAM_MAGIC = 827345731, LIBRARY_MAGIC = 827083587, PROGRAM_HEADER_WORDS = 16, LIBRARY_HEADER_WORDS = 4, INSTRUCTION_WORDS = 4, GROUP_WORDS = 4, NONE = 4294967295, UNIFORM = 2147483648, DST_BITS = 8, MAX_REGISTERS = 4096, MAX_SLOTS = 256, MAX_UNIFORMS = 4096, MAX_GROUPS = 256, MAX_TRIPS = 65536, KERNEL_LIBRARY_PATH = "kernels.ckl", H_MAGIC = 0, H_VERSION = 1, H_FLAGS = 2, H_REGISTERS = 3, H_SLOTS = 4, H_ARGS = 5, H_CONSTANTS = 6, H_LOOPS = 7, H_INSTRUCTIONS = 8, H_GROUPS = 9, H_STATE = 10, H_POSITION_X = 11, H_POSITION_Y = 12, H_POSITION_Z = 13, H_EVENTS = 14, CHANNEL_WORDS = 4, MAX_CHANNELS = 64, MAX_EVENT_WORDS = 8, EVENT_HEADER_WORDS = 2, EVENT_STRIDE = 10, FLAG_NEIGHBOURS = 1, FLAG_GROUPS = 2, KIND_F32 = 0, KIND_I32 = 1, KIND_U32 = 2, KIND_BOOL = 3, ACCESS_READ = 256, ACCESS_WRITE = 512, ACCESS_NEIGHBOUR = 1024, ACCESS_SCRATCH = 2048, ACCESS_HIGH = 4096, ACCESS_SPAWN = 8192, SERVICE_RAYCAST = 1, SERVICE_LINE_OF_SIGHT = 2, SERVICE_GROUND_HEIGHT = 3, SERVICE_PATH = 4, SERVICE_FLOW = 5, SERVICE_FORCE = 6, SERVICE_IMPULSE = 7, SERVICE_VELOCITY = 8, SERVICE_OVERLAP = 9, SERVICE_SWEEP = 10, SERVICE_CLIP_WEIGHT = 11, SERVICE_PLAY_CLIP = 12, SERVICE_IK_TARGET = 13, SERVICE_INSTANCE = 14, SERVICE_INSTANCE_COLOUR = 15, SERVICE_ANCHOR = 16, SERVICE_SOUND = 17, SERVICE_PICK = 18, SERVICE_VOXEL_GET = 19, SERVICE_VOXEL_SET = 20, SERVICE_CHEMISTRY = 21, SERVICE_SPAWN = 22, SERVICE_KILL = 23, SERVICE_BITS = 8, SERVICE_MASK = 255, MAX_SPAWN_FIELDS = 64;
582
+ function serviceOf(dst) {
583
+ return dst & 255;
584
+ }
585
+ function operandCount(dst) {
586
+ return dst >>> 8;
587
+ }
588
+ function serviceVersion(service) {
589
+ return service >= 6 ? 3 : 2;
590
+ }
591
+ function deferredService(service) {
592
+ return service === 22 || service === 23;
593
+ }
594
+ var PHYSICS_WRITE = { args: [2, 0, 0, 0], results: [] }, SERVICE_SIGNATURES = {
595
+ 1: { args: [0, 0, 0, 0, 0, 0, 0], results: [0, 0, 0, 0, 2, 3] },
596
+ 2: { args: [0, 0, 0, 0, 0, 0], results: [3] },
597
+ 3: { args: [0, 0], results: [0] },
598
+ 4: { args: [0, 0, 0, 0, 0, 0], results: [0, 0, 0, 2] },
599
+ 5: { args: [0, 0, 0], results: [0, 0, 0, 0, 2] },
600
+ 6: PHYSICS_WRITE,
601
+ 7: PHYSICS_WRITE,
602
+ 8: PHYSICS_WRITE,
603
+ 9: { args: [0, 0, 0, 0], results: [2, 2] },
604
+ 10: { args: [0, 0, 0, 0, 0, 0, 0, 0, 2], results: [0, 0, 0, 0, 2, 3] },
605
+ 11: { args: [2, 0], results: [] },
606
+ 12: { args: [2, 2, 3, 0, 0], results: [2] },
607
+ 13: { args: [2, 0, 0, 0, 0], results: [] },
608
+ 14: { args: [2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], results: [] },
609
+ 15: { args: [2, 2, 0, 0, 0, 0], results: [] },
610
+ 16: { args: [2, 0, 0, 0], results: [] },
611
+ 17: { args: [2, 2, 0, 0, 0, 0], results: [] },
612
+ 18: { args: [0, 0, 0, 0, 0, 0, 0], results: [0, 2, 2, 3] },
613
+ 19: { args: [0, 0, 0], results: [2, 3] },
614
+ 20: { args: [0, 0, 0, 2], results: [] },
615
+ 21: { args: [2, 2, 2], results: [2, 0, 2] },
616
+ 23: { args: [], results: [] }
617
+ }, ATTACH_UI = 4, ATTACH_AUDIO = 5, ATTACH_VOXELS = 6, ATTACH_CHEMISTRY_GRID = 7, ATTACH_SPAWN_TABLE = 9, SPAWN_STATS_WORDS = 3, GROUP_DEFAULT = 1, LOOP_COUNT_F32 = 1, Op = {
618
+ NOP: 0,
619
+ MOV: 1,
620
+ LOAD: 2,
621
+ STORE: 3,
622
+ ROW: 4,
623
+ SEL: 5,
624
+ JNONE: 6,
625
+ LOOP_INIT: 8,
626
+ LOOP_NEXT: 9,
627
+ NEIGHBOURS: 11,
628
+ NLOAD: 12,
629
+ OUTER: 13,
630
+ NROW: 14,
631
+ ACC_FADD: 15,
632
+ ACC_FMIN: 16,
633
+ ACC_FMAX: 17,
634
+ ACC_IADD: 18,
635
+ EXT: 19,
636
+ FADD: 20,
637
+ FSUB: 21,
638
+ FMUL: 22,
639
+ FDIV: 23,
640
+ FMIN: 24,
641
+ FMAX: 25,
642
+ FMOD: 26,
643
+ FPOW: 27,
644
+ FATAN2: 28,
645
+ FMULADD: 29,
646
+ FMULSUB: 30,
647
+ FSUBMUL: 31,
648
+ FADDMUL: 32,
649
+ FCLAMP: 33,
650
+ FLERP: 34,
651
+ FLOG2: 39,
652
+ FNEG: 40,
653
+ FABS: 41,
654
+ FSQRT: 42,
655
+ FFLOOR: 43,
656
+ FCEIL: 44,
657
+ FROUND: 45,
658
+ FTRUNC: 46,
659
+ FSIGN: 47,
660
+ FSIN: 48,
661
+ FCOS: 49,
662
+ FTAN: 50,
663
+ FASIN: 51,
664
+ FACOS: 52,
665
+ FATAN: 53,
666
+ FEXP: 54,
667
+ FLOG: 55,
668
+ FLEN2: 56,
669
+ FLEN3: 57,
670
+ FDOT2: 58,
671
+ FDOT3: 59,
672
+ FLT: 60,
673
+ FLE: 61,
674
+ FEQ: 62,
675
+ FNE: 63,
676
+ IADD: 70,
677
+ ISUB: 71,
678
+ IMUL: 72,
679
+ IREM: 73,
680
+ UREM: 74,
681
+ IAND: 75,
682
+ IOR: 76,
683
+ IXOR: 77,
684
+ ISHL: 78,
685
+ ISHR: 79,
686
+ IUSHR: 80,
687
+ IMIN: 81,
688
+ IMAX: 82,
689
+ UMIN: 83,
690
+ UMAX: 84,
691
+ INEG: 85,
692
+ IABS: 86,
693
+ INOT: 87,
694
+ ILT: 90,
695
+ ILE: 91,
696
+ IEQ: 92,
697
+ INE: 93,
698
+ ULT: 94,
699
+ ULE: 95,
700
+ ITOF: 100,
701
+ UTOF: 101,
702
+ FTOI: 102,
703
+ BTOF: 103,
704
+ BTOI: 104,
705
+ FTOB: 105,
706
+ ITOB: 106,
707
+ MAND: 110,
708
+ MOR: 111,
709
+ MANDN: 112,
710
+ MNOT: 113,
711
+ NOISE2: 120,
712
+ NOISE3: 121,
713
+ HASH: 122,
714
+ RAND: 123,
715
+ EMIT: 124,
716
+ CALL: 125,
717
+ UADDC: 126,
718
+ USUBB: 127,
719
+ UMULHI: 128
720
+ }, STATUS_FAILURE = 0, STATUS_SUCCESS = 1, STATUS_RUNNING = 2, KERNEL_EXPORT_NAMES = [
721
+ "engine_kernel_isa",
722
+ "engine_kernel_load",
723
+ "engine_kernel_unload",
724
+ "engine_kernel_bind",
725
+ "engine_kernel_unbind",
726
+ "engine_kernel_run",
727
+ "engine_kernel_events",
728
+ "engine_kernel_clear_events"
729
+ ], KERNEL_CALL_EXPORT_NAMES = ["engine_kernel_attach"], KERNEL_WRITE_EXPORT_NAMES = ["engine_kernel_attach_handle", "engine_kernel_spawns"], KERNEL_STAGE_EXPORT_NAMES = [
730
+ "engine_kernel_stage_begin",
731
+ "engine_kernel_stage_uniforms",
732
+ "engine_kernel_stage_column",
733
+ "engine_kernel_stage_storage",
734
+ "engine_kernel_stage_records",
735
+ "engine_kernel_stage_call",
736
+ "engine_kernel_stage_finish",
737
+ "engine_kernel_stage_end"
738
+ ], KERNEL_DATA_EXPORT_NAMES = ["engine_kernel_bind_table", "engine_kernel_bind_pool", "engine_kernel_data"], DATA_REPORT_HEADER = 70, RING_HEADER_WORDS = 2, RING_COUNT = 0, RING_DROPPED = 1, DEFAULT_EVENT_CAPACITY = 4096, CROSS_OP = {
739
+ REDUCE: 160,
740
+ ARG: 161,
741
+ HIST: 162,
742
+ SCATTER: 163,
743
+ SCAN: 164,
744
+ COMPACT: 165
745
+ }, ACCESS_ARRAY = 65536, CROSS_BLOCK = 256, REDUCE_FSUM = 0, REDUCE_ISUM = 1, REDUCE_FMIN = 2, REDUCE_FMAX = 3, REDUCE_IMIN = 4, REDUCE_IMAX = 5, REDUCE_UMIN = 6, REDUCE_UMAX = 7, ARG_FMIN = 0, ARG_FMAX = 1, ARG_IMIN = 2, ARG_IMAX = 3, ARG_UMIN = 4, ARG_UMAX = 5, SCATTER_FADD = 0, SCATTER_IADD = 1, SCAN_F_INCLUSIVE = 0, SCAN_F_EXCLUSIVE = 1, SCAN_I_INCLUSIVE = 2, SCAN_I_EXCLUSIVE = 3;
746
+ function crossRow(op) {
747
+ return op >= CROSS_OP.REDUCE && op <= CROSS_OP.COMPACT;
748
+ }
749
+ var LOOKUP_OP = {
750
+ CURVE: 176,
751
+ LUT1: 177,
752
+ LUT2: 178,
753
+ SAMPLE: 179,
754
+ CELL: 180
755
+ }, ACCESS_INDEXED = 1 << 18, CURVE_STEP = 0, CURVE_LINEAR = 1, CURVE_HERMITE = 2, CURVE_BEZIER = 3, CURVE_HEADER = 4, CURVE_MAX_KEYS = 256, CURVE_MAX_CHANNELS = 4, LUT1_HEADER = 4, LUT1_MAX = 65536, LUT2_HEADER = 8, LUT2_MAX = 1 << 20, LUT_LINEAR = 1, LUT_WRAP = 2, SAMPLER_WORDS = 8, SAMPLE_NEAREST = 0, SAMPLE_BILINEAR = 1, SAMPLE_NORMAL_X = 2, SAMPLE_NORMAL_Y = 3, SAMPLE_NORMAL_Z = 4, CELL_WRAP = 1 << 24;
756
+ function lookupOp(op) {
757
+ return op >= LOOKUP_OP.CURVE && op <= LOOKUP_OP.CELL;
758
+ }
759
+ var XOP_QUERY = 4096, XOP_QSHAPE = 4097, XOP_QFILTER = 4098, XOP_QSTOP = 4099, XOP_QRANK = 4100, KERNEL_QUERY_RANK_FEATURE = "kernel_query_rank_1", QUERY_SPHERE = 0, QUERY_CONE = 1, QUERY_BOX = 2, QUERY_SEGMENT = 3, QUERY_SHAPE = 3, QUERY_FILTERED = 4, QFILTER_EQUAL = 1, QFILTER_ANY = 2, QFILTER_NONE = 3;
760
+ function curveWords(kind, keys, channels) {
761
+ let per = kind === (2) ? 2 : kind === (3) ? 3 : 1;
762
+ return (4) + keys + keys * channels * per;
763
+ }
764
+ var XOP = 175, XOP_MAX = 65535, XOP_RANGE_SHIFT = 12, XOP_RANGE = { CROSS: 0, SAMPLING: 1, NARROW: 2, DATA: 3, STDLIB: 4, SYSTEMS: 5, NEURAL: 6, SIMD: 7 }, XOP_MLP_IN = 24576, XOP_MLP_RUN = 24577, XOP_MLP_OUT = 24578, XOP_MLP_MOE = 24579, KERNEL_MOE_FEATURE = "kernel_moe_1", MLP_MAX_WIDTH = 128, MLP_MAX_OUTPUTS = 32, SIMD_MAP = 28672, SIMD_MAP_OPS = 256, SIMD_SHUFFLE = 28928, SIMD_EXTRACT = 28929, SIMD_REPLACE = 28930, SIMD_PACK = 28931, SIMD_DOT = 28944, SIMD_REDUCE = 28945, SIMD_LENGTH = 28946, SIMD_NORMALIZE = 28947, SIMD_CROSS = 28948, SIMD_MIN_WIDTH = 2, SIMD_MAX_WIDTH = 4, SIMD_WIDTH_MASK = 7, SIMD_SCALAR_A = 8, SIMD_SCALAR_B = 16, SIMD_SCALAR_C = 32, SIMD_LANE_BITS = 3, SIMD_LANE_MASK = (1 << (3)) - 1, SIMD_DOT_F32 = 0, SIMD_DOT_I32 = 1, SIMD_CROSS_WIDTH = 3, KERNEL_SIMD_FEATURE = "kernel_simd_1";
765
+ function xopRange(sub) {
766
+ return sub >>> (12);
767
+ }
768
+ var ACCESS_TABLE_SHIFT = 19, ACCESS_TABLE_MASK = 15, ACCESS_TABLE = (15) << (19), ACCESS_POOL = 1 << 23, DATA_TABLES = 16, DATA_KEYOF = 12288, DATA_ROWOF = 12289, DATA_FLOAD = 12290, DATA_ROWS = 12291, DATA_LIST = 12304, DATA_PGET = 12305, DATA_PSET = 12306, DATA_TALLY = 12307, DATA_SEND = 12320, DATA_PICK = 12336, DATA_LIST_MAX = 4096, DATA_TALLIES = 64, SEND = { SET: 0, FADD: 1, FMUL: 2, FMIN: 3, FMAX: 4, IADD: 5, IMIN: 6, IMAX: 7, UMIN: 8, UMAX: 9, OR: 10, AND: 11, PUSH: 12 }, PICK_U32 = 0, PICK_F32 = 1, XOP_SORT = 1, XOP_TOPK = 2, XOP_GROUP = 3, XOP_DEDUP = 4, XOP_GATHER = 16, XOP_FIELD = 17, FIELD_MAX = 64, KERNEL_GATHER_FEATURE = "kernel_gather_1", XOP_RECUR = 32, XOP_RECUR_IN = 33, KERNEL_SCAN_FEATURE = "kernel_scan_1", KERNEL_MLP_FEATURE = "kernel_mlp_1", RECUR = {
769
+ LINEAR_F32: 0,
770
+ LINEAR_U32: 1,
771
+ FEEDBACK_F32: 2,
772
+ PHASE_F64: 3,
773
+ ADD_F32: 4,
774
+ MUL_F32: 5,
775
+ MIN_F32: 6,
776
+ MAX_F32: 7,
777
+ ADD_INT: 8,
778
+ MUL_INT: 9,
779
+ MIN_I32: 10,
780
+ MAX_I32: 11,
781
+ MIN_U32: 12,
782
+ MAX_U32: 13,
783
+ AND: 14,
784
+ OR: 15,
785
+ XOR: 16
786
+ }, RECUR_KINDS = 17, RECUR_KIND_MASK = 31, RECUR_EXCLUSIVE = 32, RECUR_WIDE = 64;
787
+ function recurSub(sub) {
788
+ return sub === (32) || sub === (33);
789
+ }
790
+ function recurStateWords(kind) {
791
+ return kind === RECUR.FEEDBACK_F32 || kind === RECUR.PHASE_F64 ? 2 : 1;
792
+ }
793
+ function recurCoefficient(kind) {
794
+ return kind <= RECUR.PHASE_F64;
795
+ }
796
+ function recurFloatOutput(kind) {
797
+ return kind === RECUR.LINEAR_F32 || kind === RECUR.FEEDBACK_F32 || kind === RECUR.PHASE_F64 || kind >= RECUR.ADD_F32 && kind <= RECUR.MAX_F32;
798
+ }
799
+ var XOP_COMPONENTS_GRID = 20480, XOP_REACH_GRID = 20481, XOP_PROPAGATE_GRID = 20482, XOP_COMPONENTS_EDGES = 20483, GRAPH_EMPTY = 4294967295, SORT_KEY_U32 = 0, SORT_KEY_I32 = 1, SORT_KEY_F32 = 2, SORT_KEY_MASK = 3, SORT_DESCENDING = 4, SORT_RADIX_BITS = 8;
800
+ function sortKey(kind, raw) {
801
+ return kind === (1) ? (raw ^ 2147483648) >>> 0 : kind === (2) ? (raw & 2147483648) !== 0 ? ~raw >>> 0 : (raw | 2147483648) >>> 0 : raw >>> 0;
802
+ }
803
+ function stageEnds(sub) {
804
+ switch (xopRange(sub)) {
805
+ case XOP_RANGE.CROSS:
806
+ return sub >= (1) && sub <= (4) || recurSub(sub);
807
+ case XOP_RANGE.SYSTEMS:
808
+ return sub >= (20480) && sub <= (20483);
809
+ default:
810
+ return false;
811
+ }
812
+ }
813
+ function stageEndingOp(op, sub) {
814
+ return op === (175) && stageEnds(sub);
815
+ }
816
+
817
+ // src/game/kernel/fmath64.ts
818
+ var fmath64_exports = {};
819
+ chunkJGBCIKJV_js.__export(fmath64_exports, {
820
+ acos: () => acos2,
821
+ asin: () => asin2,
822
+ atan: () => atan3,
823
+ atan2: () => atan22,
824
+ cos: () => cos2,
825
+ exp: () => exp3,
826
+ log: () => log3,
827
+ log2: () => log22,
828
+ pow: () => pow2,
829
+ scalbn: () => scalbn,
830
+ sin: () => sin2,
831
+ tan: () => tan2
832
+ });
833
+ var view = new Float64Array(1), words = new Uint32Array(view.buffer);
834
+ function high(x) {
835
+ return view[0] = x, words[1];
836
+ }
837
+ function low(x) {
838
+ return view[0] = x, words[0];
839
+ }
840
+ function fromWords(hi, lo) {
841
+ return words[1] = hi >>> 0, words[0] = lo >>> 0, view[0];
842
+ }
843
+ function withLow(x, lo) {
844
+ return view[0] = x, words[0] = lo >>> 0, view[0];
845
+ }
846
+ function withHigh(x, hi) {
847
+ return view[0] = x, words[1] = hi >>> 0, view[0];
848
+ }
849
+ function twoPow(n) {
850
+ return fromWords(1023 + n << 20, 0);
851
+ }
852
+ function scalbn(x, n) {
853
+ if (n > 1023)
854
+ x *= twoPow(1023), n -= 1023, n > 1023 && (x *= twoPow(1023), n -= 1023, n > 1023 && (n = 1023));
855
+ else if (n < -1022) {
856
+ let mul = twoPow(-1022) * twoPow(53), add = 969;
857
+ x *= mul, n += add, n < -1022 && (x *= mul, n += add, n < -1022 && (n = -1022));
858
+ }
859
+ return x * twoPow(n);
860
+ }
861
+ var S1 = -0.16666666666666632, S2 = 0.00833333333332249, S3 = -1984126982985795e-19, S4 = 27557313707070068e-22, S5 = -2.5050760253406863e-8, S6 = 158969099521155e-24;
862
+ function kSin(x, y, iy) {
863
+ let z = x * x, w = z * z, r = (0.00833333333332249) + z * ((-1984126982985795e-19) + z * (27557313707070068e-22)) + z * w * ((-2.5050760253406863e-8) + z * (158969099521155e-24)), v = z * x;
864
+ return iy === 0 ? x + v * ((-0.16666666666666632) + z * r) : x - (z * (0.5 * y - v * r) - y - v * (-0.16666666666666632));
865
+ }
866
+ var C1 = 0.0416666666666666, C2 = -0.001388888888887411, C3 = 2480158728947673e-20, C4 = -2.7557314351390663e-7, C5 = 2087572321298175e-24, C6 = -11359647557788195e-27;
867
+ function kCos(x, y) {
868
+ let z = x * x, w = z * z, r = z * ((0.0416666666666666) + z * ((-0.001388888888887411) + z * (2480158728947673e-20))) + w * w * ((-2.7557314351390663e-7) + z * ((2087572321298175e-24) + z * (-11359647557788195e-27))), hz = 0.5 * z, v = 1 - hz;
869
+ return v + (1 - v - hz + (z * r - x * y));
870
+ }
871
+ var T = [
872
+ 0.3333333333333341,
873
+ 0.13333333333320124,
874
+ 0.05396825397622605,
875
+ 0.021869488294859542,
876
+ 0.0088632398235993,
877
+ 0.0035920791075913124,
878
+ 0.0014562094543252903,
879
+ 5880412408202641e-19,
880
+ 2464631348184699e-19,
881
+ 7817944429395571e-20,
882
+ 7140724913826082e-20,
883
+ -18558637485527546e-21,
884
+ 2590730518636337e-20
885
+ ], PIO4 = 0.7853981633974483, PIO4_LO = 3061616997868383e-32;
886
+ function zeroLow(x) {
887
+ return withLow(x, 0);
888
+ }
889
+ function kTan(x, y, odd) {
890
+ let hx = high(x), big = (hx & 2147483647) >>> 0 >= 1072010280;
891
+ big && (hx >>> 31 && (x = -x, y = -y), x = (0.7853981633974483) - x + ((3061616997868383e-32) - y), y = 0);
892
+ let z = x * x, w = z * z, r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11])))), v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12]))))), s = z * x;
893
+ r = y + z * (s * (r + v) + y) + s * T[0];
894
+ let ww = x + r;
895
+ if (big) {
896
+ let sign = hx >>> 31, ss = 1 - 2 * odd, vv = ss - 2 * (x + (r - ww * ww / (ww + ss)));
897
+ return sign !== 0 ? -vv : vv;
898
+ }
899
+ if (odd === 0) return ww;
900
+ let w0 = zeroLow(ww), v0 = r - (w0 - x), a = -1 / ww, a0 = zeroLow(a);
901
+ return a0 + a * (1 + a0 * w0 + a0 * v0);
902
+ }
903
+ var IPIO2 = [
904
+ 10680707,
905
+ 7228996,
906
+ 1387004,
907
+ 2578385,
908
+ 16069853,
909
+ 12639074,
910
+ 9804092,
911
+ 4427841,
912
+ 16666979,
913
+ 11263675,
914
+ 12935607,
915
+ 2387514,
916
+ 4345298,
917
+ 14681673,
918
+ 3074569,
919
+ 13734428,
920
+ 16653803,
921
+ 1880361,
922
+ 10960616,
923
+ 8533493,
924
+ 3062596,
925
+ 8710556,
926
+ 7349940,
927
+ 6258241,
928
+ 3772886,
929
+ 3769171,
930
+ 3798172,
931
+ 8675211,
932
+ 12450088,
933
+ 3874808,
934
+ 9961438,
935
+ 366607,
936
+ 15675153,
937
+ 9132554,
938
+ 7151469,
939
+ 3571407,
940
+ 2607881,
941
+ 12013382,
942
+ 4155038,
943
+ 6285869,
944
+ 7677882,
945
+ 13102053,
946
+ 15825725,
947
+ 473591,
948
+ 9065106,
949
+ 15363067,
950
+ 6271263,
951
+ 9264392,
952
+ 5636912,
953
+ 4652155,
954
+ 7056368,
955
+ 13614112,
956
+ 10155062,
957
+ 1944035,
958
+ 9527646,
959
+ 15080200,
960
+ 6658437,
961
+ 6231200,
962
+ 6832269,
963
+ 16767104,
964
+ 5075751,
965
+ 3212806,
966
+ 1398474,
967
+ 7579849,
968
+ 6349435,
969
+ 12618859
970
+ ], PIO2_PARTS = [
971
+ 1.570796251296997,
972
+ 7549789415861596e-23,
973
+ 5390302529957765e-30,
974
+ 3282003415807913e-37,
975
+ 1270655753080676e-44,
976
+ 12293330898111133e-52,
977
+ 27337005381646456e-60,
978
+ 21674168387780482e-67
979
+ ], X1P24 = 16777216, X1P_24 = 1 / 16777216;
980
+ function remPio2Large(x, y, e0) {
981
+ let nx = x.length, f = new Array(20).fill(0), fq = new Array(20).fill(0), q = new Array(20).fill(0), iq = new Array(20).fill(0), jx = nx - 1, jv = Math.trunc((e0 - 3) / 24);
982
+ jv < 0 && (jv = 0);
983
+ let q0 = e0 - 24 * (jv + 1), j = jv - jx, m = jx + 4;
984
+ for (let i = 0; i <= m; i++)
985
+ f[i] = j < 0 ? 0 : IPIO2[j], j++;
986
+ for (let i = 0; i <= 4; i++) {
987
+ let fw2 = 0;
988
+ for (let k = 0; k <= jx; k++) fw2 += x[k] * f[jx + i - k];
989
+ q[i] = fw2;
990
+ }
991
+ let jz = 4, z = 0, n = 0, ih = 0;
992
+ for (; ; ) {
993
+ let i = 0;
994
+ z = q[jz];
995
+ for (let k = jz; k >= 1; k--) {
996
+ let fw2 = X1P_24 * z | 0;
997
+ iq[i] = z - (16777216) * fw2 | 0, z = q[k - 1] + fw2, i++;
998
+ }
999
+ if (z = scalbn(z, q0), z -= 8 * Math.floor(z * 0.125), n = z | 0, z -= n, ih = 0, q0 > 0 ? (i = iq[jz - 1] >> 24 - q0, n += i, iq[jz - 1] -= i << 24 - q0, ih = iq[jz - 1] >> 23 - q0) : q0 === 0 ? ih = iq[jz - 1] >> 23 : z >= 0.5 && (ih = 2), ih > 0) {
1000
+ n += 1;
1001
+ let carry = 0;
1002
+ for (let k = 0; k < jz; k++) {
1003
+ let v = iq[k];
1004
+ carry === 0 ? v !== 0 && (carry = 1, iq[k] = 16777216 - v) : iq[k] = 16777215 - v;
1005
+ }
1006
+ q0 > 0 && (q0 === 1 ? iq[jz - 1] &= 8388607 : q0 === 2 && (iq[jz - 1] &= 4194303)), ih === 2 && (z = 1 - z, carry !== 0 && (z -= scalbn(1, q0)));
1007
+ }
1008
+ if (z === 0) {
1009
+ let acc2 = 0;
1010
+ for (let k = jz - 1; k >= 4; k--) acc2 |= iq[k];
1011
+ if (acc2 === 0) {
1012
+ let k = 1;
1013
+ for (; iq[4 - k] === 0; ) k++;
1014
+ for (let t = jz + 1; t <= jz + k; t++) {
1015
+ f[jx + t] = IPIO2[jv + t];
1016
+ let fw2 = 0;
1017
+ for (let s = 0; s <= jx; s++) fw2 += x[s] * f[jx + t - s];
1018
+ q[t] = fw2;
1019
+ }
1020
+ jz += k;
1021
+ continue;
1022
+ }
1023
+ }
1024
+ break;
1025
+ }
1026
+ if (z === 0)
1027
+ for (jz -= 1, q0 -= 24; iq[jz] === 0; )
1028
+ jz -= 1, q0 -= 24;
1029
+ else if (z = scalbn(z, -q0), z >= (16777216)) {
1030
+ let fw2 = X1P_24 * z | 0;
1031
+ iq[jz] = z - (16777216) * fw2 | 0, jz += 1, q0 += 24, iq[jz] = fw2;
1032
+ } else
1033
+ iq[jz] = z | 0;
1034
+ let fw = scalbn(1, q0);
1035
+ for (let i = jz; i >= 0; i--)
1036
+ q[i] = fw * iq[i], fw *= X1P_24;
1037
+ for (let i = jz; i >= 0; i--) {
1038
+ let acc2 = 0;
1039
+ for (let k = 0; k <= 4 && k <= jz - i; k++) acc2 += PIO2_PARTS[k] * q[i + k];
1040
+ fq[jz - i] = acc2;
1041
+ }
1042
+ let acc = 0;
1043
+ for (let i = jz; i >= 0; i--) acc += fq[i];
1044
+ y[0] = ih === 0 ? acc : -acc, acc = fq[0] - acc;
1045
+ for (let i = 1; i <= jz; i++) acc += fq[i];
1046
+ return y[1] = ih === 0 ? acc : -acc, n & 7;
1047
+ }
1048
+ var TO_INT = 1.5 / 2220446049250313e-31, INV_PIO2 = 0.6366197723675814, PIO2_1 = 1.5707963267341256, PIO2_1T = 6077100506506192e-26, PIO2_2 = 6077100506303966e-26, PIO2_2T = 20222662487959506e-37, PIO2_3 = 20222662487111665e-37, PIO2_3T = 84784276603689e-45, reduced = [0, 0];
1049
+ function medium(x, ix) {
1050
+ let fn = x * (0.6366197723675814) + TO_INT - TO_INT, n = fn | 0, r = x - fn * (1.5707963267341256), w = fn * (6077100506506192e-26), y0 = r - w, ex = ix >>> 20, ey = high(y0) >>> 20 & 2047;
1051
+ if (ex - ey > 16) {
1052
+ let t = r;
1053
+ w = fn * (6077100506303966e-26), r = t - w, w = fn * (20222662487959506e-37) - (t - r - w), y0 = r - w, ey = high(y0) >>> 20 & 2047, ex - ey > 49 && (t = r, w = fn * (20222662487111665e-37), r = t - w, w = fn * (84784276603689e-45) - (t - r - w), y0 = r - w);
1054
+ }
1055
+ return reduced[0] = y0, reduced[1] = r - y0 - w, n;
1056
+ }
1057
+ function step(x, sign, k) {
1058
+ if (sign === 0) {
1059
+ let z2 = x - k * (1.5707963267341256), y02 = z2 - k * (6077100506506192e-26);
1060
+ return reduced[0] = y02, reduced[1] = z2 - y02 - k * (6077100506506192e-26), k;
1061
+ }
1062
+ let z = x + k * (1.5707963267341256), y0 = z + k * (6077100506506192e-26);
1063
+ return reduced[0] = y0, reduced[1] = z - y0 + k * (6077100506506192e-26), -k;
1064
+ }
1065
+ function remPio2(x) {
1066
+ let sign = high(x) >>> 31, ix = (high(x) & 2147483647) >>> 0;
1067
+ if (ix <= 1074752122)
1068
+ return (ix & 1048575) === 598523 ? medium(x, ix) : ix <= 1073928572 ? step(x, sign, 1) : step(x, sign, 2);
1069
+ if (ix <= 1075594811)
1070
+ return ix <= 1075183036 ? ix === 1074977148 ? medium(x, ix) : step(x, sign, 3) : ix === 1075388923 ? medium(x, ix) : step(x, sign, 4);
1071
+ if (ix < 1094263291) return medium(x, ix);
1072
+ if (ix >= 2146435072)
1073
+ return reduced[0] = x - x, reduced[1] = reduced[0], 0;
1074
+ let z = fromWords((high(x) & 1048575 | 1046 << 20) >>> 0, low(x)), tx = [0, 0, 0];
1075
+ for (let i2 = 0; i2 < 2; i2++)
1076
+ tx[i2] = z | 0, z = (z - tx[i2]) * (16777216);
1077
+ tx[2] = z;
1078
+ let i = 2;
1079
+ for (; i !== 0 && tx[i] === 0; ) i--;
1080
+ let ty = [0, 0, 0], n = remPio2Large(tx.slice(0, i + 1), ty, (ix >> 20) - 1046);
1081
+ return sign !== 0 ? (reduced[0] = -ty[0], reduced[1] = -ty[1], -n) : (reduced[0] = ty[0], reduced[1] = ty[1], n);
1082
+ }
1083
+ function sin2(x) {
1084
+ let ix = (high(x) & 2147483647) >>> 0;
1085
+ if (ix <= 1072243195)
1086
+ return ix < 1045430272 ? x : kSin(x, 0, 0);
1087
+ if (ix >= 2146435072) return x - x;
1088
+ let n = remPio2(x), [y0, y1] = reduced;
1089
+ switch (n & 3) {
1090
+ case 0:
1091
+ return kSin(y0, y1, 1);
1092
+ case 1:
1093
+ return kCos(y0, y1);
1094
+ case 2:
1095
+ return -kSin(y0, y1, 1);
1096
+ default:
1097
+ return -kCos(y0, y1);
1098
+ }
1099
+ }
1100
+ function cos2(x) {
1101
+ let ix = (high(x) & 2147483647) >>> 0;
1102
+ if (ix <= 1072243195)
1103
+ return ix < 1044816030 && (x | 0) === 0 ? 1 : kCos(x, 0);
1104
+ if (ix >= 2146435072) return x - x;
1105
+ let n = remPio2(x), [y0, y1] = reduced;
1106
+ switch (n & 3) {
1107
+ case 0:
1108
+ return kCos(y0, y1);
1109
+ case 1:
1110
+ return -kSin(y0, y1, 1);
1111
+ case 2:
1112
+ return -kCos(y0, y1);
1113
+ default:
1114
+ return kSin(y0, y1, 1);
1115
+ }
1116
+ }
1117
+ function tan2(x) {
1118
+ let ix = (high(x) & 2147483647) >>> 0;
1119
+ if (ix <= 1072243195)
1120
+ return ix < 1044381696 ? x : kTan(x, 0, 0);
1121
+ if (ix >= 2146435072) return x - x;
1122
+ let n = remPio2(x);
1123
+ return kTan(reduced[0], reduced[1], n & 1);
1124
+ }
1125
+ var ATANHI = [0.4636476090008061, 0.7853981633974483, 0.982793723247329, 1.5707963267948966], ATANLO = [22698777452961687e-33, 3061616997868383e-32, 13903311031230998e-33, 6123233995736766e-32], AT = [
1126
+ 0.3333333333333293,
1127
+ -0.19999999999876483,
1128
+ 0.14285714272503466,
1129
+ -0.11111110405462356,
1130
+ 0.09090887133436507,
1131
+ -0.0769187620504483,
1132
+ 0.06661073137387531,
1133
+ -0.058335701337905735,
1134
+ 0.049768779946159324,
1135
+ -0.036531572744216916,
1136
+ 0.016285820115365782
1137
+ ];
1138
+ function atan3(x) {
1139
+ let ix = high(x), sign = ix >>> 31;
1140
+ if (ix = (ix & 2147483647) >>> 0, ix >= 1141899264) {
1141
+ if (Number.isNaN(x)) return x;
1142
+ let z2 = ATANHI[3] + fromWords(0, 58720256);
1143
+ return sign !== 0 ? -z2 : z2;
1144
+ }
1145
+ let id;
1146
+ if (ix < 1071382528) {
1147
+ if (ix < 1044381696) return x;
1148
+ id = -1;
1149
+ } else
1150
+ x = Math.abs(x), ix < 1072889856 ? ix < 1072037888 ? (x = (2 * x - 1) / (2 + x), id = 0) : (x = (x - 1) / (x + 1), id = 1) : ix < 1073971200 ? (x = (x - 1.5) / (1 + 1.5 * x), id = 2) : (x = -1 / x, id = 3);
1151
+ let z = x * x, w = z * z, s1 = z * (AT[0] + w * (AT[2] + w * (AT[4] + w * (AT[6] + w * (AT[8] + w * AT[10]))))), s2 = w * (AT[1] + w * (AT[3] + w * (AT[5] + w * (AT[7] + w * AT[9]))));
1152
+ if (id < 0) return x - x * (s1 + s2);
1153
+ let r = ATANHI[id] - (x * (s1 + s2) - ATANLO[id] - x);
1154
+ return sign !== 0 ? -r : r;
1155
+ }
1156
+ var PI = 3.141592653589793, PI_LO = 12246467991473532e-32;
1157
+ function atan22(y, x) {
1158
+ if (Number.isNaN(x) || Number.isNaN(y)) return x + y;
1159
+ let ix = high(x), lx = low(x), iy = high(y), ly = low(y);
1160
+ if ((ix - 1072693248 >>> 0 | lx) === 0) return atan3(y);
1161
+ let m = iy >>> 31 & 1 | ix >>> 30 & 2;
1162
+ if (ix = (ix & 2147483647) >>> 0, iy = (iy & 2147483647) >>> 0, (iy | ly) === 0)
1163
+ return m === 0 || m === 1 ? y : m === 2 ? (3.141592653589793) : -(3.141592653589793);
1164
+ if ((ix | lx) === 0) return m & 1 ? -(3.141592653589793) / 2 : (3.141592653589793) / 2;
1165
+ if (ix === 2146435072)
1166
+ return iy === 2146435072 ? m === 0 ? (3.141592653589793) / 4 : m === 1 ? -(3.141592653589793) / 4 : m === 2 ? 3 * (3.141592653589793) / 4 : -3 * (3.141592653589793) / 4 : m === 0 ? 0 : m === 1 ? -0 : m === 2 ? (3.141592653589793) : -(3.141592653589793);
1167
+ if (ix + (64 << 20) >>> 0 < iy || iy === 2146435072) return m & 1 ? -(3.141592653589793) / 2 : (3.141592653589793) / 2;
1168
+ let z = m & 2 && iy + (64 << 20) >>> 0 < ix ? 0 : atan3(Math.abs(y / x));
1169
+ return m === 0 ? z : m === 1 ? -z : m === 2 ? (3.141592653589793) - (z - (12246467991473532e-32)) : z - (12246467991473532e-32) - (3.141592653589793);
1170
+ }
1171
+ var PIO2_HI = 1.5707963267948966, PIO2_LO = 6123233995736766e-32, PS0 = 0.16666666666666666, PS1 = -0.3255658186224009, PS2 = 0.20121253213486293, PS3 = -0.04005553450067941, PS4 = 7915349942898145e-19, PS5 = 3479331075960212e-20, QS1 = -2.403394911734414, QS2 = 2.0209457602335057, QS3 = -0.6882839716054533, QS4 = 0.07703815055590194;
1172
+ function ratio(z) {
1173
+ let p = z * ((0.16666666666666666) + z * ((-0.3255658186224009) + z * ((0.20121253213486293) + z * ((-0.04005553450067941) + z * ((7915349942898145e-19) + z * (3479331075960212e-20)))))), q = 1 + z * ((-2.403394911734414) + z * ((2.0209457602335057) + z * ((-0.6882839716054533) + z * (0.07703815055590194))));
1174
+ return p / q;
1175
+ }
1176
+ function asin2(x) {
1177
+ let hx = high(x), ix = (hx & 2147483647) >>> 0;
1178
+ if (ix >= 1072693248) {
1179
+ let lx = low(x);
1180
+ return (ix - 1072693248 >>> 0 | lx) === 0 ? x * (1.5707963267948966) + fromWords(946864128, 0) : 0 / (x - x);
1181
+ }
1182
+ if (ix < 1071644672)
1183
+ return ix >= 1048576 && ix < 1045430272 ? x : x + x * ratio(x * x);
1184
+ let z = (1 - Math.abs(x)) * 0.5, s = Math.sqrt(z), r = ratio(z), v;
1185
+ if (ix >= 1072640819)
1186
+ v = (1.5707963267948966) - (2 * (s + s * r) - (6123233995736766e-32));
1187
+ else {
1188
+ let f = withLow(s, 0), c = (z - f * f) / (s + f);
1189
+ v = 0.5 * (1.5707963267948966) - (2 * s * r - ((6123233995736766e-32) - 2 * c) - (0.5 * (1.5707963267948966) - 2 * f));
1190
+ }
1191
+ return hx >>> 31 ? -v : v;
1192
+ }
1193
+ function acos2(x) {
1194
+ let x1p120 = fromWords(946864128, 0), hx = high(x), ix = (hx & 2147483647) >>> 0;
1195
+ if (ix >= 1072693248) {
1196
+ let lx = low(x);
1197
+ return (ix - 1072693248 >>> 0 | lx) === 0 ? hx >>> 31 ? 2 * (1.5707963267948966) + x1p120 : 0 : 0 / (x - x);
1198
+ }
1199
+ if (ix < 1071644672)
1200
+ return ix <= 1012924416 ? (1.5707963267948966) + x1p120 : (1.5707963267948966) - (x - ((6123233995736766e-32) - x * ratio(x * x)));
1201
+ if (hx >>> 31) {
1202
+ let z2 = (1 + x) * 0.5, s2 = Math.sqrt(z2), w2 = ratio(z2) * s2 - (6123233995736766e-32);
1203
+ return 2 * ((1.5707963267948966) - (s2 + w2));
1204
+ }
1205
+ let z = (1 - x) * 0.5, s = Math.sqrt(z), df = withLow(s, 0), c = (z - df * df) / (s + df), w = ratio(z) * s + c;
1206
+ return 2 * (df + w);
1207
+ }
1208
+ var LN2HI = 0.6931471803691238, LN2LO = 19082149292705877e-26, INVLN2 = 1.4426950408889634, P1 = 0.16666666666666602, P2 = -0.0027777777777015593, P3 = 6613756321437934e-20, P4 = -16533902205465252e-22, P5 = 41381367970572385e-24;
1209
+ function exp3(x) {
1210
+ let x1p1023 = fromWords(2145386496, 0), hx = high(x), sign = hx >>> 31;
1211
+ if (hx = (hx & 2147483647) >>> 0, hx >= 1082532651) {
1212
+ if (Number.isNaN(x)) return x;
1213
+ if (x > 709.782712893384) return x * x1p1023;
1214
+ if (x < -708.3964185322641 && x < -745.1332191019411) return 0;
1215
+ }
1216
+ let k, hi, lo;
1217
+ if (hx > 1071001154)
1218
+ hx >= 1072734898 ? k = (1.4426950408889634) * x + (sign === 0 ? 0.5 : -0.5) | 0 : k = 1 - sign - sign, hi = x - k * (0.6931471803691238), lo = k * (19082149292705877e-26), x = hi - lo;
1219
+ else if (hx > 1043333120)
1220
+ k = 0, hi = x, lo = 0;
1221
+ else
1222
+ return 1 + x;
1223
+ let xx = x * x, c = x - xx * ((0.16666666666666602) + xx * ((-0.0027777777777015593) + xx * ((6613756321437934e-20) + xx * ((-16533902205465252e-22) + xx * (41381367970572385e-24))))), y = 1 + (x * c / (2 - c) - lo + hi);
1224
+ return k === 0 ? y : scalbn(y, k);
1225
+ }
1226
+ var LG1 = 0.6666666666666735, LG2 = 0.3999999999940942, LG3 = 0.2857142874366239, LG4 = 0.22222198432149784, LG5 = 0.1818357216161805, LG6 = 0.15313837699209373, LG7 = 0.14798198605116586, X1P54 = 18014398509481984;
1227
+ function reduceLog(x) {
1228
+ let hx = high(x), k = 0;
1229
+ if (hx < 1048576 || hx >>> 31) {
1230
+ if (x === 0) return -1 / (x * x);
1231
+ if (hx >>> 31) return (x - x) / 0;
1232
+ k -= 54, x *= (18014398509481984), hx = high(x);
1233
+ } else {
1234
+ if (hx >= 2146435072)
1235
+ return x;
1236
+ if (hx === 1072693248 && low(x) === 0)
1237
+ return 0;
1238
+ }
1239
+ return hx = hx + 614242 >>> 0, k += (hx >>> 20) - 1023, hx = (hx & 1048575) + 1072079006 >>> 0, { f: withHigh(x, hx) - 1, k };
1240
+ }
1241
+ function log3(x) {
1242
+ let red = reduceLog(x);
1243
+ if (typeof red == "number") return red;
1244
+ let { f, k } = red, hfsq = 0.5 * f * f, s = f / (2 + f), z = s * s, w = z * z, t1 = w * ((0.3999999999940942) + w * ((0.22222198432149784) + w * (0.15313837699209373))), r = z * ((0.6666666666666735) + w * ((0.2857142874366239) + w * ((0.1818357216161805) + w * (0.14798198605116586)))) + t1, dk = k;
1245
+ return s * (hfsq + r) + dk * (19082149292705877e-26) - hfsq + f + dk * (0.6931471803691238);
1246
+ }
1247
+ var IVLN2HI = 1.4426950407214463, IVLN2LO = 16751713164886512e-26;
1248
+ function log22(x) {
1249
+ let red = reduceLog(x);
1250
+ if (typeof red == "number") return red;
1251
+ let { f, k } = red, hfsq = 0.5 * f * f, s = f / (2 + f), z = s * s, w = z * z, t1 = w * ((0.3999999999940942) + w * ((0.22222198432149784) + w * (0.15313837699209373))), r = z * ((0.6666666666666735) + w * ((0.2857142874366239) + w * ((0.1818357216161805) + w * (0.14798198605116586)))) + t1, hi = withLow(f - hfsq, 0), lo = f - hi - hfsq + s * (hfsq + r), valHi = hi * (1.4426950407214463), valLo = (lo + hi) * (16751713164886512e-26) + lo * (1.4426950407214463), y = k;
1252
+ return w = y + valHi, valLo += y - w + valHi, valHi = w, valLo + valHi;
1253
+ }
1254
+ var BP = [1, 1.5], DP_H = [0, 0.5849624872207642], DP_L = [0, 1350039202129749e-23], TWO53 = 9007199254740992, HUGE = 1e300, TINY = 1e-300, L1 = 0.5999999999999946, L2 = 0.4285714285785502, L3 = 0.33333332981837743, L4 = 0.272728123808534, L5 = 0.23066074577556175, L6 = 0.20697501780033842, LG2F = 0.6931471805599453, LG2_H = 0.6931471824645996, LG2_L = -1.904654299957768e-9, OVT = 8008566259537294e-32, CP = 0.9617966939259756, CP_H = 0.9617967009544373, CP_L = -7.028461650952758e-9, IVLN2 = 1.4426950408889634, IVLN2_H = 1.4426950216293335, IVLN2_L = 19259629911266175e-24;
1255
+ function pow2(x, y) {
1256
+ let hx = high(x) | 0, lx = low(x), hy = high(y) | 0, ly = low(y), ix = hx & 2147483647, iy = hy & 2147483647;
1257
+ if ((iy | ly) === 0 || hx === 1072693248 && lx === 0) return 1;
1258
+ if (ix > 2146435072 || ix === 2146435072 && lx !== 0 || iy > 2146435072 || iy === 2146435072 && ly !== 0) return x + y;
1259
+ let yisint = 0, k, j;
1260
+ if (hx < 0 && (iy >= 1128267776 ? yisint = 2 : iy >= 1072693248 && (k = (iy >> 20) - 1023, k > 20 ? (j = ly >>> 52 - k | 0, j << 52 - k === (ly | 0) && (yisint = 2 - (j & 1))) : ly === 0 && (j = iy >> 20 - k, j << 20 - k === iy && (yisint = 2 - (j & 1))))), ly === 0) {
1261
+ if (iy === 2146435072)
1262
+ return (ix - 1072693248 | lx) === 0 ? 1 : ix >= 1072693248 ? hy >= 0 ? y : 0 : hy >= 0 ? 0 : -y;
1263
+ if (iy === 1072693248) return hy >= 0 ? x : 1 / x;
1264
+ if (hy === 1073741824) return x * x;
1265
+ if (hy === 1071644672 && hx >= 0) return Math.sqrt(x);
1266
+ }
1267
+ let ax = Math.abs(x);
1268
+ if (lx === 0 && (ix === 2146435072 || ix === 0 || ix === 1072693248)) {
1269
+ let z2 = ax;
1270
+ return hy < 0 && (z2 = 1 / z2), hx < 0 && ((ix - 1072693248 | yisint) === 0 ? z2 = (z2 - z2) / (z2 - z2) : yisint === 1 && (z2 = -z2)), z2;
1271
+ }
1272
+ let s = 1;
1273
+ if (hx < 0) {
1274
+ if (yisint === 0) return (x - x) / (x - x);
1275
+ yisint === 1 && (s = -1);
1276
+ }
1277
+ let t1, t2;
1278
+ if (iy > 1105199104) {
1279
+ if (iy > 1139802112) {
1280
+ if (ix <= 1072693247) return hy < 0 ? (1e300) * (1e300) : (1e-300) * (1e-300);
1281
+ if (ix >= 1072693248) return hy > 0 ? (1e300) * (1e300) : (1e-300) * (1e-300);
1282
+ }
1283
+ if (ix < 1072693247) return hy < 0 ? s * (1e300) * (1e300) : s * (1e-300) * (1e-300);
1284
+ if (ix > 1072693248) return hy > 0 ? s * (1e300) * (1e300) : s * (1e-300) * (1e-300);
1285
+ let t3 = ax - 1, w2 = t3 * t3 * (0.5 - t3 * (0.3333333333333333 - t3 * 0.25)), u2 = (1.4426950216293335) * t3, v2 = t3 * (19259629911266175e-24) - w2 * (1.4426950408889634);
1286
+ t1 = withLow(u2 + v2, 0), t2 = v2 - (t1 - u2);
1287
+ } else {
1288
+ let n2 = 0;
1289
+ ix < 1048576 && (ax *= (9007199254740992), n2 -= 53, ix = high(ax) | 0), n2 += (ix >> 20) - 1023, j = ix & 1048575;
1290
+ let kk;
1291
+ ix = j | 1072693248, j <= 235662 ? kk = 0 : j < 767610 ? kk = 1 : (kk = 0, n2 += 1, ix -= 1048576), ax = withHigh(ax, ix >>> 0);
1292
+ let u2 = ax - BP[kk], v2 = 1 / (ax + BP[kk]), ss = u2 * v2, sH = withLow(ss, 0), tH = fromWords((ix >>> 1 | 536870912) + 524288 + (kk << 18) >>> 0, 0), tL = ax - (tH - BP[kk]), sL = v2 * (u2 - sH * tH - sH * tL), s2 = ss * ss, r2 = s2 * s2 * ((0.5999999999999946) + s2 * ((0.4285714285785502) + s2 * ((0.33333332981837743) + s2 * ((0.272728123808534) + s2 * ((0.23066074577556175) + s2 * (0.20697501780033842))))));
1293
+ r2 += sL * (sH + ss), s2 = sH * sH, tH = withLow(3 + s2 + r2, 0), tL = r2 - (tH - 3 - s2);
1294
+ let uu = sH * tH, vv = sL * tH + tL * ss, pH2 = withLow(uu + vv, 0), pL2 = vv - (pH2 - uu), zH = (0.9617967009544373) * pH2, zL = (-7.028461650952758e-9) * pH2 + pL2 * (0.9617966939259756) + DP_L[kk], t3 = n2;
1295
+ t1 = withLow(zH + zL + DP_H[kk] + t3, 0), t2 = zL - (t1 - t3 - DP_H[kk] - zH);
1296
+ }
1297
+ let y1 = withLow(y, 0), pL = (y - y1) * t1 + y * t2, pH = y1 * t1, z = pL + pH, jj = high(z) | 0, ii = low(z) | 0;
1298
+ if (jj >= 1083179008) {
1299
+ if ((jj - 1083179008 | ii) !== 0 || pL + (8008566259537294e-32) > z - pH) return s * (1e300) * (1e300);
1300
+ } else if ((jj & 2147483647) >= 1083231232 && (((jj >>> 0) - 3230714880 | ii) !== 0 || pL <= z - pH))
1301
+ return s * (1e-300) * (1e-300);
1302
+ let i = jj & 2147483647;
1303
+ k = (i >> 20) - 1023;
1304
+ let n = 0;
1305
+ if (i > 1071644672) {
1306
+ n = jj + (1048576 >> k + 1) | 0, k = ((n & 2147483647) >> 20) - 1023;
1307
+ let t3 = fromWords((n & ~(1048575 >> k)) >>> 0, 0);
1308
+ n = (n & 1048575 | 1048576) >> 20 - k, jj < 0 && (n = -n), pH -= t3;
1309
+ }
1310
+ let t = withLow(pL + pH, 0), u = t * (0.6931471824645996), v = (pL - (t - pH)) * (0.6931471805599453) + t * (-1.904654299957768e-9);
1311
+ z = u + v;
1312
+ let w = v - (z - u), tt = z * z, tt1 = z - tt * ((0.16666666666666602) + tt * ((-0.0027777777777015593) + tt * ((6613756321437934e-20) + tt * ((-16533902205465252e-22) + tt * (41381367970572385e-24)))));
1313
+ return z = 1 - (z * tt1 / (tt1 - 2) - (w + z * w) - z), jj = high(z) | 0, jj = jj + (n << 20) | 0, jj >> 20 <= 0 ? z = scalbn(z, n) : z = withHigh(z, jj >>> 0), s * z;
1314
+ }
1315
+
1316
+ // src/game/kernel/lanes.ts
1317
+ var lanes_exports = {};
1318
+ chunkJGBCIKJV_js.__export(lanes_exports, {
1319
+ CANONICAL_NAN32: () => (2143289344),
1320
+ INSERT_WIDTH_SHIFT: () => (8),
1321
+ LANE_OP: () => LANE_OP,
1322
+ evalLane: () => evalLane,
1323
+ joinF64: () => joinF64,
1324
+ joinU64: () => joinU64,
1325
+ laneSignature: () => laneSignature,
1326
+ runLanes: () => runLanes,
1327
+ toUint32: () => toUint32,
1328
+ toUint64: () => toUint64
1329
+ });
1330
+ var LANE_OP = {
1331
+ F64_ADD: 8192,
1332
+ F64_SUB: 8193,
1333
+ F64_MUL: 8194,
1334
+ F64_DIV: 8195,
1335
+ F64_MIN: 8196,
1336
+ F64_MAX: 8197,
1337
+ F64_MOD: 8198,
1338
+ F64_POW: 8199,
1339
+ F64_ATAN2: 8200,
1340
+ F64_NEG: 8208,
1341
+ F64_ABS: 8209,
1342
+ F64_SQRT: 8210,
1343
+ F64_FLOOR: 8211,
1344
+ F64_CEIL: 8212,
1345
+ F64_ROUND: 8213,
1346
+ F64_TRUNC: 8214,
1347
+ F64_SIGN: 8215,
1348
+ F64_SIN: 8216,
1349
+ F64_COS: 8217,
1350
+ F64_TAN: 8218,
1351
+ F64_ASIN: 8219,
1352
+ F64_ACOS: 8220,
1353
+ F64_ATAN: 8221,
1354
+ F64_EXP: 8222,
1355
+ F64_LOG: 8223,
1356
+ F64_LOG2: 8224,
1357
+ F64_LT: 8240,
1358
+ F64_LE: 8241,
1359
+ F64_EQ: 8242,
1360
+ F64_NE: 8243,
1361
+ F64_FROM_F32: 8256,
1362
+ F64_FROM_I32: 8257,
1363
+ F64_FROM_U32: 8258,
1364
+ F64_TO_F32: 8259,
1365
+ F64_TO_I32: 8260,
1366
+ F64_TO_U32: 8261,
1367
+ F64_FROM_U64: 8262,
1368
+ F64_TO_U64: 8263,
1369
+ BIT_POPCNT: 8448,
1370
+ BIT_CLZ: 8449,
1371
+ BIT_CTZ: 8450,
1372
+ BIT_ROTL: 8451,
1373
+ BIT_ROTR: 8452,
1374
+ BIT_EXTRACT: 8453,
1375
+ BIT_INSERT: 8454,
1376
+ BIT_MORTON2: 8455,
1377
+ BIT_MORTON3: 8456,
1378
+ BIT_UNMORTON2: 8457,
1379
+ BIT_UNMORTON3: 8458,
1380
+ BIT64_POPCNT: 8464,
1381
+ BIT64_CLZ: 8465,
1382
+ BIT64_CTZ: 8466,
1383
+ BIT64_ROTL: 8467,
1384
+ BIT64_ROTR: 8468,
1385
+ BIT64_EXTRACT: 8469,
1386
+ BIT64_INSERT: 8470,
1387
+ BIT64_MORTON2: 8471,
1388
+ BIT64_MORTON3: 8472,
1389
+ BIT64_UNMORTON2: 8473,
1390
+ BIT64_UNMORTON3: 8474,
1391
+ U64_SHL: 8480,
1392
+ U64_SHR: 8481,
1393
+ U64_MUL: 8482,
1394
+ U64_DIV: 8483,
1395
+ U64_REM: 8484
1396
+ }, INSERT_WIDTH_SHIFT = 8, CANONICAL_NAN32 = 2143289344, L = LANE_OP, A = 1, B = 2, C = 4, EA = 8, EB = 16, PAIR = (1) | (2), PAIRS = (1) | (2) | (4) | (8), TWO32 = 4294967296, TWO64 = 18446744073709552e3, MASK64 = (1n << 64n) - 1n;
1397
+ function laneSignature(sub) {
1398
+ if (sub >= L.F64_ADD && sub <= L.F64_ATAN2 || sub >= L.U64_MUL && sub <= L.U64_REM) return [PAIRS, 2];
1399
+ if (sub === L.U64_SHL || sub === L.U64_SHR) return [PAIR | (4), 2];
1400
+ if (sub >= L.F64_NEG && sub <= L.F64_LOG2 || sub === L.F64_FROM_U64 || sub === L.F64_TO_U64) return [PAIR, 2];
1401
+ if (sub >= L.F64_LT && sub <= L.F64_NE) return [PAIRS, 1];
1402
+ if (sub >= L.F64_FROM_F32 && sub <= L.F64_FROM_U32) return [(1), 2];
1403
+ if (sub >= L.F64_TO_F32 && sub <= L.F64_TO_U32) return [PAIR, 1];
1404
+ switch (sub) {
1405
+ case L.BIT_POPCNT:
1406
+ case L.BIT_CLZ:
1407
+ case L.BIT_CTZ:
1408
+ return [(1), 1];
1409
+ case L.BIT_ROTL:
1410
+ case L.BIT_ROTR:
1411
+ case L.BIT_MORTON2:
1412
+ return [(1) | (2), 1];
1413
+ case L.BIT_EXTRACT:
1414
+ case L.BIT_MORTON3:
1415
+ return [(1) | (2) | (4), 1];
1416
+ case L.BIT_INSERT:
1417
+ return [(1) | (2) | (4) | (8), 1];
1418
+ case L.BIT_UNMORTON2:
1419
+ return [(1), 2];
1420
+ case L.BIT_UNMORTON3:
1421
+ return [(1), 3];
1422
+ case L.BIT64_POPCNT:
1423
+ case L.BIT64_CLZ:
1424
+ case L.BIT64_CTZ:
1425
+ return [PAIR, 1];
1426
+ case L.BIT64_ROTL:
1427
+ case L.BIT64_ROTR:
1428
+ case L.BIT64_MORTON3:
1429
+ return [PAIR | (4), 2];
1430
+ case L.BIT64_EXTRACT:
1431
+ return [PAIRS, 2];
1432
+ case L.BIT64_INSERT:
1433
+ return [PAIRS | (16), 2];
1434
+ case L.BIT64_MORTON2:
1435
+ case L.BIT64_UNMORTON2:
1436
+ return [PAIR, 2];
1437
+ case L.BIT64_UNMORTON3:
1438
+ return [PAIR, 3];
1439
+ default:
1440
+ return null;
1441
+ }
1442
+ }
1443
+ var view2 = new Float64Array(1), halves = new Uint32Array(view2.buffer), f322 = new Float32Array(1), f32bits = new Uint32Array(f322.buffer);
1444
+ function joinF64(lo, hi) {
1445
+ return halves[0] = lo >>> 0, halves[1] = hi >>> 0, view2[0];
1446
+ }
1447
+ function splitF64(x, out) {
1448
+ if (Number.isNaN(x)) {
1449
+ out[0] = 0, out[1] = 2146959360;
1450
+ return;
1451
+ }
1452
+ view2[0] = x, out[0] = halves[0], out[1] = halves[1];
1453
+ }
1454
+ function joinU64(lo, hi) {
1455
+ return BigInt(hi >>> 0) << 32n | BigInt(lo >>> 0);
1456
+ }
1457
+ function splitU64(v, out) {
1458
+ let w = v & MASK64;
1459
+ out[0] = Number(w & 0xffffffffn), out[1] = Number(w >> 32n);
1460
+ }
1461
+ function jsMin(x, y) {
1462
+ return Number.isNaN(x) || Number.isNaN(y) ? Number.NaN : x === y ? Object.is(x, -0) || Object.is(y, -0) ? -0 : x : x < y ? x : y;
1463
+ }
1464
+ function jsMax(x, y) {
1465
+ return Number.isNaN(x) || Number.isNaN(y) ? Number.NaN : x === y ? Object.is(x, 0) || Object.is(y, 0) ? 0 : x : x > y ? x : y;
1466
+ }
1467
+ function jsPow(x, y) {
1468
+ return Number.isNaN(y) || Math.abs(x) === 1 && !Number.isFinite(y) ? Number.NaN : pow2(x, y);
1469
+ }
1470
+ function jsRound(x) {
1471
+ if (!Number.isFinite(x) || x === 0) return x;
1472
+ let r = Math.floor(x), v = x - r >= 0.5 ? r + 1 : r;
1473
+ return v === 0 && x < 0 ? -0 : v;
1474
+ }
1475
+ function jsSign(x) {
1476
+ return x > 0 ? 1 : x < 0 ? -1 : x;
1477
+ }
1478
+ function toUint32(x) {
1479
+ if (!Number.isFinite(x)) return 0;
1480
+ let m = Math.trunc(x) % (4294967296);
1481
+ return (m < 0 ? m + (4294967296) : m) >>> 0;
1482
+ }
1483
+ function toUint64(x) {
1484
+ if (!Number.isFinite(x)) return 0n;
1485
+ let t = Math.trunc(x), q = BigInt(Math.abs(t) % (18446744073709552e3));
1486
+ return t < 0 ? -q & MASK64 : q;
1487
+ }
1488
+ function binary64(sub, x, y) {
1489
+ switch (sub) {
1490
+ case L.F64_ADD:
1491
+ return x + y;
1492
+ case L.F64_SUB:
1493
+ return x - y;
1494
+ case L.F64_MUL:
1495
+ return x * y;
1496
+ case L.F64_DIV:
1497
+ return x / y;
1498
+ case L.F64_MIN:
1499
+ return jsMin(x, y);
1500
+ case L.F64_MAX:
1501
+ return jsMax(x, y);
1502
+ case L.F64_MOD:
1503
+ return x % y;
1504
+ case L.F64_POW:
1505
+ return jsPow(x, y);
1506
+ default:
1507
+ return atan22(x, y);
1508
+ }
1509
+ }
1510
+ function unary64(sub, x) {
1511
+ switch (sub) {
1512
+ case L.F64_NEG:
1513
+ return -x;
1514
+ case L.F64_ABS:
1515
+ return Math.abs(x);
1516
+ case L.F64_SQRT:
1517
+ return Math.sqrt(x);
1518
+ case L.F64_FLOOR:
1519
+ return Math.floor(x);
1520
+ case L.F64_CEIL:
1521
+ return Math.ceil(x);
1522
+ case L.F64_ROUND:
1523
+ return jsRound(x);
1524
+ case L.F64_TRUNC:
1525
+ return Math.trunc(x);
1526
+ case L.F64_SIGN:
1527
+ return jsSign(x);
1528
+ case L.F64_SIN:
1529
+ return sin2(x);
1530
+ case L.F64_COS:
1531
+ return cos2(x);
1532
+ case L.F64_TAN:
1533
+ return tan2(x);
1534
+ case L.F64_ASIN:
1535
+ return asin2(x);
1536
+ case L.F64_ACOS:
1537
+ return acos2(x);
1538
+ case L.F64_ATAN:
1539
+ return atan3(x);
1540
+ case L.F64_EXP:
1541
+ return exp3(x);
1542
+ case L.F64_LOG:
1543
+ return log3(x);
1544
+ default:
1545
+ return log22(x);
1546
+ }
1547
+ }
1548
+ function ones(width, bits) {
1549
+ return width >= bits ? (1n << BigInt(bits)) - 1n : (1n << BigInt(width)) - 1n;
1550
+ }
1551
+ function extract(a, offset, width, bits) {
1552
+ return a >> BigInt(offset & bits - 1) & ones(width >>> 0, bits);
1553
+ }
1554
+ function insert(base, value, offset, width, bits) {
1555
+ let at = BigInt(offset & bits - 1), field = ones(width >>> 0, bits) << at;
1556
+ return (base & ~field | value << at & field) & ones(bits, bits);
1557
+ }
1558
+ function spread(v, bits, step2) {
1559
+ let out = 0n;
1560
+ for (let k = 0; k < bits; k++) out |= (v >> BigInt(k) & 1n) << BigInt(k * step2);
1561
+ return out;
1562
+ }
1563
+ function gather(v, bits, step2, at) {
1564
+ let out = 0n;
1565
+ for (let k = 0; k < bits; k++) out |= (v >> BigInt(k * step2 + at) & 1n) << BigInt(k);
1566
+ return out;
1567
+ }
1568
+ function popcount(v) {
1569
+ let n = 0;
1570
+ for (; v > 0n; )
1571
+ n += Number(v & 1n), v >>= 1n;
1572
+ return n;
1573
+ }
1574
+ function clz(v, bits) {
1575
+ let n = 0;
1576
+ for (let k = bits - 1; k >= 0 && (v >> BigInt(k) & 1n) === 0n; k--) n++;
1577
+ return n;
1578
+ }
1579
+ function ctz(v, bits) {
1580
+ let n = 0;
1581
+ for (let k = 0; k < bits && (v >> BigInt(k) & 1n) === 0n; k++) n++;
1582
+ return n;
1583
+ }
1584
+ function rotl(v, s, bits) {
1585
+ let n = BigInt(s & bits - 1), mask = ones(bits, bits);
1586
+ return (v << n | v >> BigInt(bits) - n) & mask;
1587
+ }
1588
+ function wide64(sub, x, y) {
1589
+ switch (sub) {
1590
+ case L.U64_SHL:
1591
+ return x << (y & 63n) & MASK64;
1592
+ case L.U64_SHR:
1593
+ return x >> (y & 63n);
1594
+ case L.U64_MUL:
1595
+ return x * y & MASK64;
1596
+ case L.U64_DIV:
1597
+ return y === 0n ? 0n : x / y;
1598
+ default:
1599
+ return y === 0n ? 0n : x % y;
1600
+ }
1601
+ }
1602
+ var laneIn = new Uint32Array(5), laneOut = new Uint32Array(3);
1603
+ function runLanes(sub, inputs, targets, n, read, write) {
1604
+ let signature = laneSignature(sub);
1605
+ if (signature === null) return;
1606
+ let [mask, outputs] = signature;
1607
+ for (let k = 0; k < n; k++) {
1608
+ for (let w = 0; w < 5; w++) laneIn[w] = mask & 1 << w ? read(inputs[w], k) : 0;
1609
+ evalLane(sub, laneIn, laneOut);
1610
+ for (let o = 0; o < outputs; o++) write(targets[o], k, laneOut[o]);
1611
+ }
1612
+ }
1613
+ function evalLane(sub, v, out) {
1614
+ out[0] = 0, out[1] = 0, out[2] = 0;
1615
+ let word = (r) => {
1616
+ out[0] = Number(r) >>> 0;
1617
+ };
1618
+ if (sub >= L.F64_ADD && sub <= L.F64_ATAN2) return splitF64(binary64(sub, joinF64(v[0], v[1]), joinF64(v[2], v[3])), out);
1619
+ if (sub >= L.U64_MUL && sub <= L.U64_REM) return splitU64(wide64(sub, joinU64(v[0], v[1]), joinU64(v[2], v[3])), out);
1620
+ if (sub === L.U64_SHL || sub === L.U64_SHR) return splitU64(wide64(sub, joinU64(v[0], v[1]), BigInt(v[2])), out);
1621
+ if (sub >= L.F64_NEG && sub <= L.F64_LOG2) return splitF64(unary64(sub, joinF64(v[0], v[1])), out);
1622
+ if (sub === L.F64_FROM_U64) return splitF64(v[1] * (4294967296) + v[0], out);
1623
+ if (sub === L.F64_TO_U64) return splitU64(toUint64(joinF64(v[0], v[1])), out);
1624
+ if (sub >= L.F64_LT && sub <= L.F64_NE) {
1625
+ let x2 = joinF64(v[0], v[1]), y2 = joinF64(v[2], v[3]), t = sub === L.F64_LT ? x2 < y2 : sub === L.F64_LE ? x2 <= y2 : sub === L.F64_EQ ? x2 === y2 : x2 !== y2;
1626
+ out[0] = t ? 4294967295 : 0;
1627
+ return;
1628
+ }
1629
+ if (sub === L.F64_FROM_F32)
1630
+ return f32bits[0] = v[0], splitF64(f322[0], out);
1631
+ if (sub === L.F64_FROM_I32) return splitF64(v[0] | 0, out);
1632
+ if (sub === L.F64_FROM_U32) return splitF64(v[0] >>> 0, out);
1633
+ if (sub === L.F64_TO_F32) {
1634
+ let x2 = Math.fround(joinF64(v[0], v[1]));
1635
+ Number.isNaN(x2) ? out[0] = (2143289344) : (f322[0] = x2, out[0] = f32bits[0]);
1636
+ return;
1637
+ }
1638
+ if (sub === L.F64_TO_I32 || sub === L.F64_TO_U32) return word(toUint32(joinF64(v[0], v[1])));
1639
+ let a = BigInt(v[0]), b = BigInt(v[1]), c = BigInt(v[2]), x = joinU64(v[0], v[1]), y = joinU64(v[2], v[3]);
1640
+ switch (sub) {
1641
+ case L.BIT_POPCNT:
1642
+ return word(popcount(a));
1643
+ case L.BIT_CLZ:
1644
+ return word(clz(a, 32));
1645
+ case L.BIT_CTZ:
1646
+ return word(ctz(a, 32));
1647
+ case L.BIT_ROTL:
1648
+ return word(rotl(a, v[1], 32));
1649
+ case L.BIT_ROTR:
1650
+ return word(rotl(a, 32 - (v[1] & 31) & 31, 32));
1651
+ case L.BIT_EXTRACT:
1652
+ return word(extract(a, v[1], v[2], 32));
1653
+ case L.BIT_INSERT:
1654
+ return word(insert(a, b, v[2], v[3], 32));
1655
+ case L.BIT_MORTON2:
1656
+ return word(spread(a, 16, 2) | spread(b, 16, 2) << 1n);
1657
+ case L.BIT_MORTON3:
1658
+ return word(spread(a, 10, 3) | spread(b, 10, 3) << 1n | spread(c, 10, 3) << 2n);
1659
+ case L.BIT_UNMORTON2:
1660
+ out[0] = Number(gather(a, 16, 2, 0)), out[1] = Number(gather(a, 16, 2, 1));
1661
+ return;
1662
+ case L.BIT_UNMORTON3:
1663
+ out[0] = Number(gather(a, 10, 3, 0)), out[2] = Number(gather(a, 10, 3, 1)), out[1] = Number(gather(a, 10, 3, 2));
1664
+ return;
1665
+ case L.BIT64_POPCNT:
1666
+ return word(popcount(x));
1667
+ case L.BIT64_CLZ:
1668
+ return word(clz(x, 64));
1669
+ case L.BIT64_CTZ:
1670
+ return word(ctz(x, 64));
1671
+ case L.BIT64_ROTL:
1672
+ return splitU64(rotl(x, v[2], 64), out);
1673
+ case L.BIT64_ROTR:
1674
+ return splitU64(rotl(x, 64 - (v[2] & 63) & 63, 64), out);
1675
+ case L.BIT64_EXTRACT:
1676
+ return splitU64(extract(x, v[2], v[3], 64), out);
1677
+ case L.BIT64_INSERT:
1678
+ return splitU64(insert(x, y, v[4] & 255, v[4] >>> (8), 64), out);
1679
+ case L.BIT64_MORTON2:
1680
+ return splitU64(spread(a, 32, 2) | spread(b, 32, 2) << 1n, out);
1681
+ case L.BIT64_MORTON3:
1682
+ return splitU64(spread(a, 21, 3) | spread(b, 21, 3) << 1n | spread(c, 21, 3) << 2n, out);
1683
+ case L.BIT64_UNMORTON2:
1684
+ out[0] = Number(gather(x, 32, 2, 0)), out[1] = Number(gather(x, 32, 2, 1));
1685
+ return;
1686
+ case L.BIT64_UNMORTON3:
1687
+ out[0] = Number(gather(x, 21, 3, 0)), out[2] = Number(gather(x, 21, 3, 1)), out[1] = Number(gather(x, 21, 3, 2));
1688
+ return;
1689
+ }
1690
+ }
1691
+
1692
+ // src/game/kernel/data.ts
1693
+ var TRUE = 4294967295, MIN_SLOTS = 16, FNV_OFFSET = 2166136261, FNV_PRIME = 16777619, COMMAND_WORDS = 4, DEFAULT_COMMANDS = 8192, DEFAULT_PICKS = 256, STORAGE_F32 = 0, STORAGE_I32 = 1, STORAGE_U32 = 2;
1694
+ function symbol(name) {
1695
+ let bytes = new TextEncoder().encode(name), hash = (2166136261);
1696
+ for (let byte of bytes) hash = Math.imul(hash ^ byte, (16777619)) >>> 0;
1697
+ return hash >>> 0;
1698
+ }
1699
+ function mix(value) {
1700
+ let x = value >>> 0;
1701
+ return x ^= x >>> 16, x = Math.imul(x, 2146121005), x ^= x >>> 15, x = Math.imul(x, 2221713035), (x ^ x >>> 16) >>> 0;
1702
+ }
1703
+ function tableOf(word) {
1704
+ return word >>> (19) & (15);
1705
+ }
1706
+ function isPool(word) {
1707
+ return (word & ACCESS_POOL) !== 0;
1708
+ }
1709
+ function readAs(kind, storage, raw) {
1710
+ return kind === 0 ? storage === (0) ? f32Bits(raw) : f32Bits(Math.fround(storage === (1) ? raw | 0 : raw >>> 0)) : kind === 3 ? raw !== 0 && !Number.isNaN(raw) ? (4294967295) : 0 : storage === (0) ? (raw | 0) >>> 0 : raw >>> 0;
1711
+ }
1712
+ function writeAs(kind, storage, value) {
1713
+ return storage === (0) ? kind === 0 ? f32From(value) : kind === 3 ? value !== 0 ? 1 : 0 : Math.fround(kind === 1 ? value | 0 : value >>> 0) : kind === 0 ? f32From(value) | 0 : kind === 3 ? value !== 0 ? 1 : 0 : value;
1714
+ }
1715
+ function sameColumn(p, q) {
1716
+ return p.values === q.values || p.values.buffer === q.values.buffer && p.values.byteOffset === q.values.byteOffset && p.values.length > 0;
1717
+ }
1718
+ function exact(kind, storage) {
1719
+ return kind === 0 ? storage === (0) : kind === 1 || kind === 2 ? storage === (1) || storage === (2) : false;
1720
+ }
1721
+ function fmin(a, b) {
1722
+ return a < b ? a : b < a ? b : Number.isNaN(a) ? a : b;
1723
+ }
1724
+ function fmax(a, b) {
1725
+ return a > b ? a : b > a ? b : Number.isNaN(a) ? a : b;
1726
+ }
1727
+ function command(mode, current, value) {
1728
+ let f = f32From, b = f32Bits;
1729
+ switch (mode) {
1730
+ case SEND.FADD:
1731
+ return b(Math.fround(f(current) + f(value)));
1732
+ case SEND.FMUL:
1733
+ return b(Math.fround(f(current) * f(value)));
1734
+ case SEND.FMIN:
1735
+ return b(fmin(f(current), f(value)));
1736
+ case SEND.FMAX:
1737
+ return b(fmax(f(current), f(value)));
1738
+ case SEND.IADD:
1739
+ return current + value >>> 0;
1740
+ case SEND.IMIN:
1741
+ return Math.min(current | 0, value | 0) >>> 0;
1742
+ case SEND.IMAX:
1743
+ return Math.max(current | 0, value | 0) >>> 0;
1744
+ case SEND.UMIN:
1745
+ return Math.min(current >>> 0, value >>> 0);
1746
+ case SEND.UMAX:
1747
+ return Math.max(current >>> 0, value >>> 0);
1748
+ case SEND.OR:
1749
+ return (current | value) >>> 0;
1750
+ case SEND.AND:
1751
+ return (current & value) >>> 0;
1752
+ default:
1753
+ return value >>> 0;
1754
+ }
1755
+ }
1756
+ function pickOrder(mode, key) {
1757
+ return mode === (0) ? key >>> 0 : Number.isNaN(f32From(key)) ? 4294967295 : sortKey((2), key);
1758
+ }
1759
+ var KeyIndex = class {
1760
+ constructor(capacity) {
1761
+ this.capacity = capacity;
1762
+ this.epoch = 0;
1763
+ let slots = (16);
1764
+ for (; slots < capacity * 2; ) slots *= 2;
1765
+ this.keys = new Uint32Array(slots), this.rows = new Uint32Array(slots), this.stamps = new Uint32Array(slots), this.mask = slots - 1;
1766
+ }
1767
+ build(count, key) {
1768
+ this.epoch = this.epoch + 1 >>> 0, this.epoch === 0 && (this.stamps.fill(0), this.epoch = 1);
1769
+ let n = Math.min(count, this.capacity);
1770
+ for (let row = 0; row < n; row++) {
1771
+ let k = key(row) >>> 0;
1772
+ if (k === 4294967295) continue;
1773
+ let h = mix(k) & this.mask;
1774
+ for (; ; ) {
1775
+ if (this.stamps[h] !== this.epoch) {
1776
+ this.stamps[h] = this.epoch, this.keys[h] = k, this.rows[h] = row;
1777
+ break;
1778
+ }
1779
+ if (this.keys[h] === k) break;
1780
+ h = h + 1 & this.mask;
1781
+ }
1782
+ }
1783
+ }
1784
+ find(key) {
1785
+ let k = key >>> 0;
1786
+ if (k === 4294967295) return 4294967295;
1787
+ let h = mix(k) & this.mask;
1788
+ for (; ; ) {
1789
+ if (this.stamps[h] !== this.epoch) return 4294967295;
1790
+ if (this.keys[h] === k) return this.rows[h];
1791
+ h = h + 1 & this.mask;
1792
+ }
1793
+ }
1794
+ }, Keep = class {
1795
+ constructor(capacity, words2) {
1796
+ this.capacity = capacity;
1797
+ this.words = words2;
1798
+ this.len = 0;
1799
+ this.dropped = 0;
1800
+ this.heaped = false;
1801
+ this.a = new Float64Array(capacity), this.b = new Float64Array(capacity), this.c = new Float64Array(capacity), this.data = new Uint32Array(capacity * words2), this.heap = new Uint32Array(capacity);
1802
+ }
1803
+ clear() {
1804
+ this.len = 0, this.dropped = 0, this.heaped = false;
1805
+ }
1806
+ compare(p, q) {
1807
+ return this.a[p] - this.a[q] || this.b[p] - this.b[q] || this.c[p] - this.c[q];
1808
+ }
1809
+ below(a, b, c, slot) {
1810
+ return a !== this.a[slot] ? a < this.a[slot] : b !== this.b[slot] ? b < this.b[slot] : c < this.c[slot];
1811
+ }
1812
+ siftDown(start) {
1813
+ let n = this.heap.length, at = start;
1814
+ for (; ; ) {
1815
+ let left = 2 * at + 1, right = left + 1, top = at;
1816
+ if (left < n && this.compare(this.heap[left], this.heap[top]) > 0 && (top = left), right < n && this.compare(this.heap[right], this.heap[top]) > 0 && (top = right), top === at) return;
1817
+ let t = this.heap[at];
1818
+ this.heap[at] = this.heap[top], this.heap[top] = t, at = top;
1819
+ }
1820
+ }
1821
+ insert(a, b, c, payload) {
1822
+ let slot;
1823
+ if (this.len < this.capacity)
1824
+ slot = this.len++;
1825
+ else {
1826
+ if (this.dropped++, this.capacity === 0) return;
1827
+ if (!this.heaped) {
1828
+ for (let k = 0; k < this.capacity; k++) this.heap[k] = k;
1829
+ for (let at = (this.capacity >> 1) - 1; at >= 0; at--) this.siftDown(at);
1830
+ this.heaped = true;
1831
+ }
1832
+ let top = this.heap[0];
1833
+ if (!this.below(a, b, c, top)) return;
1834
+ slot = top;
1835
+ }
1836
+ if (this.a[slot] = a, this.b[slot] = b, this.c[slot] = c, payload !== null) for (let w = 0; w < this.words; w++) this.data[slot * this.words + w] = payload[w];
1837
+ this.heaped && this.siftDown(0);
1838
+ }
1839
+ }, ListSweep = class {
1840
+ constructor(at, len, table, k) {
1841
+ this.at = at;
1842
+ this.len = len;
1843
+ this.table = table;
1844
+ this.k = k;
1845
+ this.used = new Uint8Array(0);
1846
+ this.blocks = 0;
1847
+ this.unplaced = 0;
1848
+ }
1849
+ bind(blocks) {
1850
+ this.blocks = blocks, this.used = new Uint8Array(blocks);
1851
+ }
1852
+ run(at, len, lenKind, count) {
1853
+ this.used.fill(0), this.unplaced = 0;
1854
+ let read = (column, row) => readAs(2, column.storage, column.values[row]), write = (column, kind, row, value) => {
1855
+ column.values[row] = writeAs(kind, column.storage, value);
1856
+ }, open = false;
1857
+ for (let row = 0; row < count; row++) {
1858
+ let a = read(at, row);
1859
+ if (a === 0) {
1860
+ open = true;
1861
+ continue;
1862
+ }
1863
+ let offset = a - 1, block = Math.floor(offset / this.k);
1864
+ if (offset % this.k === 0 && block < this.blocks && this.used[block] === 0) {
1865
+ this.used[block] = 1, read(len, row) > this.k && write(len, lenKind, row, this.k);
1866
+ continue;
1867
+ }
1868
+ write(at, 2, row, 0), write(len, lenKind, row, 0), open = true;
1869
+ }
1870
+ if (!open) return;
1871
+ let cursor = 0;
1872
+ for (let row = 0; row < count; row++)
1873
+ if (read(at, row) === 0) {
1874
+ for (; cursor < this.blocks && this.used[cursor] !== 0; ) cursor++;
1875
+ if (write(len, lenKind, row, 0), cursor === this.blocks) {
1876
+ this.unplaced++;
1877
+ continue;
1878
+ }
1879
+ this.used[cursor] = 1, write(at, 2, row, cursor * this.k + 1), cursor++;
1880
+ }
1881
+ }
1882
+ };
1883
+ function dataOps(code) {
1884
+ let out = [], pc = 0;
1885
+ for (; pc + 1 < code.length; ) {
1886
+ let i = code[pc];
1887
+ if (i.op === (175)) {
1888
+ xopRange(i.dst) === XOP_RANGE.DATA && out.push({ pc, i, ext: code[pc + 1] }), pc += 2;
1889
+ continue;
1890
+ }
1891
+ pc++;
1892
+ }
1893
+ return out;
1894
+ }
1895
+ function listDecls(code) {
1896
+ return dataOps(code).filter((o) => o.i.dst === (12304)).map((o) => ({ at: o.i.a, len: o.i.b, pool: o.i.c, k: o.ext.a }));
1897
+ }
1898
+ var DataMachine = class {
1899
+ constructor(slots, code, capacity) {
1900
+ this.slots = slots;
1901
+ this.code = code;
1902
+ this.tableCapacity = new Array((16)).fill(0);
1903
+ this.tableCount = new Array((16)).fill(0);
1904
+ this.bound = new Array((16)).fill(false);
1905
+ this.used = 1;
1906
+ this.snaps = /* @__PURE__ */ new Map();
1907
+ this.indexes = /* @__PURE__ */ new Map();
1908
+ this.pools = /* @__PURE__ */ new Map();
1909
+ this.sweeps = [];
1910
+ this.sites = [];
1911
+ this.commandCapacity = (8192);
1912
+ this.pickCapacity = (256);
1913
+ this.counter = 0;
1914
+ this.tallies = new Uint32Array((64));
1915
+ this.stats = { sent: 0, applied: 0, dropped: 0, overflow: 0 };
1916
+ this.payload = new Uint32Array((4));
1917
+ let ops = dataOps(code);
1918
+ this.active = ops.length > 0, slots.forEach((slot, k) => {
1919
+ let word = slot.word ?? 0, table = tableOf(word);
1920
+ this.used |= 1 << table, table !== 0 && !isPool(word) && (word & 256) !== 0 && this.snaps.set(k, { table, values: new Float64Array(0), active: false });
1921
+ });
1922
+ for (let decl of listDecls(code)) {
1923
+ if (this.pools.has(decl.pool)) continue;
1924
+ let table = tableOf(slots[decl.pool].word ?? 0), sweep = this.sweeps.findIndex((s) => s.at === decl.at && s.len === decl.len);
1925
+ sweep < 0 && (this.sweeps.push(new ListSweep(decl.at, decl.len, table, decl.k)), sweep = this.sweeps.length - 1), this.pools.set(decl.pool, { decl, words: 0, bound: false, sweep });
1926
+ }
1927
+ for (let { pc, i } of ops)
1928
+ i.dst === (12288) ? (this.used |= 1 << i.b, this.indexes.has(i.c) || this.indexes.set(i.c, { table: i.b, index: new KeyIndex(0) })) : i.dst === (12289) ? this.used |= 1 << i.b : i.dst === (12291) ? this.used |= 1 << i.a : i.dst === (12336) && this.sites.push({ pc, n: i.a, rows: new Uint32Array(0), len: 0 });
1929
+ this.commands = new Keep(this.commandCapacity, (4)), this.picks = [], this.bindPicks(this.pickCapacity), this.bindStorage(0, capacity), this.tableCapacity[0] = capacity, this.bound[0] = true;
1930
+ }
1931
+ bindStorage(table, capacity) {
1932
+ for (let snap of this.snaps.values()) snap.table === table && (snap.values = new Float64Array(capacity));
1933
+ for (let entry of this.indexes.values()) entry.table === table && (entry.index = new KeyIndex(capacity));
1934
+ }
1935
+ get tablesUsed() {
1936
+ return this.used;
1937
+ }
1938
+ get poolDecls() {
1939
+ return [...this.pools.values()].map((p) => p.decl);
1940
+ }
1941
+ get unplaced() {
1942
+ return this.sweeps.reduce((sum, s) => sum + s.unplaced, 0);
1943
+ }
1944
+ bindTable(table, capacity) {
1945
+ if (table < 1 || table >= (16)) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `kernel tables are numbered 1..${(16) - 1}`);
1946
+ this.tableCapacity[table] = capacity, this.bound[table] = true, this.bindStorage(table, capacity);
1947
+ }
1948
+ bindPool(slot, words2) {
1949
+ let pool = this.pools.get(slot);
1950
+ if (pool === void 0) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `slot ${slot} is not a list pool`);
1951
+ pool.words = words2, pool.bound = true;
1952
+ let sweep = this.sweeps[pool.sweep], blocks = 1 / 0;
1953
+ for (let p of this.pools.values()) p.sweep === pool.sweep && (blocks = Math.min(blocks, p.bound ? Math.floor(p.words / sweep.k) : 1 / 0));
1954
+ blocks !== 1 / 0 && sweep.bind(blocks);
1955
+ }
1956
+ bindCommands(capacity) {
1957
+ this.commandCapacity = capacity, this.commands = new Keep(capacity, (4));
1958
+ }
1959
+ bindPicks(capacity) {
1960
+ this.pickCapacity = capacity, this.picks = this.sites.map(() => new Keep(capacity, 0));
1961
+ for (let site of this.sites) site.rows = new Uint32Array(capacity);
1962
+ }
1963
+ setCount(table, count) {
1964
+ if (count > this.tableCapacity[table]) throw new chunk2V7IL4HC_js.GameError("capacity_exceeded", `table ${table} holds ${count} rows but was bound with capacity ${this.tableCapacity[table]}`);
1965
+ this.tableCount[table] = count;
1966
+ }
1967
+ count(table) {
1968
+ return this.tableCount[table];
1969
+ }
1970
+ pickRows(site) {
1971
+ let s = this.sites[site];
1972
+ return s === void 0 ? new Uint32Array(0) : s.rows.subarray(0, s.len);
1973
+ }
1974
+ prepare(columns, count) {
1975
+ if (this.active) {
1976
+ this.tableCount[0] = count;
1977
+ for (let t = 1; t < (16); t++)
1978
+ if ((this.used & 1 << t) !== 0 && !this.bound[t]) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `this kernel reads table ${t}, which is not bound; pass the table as its Rows argument`);
1979
+ for (let [slot, pool] of this.pools) if (!pool.bound) throw new chunk2V7IL4HC_js.GameError("invalid_argument", `list pool slot ${slot} is not bound`);
1980
+ for (let [slot, snap] of this.snaps) {
1981
+ let column = columns[slot];
1982
+ if (snap.active = this.slots.some((s, k) => tableOf(s.word ?? 0) === 0 && !isPool(s.word ?? 0) && ((s.word ?? 0) & 512) !== 0 && sameColumn(columns[k], column)), snap.active) {
1983
+ let n = this.tableCount[snap.table];
1984
+ for (let row = 0; row < n; row++) snap.values[row] = column.values[row];
1985
+ }
1986
+ }
1987
+ for (let sweep of this.sweeps) sweep.run(columns[sweep.at], columns[sweep.len], this.slots[sweep.len].kind, this.tableCount[sweep.table]);
1988
+ for (let [slot, entry] of this.indexes) {
1989
+ let column = columns[slot], kind = this.slots[slot].kind;
1990
+ entry.index.build(this.tableCount[entry.table], (row) => readAs(kind, column.storage, column.values[row]));
1991
+ }
1992
+ this.commands.clear();
1993
+ for (let p of this.picks) p.clear();
1994
+ this.tallies.fill(0), this.counter = 0, this.stats = { sent: 0, applied: 0, dropped: 0, overflow: 0 };
1995
+ }
1996
+ }
1997
+ exec(pc, i, ext, n, columns, host) {
1998
+ let on = (mask, k) => mask === 4294967295 || host.lane(mask, k) !== 0;
1999
+ switch (i.dst) {
2000
+ case (12288): {
2001
+ let index = this.indexes.get(i.c).index;
2002
+ for (let k = 0; k < n; k++) host.set(ext.dst, k, index.find(host.lane(i.a, k)));
2003
+ return;
2004
+ }
2005
+ case (12289): {
2006
+ let count = this.tableCount[i.b];
2007
+ for (let k = 0; k < n; k++) {
2008
+ let v = host.lane(i.a, k) >>> 0;
2009
+ host.set(ext.dst, k, v < count ? v : 4294967295);
2010
+ }
2011
+ return;
2012
+ }
2013
+ case (12290): {
2014
+ let slot = this.slots[i.a], column = columns[i.a], count = this.tableCount[tableOf(slot.word ?? 0)], snap = this.snaps.get(i.a), values = snap !== void 0 && snap.active ? snap.values : column.values;
2015
+ for (let k = 0; k < n; k++) {
2016
+ let r = host.lane(i.b, k) >>> 0;
2017
+ host.set(ext.dst, k, r < count ? readAs(slot.kind, column.storage, values[r]) : 0);
2018
+ }
2019
+ return;
2020
+ }
2021
+ case (12291): {
2022
+ let count = this.tableCount[i.a];
2023
+ for (let k = 0; k < n; k++) host.set(ext.dst, k, count);
2024
+ return;
2025
+ }
2026
+ case (12305):
2027
+ case (12306): {
2028
+ let pool = this.pools.get(i.a), at = columns[pool.decl.at], column = columns[i.a], kind = this.slots[i.a].kind, setting = i.dst === (12306), mask = setting ? ext.a : i.c;
2029
+ for (let k = 0; k < n; k++) {
2030
+ let value = 0;
2031
+ if (on(mask, k)) {
2032
+ let base = readAs(2, at.storage, at.values[host.row(k)]), e = host.lane(i.b, k) >>> 0, cell = base - 1 + e;
2033
+ base !== 0 && e < pool.decl.k && cell < pool.words && (setting ? column.values[cell] = writeAs(kind, column.storage, host.lane(i.c, k)) : value = readAs(kind, column.storage, column.values[cell]));
2034
+ }
2035
+ setting || host.set(ext.dst, k, value);
2036
+ }
2037
+ return;
2038
+ }
2039
+ case (12307): {
2040
+ let active = 0;
2041
+ for (let k = 0; k < n; k++) on(i.b, k) && active++;
2042
+ this.tallies[i.a] = this.tallies[i.a] + active >>> 0;
2043
+ return;
2044
+ }
2045
+ case (12320): {
2046
+ let count = this.tableCount[tableOf(this.slots[i.a].word ?? 0)];
2047
+ for (let k = 0; k < n; k++) {
2048
+ let target = host.lane(i.b, k) >>> 0;
2049
+ !on(ext.a, k) || target >= count || (this.payload[0] = i.a, this.payload[1] = ext.b, this.payload[2] = target, this.payload[3] = host.lane(i.c, k), this.commands.insert(host.row(k), this.counter++, 0, this.payload));
2050
+ }
2051
+ return;
2052
+ }
2053
+ case (12336): {
2054
+ let site = this.sites.findIndex((s) => s.pc === pc), keep = this.picks[site];
2055
+ for (let k = 0; k < n; k++)
2056
+ on(i.c, k) && keep.insert(pickOrder(ext.a, host.lane(i.b, k)), host.row(k), 0, null);
2057
+ return;
2058
+ }
2059
+ default:
2060
+ return;
2061
+ }
2062
+ }
2063
+ finish(columns, uniforms) {
2064
+ this.active && (this.finishCommands(columns), this.sites.forEach((site, s) => {
2065
+ let keep = this.picks[s], order = Array.from({ length: keep.len }, (_, k) => k).sort((p, q) => keep.compare(p, q)), want = Math.max(uniforms[site.n & 2147483647] | 0, 0), n = Math.min(want, order.length, site.rows.length);
2066
+ for (let k = 0; k < n; k++) site.rows[k] = keep.b[order[k]];
2067
+ site.len = n;
2068
+ }));
2069
+ }
2070
+ finishCommands(columns) {
2071
+ let keep = this.commands, offered = keep.len + keep.dropped;
2072
+ if (keep.len === 0) return;
2073
+ let table = (k) => tableOf(this.slots[keep.data[k * (4)]].word ?? 0), order = Array.from({ length: keep.len }, (_, k) => k);
2074
+ order.sort((p, q) => table(p) - table(q) || keep.data[p * (4) + 2] - keep.data[q * (4) + 2] || keep.compare(p, q));
2075
+ let overflow = 0;
2076
+ for (let k of order) {
2077
+ let at = k * (4), slot = keep.data[at], mode = keep.data[at + 1], row = keep.data[at + 2], value = keep.data[at + 3], kind = this.slots[slot].kind, column = columns[slot];
2078
+ if (mode === SEND.PUSH) {
2079
+ let pool = this.pools.get(slot), base = columns[pool.decl.at], length = columns[pool.decl.len], start = readAs(2, base.storage, base.values[row]), used = readAs(2, length.storage, length.values[row]), cell = start - 1 + used;
2080
+ if (start === 0 || used >= pool.decl.k || cell >= pool.words) {
2081
+ overflow++;
2082
+ continue;
2083
+ }
2084
+ column.values[cell] = writeAs(kind, column.storage, value), length.values[row] = writeAs(this.slots[pool.decl.len].kind, length.storage, used + 1);
2085
+ continue;
2086
+ }
2087
+ let current = readAs(kind, column.storage, column.values[row]), next = command(mode, current, value);
2088
+ (exact(kind, column.storage) || current !== next) && (column.values[row] = writeAs(kind, column.storage, next));
2089
+ }
2090
+ this.stats = { sent: offered, applied: keep.len - overflow, dropped: offered - keep.len, overflow };
2091
+ }
2092
+ };
2093
+
2094
+ exports.ACCESS_ARRAY = (65536);
2095
+ exports.ACCESS_INDEXED = ACCESS_INDEXED;
2096
+ exports.ACCESS_NEIGHBOUR = (1024);
2097
+ exports.ACCESS_READ = (256);
2098
+ exports.ACCESS_SCRATCH = (2048);
2099
+ exports.ACCESS_SPAWN = (8192);
2100
+ exports.ACCESS_WRITE = (512);
2101
+ exports.ARG_FMAX = (1);
2102
+ exports.ARG_FMIN = (0);
2103
+ exports.ARG_IMAX = (3);
2104
+ exports.ARG_IMIN = (2);
2105
+ exports.ARG_UMIN = (4);
2106
+ exports.ATTACH_AUDIO = (5);
2107
+ exports.ATTACH_CHEMISTRY_GRID = (7);
2108
+ exports.ATTACH_SPAWN_TABLE = (9);
2109
+ exports.ATTACH_UI = (4);
2110
+ exports.ATTACH_VOXELS = (6);
2111
+ exports.CANONICAL_NAN32 = (2143289344);
2112
+ exports.CELL_WRAP = CELL_WRAP;
2113
+ exports.CHANNEL_WORDS = (4);
2114
+ exports.CROSS_BLOCK = (256);
2115
+ exports.CROSS_OP = CROSS_OP;
2116
+ exports.CURVE_HEADER = (4);
2117
+ exports.CURVE_HERMITE = (2);
2118
+ exports.CURVE_LINEAR = (1);
2119
+ exports.CURVE_STEP = (0);
2120
+ exports.DATA_FLOAD = (12290);
2121
+ exports.DATA_KEYOF = (12288);
2122
+ exports.DATA_LIST = (12304);
2123
+ exports.DATA_LIST_MAX = (4096);
2124
+ exports.DATA_PGET = (12305);
2125
+ exports.DATA_PICK = (12336);
2126
+ exports.DATA_PSET = (12306);
2127
+ exports.DATA_REPORT_HEADER = (70);
2128
+ exports.DATA_ROWOF = (12289);
2129
+ exports.DATA_ROWS = (12291);
2130
+ exports.DATA_SEND = (12320);
2131
+ exports.DATA_TABLES = (16);
2132
+ exports.DATA_TALLIES = (64);
2133
+ exports.DATA_TALLY = (12307);
2134
+ exports.DEFAULT_EVENT_CAPACITY = (4096);
2135
+ exports.DST_BITS = (8);
2136
+ exports.DataMachine = DataMachine;
2137
+ exports.EVENT_HEADER_WORDS = (2);
2138
+ exports.EVENT_STRIDE = (10);
2139
+ exports.FLAG_GROUPS = (2);
2140
+ exports.FLAG_NEIGHBOURS = (1);
2141
+ exports.FMATH_CONSTANTS = FMATH_CONSTANTS;
2142
+ exports.GRAPH_EMPTY = (4294967295);
2143
+ exports.GROUP_DEFAULT = (1);
2144
+ exports.GROUP_WORDS = (4);
2145
+ exports.H_ARGS = (5);
2146
+ exports.H_CONSTANTS = (6);
2147
+ exports.H_EVENTS = (14);
2148
+ exports.H_FLAGS = (2);
2149
+ exports.H_GROUPS = (9);
2150
+ exports.H_INSTRUCTIONS = (8);
2151
+ exports.H_LOOPS = (7);
2152
+ exports.H_MAGIC = (0);
2153
+ exports.H_POSITION_X = (11);
2154
+ exports.H_POSITION_Y = (12);
2155
+ exports.H_POSITION_Z = (13);
2156
+ exports.H_REGISTERS = (3);
2157
+ exports.H_SLOTS = (4);
2158
+ exports.H_STATE = (10);
2159
+ exports.H_VERSION = (1);
2160
+ exports.INSTRUCTION_WORDS = (4);
2161
+ exports.KERNEL_CALL_EXPORT_NAMES = KERNEL_CALL_EXPORT_NAMES;
2162
+ exports.KERNEL_DATA_EXPORT_NAMES = KERNEL_DATA_EXPORT_NAMES;
2163
+ exports.KERNEL_EXPORT_NAMES = KERNEL_EXPORT_NAMES;
2164
+ exports.KERNEL_ISA_BASE = (1);
2165
+ exports.KERNEL_ISA_CALLS = (2);
2166
+ exports.KERNEL_ISA_EXTENDED = (4);
2167
+ exports.KERNEL_ISA_VERSION = (4);
2168
+ exports.KERNEL_ISA_WRITES = (3);
2169
+ exports.KERNEL_SCAN_FEATURE = KERNEL_SCAN_FEATURE;
2170
+ exports.KERNEL_STAGE_EXPORT_NAMES = KERNEL_STAGE_EXPORT_NAMES;
2171
+ exports.KERNEL_WRITE_EXPORT_NAMES = KERNEL_WRITE_EXPORT_NAMES;
2172
+ exports.KIND_BOOL = (3);
2173
+ exports.KIND_F32 = (0);
2174
+ exports.KIND_I32 = (1);
2175
+ exports.KIND_U32 = (2);
2176
+ exports.LIBRARY_HEADER_WORDS = (4);
2177
+ exports.LIBRARY_MAGIC = (827083587);
2178
+ exports.LOOKUP_OP = LOOKUP_OP;
2179
+ exports.LOOP_COUNT_F32 = (1);
2180
+ exports.LUT1_HEADER = (4);
2181
+ exports.LUT2_HEADER = (8);
2182
+ exports.LUT_LINEAR = (1);
2183
+ exports.LUT_WRAP = (2);
2184
+ exports.ListSweep = ListSweep;
2185
+ exports.MAX_CHANNELS = (64);
2186
+ exports.MAX_EVENT_WORDS = (8);
2187
+ exports.MAX_TRIPS = (65536);
2188
+ exports.MLP_MAX_OUTPUTS = (32);
2189
+ exports.MLP_MAX_WIDTH = (128);
2190
+ exports.NONE = (4294967295);
2191
+ exports.Op = Op;
2192
+ exports.PROGRAM_HEADER_WORDS = (16);
2193
+ exports.PROGRAM_MAGIC = (827345731);
2194
+ exports.QFILTER_ANY = (2);
2195
+ exports.QFILTER_EQUAL = (1);
2196
+ exports.QFILTER_NONE = (3);
2197
+ exports.QUERY_BOX = (2);
2198
+ exports.QUERY_CONE = (1);
2199
+ exports.QUERY_FILTERED = (4);
2200
+ exports.QUERY_SEGMENT = (3);
2201
+ exports.QUERY_SHAPE = (3);
2202
+ exports.QUERY_SPHERE = (0);
2203
+ exports.RECUR = RECUR;
2204
+ exports.RECUR_EXCLUSIVE = (32);
2205
+ exports.RECUR_KIND_MASK = (31);
2206
+ exports.RECUR_WIDE = (64);
2207
+ exports.REDUCE_FMAX = (3);
2208
+ exports.REDUCE_FMIN = (2);
2209
+ exports.REDUCE_FSUM = (0);
2210
+ exports.REDUCE_IMAX = (5);
2211
+ exports.REDUCE_IMIN = (4);
2212
+ exports.REDUCE_ISUM = (1);
2213
+ exports.REDUCE_UMIN = (6);
2214
+ exports.RING_COUNT = (0);
2215
+ exports.RING_DROPPED = (1);
2216
+ exports.RING_HEADER_WORDS = (2);
2217
+ exports.SAMPLER_WORDS = (8);
2218
+ exports.SAMPLE_BILINEAR = (1);
2219
+ exports.SAMPLE_NEAREST = (0);
2220
+ exports.SAMPLE_NORMAL_X = (2);
2221
+ exports.SAMPLE_NORMAL_Y = (3);
2222
+ exports.SAMPLE_NORMAL_Z = (4);
2223
+ exports.SCAN_F_EXCLUSIVE = (1);
2224
+ exports.SCAN_F_INCLUSIVE = (0);
2225
+ exports.SCAN_I_INCLUSIVE = (2);
2226
+ exports.SCATTER_FADD = (0);
2227
+ exports.SERVICE_ANCHOR = (16);
2228
+ exports.SERVICE_CHEMISTRY = (21);
2229
+ exports.SERVICE_CLIP_WEIGHT = (11);
2230
+ exports.SERVICE_FLOW = (5);
2231
+ exports.SERVICE_FORCE = (6);
2232
+ exports.SERVICE_GROUND_HEIGHT = (3);
2233
+ exports.SERVICE_IK_TARGET = (13);
2234
+ exports.SERVICE_IMPULSE = (7);
2235
+ exports.SERVICE_INSTANCE = (14);
2236
+ exports.SERVICE_INSTANCE_COLOUR = (15);
2237
+ exports.SERVICE_KILL = (23);
2238
+ exports.SERVICE_LINE_OF_SIGHT = (2);
2239
+ exports.SERVICE_OVERLAP = (9);
2240
+ exports.SERVICE_PATH = (4);
2241
+ exports.SERVICE_PICK = (18);
2242
+ exports.SERVICE_PLAY_CLIP = (12);
2243
+ exports.SERVICE_RAYCAST = (1);
2244
+ exports.SERVICE_SIGNATURES = SERVICE_SIGNATURES;
2245
+ exports.SERVICE_SOUND = (17);
2246
+ exports.SERVICE_SWEEP = (10);
2247
+ exports.SERVICE_VELOCITY = (8);
2248
+ exports.SERVICE_VOXEL_GET = (19);
2249
+ exports.SERVICE_VOXEL_SET = (20);
2250
+ exports.SIMD_CROSS = (28948);
2251
+ exports.SIMD_DOT = (28944);
2252
+ exports.SIMD_DOT_F32 = (0);
2253
+ exports.SIMD_EXTRACT = (28929);
2254
+ exports.SIMD_LANE_BITS = (3);
2255
+ exports.SIMD_LANE_MASK = SIMD_LANE_MASK;
2256
+ exports.SIMD_LENGTH = (28946);
2257
+ exports.SIMD_MAP = (28672);
2258
+ exports.SIMD_MAP_OPS = (256);
2259
+ exports.SIMD_NORMALIZE = (28947);
2260
+ exports.SIMD_PACK = (28931);
2261
+ exports.SIMD_REDUCE = (28945);
2262
+ exports.SIMD_REPLACE = (28930);
2263
+ exports.SIMD_SCALAR_A = (8);
2264
+ exports.SIMD_SCALAR_B = (16);
2265
+ exports.SIMD_SCALAR_C = (32);
2266
+ exports.SIMD_SHUFFLE = (28928);
2267
+ exports.SIMD_WIDTH_MASK = (7);
2268
+ exports.SORT_DESCENDING = (4);
2269
+ exports.SORT_KEY_MASK = (3);
2270
+ exports.SORT_RADIX_BITS = (8);
2271
+ exports.SPAWN_STATS_WORDS = (3);
2272
+ exports.STATUS_FAILURE = (0);
2273
+ exports.STATUS_RUNNING = (2);
2274
+ exports.STATUS_SUCCESS = (1);
2275
+ exports.UNIFORM = (2147483648);
2276
+ exports.XOP = (175);
2277
+ exports.XOP_COMPONENTS_EDGES = (20483);
2278
+ exports.XOP_COMPONENTS_GRID = (20480);
2279
+ exports.XOP_FIELD = (17);
2280
+ exports.XOP_GATHER = (16);
2281
+ exports.XOP_GROUP = (3);
2282
+ exports.XOP_MLP_IN = (24576);
2283
+ exports.XOP_MLP_MOE = (24579);
2284
+ exports.XOP_MLP_OUT = (24578);
2285
+ exports.XOP_QFILTER = (4098);
2286
+ exports.XOP_QRANK = (4100);
2287
+ exports.XOP_QSHAPE = (4097);
2288
+ exports.XOP_QSTOP = (4099);
2289
+ exports.XOP_QUERY = (4096);
2290
+ exports.XOP_RANGE = XOP_RANGE;
2291
+ exports.XOP_REACH_GRID = (20481);
2292
+ exports.XOP_RECUR_IN = (33);
2293
+ exports.XOP_SORT = (1);
2294
+ exports.XOP_TOPK = (2);
2295
+ exports.acos = acos;
2296
+ exports.asin = asin;
2297
+ exports.atan = atan;
2298
+ exports.atan2 = atan2;
2299
+ exports.cos = cos;
2300
+ exports.crossRow = crossRow;
2301
+ exports.curveWords = curveWords;
2302
+ exports.deferredService = deferredService;
2303
+ exports.evalLane = evalLane;
2304
+ exports.exp = exp;
2305
+ exports.f32Bits = f32Bits;
2306
+ exports.f32From = f32From;
2307
+ exports.fmath64_exports = fmath64_exports;
2308
+ exports.fmath_exports = fmath_exports;
2309
+ exports.isa_exports = isa_exports;
2310
+ exports.joinF64 = joinF64;
2311
+ exports.joinU64 = joinU64;
2312
+ exports.laneSignature = laneSignature;
2313
+ exports.lanes_exports = lanes_exports;
2314
+ exports.log = log;
2315
+ exports.log2 = log2;
2316
+ exports.lookupOp = lookupOp;
2317
+ exports.operandCount = operandCount;
2318
+ exports.pow = pow;
2319
+ exports.readAs = readAs;
2320
+ exports.recurStateWords = recurStateWords;
2321
+ exports.recurSub = recurSub;
2322
+ exports.runLanes = runLanes;
2323
+ exports.serviceOf = serviceOf;
2324
+ exports.sin = sin;
2325
+ exports.sortKey = sortKey;
2326
+ exports.stageEndingOp = stageEndingOp;
2327
+ exports.stageEnds = stageEnds;
2328
+ exports.symbol = symbol;
2329
+ exports.tan = tan;
2330
+ exports.toUint32 = toUint32;
2331
+ exports.toUint64 = toUint64;
2332
+ exports.xopRange = xopRange;