@uptimizr/dashboard 0.4.7 → 0.4.8

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 (386) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +9 -9
  3. package/out/__next._full.txt +10 -10
  4. package/out/__next._tree.txt +1 -1
  5. package/out/_next/static/chunks/{209sxygecny37.js → 0-6mdj5wxsfid.js} +1 -1
  6. package/out/_next/static/chunks/{0ybs1u66q26su.js → 0-qthfqvm1jyj.js} +1 -1
  7. package/out/_next/static/chunks/01viyuclp2gm9.js +1 -0
  8. package/out/_next/static/chunks/02aym4t2hgo5c.js +1 -0
  9. package/out/_next/static/chunks/02ic9b5ejugow.js +1 -0
  10. package/out/_next/static/chunks/03p70i4c7qt0v.js +1 -0
  11. package/out/_next/static/chunks/{33i36o_l69sm5.js → 03pjr-ivdicng.js} +1 -1
  12. package/out/_next/static/chunks/041a06-lxipy5.js +1 -0
  13. package/out/_next/static/chunks/{1zm6eo861i3c8.js → 06dzkwetqis-5.js} +1 -1
  14. package/out/_next/static/chunks/{3ipx7xbxchsq9.js → 06kvanz5-fo52.js} +1 -1
  15. package/out/_next/static/chunks/07y8ke_iy59dn.js +1 -0
  16. package/out/_next/static/chunks/09jukc-4jl735.js +1 -0
  17. package/out/_next/static/chunks/{35sne1llxnc-m.js → 09khmdgez3t0a.js} +18 -18
  18. package/out/_next/static/chunks/{02qk_wmkf9at-.js → 0_dca4876jshu.js} +38 -38
  19. package/out/_next/static/chunks/0axcgnl5qzr6e.js +1 -0
  20. package/out/_next/static/chunks/0ay4fjomijs3n.js +1 -0
  21. package/out/_next/static/chunks/0c7fy79wlccat.js +1 -0
  22. package/out/_next/static/chunks/0cqe4-l3imct3.js +1 -0
  23. package/out/_next/static/chunks/0cssvelju788j.js +1 -0
  24. package/out/_next/static/chunks/{0-_j1khfoib6l.js → 0ctain5xq2wsd.js} +12 -12
  25. package/out/_next/static/chunks/{22yqh0zlo_vwr.js → 0df-dr3otg_4w.js} +1 -1
  26. package/out/_next/static/chunks/{26y9sv8_-ykxf.js → 0endw997j7ao9.js} +1 -1
  27. package/out/_next/static/chunks/0ev_pbit1v_qg.js +1 -0
  28. package/out/_next/static/chunks/0eyw9oiwipywb.js +1 -0
  29. package/out/_next/static/chunks/0fkzbuo1tex4u.js +1 -0
  30. package/out/_next/static/chunks/0govas0u0t4w3.js +1 -0
  31. package/out/_next/static/chunks/{0grasqqf5dw7r.js → 0guzhnususp3-.js} +2 -2
  32. package/out/_next/static/chunks/0h7bq_ysu17q7.js +3 -0
  33. package/out/_next/static/chunks/0hneh_3xzlo28.js +1 -0
  34. package/out/_next/static/chunks/0iaqwme19z_0s.js +1 -0
  35. package/out/_next/static/chunks/0ibmar10xndpn.js +1 -0
  36. package/out/_next/static/chunks/0ii8mqoteppgh.js +11 -0
  37. package/out/_next/static/chunks/{1uh9zgsy69g92.js → 0ip6v64di_l6x.js} +1 -1
  38. package/out/_next/static/chunks/{267prao6fyt22.js → 0ixymgjgz3grn.js} +10 -10
  39. package/out/_next/static/chunks/0kuah8g7lt5ox.js +1 -0
  40. package/out/_next/static/chunks/0l3k4j19vxm17.js +1 -0
  41. package/out/_next/static/chunks/0l6hg0ohwh9-m.js +1 -0
  42. package/out/_next/static/chunks/0m4um4ylhlfan.js +1 -0
  43. package/out/_next/static/chunks/0mj837d4h0ddq.js +1 -0
  44. package/out/_next/static/chunks/0nyn-f4905o91.js +1 -0
  45. package/out/_next/static/chunks/0og6i9rsgkuif.js +1 -0
  46. package/out/_next/static/chunks/0os1x-fxzgnxs.js +1 -0
  47. package/out/_next/static/chunks/0otnra7mp0hog.js +1 -0
  48. package/out/_next/static/chunks/{1gttu-n9am66k.js → 0oyf2xzv8ofkk.js} +21 -21
  49. package/out/_next/static/chunks/0qvsy3gcqjm12.js +1 -0
  50. package/out/_next/static/chunks/{1qg1l7t00nyib.js → 0rl4ddh2vgxyl.js} +14 -14
  51. package/out/_next/static/chunks/0rwpttmsmqvn_.js +1 -0
  52. package/out/_next/static/chunks/0so3wjp9ch93y.js +1 -0
  53. package/out/_next/static/chunks/{43fp64xnfy646.js → 0te4g160_rb5d.js} +1 -1
  54. package/out/_next/static/chunks/0uby-zvu799ef.js +1 -0
  55. package/out/_next/static/chunks/{3h6akt2uu05ku.js → 0uvn0op2mlr2u.js} +12 -12
  56. package/out/_next/static/chunks/0vwj4hxjm0igv.js +1 -0
  57. package/out/_next/static/chunks/{1m9zc5gm-327d.js → 0w7c30w07uct2.js} +10 -10
  58. package/out/_next/static/chunks/0wm38z3u2133a.js +1 -0
  59. package/out/_next/static/chunks/0y7yk5al7_p8q.js +4 -0
  60. package/out/_next/static/chunks/0ycr0gi6fn6bt.js +1 -0
  61. package/out/_next/static/chunks/0ywvahq9t0tki.js +1 -0
  62. package/out/_next/static/chunks/0zh6nslagkby-.js +1 -0
  63. package/out/_next/static/chunks/{3vbamaoiuk9yj.js → 0zo8xa0nej3ex.js} +1 -1
  64. package/out/_next/static/chunks/{2of8q0kaeqpf0.js → 0zsir95gpf3xw.js} +1 -1
  65. package/out/_next/static/chunks/0zu6ryyj0ig-j.js +3 -0
  66. package/out/_next/static/chunks/{2c721vfva711t.js → 1-jv8k10q_1uw.js} +1 -1
  67. package/out/_next/static/chunks/1-s5ioie9a94e.js +1 -0
  68. package/out/_next/static/chunks/{13zcn4lv0qj76.js → 1-yos1h0qws5e.js} +11 -11
  69. package/out/_next/static/chunks/10o7brc3x027r.js +1 -0
  70. package/out/_next/static/chunks/{060iult6f68_e.js → 10pae4gb9i929.js} +29 -29
  71. package/out/_next/static/chunks/13p93itm8a3ym.js +1 -0
  72. package/out/_next/static/chunks/{0btmk0wmekl02.js → 147s8i_lktp4_.js} +2 -2
  73. package/out/_next/static/chunks/{3njwfothmmg7u.js → 14tgo5xt_3j4w.js} +1 -1
  74. package/out/_next/static/chunks/1699hx-vlak0n.js +22 -0
  75. package/out/_next/static/chunks/16d6n9e77rqti.js +1 -0
  76. package/out/_next/static/chunks/{3zs7l4362msjd.js → 16f3d5dv83rsr.js} +1 -1
  77. package/out/_next/static/chunks/16i_tpwn_cmr-.js +1 -0
  78. package/out/_next/static/chunks/{1by60_b14x-3o.js → 16rfr165nbha0.js} +1 -1
  79. package/out/_next/static/chunks/{0zqgq0lwtz9tn.js → 16sl51pvzo4tf.js} +1 -1
  80. package/out/_next/static/chunks/{2n-pveub8b_5t.js → 1760s-32qpwgg.js} +1 -1
  81. package/out/_next/static/chunks/{1u8snlm6a7uhi.js → 18kq07c5xy_4g.js} +4 -4
  82. package/out/_next/static/chunks/{1rcdimhu0qhlu.js → 190tbzt861ao3.js} +39 -39
  83. package/out/_next/static/chunks/19bhv6cupnnyj.js +1 -0
  84. package/out/_next/static/chunks/1_14pn2wwebxy.js +1 -0
  85. package/out/_next/static/chunks/{3huu0tqmxwowu.js → 1_kikmeubh0wq.js} +30 -30
  86. package/out/_next/static/chunks/1ay3z6agelsvz.js +1 -0
  87. package/out/_next/static/chunks/1b-fi3bfmpe31.js +1 -0
  88. package/out/_next/static/chunks/1bae3tqv53x9_.js +1 -0
  89. package/out/_next/static/chunks/1bf421g4peccx.js +2 -0
  90. package/out/_next/static/chunks/1bfony5qsc5tp.js +1 -0
  91. package/out/_next/static/chunks/{1e8_jl2cxd3rp.js → 1ddt0ot7kl8vq.js} +40 -40
  92. package/out/_next/static/chunks/1emz2vjkgck4z.js +1 -0
  93. package/out/_next/static/chunks/1eogzzw8i1wsg.js +1 -0
  94. package/out/_next/static/chunks/{2apihn9ra2ufp.js → 1g9p2h1-31q8o.js} +1 -1
  95. package/out/_next/static/chunks/1gcz1k1v1woca.js +1 -0
  96. package/out/_next/static/chunks/{3v-0c2aj6c0on.js → 1h8lyicgqhpxa.js} +1 -1
  97. package/out/_next/static/chunks/{3772oce1n3t_g.js → 1hot663akaepl.js} +1 -1
  98. package/out/_next/static/chunks/1i7pgl3ks5ye0.js +1 -0
  99. package/out/_next/static/chunks/{2sys9nj8lo3uk.js → 1i8sk_qgpdjhs.js} +1 -1
  100. package/out/_next/static/chunks/{30bhz7czzs4mf.js → 1kk3ct7pkpf3b.js} +1 -1
  101. package/out/_next/static/chunks/{33hp-khdfohdq.js → 1kq9o8del67le.js} +1 -1
  102. package/out/_next/static/chunks/{3d-i_skta_wes.js → 1l7tzyx2mumlq.js} +1 -1
  103. package/out/_next/static/chunks/1n_uwed9o--go.js +1 -0
  104. package/out/_next/static/chunks/1o351eldttogn.js +1 -0
  105. package/out/_next/static/chunks/1ogs4_aj84bfn.js +1 -0
  106. package/out/_next/static/chunks/{0sw-8gxbg4x0l.js → 1p206txlluipi.js} +18 -18
  107. package/out/_next/static/chunks/1p2bt1w845v6c.js +1 -0
  108. package/out/_next/static/chunks/1p3rgz4aef1gk.js +1 -0
  109. package/out/_next/static/chunks/{41b5gpyqbj58m.js → 1qcgdx9yl0gfx.js} +4 -4
  110. package/out/_next/static/chunks/1ql3mm2w5r-m8.js +1 -0
  111. package/out/_next/static/chunks/1qvcyuyshi3ll.js +53 -0
  112. package/out/_next/static/chunks/1r0yyg5a_0knc.js +1 -0
  113. package/out/_next/static/chunks/{15o4_2t-l3rj5.js → 1sa6qiidtcyk2.js} +1 -1
  114. package/out/_next/static/chunks/1t-9vrdrsi8le.js +1 -0
  115. package/out/_next/static/chunks/{1rlfg62jxqj3z.js → 1t97zo0tlpbnz.js} +1 -1
  116. package/out/_next/static/chunks/1te2tinzqnwck.js +1 -0
  117. package/out/_next/static/chunks/{3sa_hlx3konc7.js → 1trt-m2nrck0v.js} +1 -1
  118. package/out/_next/static/chunks/1ty9jpwr3o_st.js +1 -0
  119. package/out/_next/static/chunks/1u6w6veke8rze.js +1 -0
  120. package/out/_next/static/chunks/1u900urmrbv73.js +1 -0
  121. package/out/_next/static/chunks/{3_dgblylldcgb.js → 1vz2gd8k74lpi.js} +1 -1
  122. package/out/_next/static/chunks/1wkpl9bfb0wn7.js +1 -0
  123. package/out/_next/static/chunks/1wrly9a9c3teq.js +1 -0
  124. package/out/_next/static/chunks/1x0m05155yy4e.js +1 -0
  125. package/out/_next/static/chunks/{3xl-op0hwxytg.js → 1xf1wfow43ekc.js} +5 -5
  126. package/out/_next/static/chunks/1y10o40v9odam.js +1 -0
  127. package/out/_next/static/chunks/{2s6kpclh6ie7o.js → 1y_zykt3fpen4.js} +29 -29
  128. package/out/_next/static/chunks/1ye6xtbm16pg4.js +1 -0
  129. package/out/_next/static/chunks/{1t5oynmttpfsw.js → 1z6_57k5h31u7.js} +1 -1
  130. package/out/_next/static/chunks/{0lep3_bqwfuin.js → 1zboqft0h6mop.js} +1 -1
  131. package/out/_next/static/chunks/{43v4y2gu5z9_h.js → 1zr3c351x0ri5.js} +1 -1
  132. package/out/_next/static/chunks/2-5p2lcedvrli.js +1 -0
  133. package/out/_next/static/chunks/206hxrq60f1_e.js +1 -0
  134. package/out/_next/static/chunks/20r05k3-studj.js +1 -0
  135. package/out/_next/static/chunks/22gs24kj2du56.js +1 -0
  136. package/out/_next/static/chunks/22x5pd1gyp7sf.js +1 -0
  137. package/out/_next/static/chunks/{2a07so920b6aa.js → 22z-2t_yp1jzs.js} +1 -1
  138. package/out/_next/static/chunks/{30n4y_uu8chbh.js → 23hmfdw6z5zfy.js} +30 -30
  139. package/out/_next/static/chunks/23y1krqnc-8sm.js +1 -0
  140. package/out/_next/static/chunks/{3f8qelpscqfym.js → 24tbkj1qkux88.js} +2 -2
  141. package/out/_next/static/chunks/{2ao-3jzz7yw3p.js → 26cmri51v7497.js} +11 -11
  142. package/out/_next/static/chunks/27jalbk9zu-2b.js +1 -0
  143. package/out/_next/static/chunks/285d2s9096ryc.js +1 -0
  144. package/out/_next/static/chunks/296ykep2nvppv.js +1 -0
  145. package/out/_next/static/chunks/29nehg5cal-ug.js +1 -0
  146. package/out/_next/static/chunks/2_a56_k3x7to6.js +1 -0
  147. package/out/_next/static/chunks/2a-0l6eb1blh3.js +4 -0
  148. package/out/_next/static/chunks/{3qn6r8-0u6dij.js → 2a31-txop1jzg.js} +38 -38
  149. package/out/_next/static/chunks/2bse5vll1o-x0.js +1 -0
  150. package/out/_next/static/chunks/2ct40spu9wfj7.js +1 -0
  151. package/out/_next/static/chunks/{2kok6zedeeltw.js → 2ept01b7t-e03.js} +1 -1
  152. package/out/_next/static/chunks/{3w59kt5ztyvoq.js → 2ey5dqelco_g5.js} +1 -1
  153. package/out/_next/static/chunks/2fd_009hw7y0m.js +1 -0
  154. package/out/_next/static/chunks/{0fd-0i1yt23kz.js → 2ftz9kaxrsgxh.js} +1 -1
  155. package/out/_next/static/chunks/2gefdnozflr7p.js +1 -0
  156. package/out/_next/static/chunks/{2izok2otbk8-2.js → 2gs-u1n5uv7iz.js} +37 -37
  157. package/out/_next/static/chunks/{2r96kyeehsji9.js → 2hizqql79u-54.js} +1 -1
  158. package/out/_next/static/chunks/2iqf2dpdg_vfl.js +1 -0
  159. package/out/_next/static/chunks/2j7z127s_ycjd.js +1 -0
  160. package/out/_next/static/chunks/2kax7uslfxdnx.js +31 -0
  161. package/out/_next/static/chunks/2lh_w9rzy3vek.js +1 -0
  162. package/out/_next/static/chunks/{0rracz73p38mo.js → 2ln1na26qwp-3.js} +9 -9
  163. package/out/_next/static/chunks/2n08l1q5o_27e.js +1 -0
  164. package/out/_next/static/chunks/2n7268gyd9z-6.js +1 -0
  165. package/out/_next/static/chunks/2nq9cgjmtqwvp.js +1 -0
  166. package/out/_next/static/chunks/{005bbq_px7lke.js → 2oj8qc_pv14nk.js} +2 -2
  167. package/out/_next/static/chunks/2q24e72-olbe8.js +1 -0
  168. package/out/_next/static/chunks/2qc4hscs26cro.js +1 -0
  169. package/out/_next/static/chunks/{0gf-ztg86zd80.js → 2qe46redkqhfg.js} +1 -1
  170. package/out/_next/static/chunks/2qmfe0mqw150h.js +1 -0
  171. package/out/_next/static/chunks/2qtc0nbl_521e.js +1 -0
  172. package/out/_next/static/chunks/{0e1jfrmioeuws.js → 2rofu6gu1xzuq.js} +1 -1
  173. package/out/_next/static/chunks/2tdi94rkq739i.js +1 -0
  174. package/out/_next/static/chunks/2u_2sacqa9xa7.js +1 -0
  175. package/out/_next/static/chunks/2ujqz6088shm5.js +1 -0
  176. package/out/_next/static/chunks/{1l_3oidssbhns.js → 2urh9qafp3fiw.js} +17 -17
  177. package/out/_next/static/chunks/{05v-nubi896jg.js → 2v06n4z8wsmn9.js} +1 -1
  178. package/out/_next/static/chunks/2vp-5skbk1nfu.js +1 -0
  179. package/out/_next/static/chunks/2vu973j_n6cpx.js +1 -0
  180. package/out/_next/static/chunks/{37cnbm5ft1mqf.js → 2wwra56rehfcj.js} +1 -1
  181. package/out/_next/static/chunks/2xpwr97h2asal.js +1 -0
  182. package/out/_next/static/chunks/3000-0b8n9t_2.js +1 -0
  183. package/out/_next/static/chunks/30t3203d7p2da.js +1 -0
  184. package/out/_next/static/chunks/31kto7-dxkt3z.js +1 -0
  185. package/out/_next/static/chunks/{2lsvk7xcfkarc.js → 32oflcl79d8mu.js} +1 -1
  186. package/out/_next/static/chunks/32ovg81ae0l03.js +1 -0
  187. package/out/_next/static/chunks/{0z9erbl3llr_b.js → 331kthnvoma7n.js} +16 -16
  188. package/out/_next/static/chunks/{0q75860p8u_ii.js → 337kn1mn34rc6.js} +1 -1
  189. package/out/_next/static/chunks/{2tc3e-iqv71y_.js → 33xug8kf0-a1o.js} +1 -1
  190. package/out/_next/static/chunks/{1-ogak5u00kwa.js → 34dcb7_flbrvo.js} +1 -1
  191. package/out/_next/static/chunks/34zotyeqrz_nq.js +1 -0
  192. package/out/_next/static/chunks/351wsmi75l8db.js +1 -0
  193. package/out/_next/static/chunks/{15jlgfcaeaki9.js → 36yv-ialtpx98.js} +1 -1
  194. package/out/_next/static/chunks/37hwasxtee5e0.js +1 -0
  195. package/out/_next/static/chunks/37t0iclgxes05.js +1 -0
  196. package/out/_next/static/chunks/{1q4lkgxfnqnew.js → 37xnvnx1jxfaf.js} +1 -1
  197. package/out/_next/static/chunks/{2z_iab7ozohhq.js → 38w74ixqt-9co.js} +16 -16
  198. package/out/_next/static/chunks/{2h249uvhh2sij.js → 39t2x_9zd2rst.js} +10 -10
  199. package/out/_next/static/chunks/{0thw099xk3_0p.js → 39v73timmzwny.js} +2 -2
  200. package/out/_next/static/chunks/{2n3xu_wbvtj7h.js → 3_xqc3658d8sw.js} +12 -12
  201. package/out/_next/static/chunks/3ba8eudvlczwe.js +1 -0
  202. package/out/_next/static/chunks/{2q6l-xdqzgmpf.js → 3buezhxqc8n6n.js} +1 -1
  203. package/out/_next/static/chunks/{1zt1xxovnjhkm.js → 3c5iwwj-fhbue.js} +1 -1
  204. package/out/_next/static/chunks/{2urx6fow8c8c9.js → 3d8ot2tw6yqfq.js} +12 -12
  205. package/out/_next/static/chunks/3dc057ffe7ij-.js +1 -0
  206. package/out/_next/static/chunks/3djnlzwj9869o.js +1 -0
  207. package/out/_next/static/chunks/{2y8i7_nxm4r05.js → 3fuqxjjf8o1v9.js} +5 -5
  208. package/out/_next/static/chunks/{0z004fn14pbcu.js → 3gt6rzg9qw-an.js} +1 -1
  209. package/out/_next/static/chunks/{1tgj55b305g4h.js → 3h_05w5j8x538.js} +1 -1
  210. package/out/_next/static/chunks/{3j9xvdz55bi4p.js → 3hkhd1_k8xohv.js} +33 -33
  211. package/out/_next/static/chunks/{42ymanq326mo7.js → 3ijcc5tfisfnj.js} +1 -1
  212. package/out/_next/static/chunks/3j0dbpd9zop3p.js +1 -0
  213. package/out/_next/static/chunks/{1zkd8v-qka--j.js → 3ju83xk-ca7ma.js} +21 -21
  214. package/out/_next/static/chunks/3jxhl4apmhbm1.js +13 -0
  215. package/out/_next/static/chunks/{302qk2fjdrthp.js → 3la99oz_0p0r6.js} +5 -5
  216. package/out/_next/static/chunks/3n1b34fd5fdrh.js +1 -0
  217. package/out/_next/static/chunks/{2j120dkh7q3uf.js → 3nq_hq4x3rn3r.js} +1 -1
  218. package/out/_next/static/chunks/3pgb1kkqrdl9t.js +1 -0
  219. package/out/_next/static/chunks/3pik_-jj-zkfl.js +1 -0
  220. package/out/_next/static/chunks/{2w99knknr5i8c.js → 3q38kdbzd2nbd.js} +1 -1
  221. package/out/_next/static/chunks/3q5zl4ks17au2.js +1 -0
  222. package/out/_next/static/chunks/{2uo6vm7mfgrbf.js → 3qr10445lte-n.js} +1 -1
  223. package/out/_next/static/chunks/3r-8bnguvxsyo.js +1 -0
  224. package/out/_next/static/chunks/3sg56j8boe-3o.js +1 -0
  225. package/out/_next/static/chunks/{2q8yg63br2jc9.js → 3u7zj1-jdg781.js} +1 -1
  226. package/out/_next/static/chunks/{32_c4mbb6j1l6.js → 3wj5dmf6cywz8.js} +22 -22
  227. package/out/_next/static/chunks/{3oqxl46ukaojj.js → 3wr_oijfsq8lr.js} +11 -11
  228. package/out/_next/static/chunks/3xu0dh1ikzwj2.js +1 -0
  229. package/out/_next/static/chunks/3y5tpixt23-fl.js +1 -0
  230. package/out/_next/static/chunks/40gjf-_jt8upu.js +5 -0
  231. package/out/_next/static/chunks/41f12o_5lf-i9.js +1 -0
  232. package/out/_next/static/chunks/42ma8lqduohlc.js +1 -0
  233. package/out/_next/static/chunks/{0ai0zgbgjqb92.js → 43usshq2nc125.js} +1 -1
  234. package/out/_next/static/chunks/{0hajwk2yd-rwr.js → 44bl4ufopbmyh.js} +1 -1
  235. package/out/_next/static/chunks/44iutzkw9r21x.js +1 -0
  236. package/out/_next/static/chunks/turbopack-1xrxa3noq196-.js +1 -0
  237. package/out/_not-found/__next._full.txt +8 -8
  238. package/out/_not-found/__next._not-found.__PAGE__.txt +7 -7
  239. package/out/_not-found/__next._tree.txt +1 -1
  240. package/out/_not-found.html +1 -1
  241. package/out/_not-found.txt +8 -8
  242. package/out/index.html +1 -1
  243. package/out/index.txt +10 -10
  244. package/package.json +9 -9
  245. package/out/_next/static/chunks/00fbhtmui-yxg.js +0 -1
  246. package/out/_next/static/chunks/017pn-pen381_.js +0 -1
  247. package/out/_next/static/chunks/01vov6inx1zzt.js +0 -1
  248. package/out/_next/static/chunks/03bd5plut08tg.js +0 -1
  249. package/out/_next/static/chunks/03dwfqmo73w_z.js +0 -1
  250. package/out/_next/static/chunks/03sn4419dam-h.js +0 -5
  251. package/out/_next/static/chunks/05ere0-228syf.js +0 -1
  252. package/out/_next/static/chunks/05h8u5lrypn5m.js +0 -1
  253. package/out/_next/static/chunks/05z79zh625ezu.js +0 -1
  254. package/out/_next/static/chunks/08lvtnv7b1cxp.js +0 -1
  255. package/out/_next/static/chunks/0_v2luu_qmeid.js +0 -1
  256. package/out/_next/static/chunks/0boov9mwycanf.js +0 -1
  257. package/out/_next/static/chunks/0d8x8m2x6ca_m.js +0 -1
  258. package/out/_next/static/chunks/0dmrdrwtd093b.js +0 -1
  259. package/out/_next/static/chunks/0e7nlxmneb2j_.js +0 -1
  260. package/out/_next/static/chunks/0es97pusfxupl.js +0 -1
  261. package/out/_next/static/chunks/0fxdyvb1w23d1.js +0 -1
  262. package/out/_next/static/chunks/0fxhc24djjcgq.js +0 -1
  263. package/out/_next/static/chunks/0hk1wg7h4araz.js +0 -1
  264. package/out/_next/static/chunks/0j74ipw4fps-n.js +0 -1
  265. package/out/_next/static/chunks/0kj-vckdn7t5p.js +0 -1
  266. package/out/_next/static/chunks/0lbs5xdyjuzuo.js +0 -1
  267. package/out/_next/static/chunks/0mp0jh1gj7290.js +0 -1
  268. package/out/_next/static/chunks/0ngpoj2g5i4kz.js +0 -1
  269. package/out/_next/static/chunks/0nhljhguceh66.js +0 -1
  270. package/out/_next/static/chunks/0p6z73afb9dj2.js +0 -1
  271. package/out/_next/static/chunks/0p9zfmidzqkps.js +0 -1
  272. package/out/_next/static/chunks/0sx-6rf3eteqn.js +0 -1
  273. package/out/_next/static/chunks/0u85f0dhb4i8e.js +0 -1
  274. package/out/_next/static/chunks/0uk7kigzm4vi2.js +0 -31
  275. package/out/_next/static/chunks/0ulufxnsrou61.js +0 -1
  276. package/out/_next/static/chunks/0xa9dyg6ezzyd.js +0 -2
  277. package/out/_next/static/chunks/0xvrfvur0p534.js +0 -1
  278. package/out/_next/static/chunks/0ydfhk-p6zvm0.js +0 -1
  279. package/out/_next/static/chunks/0zcsxvcvog9ue.js +0 -1
  280. package/out/_next/static/chunks/10_5p5-xf2aoo.js +0 -1
  281. package/out/_next/static/chunks/118qlrzdwpfmo.js +0 -1
  282. package/out/_next/static/chunks/11km5p4gd0ut4.js +0 -1
  283. package/out/_next/static/chunks/120rl4l29q9xs.js +0 -1
  284. package/out/_next/static/chunks/129m5i93ltoym.js +0 -1
  285. package/out/_next/static/chunks/12n73o884lyyl.js +0 -1
  286. package/out/_next/static/chunks/175st2ogkg_1o.js +0 -1
  287. package/out/_next/static/chunks/19rsodtu91ja_.js +0 -1
  288. package/out/_next/static/chunks/1a2ouhup611bz.js +0 -1
  289. package/out/_next/static/chunks/1cyq7i39885sl.js +0 -1
  290. package/out/_next/static/chunks/1d9it6yocgt54.js +0 -1
  291. package/out/_next/static/chunks/1dp1s1t-y7gal.js +0 -1
  292. package/out/_next/static/chunks/1dr7gh6xgypl8.js +0 -1
  293. package/out/_next/static/chunks/1dt30s_sp8415.js +0 -1
  294. package/out/_next/static/chunks/1f1rek_fxk3of.js +0 -1
  295. package/out/_next/static/chunks/1f2mna0k5efeq.js +0 -1
  296. package/out/_next/static/chunks/1gfz3sxwkkg3d.js +0 -1
  297. package/out/_next/static/chunks/1gr35qeguuws0.js +0 -1
  298. package/out/_next/static/chunks/1imi0xwi9hd99.js +0 -1
  299. package/out/_next/static/chunks/1ka5v5zu0cstt.js +0 -1
  300. package/out/_next/static/chunks/1n9nhz-6azcp3.js +0 -3
  301. package/out/_next/static/chunks/1ncqwe81t_9_x.js +0 -1
  302. package/out/_next/static/chunks/1nix_lulkpklo.js +0 -1
  303. package/out/_next/static/chunks/1ntqovuz2c217.js +0 -1
  304. package/out/_next/static/chunks/1pgs-98tfkq9_.js +0 -1
  305. package/out/_next/static/chunks/1q2z0aeopo8t8.js +0 -1
  306. package/out/_next/static/chunks/1ses023uud001.js +0 -1
  307. package/out/_next/static/chunks/1t9i20i5-f8ze.js +0 -1
  308. package/out/_next/static/chunks/1ug4k-1zhr63a.js +0 -1
  309. package/out/_next/static/chunks/1vrpzlif-z_p0.js +0 -1
  310. package/out/_next/static/chunks/1vurgl6oz2qey.js +0 -17
  311. package/out/_next/static/chunks/1w-qc09n9ijtq.js +0 -1
  312. package/out/_next/static/chunks/1ycqxcht6x54p.js +0 -1
  313. package/out/_next/static/chunks/1zj4307ugq0qz.js +0 -1
  314. package/out/_next/static/chunks/1zm52cjrfrq7c.js +0 -1
  315. package/out/_next/static/chunks/1zp9363yfhpom.js +0 -1
  316. package/out/_next/static/chunks/2-3hk_db5fpok.js +0 -1
  317. package/out/_next/static/chunks/2-bv9a_0zgw1f.js +0 -1
  318. package/out/_next/static/chunks/216uiih3_vdfd.js +0 -1
  319. package/out/_next/static/chunks/21kfpd_bityxt.js +0 -1
  320. package/out/_next/static/chunks/24ecas0m9tao7.js +0 -3
  321. package/out/_next/static/chunks/24pq9210rng3f.js +0 -1
  322. package/out/_next/static/chunks/26skkagvj1z96.js +0 -1
  323. package/out/_next/static/chunks/2701xfv_07wz_.js +0 -1
  324. package/out/_next/static/chunks/271333m8y3k0e.js +0 -1
  325. package/out/_next/static/chunks/29rkmguzky-bp.js +0 -1
  326. package/out/_next/static/chunks/2a2oy8ryz2tsk.js +0 -1
  327. package/out/_next/static/chunks/2apnpj0-fs9ks.js +0 -1
  328. package/out/_next/static/chunks/2b481pitl4k85.js +0 -1
  329. package/out/_next/static/chunks/2bettxaqt3d2p.js +0 -1
  330. package/out/_next/static/chunks/2d2kl_m64j9cb.js +0 -1
  331. package/out/_next/static/chunks/2droqjmvmgj13.js +0 -1
  332. package/out/_next/static/chunks/2dxbvwbbgpzoq.js +0 -1
  333. package/out/_next/static/chunks/2eqbsut829r5l.js +0 -1
  334. package/out/_next/static/chunks/2f3_mzxjh3gso.js +0 -1
  335. package/out/_next/static/chunks/2fsde0jwi5qtt.js +0 -1
  336. package/out/_next/static/chunks/2j2ynchpqh34-.js +0 -1
  337. package/out/_next/static/chunks/2kj6pzs_wap1v.js +0 -1
  338. package/out/_next/static/chunks/2lnj9jruy4nrv.js +0 -1
  339. package/out/_next/static/chunks/2ofwtw6p08sfz.js +0 -1
  340. package/out/_next/static/chunks/2phl5ta4iim7l.js +0 -12
  341. package/out/_next/static/chunks/2r5qgieqldcd9.js +0 -1
  342. package/out/_next/static/chunks/2r7y401cvjc1s.js +0 -1
  343. package/out/_next/static/chunks/2rmc6ru7mc-kg.js +0 -1
  344. package/out/_next/static/chunks/2w2k1gveljyb7.js +0 -1
  345. package/out/_next/static/chunks/2w_ptlw-ad8-9.js +0 -4
  346. package/out/_next/static/chunks/2ws1s9d52ayv8.js +0 -1
  347. package/out/_next/static/chunks/2x7enks3ydgai.js +0 -1
  348. package/out/_next/static/chunks/2ydub0t01728d.js +0 -1
  349. package/out/_next/static/chunks/3-m_vzabs1uez.js +0 -1
  350. package/out/_next/static/chunks/3527r3jo5fj3i.js +0 -1
  351. package/out/_next/static/chunks/355dg8yaa94hr.js +0 -1
  352. package/out/_next/static/chunks/35ntbr_c-yx44.js +0 -1
  353. package/out/_next/static/chunks/36enkx1skkv2-.js +0 -4
  354. package/out/_next/static/chunks/38xdo3cifphut.js +0 -1
  355. package/out/_next/static/chunks/3beawo-qwuk8k.js +0 -1
  356. package/out/_next/static/chunks/3cj_6sl9kr3e9.js +0 -1
  357. package/out/_next/static/chunks/3df_l2we755bb.js +0 -1
  358. package/out/_next/static/chunks/3eve5y7fpzx2h.js +0 -1
  359. package/out/_next/static/chunks/3ewgyb4y19w-3.js +0 -1
  360. package/out/_next/static/chunks/3f3789eh18_oy.js +0 -1
  361. package/out/_next/static/chunks/3g3-e9m1en45q.js +0 -1
  362. package/out/_next/static/chunks/3i239y-1hbkm-.js +0 -1
  363. package/out/_next/static/chunks/3kp8qmhoi24oz.js +0 -1
  364. package/out/_next/static/chunks/3ksq69yq-40_r.js +0 -1
  365. package/out/_next/static/chunks/3qye1lytea2i8.js +0 -1
  366. package/out/_next/static/chunks/3rlp9yr75liz7.js +0 -1
  367. package/out/_next/static/chunks/3tyo643l62h3m.js +0 -1
  368. package/out/_next/static/chunks/3tz2tpqa9uvwm.js +0 -1
  369. package/out/_next/static/chunks/3utpc-fc6_y0f.js +0 -1
  370. package/out/_next/static/chunks/3v6nxa28rxngq.js +0 -1
  371. package/out/_next/static/chunks/3vv99btjc-mky.js +0 -1
  372. package/out/_next/static/chunks/3x02lxdo28u9i.js +0 -1
  373. package/out/_next/static/chunks/3ydnxyc4rvad_.js +0 -1
  374. package/out/_next/static/chunks/3ylg4gfetwgxw.js +0 -1
  375. package/out/_next/static/chunks/3zdtteq-r2fs5.js +0 -62
  376. package/out/_next/static/chunks/3zkwt0gybqtgm.js +0 -1
  377. package/out/_next/static/chunks/40etabvml_71y.js +0 -1
  378. package/out/_next/static/chunks/417jkzz0slv9m.js +0 -1
  379. package/out/_next/static/chunks/41u2-5jayyajf.js +0 -22
  380. package/out/_next/static/chunks/42gcpy51w7lk1.js +0 -1
  381. package/out/_next/static/chunks/44cer242u-f8v.js +0 -1
  382. package/out/_next/static/chunks/44zi0gl0a6a8w.js +0 -1
  383. package/out/_next/static/chunks/turbopack-0n2o5_bkskckx.js +0 -1
  384. /package/out/_next/static/{A1hxMz783bIWo0Q9qqV3L → 4r0L0ZMJeBwOJCVDsvvZ4}/_buildManifest.js +0 -0
  385. /package/out/_next/static/{A1hxMz783bIWo0Q9qqV3L → 4r0L0ZMJeBwOJCVDsvvZ4}/_clientMiddlewareManifest.js +0 -0
  386. /package/out/_next/static/{A1hxMz783bIWo0Q9qqV3L → 4r0L0ZMJeBwOJCVDsvvZ4}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16952,e=>{"use strict";let t,s,n,i,a,o,r,l,h,u,c,d,p,_,m,f,g,y,b,T,A,x,v,w,M,C,S,F,E,R,O,I,B,N,k,P,L,G,D,V,K,H,U,$,z,q,W,j,X,Q,Y,Z,J,ee,et,es,en,ei,ea,eo,er,el,eh,eu,ec,ed,ep,e_,em,ef,eg,ey;e.s([],59934);var eb,eT,eA,ex,ev,ew,eM,eC,eS,eF,eE,eR,eO,eI,eB,eN,ek,eP,eL,eG,eD,eV,eK,eH,eU,e$,ez,eq,eW,ej,eX,eQ,eY=e.i(42704),eZ=e.i(40379),eJ=e.i(7720),e0=e.i(55206),e1=e.i(17462),e2=e.i(87659),e3=e.i(85789),e8=e.i(72986),e4=e.i(45930),e5=e.i(89170),e7=e.i(51509),e9=e.i(80145);class e6{constructor(){this.rootNodes=[],this.cameras=[],this.lights=[],this.meshes=[],this.skeletons=[],this.particleSystems=[],this.animations=[],this.animationGroups=[],this.multiMaterials=[],this.materials=[],this.morphTargetManagers=[],this.geometries=[],this.transformNodes=[],this.actionManagers=[],this.textures=[],this._environmentTexture=null,this.postProcesses=[],this.sounds=null,this.effectLayers=[],this.layers=[],this.reflectionProbes=[],this.spriteManagers=[]}get environmentTexture(){return this._environmentTexture}set environmentTexture(e){this._environmentTexture=e}getNodes(){let e=[];for(let t of(e=(e=(e=(e=e.concat(this.meshes)).concat(this.lights)).concat(this.cameras)).concat(this.transformNodes),this.skeletons))e=e.concat(t.bones);return e}}class te extends e6{}class tt{constructor(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]}dispose(){let e=this.rootNodes;for(let t of e)t.dispose();e.length=0;let t=this.skeletons;for(let e of t)e.dispose();t.length=0;let s=this.animationGroups;for(let e of s)e.dispose();s.length=0}}class ts extends e6{constructor(e){if(super(),this._wasAddedToScene=!1,!(e=e||e8.EngineStore.LastCreatedScene))return;this.scene=e,this.proceduralTextures=[],e.onDisposeObservable.add(()=>{this._wasAddedToScene||this.dispose()}),this._onContextRestoredObserver=e.getEngine().onContextRestoredObservable.add(()=>{for(let e of this.geometries)e._rebuild();for(let e of this.meshes)e._rebuild();for(let e of this.particleSystems)e.rebuild();for(let e of this.textures)e._rebuild();for(let e of this.spriteManagers)e.rebuild()})}_topologicalSort(e){let t=new Map;for(let s of e)t.set(s.uniqueId,s);let s={dependsOn:new Map,dependedBy:new Map};for(let t of e){let e=t.uniqueId;s.dependsOn.set(e,new Set),s.dependedBy.set(e,new Set)}for(let n of e){let e=n.uniqueId,i=s.dependsOn.get(e);if(n instanceof e4.InstancedMesh){let a=n.sourceMesh;t.has(a.uniqueId)&&(i.add(a.uniqueId),s.dependedBy.get(a.uniqueId).add(e))}let a=s.dependedBy.get(e);for(let i of n.getDescendants()){let n=i.uniqueId;t.has(n)&&(a.add(n),s.dependsOn.get(n).add(e))}}let n=[],i=[];for(let n of e){let e=n.uniqueId;0===s.dependsOn.get(e).size&&(i.push(n),t.delete(e))}for(;i.length>0;){let e=i.shift();for(let a of(n.push(e),Array.from(s.dependedBy.get(e.uniqueId).values()))){let n=s.dependsOn.get(a);n.delete(e.uniqueId),0===n.size&&t.get(a)&&(i.push(t.get(a)),t.delete(a))}}return t.size>0&&(e3.Logger.Error("SceneSerializer._topologicalSort: There were unvisited nodes:"),t.forEach(e=>{e3.Logger.Error(e.name)})),n}_addNodeAndDescendantsToList(e,t,s,n){if(!(!s||n&&!n(s)||t.has(s.uniqueId)))for(let i of(e.push(s),t.add(s.uniqueId),s.getDescendants(!0)))this._addNodeAndDescendantsToList(e,t,i,n)}_isNodeInContainer(e){return e instanceof e2.AbstractMesh&&-1!==this.meshes.indexOf(e)||e instanceof e1.TransformNode&&-1!==this.transformNodes.indexOf(e)||e instanceof e5.Light&&-1!==this.lights.indexOf(e)||e instanceof e7.Camera&&-1!==this.cameras.indexOf(e)}_isValidHierarchy(){for(let e of this.meshes)if(e.parent&&!this._isNodeInContainer(e.parent))return e3.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.transformNodes)if(e.parent&&!this._isNodeInContainer(e.parent))return e3.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.lights)if(e.parent&&!this._isNodeInContainer(e.parent))return e3.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(let e of this.cameras)if(e.parent&&!this._isNodeInContainer(e.parent))return e3.Logger.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;return!0}instantiateModelsToScene(e,t=!1,s){this._isValidHierarchy()||eZ.Tools.Warn("SceneSerializer.InstantiateModelsToScene: The Asset Container hierarchy is not valid.");let n={},i={},a=new tt,o=[],r=[],l={doNotInstantiate:!0,...s},h=[],u=new Set;for(let e of this.transformNodes)null===e.parent&&this._addNodeAndDescendantsToList(h,u,e,l.predicate);for(let e of this.meshes)null===e.parent&&this._addNodeAndDescendantsToList(h,u,e,l.predicate);let c=this._topologicalSort(h),d=(s,o)=>{if(n[s.uniqueId]=o.uniqueId,i[o.uniqueId]=o,e&&(o.name=e(s.name)),o instanceof e0.Mesh&&o.morphTargetManager){let e=s.morphTargetManager;o.morphTargetManager=e.clone();for(let t=0;t<e.numTargets;t++){let s=e.getTarget(t),a=o.morphTargetManager.getTarget(t);n[s.uniqueId]=a.uniqueId,i[a.uniqueId]=a}}if(s.parent){let e=i[n[s.parent.uniqueId]];e?o.parent=e:o.parent=s.parent}if(o.position&&s.position&&o.position.copyFrom(s.position),o.rotationQuaternion&&s.rotationQuaternion&&o.rotationQuaternion.copyFrom(s.rotationQuaternion),o.rotation&&s.rotation&&o.rotation.copyFrom(s.rotation),o.scaling&&s.scaling&&o.scaling.copyFrom(s.scaling),o.material&&o.material)if(t){let t=s.material;if(-1===r.indexOf(t)){let s=t.clone(e?e(t.name):"Clone of "+t.name);if(r.push(t),n[t.uniqueId]=s.uniqueId,i[s.uniqueId]=s,"MultiMaterial"===t.getClassName()){for(let a of t.subMaterials)a&&(s=a.clone(e?e(a.name):"Clone of "+a.name),r.push(a),n[a.uniqueId]=s.uniqueId,i[s.uniqueId]=s);t.subMaterials=t.subMaterials.map(e=>e&&i[n[e.uniqueId]])}}"InstancedMesh"!==o.getClassName()&&(o.material=i[n[t.uniqueId]])}else"MultiMaterial"===o.material.getClassName()?-1===this.scene.multiMaterials.indexOf(o.material)&&this.scene.addMultiMaterial(o.material):-1===this.scene.materials.indexOf(o.material)&&this.scene.addMaterial(o.material);null===o.parent&&a.rootNodes.push(o)};for(let e of c)if("InstancedMesh"===e.getClassName()){let t=e.sourceMesh,s=n[t.uniqueId],a=("number"==typeof s?i[s]:t).createInstance(e.name);d(e,a)}else{let t=!0;"TransformNode"===e.getClassName()||"Node"===e.getClassName()||e.skeleton||!e.getTotalVertices||0===e.getTotalVertices()?t=!1:l.doNotInstantiate&&(t="function"==typeof l.doNotInstantiate?!l.doNotInstantiate(e):!l.doNotInstantiate);let s=t?e.createInstance(`instance of ${e.name}`):e.clone(`Clone of ${e.name}`,null,!0);if(!s)throw Error(`Could not clone or instantiate node on Asset Container ${e.name}`);d(e,s)}for(let t of this.skeletons){if(l.predicate&&!l.predicate(t))continue;let s=t.clone(e?e(t.name):"Clone of "+t.name);for(let e of this.meshes)if(e.skeleton===t&&!e.isAnInstance){let t=i[n[e.uniqueId]];if(!t||t.isAnInstance||(t.skeleton=s,-1!==o.indexOf(s)))continue;for(let e of(o.push(s),s.bones))e._linkedTransformNode&&(e._linkedTransformNode=i[n[e._linkedTransformNode.uniqueId]])}a.skeletons.push(s)}for(let t of this.animationGroups){if(l.predicate&&!l.predicate(t))continue;let s=t.clone(e?e(t.name):"Clone of "+t.name,e=>i[n[e.uniqueId]]||e);a.animationGroups.push(s)}return a}addAllToScene(){if(!this._wasAddedToScene){for(let e of(this._isValidHierarchy()||eZ.Tools.Warn("SceneSerializer.addAllToScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!0,this.addToScene(null),this.environmentTexture&&(this.scene.environmentTexture=this.environmentTexture),this.scene._serializableComponents))e.addFromContainer(this);this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null}}addToScene(e=null){let t=[];for(let s of this.cameras)(!e||e(s))&&(this.scene.addCamera(s),t.push(s));for(let s of this.lights)(!e||e(s))&&(this.scene.addLight(s),t.push(s));for(let s of this.meshes)(!e||e(s))&&(this.scene.addMesh(s),t.push(s));for(let t of this.skeletons)(!e||e(t))&&this.scene.addSkeleton(t);for(let t of this.animations)(!e||e(t))&&this.scene.addAnimation(t);for(let t of this.animationGroups)(!e||e(t))&&this.scene.addAnimationGroup(t);for(let t of this.multiMaterials)(!e||e(t))&&this.scene.addMultiMaterial(t);for(let t of this.materials)(!e||e(t))&&this.scene.addMaterial(t);for(let t of this.morphTargetManagers)(!e||e(t))&&this.scene.addMorphTargetManager(t);for(let t of this.geometries)(!e||e(t))&&this.scene.addGeometry(t);for(let s of this.transformNodes)(!e||e(s))&&(this.scene.addTransformNode(s),t.push(s));for(let t of this.actionManagers)(!e||e(t))&&this.scene.addActionManager(t);for(let t of this.textures)(!e||e(t))&&this.scene.addTexture(t);for(let t of this.reflectionProbes)(!e||e(t))&&this.scene.addReflectionProbe(t);for(let t of this.spriteManagers)(!e||e(t))&&(this.scene.spriteManagers||(this.scene.spriteManagers=[]),this.scene.spriteManagers.push(t));if(t.length){let e=new Set(this.scene.meshes);for(let t of this.scene.lights)e.add(t);for(let t of this.scene.cameras)e.add(t);for(let t of this.scene.transformNodes)e.add(t);for(let t of this.skeletons)for(let s of t.bones)e.add(s);for(let s of t)s.parent&&!e.has(s.parent)&&(s.setParent?s.setParent(null):s.parent=null)}}removeAllFromScene(){for(let e of(this._isValidHierarchy()||eZ.Tools.Warn("SceneSerializer.removeAllFromScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!1,this.removeFromScene(null),this.environmentTexture===this.scene.environmentTexture&&(this.scene.environmentTexture=null),this.scene._serializableComponents))e.removeFromContainer(this)}removeFromScene(e=null){for(let t of this.cameras)(!e||e(t))&&this.scene.removeCamera(t);for(let t of this.lights)(!e||e(t))&&this.scene.removeLight(t);for(let t of this.meshes)(!e||e(t))&&this.scene.removeMesh(t,!0);for(let t of this.skeletons)(!e||e(t))&&this.scene.removeSkeleton(t);for(let t of this.animations)(!e||e(t))&&this.scene.removeAnimation(t);for(let t of this.animationGroups)(!e||e(t))&&this.scene.removeAnimationGroup(t);for(let t of this.multiMaterials)(!e||e(t))&&this.scene.removeMultiMaterial(t);for(let t of this.materials)(!e||e(t))&&this.scene.removeMaterial(t);for(let t of this.morphTargetManagers)(!e||e(t))&&this.scene.removeMorphTargetManager(t);for(let t of this.geometries)(!e||e(t))&&this.scene.removeGeometry(t);for(let t of this.transformNodes)(!e||e(t))&&this.scene.removeTransformNode(t);for(let t of this.actionManagers)(!e||e(t))&&this.scene.removeActionManager(t);for(let t of this.textures)(!e||e(t))&&this.scene.removeTexture(t);for(let t of this.reflectionProbes)(!e||e(t))&&this.scene.removeReflectionProbe(t);for(let t of this.spriteManagers)if((!e||e(t))&&this.scene.spriteManagers){let e=this.scene.spriteManagers.indexOf(t);-1!==e&&this.scene.spriteManagers.splice(e,1)}}dispose(){for(let e of this.cameras.slice(0))e.dispose();for(let e of(this.cameras.length=0,this.lights.slice(0)))e.dispose();for(let e of(this.lights.length=0,this.meshes.slice(0)))e.dispose();for(let e of(this.meshes.length=0,this.skeletons.slice(0)))e.dispose();for(let e of(this.skeletons.length=0,this.animationGroups.slice(0)))e.dispose();for(let e of(this.animationGroups.length=0,this.multiMaterials.slice(0)))e.dispose();for(let e of(this.multiMaterials.length=0,this.materials.slice(0)))e.dispose();for(let e of(this.materials.length=0,this.geometries.slice(0)))e.dispose();for(let e of(this.geometries.length=0,this.transformNodes.slice(0)))e.dispose();for(let e of(this.transformNodes.length=0,this.actionManagers.slice(0)))e.dispose();for(let e of(this.actionManagers.length=0,this.textures.slice(0)))e.dispose();for(let e of(this.textures.length=0,this.reflectionProbes.slice(0)))e.dispose();for(let e of(this.reflectionProbes.length=0,this.morphTargetManagers.slice(0)))e.dispose();for(let e of(this.morphTargetManagers.length=0,this.spriteManagers.slice(0)))e.dispose();for(let e of(this.spriteManagers.length=0,this.environmentTexture&&(this.environmentTexture.dispose(),this.environmentTexture=null),this.scene._serializableComponents))e.removeFromContainer(this,!0);this._onContextRestoredObserver&&(this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}_moveAssets(e,t,s){if(e&&t)for(let n of e){let e=!0;if(s){for(let t of s)if(n===t){e=!1;break}}e&&(t.push(n),n._parentContainer=this)}}moveAllFromScene(e){for(let t in this._wasAddedToScene=!1,void 0===e&&(e=new te),this)Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=this[t]||("_environmentTexture"===t?null:[]),this._moveAssets(this.scene[t],this[t],e[t]));this.environmentTexture=this.scene.environmentTexture,this.removeAllFromScene()}createRootMesh(){let e=new e0.Mesh("assetContainerRootMesh",this.scene);for(let t of this.meshes)t.parent||e.addChild(t);return this.meshes.unshift(e),e}mergeAnimationsTo(e=e8.EngineStore.LastCreatedScene,t,s=null){if(!e)return e3.Logger.Error("No scene available to merge animations to"),[];let n=s||(t=>{let s,n=t.animations.length?t.animations[0].targetProperty:"",i=t.name.split(".").join("").split("_primitive")[0];switch(n){case"position":case"rotationQuaternion":s=e.getTransformNodeByName(t.name)||e.getTransformNodeByName(i);break;case"influence":s=e.getMorphTargetByName(t.name)||e.getMorphTargetByName(i);break;default:s=e.getNodeByName(t.name)||e.getNodeByName(i)}return s});for(let e of this.getNodes()){let t=n(e);if(null!==t){for(let s of e.animations)for(let e of t.animations.filter(e=>e.targetProperty===s.targetProperty)){let s=t.animations.indexOf(e,0);s>-1&&t.animations.splice(s,1)}t.animations=t.animations.concat(e.animations)}}let i=[];for(let e of this.animationGroups.slice())for(let t of(i.push(e.clone(e.name,n)),e.animatables))t.stop();for(let s of t){let t=n(s.target);t&&(e.beginAnimation(t,s.fromFrame,s.toFrame,s.loopAnimation,s.speedRatio,s.onAnimationEnd?s.onAnimationEnd:void 0,void 0,!0,void 0,s.onAnimationLoop?s.onAnimationLoop:void 0),e.stopAnimation(s.target))}return i}populateRootNodes(){for(let e of(this.rootNodes.length=0,this.meshes))e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.transformNodes)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.lights)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e);for(let e of this.cameras)e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)}addAllAssetsToContainer(e){if(!e)return;let t=[],s=new Set;for(t.push(e);t.length>0;){let e=t.pop();if(e instanceof e0.Mesh?(e.geometry&&-1===this.geometries.indexOf(e.geometry)&&this.geometries.push(e.geometry),this.meshes.push(e)):e instanceof e4.InstancedMesh?this.meshes.push(e):e instanceof e1.TransformNode?this.transformNodes.push(e):e instanceof e5.Light?this.lights.push(e):e instanceof e7.Camera&&this.cameras.push(e),e instanceof e2.AbstractMesh){if(e.material&&-1===this.materials.indexOf(e.material))for(let t of(this.materials.push(e.material),e.material.getActiveTextures()))-1===this.textures.indexOf(t)&&this.textures.push(t);e.skeleton&&-1===this.skeletons.indexOf(e.skeleton)&&this.skeletons.push(e.skeleton),e.morphTargetManager&&-1===this.morphTargetManagers.indexOf(e.morphTargetManager)&&this.morphTargetManagers.push(e.morphTargetManager)}for(let n of e.getChildren())s.has(n)||t.push(n);s.add(e)}this.populateRootNodes()}_getByTags(e,t,s){if(void 0===t)return e;let n=[];for(let i in e){let a=e[i];e9.Tags&&e9.Tags.MatchesQuery(a,t)&&(!s||s(a))&&n.push(a)}return n}getMeshesByTags(e,t){return this._getByTags(this.meshes,e,t)}getCamerasByTags(e,t){return this._getByTags(this.cameras,e,t)}getLightsByTags(e,t){return this._getByTags(this.lights,e,t)}getMaterialsByTags(e,t){return this._getByTags(this.materials,e,t).concat(this._getByTags(this.multiMaterials,e,t))}getTransformNodesByTags(e,t){return this._getByTags(this.transformNodes,e,t)}}var tn=e.i(95708);class ti{constructor(e){this.byteOffset=0,this.buffer=e}async loadAsync(e){let t=await this.buffer.readAsync(this.byteOffset,e);this._dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),this._dataByteOffset=0}readUint32(){let e=this._dataView.getUint32(this._dataByteOffset,!0);return this._dataByteOffset+=4,this.byteOffset+=4,e}readUint8Array(e){let t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._dataByteOffset,e);return this._dataByteOffset+=e,this.byteOffset+=e,t}readString(e){return(0,tn.Decode)(this.readUint8Array(e))}skipBytes(e){this._dataByteOffset+=e,this.byteOffset+=e}}function ta(e,t,s,n){let i={externalResourceFunction:n};return s&&(i.uri="file:"===t?s:t+s),ArrayBuffer.isView(e)?GLTFValidator.validateBytes(e,i):GLTFValidator.validateString(e,i)}function to(){let e=[];onmessage=t=>{let s=t.data;switch(s.id){case"init":importScripts(s.url);break;case"validate":ta(s.data,s.rootUrl,s.fileName,t=>new Promise((s,n)=>{let i=e.length;e.push({resolve:s,reject:n}),postMessage({id:"getExternalResource",index:i,uri:t})})).then(e=>{postMessage({id:"validate.resolve",value:e})},e=>{postMessage({id:"validate.reject",reason:e})});break;case"getExternalResource.resolve":e[s.index].resolve(s.value);break;case"getExternalResource.reject":e[s.index].reject(s.reason)}}}class tr{static ValidateAsync(e,t,s,n){return"function"==typeof Worker?new Promise((i,a)=>{let o=`${ta}(${to})()`,r=new Worker(URL.createObjectURL(new Blob([o],{type:"application/javascript"}))),l=e=>{r.removeEventListener("error",l),r.removeEventListener("message",h),a(e)},h=e=>{let t=e.data;switch(t.id){case"getExternalResource":n(t.uri).then(e=>{r.postMessage({id:"getExternalResource.resolve",index:t.index,value:e},[e.buffer])},e=>{r.postMessage({id:"getExternalResource.reject",index:t.index,reason:e})});break;case"validate.resolve":r.removeEventListener("error",l),r.removeEventListener("message",h),tr._LastResults=t.value,i(t.value),r.terminate();break;case"validate.reject":r.removeEventListener("error",l),r.removeEventListener("message",h),a(t.reason),r.terminate()}};if(r.addEventListener("error",l),r.addEventListener("message",h),r.postMessage({id:"init",url:eZ.Tools.GetBabylonScriptURL(this.Configuration.url)}),ArrayBuffer.isView(e)){let n=e.slice();r.postMessage({id:"validate",data:n,rootUrl:t,fileName:s},[n.buffer])}else r.postMessage({id:"validate",data:e,rootUrl:t,fileName:s})}):(this._LoadScriptPromise||(this._LoadScriptPromise=eZ.Tools.LoadBabylonScriptAsync(this.Configuration.url)),this._LoadScriptPromise.then(()=>ta(e,t,s,n)))}}tr.Configuration={url:`${eZ.Tools._DefaultCdnUrl}/gltf_validator.js`},tr._LastResults=null,e.s(["GLTFValidation",0,tr],85920);let tl="Z2xURg",th="gltf",tu={".gltf":{isBinary:!1,mimeType:"model/gltf+json"},".glb":{isBinary:!0,mimeType:"model/gltf-binary"}};var tc=e.i(33169),td=e.i(30465);function tp(e,t,s){try{return Promise.resolve(new Uint8Array(e,t,s))}catch(e){return Promise.reject(e)}}(eb=eG||(eG={}))[eb.AUTO=0]="AUTO",eb[eb.FORCE_RIGHT_HANDED=1]="FORCE_RIGHT_HANDED",(eT=eD||(eD={}))[eT.NONE=0]="NONE",eT[eT.FIRST=1]="FIRST",eT[eT.ALL=2]="ALL",(eA=eV||(eV={}))[eA.LOADING=0]="LOADING",eA[eA.READY=1]="READY",eA[eA.COMPLETE=2]="COMPLETE";class t_{constructor(){this.alwaysComputeBoundingBox=!1,this.alwaysComputeSkeletonRootNode=!1,this.animationStartMode=eD.FIRST,this.compileMaterials=!1,this.compileShadowGenerators=!1,this.coordinateSystemMode=eG.AUTO,this.createInstances=!0,this.loadAllMaterials=!1,this.loadMorphTargets=!0,this.useMaxMorphTargetInfluencers=!0,this.loadNodeAnimations=!0,this.loadOnlyMaterials=!1,this.loadSkins=!0,this.skipMaterials=!1,this.targetFps=60,this.transparencyAsCoverage=!1,this.useClipPlane=!1,this.useGltfTextureNames=!1,this.useRangeRequests=!1,this.useSRGBBuffers=!0,this.validate=!1,this.useOpenPBR=!1,this.dontUseTransmissionHelper=!1}}let tm=new t_;class tf extends t_{constructor(){super(...arguments),this.extensionOptions={},this.preprocessUrlAsync=e=>Promise.resolve(e)}copyFrom(e){e&&(this.alwaysComputeBoundingBox=e.alwaysComputeBoundingBox??this.alwaysComputeBoundingBox,this.alwaysComputeSkeletonRootNode=e.alwaysComputeSkeletonRootNode??this.alwaysComputeSkeletonRootNode,this.animationStartMode=e.animationStartMode??this.animationStartMode,this.capturePerformanceCounters=e.capturePerformanceCounters??this.capturePerformanceCounters,this.compileMaterials=e.compileMaterials??this.compileMaterials,this.compileShadowGenerators=e.compileShadowGenerators??this.compileShadowGenerators,this.coordinateSystemMode=e.coordinateSystemMode??this.coordinateSystemMode,this.createInstances=e.createInstances??this.createInstances,this.customRootNode=e.customRootNode,this.extensionOptions=e.extensionOptions??this.extensionOptions,this.loadAllMaterials=e.loadAllMaterials??this.loadAllMaterials,this.loadMorphTargets=e.loadMorphTargets??this.loadMorphTargets,this.loadNodeAnimations=e.loadNodeAnimations??this.loadNodeAnimations,this.loadOnlyMaterials=e.loadOnlyMaterials??this.loadOnlyMaterials,this.loadSkins=e.loadSkins??this.loadSkins,this.loggingEnabled=e.loggingEnabled??this.loggingEnabled,this.onCameraLoaded=e.onCameraLoaded,this.onMaterialLoaded=e.onMaterialLoaded,this.onMeshLoaded=e.onMeshLoaded,this.onParsed=e.onParsed,this.onSkinLoaded=e.onSkinLoaded,this.onTextureLoaded=e.onTextureLoaded,this.onValidated=e.onValidated,this.preprocessUrlAsync=e.preprocessUrlAsync??this.preprocessUrlAsync,this.skipMaterials=e.skipMaterials??this.skipMaterials,this.targetFps=e.targetFps??this.targetFps,this.transparencyAsCoverage=e.transparencyAsCoverage??this.transparencyAsCoverage,this.useClipPlane=e.useClipPlane??this.useClipPlane,this.useGltfTextureNames=e.useGltfTextureNames??this.useGltfTextureNames,this.useMaxMorphTargetInfluencers=e.useMaxMorphTargetInfluencers??this.useMaxMorphTargetInfluencers,this.useOpenPBR=e.useOpenPBR??this.useOpenPBR,this.useRangeRequests=e.useRangeRequests??this.useRangeRequests,this.useSRGBBuffers=e.useSRGBBuffers??this.useSRGBBuffers,this.validate=e.validate??this.validate,this.dontUseTransmissionHelper=e.dontUseTransmissionHelper??this.dontUseTransmissionHelper)}}class tg extends tf{constructor(e){super(),this.onParsedObservable=new eY.Observable,this.onMeshLoadedObservable=new eY.Observable,this.onSkinLoadedObservable=new eY.Observable,this.onTextureLoadedObservable=new eY.Observable,this.onMaterialLoadedObservable=new eY.Observable,this.onCameraLoadedObservable=new eY.Observable,this.onCompleteObservable=new eY.Observable,this.onErrorObservable=new eY.Observable,this.onDisposeObservable=new eY.Observable,this.onExtensionLoadedObservable=new eY.Observable,this.onValidatedObservable=new eY.Observable,this._loader=null,this._state=null,this._requests=[],this.name=th,this.extensions=tu,this.onLoaderStateChangedObservable=new eY.Observable,this._logIndentLevel=0,this._loggingEnabled=!1,this._log=this._logDisabled,this._capturePerformanceCounters=!1,this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled,this.copyFrom(Object.assign({...tm},e))}set onParsed(e){this._onParsedObserver&&this.onParsedObservable.remove(this._onParsedObserver),e&&(this._onParsedObserver=this.onParsedObservable.add(e))}set onMeshLoaded(e){this._onMeshLoadedObserver&&this.onMeshLoadedObservable.remove(this._onMeshLoadedObserver),e&&(this._onMeshLoadedObserver=this.onMeshLoadedObservable.add(e))}set onSkinLoaded(e){this._onSkinLoadedObserver&&this.onSkinLoadedObservable.remove(this._onSkinLoadedObserver),e&&(this._onSkinLoadedObserver=this.onSkinLoadedObservable.add(t=>e(t.node,t.skinnedNode)))}set onTextureLoaded(e){this._onTextureLoadedObserver&&this.onTextureLoadedObservable.remove(this._onTextureLoadedObserver),e&&(this._onTextureLoadedObserver=this.onTextureLoadedObservable.add(e))}set onMaterialLoaded(e){this._onMaterialLoadedObserver&&this.onMaterialLoadedObservable.remove(this._onMaterialLoadedObserver),e&&(this._onMaterialLoadedObserver=this.onMaterialLoadedObservable.add(e))}set onCameraLoaded(e){this._onCameraLoadedObserver&&this.onCameraLoadedObservable.remove(this._onCameraLoadedObserver),e&&(this._onCameraLoadedObserver=this.onCameraLoadedObservable.add(e))}set onComplete(e){this._onCompleteObserver&&this.onCompleteObservable.remove(this._onCompleteObserver),this._onCompleteObserver=this.onCompleteObservable.add(e)}set onError(e){this._onErrorObserver&&this.onErrorObservable.remove(this._onErrorObserver),this._onErrorObserver=this.onErrorObservable.add(e)}set onDispose(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)}set onExtensionLoaded(e){this._onExtensionLoadedObserver&&this.onExtensionLoadedObservable.remove(this._onExtensionLoadedObserver),this._onExtensionLoadedObserver=this.onExtensionLoadedObservable.add(e)}get loggingEnabled(){return this._loggingEnabled}set loggingEnabled(e){this._loggingEnabled!==e&&(this._loggingEnabled=e,this._loggingEnabled?this._log=this._logEnabled:this._log=this._logDisabled)}get capturePerformanceCounters(){return this._capturePerformanceCounters}set capturePerformanceCounters(e){this._capturePerformanceCounters!==e&&(this._capturePerformanceCounters=e,this._capturePerformanceCounters?(this._startPerformanceCounter=this._startPerformanceCounterEnabled,this._endPerformanceCounter=this._endPerformanceCounterEnabled):(this._startPerformanceCounter=this._startPerformanceCounterDisabled,this._endPerformanceCounter=this._endPerformanceCounterDisabled))}set onValidated(e){this._onValidatedObserver&&this.onValidatedObservable.remove(this._onValidatedObserver),this._onValidatedObserver=this.onValidatedObservable.add(e)}dispose(){for(let e of(this._loader&&(this._loader.dispose(),this._loader=null),this._requests))e.abort();this._requests.length=0,delete this._progressCallback,this.preprocessUrlAsync=e=>Promise.resolve(e),this.onMeshLoadedObservable.clear(),this.onSkinLoadedObservable.clear(),this.onTextureLoadedObservable.clear(),this.onMaterialLoadedObservable.clear(),this.onCameraLoadedObservable.clear(),this.onCompleteObservable.clear(),this.onExtensionLoadedObservable.clear(),this.onDisposeObservable.notifyObservers(void 0),this.onDisposeObservable.clear()}loadFile(e,t,s,n,i,a,o,r){if(ArrayBuffer.isView(t))return this._loadBinary(e,t,s,n,o,r),null;this._progressCallback=i;let l=t.name||eZ.Tools.GetFilename(t);if(!a)return this._loadFile(e,t,t=>{try{this._validate(e,t,s,l),n({json:this._parseJson(t)})}catch{o&&o()}},!1,o);if(this.useRangeRequests){this.validate&&e3.Logger.Warn("glTF validation is not supported when range requests are enabled");let s={abort:()=>{},onCompleteObservable:new eY.Observable};return this._unpackBinaryAsync(new ti({readAsync:(s,n)=>new Promise((i,a)=>{this._loadFile(e,t,e=>{i(new Uint8Array(e))},!0,e=>{a(e)},e=>{e.setRequestHeader("Range",`bytes=${s}-${s+n-1}`)})}),byteLength:0})).then(e=>{s.onCompleteObservable.notifyObservers(s),n(e)},o?e=>o(void 0,e):void 0),s}return this._loadFile(e,t,t=>{this._validate(e,new Uint8Array(t,0,t.byteLength),s,l),this._unpackBinaryAsync(new ti({readAsync:(e,s)=>tp(t,e,s),byteLength:t.byteLength})).then(e=>{n(e)},o?e=>o(void 0,e):void 0)},!0,o)}_loadBinary(e,t,s,n,i,a){this._validate(e,new Uint8Array(t.buffer,t.byteOffset,t.byteLength),s,a),this._unpackBinaryAsync(new ti({readAsync:(e,s)=>(function(e,t,s){try{if(t<0||t>=e.byteLength)throw RangeError("Offset is out of range.");if(t+s>e.byteLength)throw RangeError("Length is out of range.");return Promise.resolve(new Uint8Array(e.buffer,e.byteOffset+t,s))}catch(e){return Promise.reject(e)}})(t,e,s),byteLength:t.byteLength})).then(e=>{n(e)},i?e=>i(void 0,e):void 0)}importMeshAsync(e,t,s,n,i,a){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(s),this.onParsedObservable.clear(),this._log(`Loading ${a||""}`),this._loader=this._getLoader(s),this._loader.importMeshAsync(e,t,null,s,n,i,a)))}loadAsync(e,t,s,n,i){return Promise.resolve().then(()=>(this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${i||""}`),this._loader=this._getLoader(t),this._loader.loadAsync(e,t,s,n,i)))}loadAssetContainerAsync(e,t,s,n,i){return Promise.resolve().then(()=>{this.onParsedObservable.notifyObservers(t),this.onParsedObservable.clear(),this._log(`Loading ${i||""}`),this._loader=this._getLoader(t);let a=new ts(e),o=[];this.onMaterialLoadedObservable.add(e=>{o.push(e)});let r=[];this.onTextureLoadedObservable.add(e=>{r.push(e)});let l=[];this.onCameraLoadedObservable.add(e=>{l.push(e)});let h=[];return this.onMeshLoadedObservable.add(e=>{e.morphTargetManager&&h.push(e.morphTargetManager)}),this._loader.importMeshAsync(null,e,a,t,s,n,i).then(e=>(Array.prototype.push.apply(a.geometries,e.geometries),Array.prototype.push.apply(a.meshes,e.meshes),Array.prototype.push.apply(a.particleSystems,e.particleSystems),Array.prototype.push.apply(a.skeletons,e.skeletons),Array.prototype.push.apply(a.animationGroups,e.animationGroups),Array.prototype.push.apply(a.materials,o),Array.prototype.push.apply(a.textures,r),Array.prototype.push.apply(a.lights,e.lights),Array.prototype.push.apply(a.transformNodes,e.transformNodes),Array.prototype.push.apply(a.cameras,l),Array.prototype.push.apply(a.morphTargetManagers,h),a))})}canDirectLoad(e){let t;return -1!==(t=e).indexOf("asset")&&-1!==t.indexOf("version")||t.startsWith("data:base64,"+tl)||t.startsWith("data:;base64,"+tl)||t.startsWith("data:application/octet-stream;base64,"+tl)||t.startsWith("data:model/gltf-binary;base64,"+tl)}directLoad(e,t){if(t.startsWith("base64,"+tl)||t.startsWith(";base64,"+tl)||t.startsWith("application/octet-stream;base64,"+tl)||t.startsWith("model/gltf-binary;base64,"+tl)){let s=(0,tc.DecodeBase64UrlToBinary)(t);return this._validate(e,new Uint8Array(s,0,s.byteLength)),this._unpackBinaryAsync(new ti({readAsync:(e,t)=>tp(s,e,t),byteLength:s.byteLength}))}return this._validate(e,t),Promise.resolve({json:this._parseJson(t)})}createPlugin(e){return new tg(e[th])}get loaderState(){return this._state}whenCompleteAsync(){return new Promise((e,t)=>{this.onCompleteObservable.addOnce(()=>{e()}),this.onErrorObservable.addOnce(e=>{t(e)})})}_setState(e){this._state!==e&&(this._state=e,this.onLoaderStateChangedObservable.notifyObservers(this._state),this._log(eV[this._state]))}_loadFile(e,t,s,n,i,a){let o=e._loadFile(t,s,e=>{this._onProgress(e,o)},!0,n,i,a);return o.onCompleteObservable.add(()=>{o._lengthComputable=!0,o._total=o._loaded}),this._requests.push(o),o}_onProgress(e,t){if(!this._progressCallback)return;t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;let s=!0,n=0,i=0;for(let e of this._requests){if(void 0===e._lengthComputable||void 0===e._loaded||void 0===e._total)return;s=s&&e._lengthComputable,n+=e._loaded,i+=e._total}this._progressCallback({lengthComputable:s,loaded:n,total:s?i:0})}_validate(e,t,s="",n=""){this.validate&&(this._startPerformanceCounter("Validate JSON"),tr.ValidateAsync(t,s,n,t=>this.preprocessUrlAsync(s+t).then(t=>e._loadFileAsync(t,void 0,!0,!0).then(e=>new Uint8Array(e,0,e.byteLength)))).then(e=>{this._endPerformanceCounter("Validate JSON"),this.onValidatedObservable.notifyObservers(e),this.onValidatedObservable.clear()},e=>{this._endPerformanceCounter("Validate JSON"),eZ.Tools.Warn(`Failed to validate: ${e.message}`),this.onValidatedObservable.clear()}))}_getLoader(e){let t=e.json.asset||{};this._log(`Asset version: ${t.version}`),t.minVersion&&this._log(`Asset minimum version: ${t.minVersion}`),t.generator&&this._log(`Asset generator: ${t.generator}`);let s=tg._parseVersion(t.version);if(!s)throw Error("Invalid version: "+t.version);if(void 0!==t.minVersion){let e=tg._parseVersion(t.minVersion);if(!e)throw Error("Invalid minimum version: "+t.minVersion);if(tg._compareVersion(e,{major:2,minor:0})>0)throw Error("Incompatible minimum version: "+t.minVersion)}let n={1:tg._CreateGLTF1Loader,2:tg._CreateGLTF2Loader}[s.major];if(!n)throw Error("Unsupported version: "+t.version);return n(this)}_parseJson(e){this._startPerformanceCounter("Parse JSON"),this._log(`JSON length: ${e.length}`);let t=JSON.parse(e);return this._endPerformanceCounter("Parse JSON"),t}_unpackBinaryAsync(e){return this._startPerformanceCounter("Unpack Binary"),e.loadAsync(20).then(()=>{let t,s=e.readUint32();if(0x46546c67!==s)throw new td.RuntimeError("Unexpected magic: "+s,td.ErrorCodes.GLTFLoaderUnexpectedMagicError);let n=e.readUint32();this.loggingEnabled&&this._log(`Binary version: ${n}`);let i=e.readUint32();switch(!this.useRangeRequests&&i!==e.buffer.byteLength&&e3.Logger.Warn(`Length in header does not match actual data length: ${i} != ${e.buffer.byteLength}`),n){case 1:t=this._unpackBinaryV1Async(e,i);break;case 2:t=this._unpackBinaryV2Async(e,i);break;default:throw Error("Unsupported version: "+n)}return this._endPerformanceCounter("Unpack Binary"),t})}_unpackBinaryV1Async(e,t){let s=e.readUint32(),n=e.readUint32();if(0!==n)throw Error(`Unexpected content format: ${n}`);let i=t-e.byteOffset,a={json:this._parseJson(e.readString(s)),bin:null};if(0!==i){let t=e.byteOffset;a.bin={readAsync:(s,n)=>e.buffer.readAsync(t+s,n),byteLength:i}}return Promise.resolve(a)}_unpackBinaryV2Async(e,t){let s=e.readUint32();if(0x4e4f534a!==e.readUint32())throw Error("First chunk format is not JSON");return e.byteOffset+s===t?e.loadAsync(s).then(()=>({json:this._parseJson(e.readString(s)),bin:null})):e.loadAsync(s+8).then(()=>{let n={json:this._parseJson(e.readString(s)),bin:null},i=()=>{let s=e.readUint32();switch(e.readUint32()){case 0x4e4f534a:throw Error("Unexpected JSON chunk");case 5130562:{let t=e.byteOffset;n.bin={readAsync:(s,n)=>e.buffer.readAsync(t+s,n),byteLength:s},e.skipBytes(s);break}default:e.skipBytes(s)}return e.byteOffset!==t?e.loadAsync(8).then(i):Promise.resolve(n)};return i()})}static _parseVersion(e){if("1.0"===e||"1.0.1"===e)return{major:1,minor:0};let t=(e+"").match(/^(\d+)\.(\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null}static _compareVersion(e,t){return e.major>t.major?1:e.major<t.major?-1:e.minor>t.minor?1:e.minor<t.minor?-1:0}_logOpen(e){this._log(e),this._logIndentLevel++}_logClose(){--this._logIndentLevel}_logEnabled(e){let t=tg._logSpaces.substring(0,2*this._logIndentLevel);e3.Logger.Log(`${t}${e}`)}_logDisabled(e){}_startPerformanceCounterEnabled(e){eZ.Tools.StartPerformanceCounter(e)}_startPerformanceCounterDisabled(e){}_endPerformanceCounterEnabled(e){eZ.Tools.EndPerformanceCounter(e)}_endPerformanceCounterDisabled(e){}}tg.IncrementalLoading=!0,tg.HomogeneousCoordinates=!1,tg._logSpaces=" ";let ty=!1;function tb(){ty||(ty=!0,(0,eJ.RegisterSceneLoaderPlugin)(new tg))}e.s(["GLTFFileLoader",0,tg,"GLTFLoaderAnimationStartMode",0,eD,"GLTFLoaderCoordinateSystemMode",0,eG,"GLTFLoaderDefaultOptions",0,tm,"GLTFLoaderState",0,eV,"RegisterGLTFFileLoader",0,tb],56149),tb(),e.s([],73711),(ex=eK||(eK={}))[ex.BYTE=5120]="BYTE",ex[ex.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",ex[ex.SHORT=5122]="SHORT",ex[ex.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",ex[ex.FLOAT=5126]="FLOAT",(ev=eH||(eH={}))[ev.FRAGMENT=35632]="FRAGMENT",ev[ev.VERTEX=35633]="VERTEX",(ew=eU||(eU={}))[ew.BYTE=5120]="BYTE",ew[ew.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",ew[ew.SHORT=5122]="SHORT",ew[ew.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",ew[ew.INT=5124]="INT",ew[ew.UNSIGNED_INT=5125]="UNSIGNED_INT",ew[ew.FLOAT=5126]="FLOAT",ew[ew.FLOAT_VEC2=35664]="FLOAT_VEC2",ew[ew.FLOAT_VEC3=35665]="FLOAT_VEC3",ew[ew.FLOAT_VEC4=35666]="FLOAT_VEC4",ew[ew.INT_VEC2=35667]="INT_VEC2",ew[ew.INT_VEC3=35668]="INT_VEC3",ew[ew.INT_VEC4=35669]="INT_VEC4",ew[ew.BOOL=35670]="BOOL",ew[ew.BOOL_VEC2=35671]="BOOL_VEC2",ew[ew.BOOL_VEC3=35672]="BOOL_VEC3",ew[ew.BOOL_VEC4=35673]="BOOL_VEC4",ew[ew.FLOAT_MAT2=35674]="FLOAT_MAT2",ew[ew.FLOAT_MAT3=35675]="FLOAT_MAT3",ew[ew.FLOAT_MAT4=35676]="FLOAT_MAT4",ew[ew.SAMPLER_2D=35678]="SAMPLER_2D",(eM=e$||(e$={}))[eM.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",eM[eM.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",eM[eM.REPEAT=10497]="REPEAT",(eC=ez||(ez={}))[eC.NEAREST=9728]="NEAREST",eC[eC.LINEAR=9728]="LINEAR",eC[eC.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",eC[eC.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",eC[eC.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",eC[eC.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",(eS=eq||(eq={}))[eS.ALPHA=6406]="ALPHA",eS[eS.RGB=6407]="RGB",eS[eS.RGBA=6408]="RGBA",eS[eS.LUMINANCE=6409]="LUMINANCE",eS[eS.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",(eF=eW||(eW={}))[eF.FRONT=1028]="FRONT",eF[eF.BACK=1029]="BACK",eF[eF.FRONT_AND_BACK=1032]="FRONT_AND_BACK",(eE=ej||(ej={}))[eE.ZERO=0]="ZERO",eE[eE.ONE=1]="ONE",eE[eE.SRC_COLOR=768]="SRC_COLOR",eE[eE.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",eE[eE.DST_COLOR=774]="DST_COLOR",eE[eE.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",eE[eE.SRC_ALPHA=770]="SRC_ALPHA",eE[eE.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",eE[eE.DST_ALPHA=772]="DST_ALPHA",eE[eE.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",eE[eE.CONSTANT_COLOR=32769]="CONSTANT_COLOR",eE[eE.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",eE[eE.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",eE[eE.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",eE[eE.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e.s(["EBlendingFunction",0,ej,"EComponentType",0,eK,"ECullingType",0,eW,"EParameterType",0,eU,"EShaderType",0,eH,"ETextureFilterType",0,ez,"ETextureFormat",0,eq,"ETextureWrapMode",0,e$],29752),e.i(76608);var tT=e.i(72003);e.i(53714);var tA=e.i(64073);(0,eZ.RegisterTools)(),(0,e7.RegisterCamera)();var tx=e.i(742);(0,tx.RegisterFreeCamera)();var tv=e.i(6826);(0,tv.RegisterAnimation)();var tw=e.i(40092),tM=e.i(74640),tC=e.i(45737),tS=e.i(13645);class tF{get useTextureToStoreBoneMatrices(){return this._useTextureToStoreBoneMatrices}set useTextureToStoreBoneMatrices(e){this._useTextureToStoreBoneMatrices=e,this._markAsDirty()}get animationPropertiesOverride(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}get isUsingTextureForMatrices(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones}get uniqueId(){return this._uniqueId}constructor(e,t,s){this.name=e,this.id=t,this.bones=[],this.needInitialSkinMatrix=!1,this._isDirty=!0,this._meshesWithPoseMatrix=[],this._identity=tT.Matrix.Identity(),this._currentRenderId=-1,this._textureWidth=0,this._textureHeight=1,this._ranges={},this._absoluteTransformIsDirty=!0,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this._parentContainer=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new eY.Observable,this.metadata=null,this.bones=[],this._scene=s||e8.EngineStore.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;const n=this._scene.getEngine().getCaps();this._canUseTextureForBones=n.textureFloat&&n.maxVertexTextureImageUnits>0}getClassName(){return"Skeleton"}getChildren(){return this.bones.filter(e=>!e.getParent())}getTransformMatrices(e){if(this.needInitialSkinMatrix){if(!e)throw Error("getTransformMatrices: When using the needInitialSkinMatrix flag, a mesh must be provided");return e._bonesTransformMatrices||this.prepare(!0),e._bonesTransformMatrices}return(!this._transformMatrices||this._isDirty)&&this.prepare(!this._transformMatrices),this._transformMatrices}getTransformMatrixTexture(e){return this.needInitialSkinMatrix&&e._transformMatrixTexture?e._transformMatrixTexture:this._transformMatrixTexture}getScene(){return this._scene}toString(e){let t=`Name: ${this.name}, nBones: ${this.bones.length}`;if(t+=`, nAnimationRanges: ${this._ranges?Object.keys(this._ranges).length:"none"}`,e){t+=", Ranges: {";let e=!0;for(let s in this._ranges)e&&(t+=", ",e=!1),t+=s;t+="}"}return t}getBoneIndexByName(e){for(let t=0,s=this.bones.length;t<s;t++)if(this.bones[t].name===e)return t;return -1}findBoneFromLinkedTransformNode(e){for(let t of this.bones)if(t._linkedTransformNode===e)return t;return null}findBoneFromLinkedTransformNodeName(e){for(let t of this.bones)if(t._linkedTransformNode&&t._linkedTransformNode.name===e)return t;return null}createAnimationRange(e,t,s){if(!this._ranges[e]){this._ranges[e]=new tC.AnimationRange(e,t,s);for(let n=0,i=this.bones.length;n<i;n++)this.bones[n].animations[0]&&this.bones[n].animations[0].createRange(e,t,s)}}deleteAnimationRange(e,t=!0){for(let s=0,n=this.bones.length;s<n;s++)this.bones[s].animations[0]&&this.bones[s].animations[0].deleteRange(e,t);this._ranges[e]=null}getAnimationRange(e){return this._ranges[e]||null}getAnimationRanges(){let e,t=[];for(e in this._ranges)t.push(this._ranges[e]);return t}copyAnimationRange(e,t,s=!1){let n,i;if(this._ranges[t]||!e.getAnimationRange(t))return!1;let a=!0,o=this._getHighestAnimationFrame()+1,r={},l=e.bones;for(i=0,n=l.length;i<n;i++)r[l[i].name]=l[i];this.bones.length!==l.length&&(e3.Logger.Warn(`copyAnimationRange: this rig has ${this.bones.length} bones, while source as ${l.length}`),a=!1);let h=s&&this.dimensionsAtRest&&e.dimensionsAtRest?this.dimensionsAtRest.divide(e.dimensionsAtRest):null;for(i=0,n=this.bones.length;i<n;i++){let e=this.bones[i].name,n=r[e];n?a=a&&this.bones[i].copyAnimationRange(n,t,o,s,h):(e3.Logger.Warn("copyAnimationRange: not same rig, missing source bone "+e),a=!1)}let u=e.getAnimationRange(t);return u&&(this._ranges[t]=new tC.AnimationRange(t,u.from+o,u.to+o)),a}returnToRest(){for(let e of this.bones)-1!==e._index&&e.returnToRest()}_getHighestAnimationFrame(){let e=0;for(let t=0,s=this.bones.length;t<s;t++)if(this.bones[t].animations[0]){let s=this.bones[t].animations[0].getHighestFrame();e<s&&(e=s)}return e}beginAnimation(e,t,s,n){let i=this.getAnimationRange(e);return i?this._scene.beginAnimation(this,i.from,i.to,t,s,n):null}static MakeAnimationAdditive(e,t=0,s){let n=e.getAnimationRange(s);if(!n)return null;let i=e._scene.getAllAnimatablesByTarget(e),a=null;for(let e=0;e<i.length;e++){let t=i[e];if(t.fromFrame===n?.from&&t.toFrame===n?.to){a=t;break}}let o=e.getAnimatables();for(let e=0;e<o.length;e++){let n=o[e].animations;if(n)for(let e=0;e<n.length;e++)(0,tv.AnimationMakeAnimationAdditive)(n[e],t,s)}return a&&(a.isAdditive=!0),e}_markAsDirty(){this._isDirty=!0,this._absoluteTransformIsDirty=!0}_registerMeshWithPoseMatrix(e){this._meshesWithPoseMatrix.push(e)}_unregisterMeshWithPoseMatrix(e){let t=this._meshesWithPoseMatrix.indexOf(e);t>-1&&this._meshesWithPoseMatrix.splice(t,1)}_computeTransformMatrices(e,t){this.onBeforeComputeObservable.notifyObservers(this);for(let s=0;s<this.bones.length;s++){let n=this.bones[s];n._childUpdateId++;let i=n.getParent();if(i?n.getLocalMatrix().multiplyToRef(i.getFinalMatrix(),n.getFinalMatrix()):t?n.getLocalMatrix().multiplyToRef(t,n.getFinalMatrix()):n.getFinalMatrix().copyFrom(n.getLocalMatrix()),-1!==n._index){let t=null===n._index?s:n._index;n.getAbsoluteInverseBindMatrix().multiplyToArray(n.getFinalMatrix(),e,16*t)}}this._identity.copyToArray(e,16*this.bones.length)}_computeTextureSize(){let e=4*(this.bones.length+1),t=e,s=1;if(this.isUsingTextureForMatrices){let n=-4&this.getScene().getEngine().getCaps().maxTextureSize;n<t&&(t=n,s=Math.ceil(e/n))}return this._textureWidth=t,this._textureHeight=s,this._textureWidth*this._textureHeight*4}prepare(e=!1){if(!e){let e=this.getScene().getRenderId();if(this._currentRenderId===e)return;this._currentRenderId=e}if(this._numBonesWithLinkedTransformNode>0){for(let e of this.bones)if(e._linkedTransformNode){let t=e._linkedTransformNode;e.position=t.position,t.rotationQuaternion?e.rotationQuaternion=t.rotationQuaternion:e.rotation=t.rotation,e.scaling=t.scaling}}let t=null;if(this.needInitialSkinMatrix)for(let e of this._meshesWithPoseMatrix){let s=e.getPoseMatrix(),n=this._isDirty;if(null===t&&(t=this._computeTextureSize()),e._bonesTransformMatrices&&e._bonesTransformMatrices.length===t||(e._bonesTransformMatrices=new Float32Array(t),n=!0),n){if(this._synchronizedWithMesh!==e){for(let t of(this._synchronizedWithMesh=e,this.bones))t.getParent()||(t.getBindMatrix().multiplyToRef(s,tT.TmpVectors.Matrix[1]),t._updateAbsoluteBindMatrices(tT.TmpVectors.Matrix[1]));if(this.isUsingTextureForMatrices){let s=e._transformMatrixTexture?.getSize(),n=s?s.width*s.height*4:0;e._transformMatrixTexture&&n===t||(e._transformMatrixTexture&&e._transformMatrixTexture.dispose(),e._transformMatrixTexture=tM.RawTexture.CreateRGBATexture(e._bonesTransformMatrices,this._textureWidth,this._textureHeight,this._scene,!1,!1,1,1))}}this._computeTransformMatrices(e._bonesTransformMatrices,s),this.isUsingTextureForMatrices&&e._transformMatrixTexture&&e._transformMatrixTexture.update(e._bonesTransformMatrices)}}else{if(!this._isDirty)return;null===t&&(t=this._computeTextureSize()),(!this._transformMatrices||this._transformMatrices.length!==t)&&(this._transformMatrices=new Float32Array(t),this.isUsingTextureForMatrices&&(this._transformMatrixTexture&&this._transformMatrixTexture.dispose(),this._transformMatrixTexture=tM.RawTexture.CreateRGBATexture(this._transformMatrices,this._textureWidth,this._textureHeight,this._scene,!1,!1,1,1))),this._computeTransformMatrices(this._transformMatrices,null),this.isUsingTextureForMatrices&&this._transformMatrixTexture&&this._transformMatrixTexture.update(this._transformMatrices)}this._isDirty=!1}getAnimatables(){if(!this._animatables||this._animatables.length!==this.bones.length){this._animatables=[];for(let e=0;e<this.bones.length;e++)this._animatables.push(this.bones[e])}return this._animatables}clone(e,t){let s=new tF(e,t||e,this._scene);s.needInitialSkinMatrix=this.needInitialSkinMatrix,s.metadata=this.metadata;for(let e=0;e<this.bones.length;e++){let t=this.bones[e],n=null,i=t.getParent();if(i){let e=this.bones.indexOf(i);n=s.bones[e]}let a=new tw.Bone(t.name,s,n,t.getBindMatrix().clone(),t.getRestMatrix().clone());a._index=t._index,t._linkedTransformNode&&a.linkTransformNode(t._linkedTransformNode),tS.DeepCopier.DeepCopy(t.animations,a.animations)}if(this._ranges)for(let e in s._ranges={},this._ranges){let t=this._ranges[e];t&&(s._ranges[e]=t.clone())}return this._isDirty=!0,s.prepare(!0),s}enableBlending(e=.01){for(let t of this.bones)for(let s of t.animations)s.enableBlending=!0,s.blendingSpeed=e}dispose(){if(this._meshesWithPoseMatrix.length=0,this.metadata=null,this.getScene().stopAnimation(this),this.getScene().removeSkeleton(this),this._parentContainer){let e=this._parentContainer.skeletons.indexOf(this);e>-1&&this._parentContainer.skeletons.splice(e,1),this._parentContainer=null}this._transformMatrixTexture&&(this._transformMatrixTexture.dispose(),this._transformMatrixTexture=null)}serialize(){let e={};e.name=this.name,e.id=this.id,e.uniqueId=this.uniqueId,this.dimensionsAtRest&&(e.dimensionsAtRest=this.dimensionsAtRest.asArray()),e.bones=[],e.needInitialSkinMatrix=this.needInitialSkinMatrix,this.metadata&&(e.metadata=this.metadata);for(let t=0;t<this.bones.length;t++){let s=this.bones[t],n=s.getParent(),i={parentBoneIndex:n?this.bones.indexOf(n):-1,index:s.getIndex(),name:s.name,id:s.id,uniqueId:s.uniqueId,matrix:s.getBindMatrix().asArray(),rest:s.getRestMatrix().asArray(),linkedTransformNodeId:s.getTransformNode()?.id,linkedTransformNodeUniqueId:s.getTransformNode()?.uniqueId};for(let t in e.bones.push(i),s.length&&(i.length=s.length),s.metadata&&(i.metadata=s.metadata),s.animations&&s.animations.length>0&&(i.animation=s.animations[0].serialize()),e.ranges=[],this._ranges){let s=this._ranges[t];if(!s)continue;let n={};n.name=t,n.from=s.from,n.to=s.to,e.ranges.push(n)}}return e}static Parse(e,t){let s,n=new tF(e.name,e.id,t);for(e.dimensionsAtRest&&(n.dimensionsAtRest=tT.Vector3.FromArray(e.dimensionsAtRest)),n.needInitialSkinMatrix=e.needInitialSkinMatrix,e.metadata&&(n.metadata=e.metadata),s=0;s<e.bones.length;s++){let t=e.bones[s],i=e.bones[s].index,a=null;t.parentBoneIndex>-1&&(a=n.bones[t.parentBoneIndex]);let o=t.rest?tT.Matrix.FromArray(t.rest):null,r=new tw.Bone(t.name,n,a,tT.Matrix.FromArray(t.matrix),o,null,i);void 0!==t.id&&null!==t.id&&(r.id=t.id),t.length&&(r.length=t.length),t.metadata&&(r.metadata=t.metadata),t.animation&&r.animations.push((0,tv.AnimationParse)(t.animation)),void 0!==t.linkedTransformNodeId&&null!==t.linkedTransformNodeId&&(n._hasWaitingData=!0,r._waitingTransformNodeId=t.linkedTransformNodeId),void 0!==t.linkedTransformNodeUniqueId&&null!==t.linkedTransformNodeUniqueId&&(n._hasWaitingData=!0,r._waitingTransformNodeUniqueId=t.linkedTransformNodeUniqueId)}if(e.ranges)for(s=0;s<e.ranges.length;s++){let t=e.ranges[s];n.createAnimationRange(t.name,t.from,t.to)}return n}computeAbsoluteMatrices(e=!1){(this._absoluteTransformIsDirty||e)&&(this.bones[0].computeAbsoluteMatrices(),this._absoluteTransformIsDirty=!1)}computeAbsoluteTransforms(e=!1){this.computeAbsoluteMatrices(e)}getPoseMatrix(){let e=null;return this._meshesWithPoseMatrix.length>0&&(e=this._meshesWithPoseMatrix[0].getPoseMatrix()),e}sortBones(){let e=[],t=Array(this.bones.length);for(let s=0;s<this.bones.length;s++)this._sortBones(s,e,t);this.bones=e}_sortBones(e,t,s){if(s[e])return;s[e]=!0;let n=this.bones[e];if(!n)return;void 0===n._index&&(n._index=e);let i=n.getParent();i&&this._sortBones(this.bones.indexOf(i),t,s),t.push(n)}setCurrentPoseAsRest(){for(let e of this.bones)e.setCurrentPoseAsRest()}}var tE=e.i(80592),tR=e.i(7361),tO=e.i(76895);(0,tO.RegisterMultiMaterial)(),e.i(66246);var tI=e.i(16496),tB=e.i(43298);(0,tB.RegisterShaderMaterial)();var tN=e.i(86823);(0,tN.RegisterTexture)();var tk=e.i(23037),tP=e.i(56145);(0,tP.RegisterVertexBuffer)();var tL=e.i(689),tG=e.i(50545);(0,e2.RegisterAbstractMesh)(),e.i(22889),e.i(63147);var tD=e.i(27240),tV=e.i(4112),tK=e.i(91679),tH=e.i(60324),tU=e.i(75481),t$=e.i(99493);let tz=(c=tH.ShadowLight,d=[],p=[],_=[],m=[],f=[],g=[],y=[],b=[],T=[],A=[],x=[],v=[],w=[],eR=class extends c{get shadowFrustumSize(){return this._shadowFrustumSize}set shadowFrustumSize(e){this._shadowFrustumSize=e,this.forceProjectionMatrixCompute()}get shadowOrthoScale(){return this._shadowOrthoScale}set shadowOrthoScale(e){this._shadowOrthoScale=e,this.forceProjectionMatrixCompute()}get orthoLeft(){return this._orthoLeft}set orthoLeft(e){this._orthoLeft=e}get orthoRight(){return this._orthoRight}set orthoRight(e){this._orthoRight=e}get orthoTop(){return this._orthoTop}set orthoTop(e){this._orthoTop=e}get orthoBottom(){return this._orthoBottom}set orthoBottom(e){this._orthoBottom=e}constructor(e,t,s,n){super(e,s,n),this._shadowFrustumSize=((0,tV.__runInitializers)(this,d),0),this._shadowOrthoScale=.1,this.autoUpdateExtends=(0,tV.__runInitializers)(this,p,!0),this.autoCalcShadowZBounds=((0,tV.__runInitializers)(this,_),(0,tV.__runInitializers)(this,m,!1)),this._orthoLeft=((0,tV.__runInitializers)(this,f),(0,tV.__runInitializers)(this,g,Number.MAX_VALUE)),this._orthoRight=((0,tV.__runInitializers)(this,y),(0,tV.__runInitializers)(this,b,5e-324)),this._orthoTop=((0,tV.__runInitializers)(this,T),(0,tV.__runInitializers)(this,A,5e-324)),this._orthoBottom=((0,tV.__runInitializers)(this,x),(0,tV.__runInitializers)(this,v,Number.MAX_VALUE)),(0,tV.__runInitializers)(this,w),this.position=t.scale(-1),this.direction=t}getClassName(){return"DirectionalLight"}getTypeID(){return e5.Light.LIGHTTYPEID_DIRECTIONALLIGHT}_setDefaultShadowProjectionMatrix(e,t,s){this.shadowFrustumSize>0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,t,s)}_setDefaultFixedFrustumShadowProjectionMatrix(e){let t=this.getScene().activeCamera;tT.Matrix.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,void 0!==this.shadowMinZ?this.shadowMinZ:t?t.minZ:0,void 0!==this.shadowMaxZ?this.shadowMaxZ:t?t.maxZ:1e4,e,this.getScene().getEngine().isNDCHalfZRange)}_setDefaultAutoExtendShadowProjectionMatrix(e,t,s){let n=this.getScene().activeCamera;if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){let e=tT.Vector3.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=-Number.MAX_VALUE,this._orthoTop=-Number.MAX_VALUE,this._orthoBottom=Number.MAX_VALUE;let n=Number.MAX_VALUE,i=-Number.MAX_VALUE;for(let a=0;a<s.length;a++){let o=s[a];if(!o)continue;let r=o.getBoundingInfo().boundingBox;for(let s=0;s<r.vectorsWorld.length;s++)tT.Vector3.TransformCoordinatesToRef(r.vectorsWorld[s],t,e),e.x<this._orthoLeft&&(this._orthoLeft=e.x),e.y<this._orthoBottom&&(this._orthoBottom=e.y),e.x>this._orthoRight&&(this._orthoRight=e.x),e.y>this._orthoTop&&(this._orthoTop=e.y),this.autoCalcShadowZBounds&&(e.z<n&&(n=e.z),e.z>i&&(i=e.z))}this.autoCalcShadowZBounds&&(this._shadowMinZ=n,this._shadowMaxZ=i)}let i=this._orthoRight-this._orthoLeft,a=this._orthoTop-this._orthoBottom,o=void 0!==this.shadowMinZ?this.shadowMinZ:n?.minZ||0,r=void 0!==this.shadowMaxZ?this.shadowMaxZ:n?.maxZ||1e4,l=this.getScene().getEngine().useReverseDepthBuffer;tT.Matrix.OrthoOffCenterLHToRef(this._orthoLeft-i*this.shadowOrthoScale,this._orthoRight+i*this.shadowOrthoScale,this._orthoBottom-a*this.shadowOrthoScale,this._orthoTop+a*this.shadowOrthoScale,l?r:o,l?o:r,e,this.getScene().getEngine().isNDCHalfZRange)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){return this.computeTransformedInformation()?this._uniformBuffer.updateFloat4("vLightData",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,t):this._uniformBuffer.updateFloat4("vLightData",this.direction.x,this.direction.y,this.direction.z,1,t),this}transferToNodeMaterialEffect(e,t){return this.computeTransformedInformation()?e.setFloat3(t,this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z):e.setFloat3(t,this.direction.x,this.direction.y,this.direction.z),this}getDepthMinZ(e){let t=this._scene.getEngine();return!t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}getDepthMaxZ(e){let t=this._scene.getEngine();return t.useReverseDepthBuffer&&t.isNDCHalfZRange?0:1}prepareLightSpecificDefines(e,t){e["DIRLIGHT"+t]=!0}},M="function"==typeof Symbol&&Symbol.metadata?Object.create(c[Symbol.metadata]??null):void 0,n=[(0,tK.serialize)()],i=[(0,tK.serialize)()],a=[(0,tK.serialize)()],o=[(0,tK.serialize)()],r=[(0,tK.serialize)("orthoLeft")],l=[(0,tK.serialize)("orthoRight")],h=[(0,tK.serialize)("orthoTop")],u=[(0,tK.serialize)("orthoBottom")],(0,tV.__esDecorate)(eR,null,n,{kind:"getter",name:"shadowFrustumSize",static:!1,private:!1,access:{has:e=>"shadowFrustumSize"in e,get:e=>e.shadowFrustumSize},metadata:M},null,d),(0,tV.__esDecorate)(eR,null,i,{kind:"getter",name:"shadowOrthoScale",static:!1,private:!1,access:{has:e=>"shadowOrthoScale"in e,get:e=>e.shadowOrthoScale},metadata:M},null,d),(0,tV.__esDecorate)(null,null,a,{kind:"field",name:"autoUpdateExtends",static:!1,private:!1,access:{has:e=>"autoUpdateExtends"in e,get:e=>e.autoUpdateExtends,set:(e,t)=>{e.autoUpdateExtends=t}},metadata:M},p,_),(0,tV.__esDecorate)(null,null,o,{kind:"field",name:"autoCalcShadowZBounds",static:!1,private:!1,access:{has:e=>"autoCalcShadowZBounds"in e,get:e=>e.autoCalcShadowZBounds,set:(e,t)=>{e.autoCalcShadowZBounds=t}},metadata:M},m,f),(0,tV.__esDecorate)(null,null,r,{kind:"field",name:"_orthoLeft",static:!1,private:!1,access:{has:e=>"_orthoLeft"in e,get:e=>e._orthoLeft,set:(e,t)=>{e._orthoLeft=t}},metadata:M},g,y),(0,tV.__esDecorate)(null,null,l,{kind:"field",name:"_orthoRight",static:!1,private:!1,access:{has:e=>"_orthoRight"in e,get:e=>e._orthoRight,set:(e,t)=>{e._orthoRight=t}},metadata:M},b,T),(0,tV.__esDecorate)(null,null,h,{kind:"field",name:"_orthoTop",static:!1,private:!1,access:{has:e=>"_orthoTop"in e,get:e=>e._orthoTop,set:(e,t)=>{e._orthoTop=t}},metadata:M},A,x),(0,tV.__esDecorate)(null,null,u,{kind:"field",name:"_orthoBottom",static:!1,private:!1,access:{has:e=>"_orthoBottom"in e,get:e=>e._orthoBottom,set:(e,t)=>{e._orthoBottom=t}},metadata:M},v,w),M&&Object.defineProperty(eR,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:M}),eR),tq=!1;tq=!0,tU.Node.AddNodeConstructor("Light_Type_1",(e,t)=>()=>new tz(e,tT.Vector3.Zero(),t)),(0,t$.RegisterClass)("BABYLON.DirectionalLight",tz);let tW=(S=tH.ShadowLight,F=[],eO=class extends S{get shadowAngle(){return this._shadowAngle}set shadowAngle(e){this._shadowAngle=e,this.forceProjectionMatrixCompute()}get direction(){return this._direction}set direction(e){let t=this.needCube();if(this._direction=e,this.needCube()!==t&&this._shadowGenerators){let e=this._shadowGenerators.values();for(let t=e.next();!0!==t.done;t=e.next())t.value.recreateShadowMap()}}constructor(e,t,s,n){super(e,s,n),this._shadowAngle=((0,tV.__runInitializers)(this,F),Math.PI/2),this.position=t}getClassName(){return"PointLight"}getTypeID(){return e5.Light.LIGHTTYPEID_POINTLIGHT}needCube(){return!this.direction}getShadowDirection(e){if(this.direction)return super.getShadowDirection(e);switch(e){case 0:return new tT.Vector3(1,0,0);case 1:return new tT.Vector3(-1,0,0);case 2:return new tT.Vector3(0,-1,0);case 3:return new tT.Vector3(0,1,0);case 4:return new tT.Vector3(0,0,1);case 5:return new tT.Vector3(0,0,-1)}return tT.Vector3.Zero()}_setDefaultShadowProjectionMatrix(e,t,s){let n=this.getScene().activeCamera,i=this.getDepthMinZ(n),a=this.getDepthMaxZ(n),o=this.getScene().getEngine().useReverseDepthBuffer;tT.Matrix.PerspectiveFovLHToRef(this.shadowAngle,1,o?a:i,o?i:a,e,!0,this._scene.getEngine().isNDCHalfZRange,void 0,o)}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}transferToEffect(e,t){let s=this._scene.floatingOriginOffset;return this.computeTransformedInformation()?this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x-s.x,this.transformedPosition.y-s.y,this.transformedPosition.z-s.z,0,t):this._uniformBuffer.updateFloat4("vLightData",this.position.x-s.x,this.position.y-s.y,this.position.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,0,0,t),this}transferToNodeMaterialEffect(e,t){let s=this._scene.floatingOriginOffset;return this.computeTransformedInformation()?e.setFloat3(t,this.transformedPosition.x-s.x,this.transformedPosition.y-s.y,this.transformedPosition.z-s.z):e.setFloat3(t,this.position.x-s.x,this.position.y-s.y,this.position.z-s.z),this}prepareLightSpecificDefines(e,t){e["POINTLIGHT"+t]=!0}},E="function"==typeof Symbol&&Symbol.metadata?Object.create(S[Symbol.metadata]??null):void 0,C=[(0,tK.serialize)()],(0,tV.__esDecorate)(eO,null,C,{kind:"getter",name:"shadowAngle",static:!1,private:!1,access:{has:e=>"shadowAngle"in e,get:e=>e.shadowAngle},metadata:E},null,F),E&&Object.defineProperty(eO,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:E}),eO),tj=!1;tj=!0,tU.Node.AddNodeConstructor("Light_Type_0",(e,t)=>()=>new tW(e,tT.Vector3.Zero(),t)),(0,t$.RegisterClass)("BABYLON.PointLight",tW);var tX=e.i(66316);(0,tX.RegisterSpotLight)();class tQ{static SetMatrix(e,t,s,n,i){let a=null;if("MODEL"===s.semantic?a=t.getWorldMatrix():"PROJECTION"===s.semantic?a=e.getProjectionMatrix():"VIEW"===s.semantic?a=e.getViewMatrix():"MODELVIEWINVERSETRANSPOSE"===s.semantic?a=tT.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):"MODELVIEW"===s.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()):"MODELVIEWPROJECTION"===s.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()):"MODELINVERSE"===s.semantic?a=t.getWorldMatrix().invert():"VIEWINVERSE"===s.semantic?a=e.getViewMatrix().invert():"PROJECTIONINVERSE"===s.semantic?a=e.getProjectionMatrix().invert():"MODELVIEWINVERSE"===s.semantic?a=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():"MODELVIEWPROJECTIONINVERSE"===s.semantic?a=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():"MODELINVERSETRANSPOSE"===s.semantic&&(a=tT.Matrix.Transpose(t.getWorldMatrix().invert())),a)switch(s.type){case eU.FLOAT_MAT2:i.setMatrix2x2(n,tT.Matrix.GetAsMatrix2x2(a));break;case eU.FLOAT_MAT3:i.setMatrix3x3(n,tT.Matrix.GetAsMatrix3x3(a));break;case eU.FLOAT_MAT4:i.setMatrix(n,a)}}static SetUniform(e,t,s,n){switch(n){case eU.FLOAT:return e.setFloat(t,s),!0;case eU.FLOAT_VEC2:return e.setVector2(t,tT.Vector2.FromArray(s)),!0;case eU.FLOAT_VEC3:return e.setVector3(t,tT.Vector3.FromArray(s)),!0;case eU.FLOAT_VEC4:return e.setVector4(t,tT.Vector4.FromArray(s)),!0;default:return!1}}static GetWrapMode(e){switch(e){case e$.CLAMP_TO_EDGE:return tN.Texture.CLAMP_ADDRESSMODE;case e$.MIRRORED_REPEAT:return tN.Texture.MIRROR_ADDRESSMODE;case e$.REPEAT:default:return tN.Texture.WRAP_ADDRESSMODE}}static GetByteStrideFromType(e){switch(e.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}}static GetTextureFilterMode(e){switch(e){case ez.LINEAR:case ez.LINEAR_MIPMAP_NEAREST:case ez.LINEAR_MIPMAP_LINEAR:return tN.Texture.TRILINEAR_SAMPLINGMODE;case ez.NEAREST:case ez.NEAREST_MIPMAP_NEAREST:return tN.Texture.NEAREST_SAMPLINGMODE;default:return tN.Texture.BILINEAR_SAMPLINGMODE}}static GetBufferFromBufferView(e,t,s,n,i){s=t.byteOffset+s;let a=e.loadedBufferViews[t.buffer];if(s+n>a.byteLength)throw Error("Buffer access is out of range");let o=a.buffer;switch(s+=a.byteOffset,i){case eK.BYTE:return new Int8Array(o,s,n);case eK.UNSIGNED_BYTE:return new Uint8Array(o,s,n);case eK.SHORT:return new Int16Array(o,s,n);case eK.UNSIGNED_SHORT:return new Uint16Array(o,s,n);default:return new Float32Array(o,s,n)}}static GetBufferFromAccessor(e,t){let s=e.bufferViews[t.bufferView],n=t.count*tQ.GetByteStrideFromType(t);return tQ.GetBufferFromBufferView(e,s,t.byteOffset,n,t.componentType)}static DecodeBufferToText(e){let t="",s=e.byteLength;for(let n=0;n<s;++n)t+=String.fromCharCode(e[n]);return t}static GetDefaultMaterial(e){return tQ._DefaultMaterial||(tE.Effect.ShadersStore.GLTFDefaultMaterialVertexShader="precision highp float;\n\nuniform mat4 worldView;\nuniform mat4 projection;\n\nattribute vec3 position;\n\nvoid main(void)\n{\n gl_Position = projection * worldView * vec4(position, 1.0);\n}",tE.Effect.ShadersStore.GLTFDefaultMaterialPixelShader="precision highp float;\n\nuniform vec4 u_emission;\n\nvoid main(void)\n{\n gl_FragColor = u_emission;\n}",tQ._DefaultMaterial=new tB.ShaderMaterial("GLTFDefaultMaterial",e,{vertex:"GLTFDefaultMaterial",fragment:"GLTFDefaultMaterial"},{attributes:["position"],uniforms:["worldView","projection","u_emission"],samplers:[],needAlphaBlending:!1}),tQ._DefaultMaterial.setColor4("u_emission",new tA.Color4(.5,.5,.5,1))),tQ._DefaultMaterial}}tQ._DefaultMaterial=null,e.s(["GLTFUtils",0,tQ],81395);var tY=e.i(34153),tZ=e.i(63615);(eI=eX||(eX={}))[eI.IDENTIFIER=1]="IDENTIFIER",eI[eI.UNKNOWN=2]="UNKNOWN",eI[eI.END_OF_INPUT=3]="END_OF_INPUT";class tJ{constructor(e){this._pos=0,this.currentToken=eX.UNKNOWN,this.currentIdentifier="",this.currentString="",this.isLetterOrDigitPattern=/^[a-zA-Z0-9]+$/,this._toParse=e,this._maxPos=e.length}getNextToken(){if(this.isEnd())return eX.END_OF_INPUT;if(this.currentString=this.read(),this.currentToken=eX.UNKNOWN,"_"===this.currentString||this.isLetterOrDigitPattern.test(this.currentString))for(this.currentToken=eX.IDENTIFIER,this.currentIdentifier=this.currentString;!this.isEnd()&&(this.isLetterOrDigitPattern.test(this.currentString=this.peek())||"_"===this.currentString);)this.currentIdentifier+=this.currentString,this.forward();return this.currentToken}peek(){return this._toParse[this._pos]}read(){return this._toParse[this._pos++]}forward(){this._pos++}isEnd(){return this._pos>=this._maxPos}}let t0=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],t1=["world","view","projection","worldView","worldViewProjection","mBones"],t2=["translation","rotation","scale"],t3=["position","rotationQuaternion","scaling"],t8=(e,t,s)=>{for(let n in e){let i=e[n];s[t][n]=i}},t4=e=>{if(e)for(let t=0;t<e.length/2;t++)e[2*t+1]=1-e[2*t+1]},t5=e=>{if("NORMAL"===e.semantic)return"normal";if("POSITION"===e.semantic)return"position";if("JOINT"===e.semantic)return"matricesIndices";if("WEIGHT"===e.semantic)return"matricesWeights";if("COLOR"===e.semantic)return"color";else if(e.semantic&&-1!==e.semantic.indexOf("TEXCOORD_")){let t=Number(e.semantic.split("_")[1]);return"uv"+(0===t?"":t+1)}return null},t7=e=>{let t;if(e.translation||e.rotation||e.scale){let s=tT.Vector3.FromArray(e.scale||[1,1,1]),n=tT.Quaternion.FromArray(e.rotation||[0,0,0,1]),i=tT.Vector3.FromArray(e.translation||[0,0,0]);t=tT.Matrix.Compose(s,n,i)}else t=tT.Matrix.FromArray(e.matrix);return t},t9=(e,t,s,n)=>{for(let e=0;e<n.bones.length;e++)if(n.bones[e].name===s)return n.bones[e];let i=e.nodes;for(let a in i){let o=i[a];if(!o.jointName)continue;let r=o.children;for(let i=0;i<r.length;i++){let l=e.nodes[r[i]];if(l.jointName&&l.jointName===s){let s=t7(o),i=new tw.Bone(o.name||"",n,t9(e,t,o.jointName,n),s);return i.id=a,i}}}return null},t6=(e,t)=>{for(let s=0;s<e.length;s++){let n=e[s];for(let e=0;e<n.node.children.length;e++)if(n.node.children[e]===t)return n.bone}return null},se=(e,t)=>{let s=e.nodes,n=s[t];if(n)return{node:n,id:t};for(let e in s)if((n=s[e]).jointName===t)return{node:n,id:e};return null},st=(e,t)=>{for(let s=0;s<e.jointNames.length;s++)if(e.jointNames[s]===t)return!0;return!1},ss=(e,t,s,n,i)=>{let a;if(i||(e.scene._blockEntityCollection=!!e.assetContainer,(i=new e0.Mesh(t.name||"",e.scene))._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,i.id=n),!t.babylonNode)return i;let o=[],r=null,l=[],h=[],u=[],c=[];for(let t=0;t<s.length;t++){let n=s[t],i=e.meshes[n];if(i)for(let t=0;t<i.primitives.length;t++){let s,n,a=new tk.VertexData,d=i.primitives[t];d.mode;let p=d.attributes;for(let t in p)if(s=e.accessors[p[t]],n=tQ.GetBufferFromAccessor(e,s),"NORMAL"===t)a.normals=new Float32Array(n.length),a.normals.set(n);else if("POSITION"===t){if(tg.HomogeneousCoordinates){a.positions=new Float32Array(n.length-n.length/4);for(let e=0;e<n.length;e+=4)a.positions[e]=n[e],a.positions[e+1]=n[e+1],a.positions[e+2]=n[e+2]}else a.positions=new Float32Array(n.length),a.positions.set(n);h.push(a.positions.length)}else if(-1!==t.indexOf("TEXCOORD_")){let e=Number(t.split("_")[1]),s=tP.VertexBuffer.UVKind+(0===e?"":e+1),i=new Float32Array(n.length);i.set(n),t4(i),a.set(i,s)}else"JOINT"===t?(a.matricesIndices=new Float32Array(n.length),a.matricesIndices.set(n)):"WEIGHT"===t?(a.matricesWeights=new Float32Array(n.length),a.matricesWeights.set(n)):"COLOR"===t&&(a.colors=new Float32Array(n.length),a.colors.set(n));if(s=e.accessors[d.indices])a.indices=new Int32Array((n=tQ.GetBufferFromAccessor(e,s)).length),a.indices.set(n),c.push(a.indices.length);else{let e=[];for(let t=0;t<a.positions.length/3;t++)e.push(t);a.indices=new Int32Array(e),c.push(a.indices.length)}r?r.merge(a):r=a;let _=e.scene.getMaterialById(d.material);o.push(null===_?tQ.GetDefaultMaterial(e.scene):_),l.push(0===l.length?0:l[l.length-1]+h[h.length-2]),u.push(0===u.length?0:u[u.length-1]+c[c.length-2])}}e.scene._blockEntityCollection=!!e.assetContainer,o.length>1?(a=new tO.MultiMaterial("multimat"+n,e.scene)).subMaterials=o:a=new tI.StandardMaterial("multimat"+n,e.scene),1===o.length&&(a=o[0]),a._parentContainer=e.assetContainer,i.material||(i.material=a),new tL.Geometry(n,e.scene,r,!1,i),i.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,i.subMeshes=[];let d=0;for(let t=0;t<s.length;t++){let n=s[t],a=e.meshes[n];if(a)for(let e=0;e<a.primitives.length;e++)a.primitives[e].mode,tG.SubMesh.AddToMesh(d,l[d],h[d],u[d],c[d],i,i,!0),d++}return i},sn=(e,t,s,n)=>{e.position&&(e.position=t),(e.rotationQuaternion||e.rotation)&&(e.rotationQuaternion=s),e.scaling&&(e.scaling=n)},si=(e,t,s,n=!1)=>{let i=e.nodes[t],a=null;if(n=!e.importOnlyMeshes||!!n||!e.importMeshesNames||-1!==e.importMeshesNames.indexOf(i.name||"")||0===e.importMeshesNames.length,!i.jointName&&n&&null!==(a=((e,t,s)=>{let n=null;if(e.importOnlyMeshes&&(t.skin||t.meshes)&&e.importMeshesNames&&e.importMeshesNames.length>0&&-1===e.importMeshesNames.indexOf(t.name||""))return null;if(t.skin){if(t.meshes){let i=e.skins[t.skin],a=ss(e,t,t.meshes,s,t.babylonNode);a.skeleton=e.scene.getLastSkeletonById(t.skin),null===a.skeleton&&(a.skeleton=((e,t,s)=>{if(s||(s=new tF(t.name||"","",e.scene)),!t.babylonSkeleton)return s;let n=[],i=[];((e,t,s,n)=>{for(let i in e.nodes){let a=e.nodes[i];if(!a.jointName||st(s,a.jointName))continue;let o=t7(a),r=new tw.Bone(a.name||"",t,null,o);r.id=i,n.push({bone:r,node:a,id:i})}for(let e=0;e<n.length;e++){let t=n[e],s=t.node.children;for(let e=0;e<s.length;e++){let i=null;for(let t=0;t<n.length;t++)if(n[t].id===s[e]){i=n[t];break}i&&(i.bone._parent=t.bone,t.bone.children.push(i.bone))}}})(e,s,t,n),s.bones=[];for(let a=0;a<t.jointNames.length;a++){let o,r=se(e,t.jointNames[a]);if(!r)continue;let l=r.node;if(!l){eZ.Tools.Warn("Joint named "+t.jointNames[a]+" does not exist");continue}let h=r.id,u=e.scene.getBoneById(h);if(u){s.bones.push(u);continue}let c=null;for(let n=0;n<a;n++){let i=se(e,t.jointNames[n]);if(!i)continue;let a=i.node;if(!a){eZ.Tools.Warn("Joint named "+t.jointNames[n]+" does not exist when looking for parent");continue}let r=a.children;if(r){o=!1;for(let i=0;i<r.length;i++)if(r[i]===h){c=t9(e,t,t.jointNames[n],s),o=!0;break}if(o)break}}let d=t7(l);!c&&n.length>0&&(c=t6(n,h))&&-1===i.indexOf(c)&&i.push(c),new tw.Bone(l.jointName||"",s,c,d).id=h}let a=s.bones;s.bones=[];for(let n=0;n<t.jointNames.length;n++){let i=se(e,t.jointNames[n]);if(i){for(let e=0;e<a.length;e++)if(a[e].id===i.id){s.bones.push(a[e]);break}}}s.prepare();for(let e=0;e<i.length;e++)s.bones.push(i[e]);return s})(e,i,i.babylonSkeleton),i.babylonSkeleton||(i.babylonSkeleton=a.skeleton)),n=a}}else if(t.meshes)n=ss(e,t,t.mesh?[t.mesh]:t.meshes,s,t.babylonNode);else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){let s=e.cameras[t.camera];if(s){if(e.scene._blockEntityCollection=!!e.assetContainer,"orthographic"===s.type){let s=new tx.FreeCamera(t.camera,tT.Vector3.Zero(),e.scene,!1);s.name=t.name||"",s.mode=e7.Camera.ORTHOGRAPHIC_CAMERA,s.attachControl(),n=s,s._parentContainer=e.assetContainer}else if("perspective"===s.type){let i=s[s.type],a=new tx.FreeCamera(t.camera,tT.Vector3.Zero(),e.scene,!1);a.name=t.name||"",a.attachControl(),i.aspectRatio||(i.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),i.znear&&i.zfar&&(a.maxZ=i.zfar,a.minZ=i.znear),n=a,a._parentContainer=e.assetContainer}e.scene._blockEntityCollection=!1}}}else{let s=e.lights[t.light];if(s){if("ambient"===s.type){let i=s[s.type],a=new tD.HemisphericLight(t.light,tT.Vector3.Zero(),e.scene);a.name=t.name||"",i.color&&(a.diffuse=tA.Color3.FromArray(i.color)),n=a}else if("directional"===s.type){let i=s[s.type],a=new tz(t.light,tT.Vector3.Zero(),e.scene);a.name=t.name||"",i.color&&(a.diffuse=tA.Color3.FromArray(i.color)),n=a}else if("point"===s.type){let i=s[s.type],a=new tW(t.light,tT.Vector3.Zero(),e.scene);a.name=t.name||"",i.color&&(a.diffuse=tA.Color3.FromArray(i.color)),n=a}else if("spot"===s.type){let i=s[s.type],a=new tX.SpotLight(t.light,tT.Vector3.Zero(),tT.Vector3.Zero(),0,0,e.scene);a.name=t.name||"",i.color&&(a.diffuse=tA.Color3.FromArray(i.color)),i.fallOfAngle&&(a.angle=i.fallOfAngle),i.fallOffExponent&&(a.exponent=i.fallOffExponent),n=a}}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;else if(null===n){e.scene._blockEntityCollection=!!e.assetContainer;let s=new e0.Mesh(t.name||"",e.scene);s._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,t.babylonNode=s,n=s}}if(null!==n){if(t.matrix&&n instanceof e0.Mesh){var i=n;if(t.matrix){let e=new tT.Vector3(0,0,0),s=new tT.Quaternion,n=new tT.Vector3(0,0,0);tT.Matrix.FromArray(t.matrix).decompose(n,s,e),sn(i,e,s,n)}else t.translation&&t.rotation&&t.scale&&sn(i,tT.Vector3.FromArray(t.translation),tT.Quaternion.FromArray(t.rotation),tT.Vector3.FromArray(t.scale));i.computeWorldMatrix(!0)}else{let e=t.translation||[0,0,0],s=t.rotation||[0,0,0,1],i=t.scale||[1,1,1];sn(n,tT.Vector3.FromArray(e),tT.Quaternion.FromArray(s),tT.Vector3.FromArray(i))}n.updateCache(!0),t.babylonNode=n}return n})(e,i,t))&&(a.id=t,a.parent=s),i.children)for(let t=0;t<i.children.length;t++)si(e,i.children[t],a,n)},sa=e=>{let t=e.currentScene;if(t)for(let s=0;s<t.nodes.length;s++)si(e,t.nodes[s],null);else for(let s in e.scenes){t=e.scenes[s];for(let s=0;s<t.nodes.length;s++)si(e,t.nodes[s],null)}(e=>{for(let t in e.animations){let s=e.animations[t];if(!s.channels||!s.samplers)continue;let n=null;for(let i=0;i<s.channels.length;i++){let a,o,r=s.channels[i],l=s.samplers[r.sampler];if(!l)continue;s.parameters?(a=s.parameters[l.input],o=s.parameters[l.output]):(a=l.input,o=l.output);let h=tQ.GetBufferFromAccessor(e,e.accessors[a]),u=tQ.GetBufferFromAccessor(e,e.accessors[o]),c=r.target.id,d=e.scene.getNodeById(c);if(null===d&&(d=e.scene.getNodeByName(c)),null===d){eZ.Tools.Warn("Creating animation named "+t+". But cannot find node named "+c+" to attach to");continue}let p=d instanceof tw.Bone,_=r.target.path,m=t2.indexOf(_);-1!==m&&(_=t3[m]);let f=tv.Animation.ANIMATIONTYPE_MATRIX;p||("rotationQuaternion"===_?(f=tv.Animation.ANIMATIONTYPE_QUATERNION,d.rotationQuaternion=new tT.Quaternion):f=tv.Animation.ANIMATIONTYPE_VECTOR3);let g=null,y=[],b=0,T=!1;p&&n&&n.getKeys().length===h.length&&(g=n,T=!0),T||(e.scene._blockEntityCollection=!!e.assetContainer,g=new tv.Animation(t,p?"_matrix":_,1,f,tv.Animation.ANIMATIONLOOPMODE_CYCLE),e.scene._blockEntityCollection=!1);for(let e=0;e<h.length;e++){let t;if("rotationQuaternion"===_?(t=tT.Quaternion.FromArray([u[b],u[b+1],u[b+2],u[b+3]]),b+=4):(t=tT.Vector3.FromArray([u[b],u[b+1],u[b+2]]),b+=3),p){let s=d,i=tT.Vector3.Zero(),a=new tT.Quaternion,o=tT.Vector3.Zero(),r=s.getBaseMatrix();T&&n&&(r=n.getKeys()[e].value),r.decompose(o,a,i),"position"===_?i=t:"rotationQuaternion"===_?a=t:o=t,t=tT.Matrix.Compose(o,a,i)}T?n&&(n.getKeys()[e].value=t):y.push({frame:h[e],value:t})}!T&&g&&(g.setKeys(y),d.animations.push(g)),n=g,e.scene.stopAnimation(d),e.scene.beginAnimation(d,0,h[h.length-1],!0,1)}}})(e);for(let t=0;t<e.scene.skeletons.length;t++){let s=e.scene.skeletons[t];e.scene.beginAnimation(s,0,Number.MAX_VALUE,!0,1)}},so=(e,t,s)=>{for(let n in t.uniforms){let i=t.uniforms[n],a=t.parameters[i];if(e.currentIdentifier===n&&a.semantic&&!a.source&&!a.node){let e=t0.indexOf(a.semantic);if(-1!==e)return delete s[n],t1[e]}}return e.currentIdentifier},sr=e=>{for(let t in e.materials)su.LoadMaterialAsync(e,t,()=>{},()=>{})};class sl{static CreateRuntime(e,t,s){let n={extensions:{},accessors:{},buffers:{},bufferViews:{},meshes:{},lights:{},cameras:{},nodes:{},images:{},textures:{},shaders:{},programs:{},samplers:{},techniques:{},materials:{},animations:{},skins:{},extensionsUsed:[],scenes:{},buffersCount:0,shaderscount:0,scene:t,rootUrl:s,loadedBufferCount:0,loadedBufferViews:{},loadedShaderCount:0,importOnlyMeshes:!1,dummyNodes:[],assetContainer:null};return e.extensions&&t8(e.extensions,"extensions",n),e.extensionsUsed&&t8(e.extensionsUsed,"extensionsUsed",n),e.buffers&&((e,t)=>{for(let s in e){let n=e[s];t.buffers[s]=n,t.buffersCount++}})(e.buffers,n),e.bufferViews&&t8(e.bufferViews,"bufferViews",n),e.accessors&&t8(e.accessors,"accessors",n),e.meshes&&t8(e.meshes,"meshes",n),e.lights&&t8(e.lights,"lights",n),e.cameras&&t8(e.cameras,"cameras",n),e.nodes&&t8(e.nodes,"nodes",n),e.images&&t8(e.images,"images",n),e.textures&&t8(e.textures,"textures",n),e.shaders&&((e,t)=>{for(let s in e){let n=e[s];t.shaders[s]=n,t.shaderscount++}})(e.shaders,n),e.programs&&t8(e.programs,"programs",n),e.samplers&&t8(e.samplers,"samplers",n),e.techniques&&t8(e.techniques,"techniques",n),e.materials&&t8(e.materials,"materials",n),e.animations&&t8(e.animations,"animations",n),e.skins&&t8(e.skins,"skins",n),e.scenes&&(n.scenes=e.scenes),e.scene&&e.scenes&&(n.currentScene=e.scenes[e.scene]),n}static LoadBufferAsync(e,t,s,n,i){let a=e.buffers[t];eZ.Tools.IsBase64(a.uri)?setTimeout(()=>s(new Uint8Array(eZ.Tools.DecodeBase64(a.uri)))):eZ.Tools.LoadFile(e.rootUrl+a.uri,e=>s(new Uint8Array(e)),i,void 0,!0,e=>{e&&n(e.status+" "+e.statusText)})}static LoadTextureBufferAsync(e,t,s,n){let i=e.textures[t];if(!i||!i.source)return void n("");if(i.babylonTexture)return void s(null);let a=e.images[i.source];eZ.Tools.IsBase64(a.uri)?setTimeout(()=>s(new Uint8Array(eZ.Tools.DecodeBase64(a.uri)))):eZ.Tools.LoadFile(e.rootUrl+a.uri,e=>s(new Uint8Array(e)),void 0,void 0,!0,e=>{e&&n(e.status+" "+e.statusText)})}static CreateTextureAsync(e,t,s,n){let i=e.textures[t];if(i.babylonTexture)return void n(i.babylonTexture);let a=e.samplers[i.sampler],o=a.minFilter===ez.NEAREST_MIPMAP_NEAREST||a.minFilter===ez.NEAREST_MIPMAP_LINEAR||a.minFilter===ez.LINEAR_MIPMAP_NEAREST||a.minFilter===ez.LINEAR_MIPMAP_LINEAR,r=tN.Texture.BILINEAR_SAMPLINGMODE,l=null==s?new Blob:new Blob([(0,tZ.GetBlobBufferSource)(s)]),h=URL.createObjectURL(l),u=()=>URL.revokeObjectURL(h),c=new tN.Texture(h,e.scene,!o,!0,r,u,u);void 0!==a.wrapS&&(c.wrapU=tQ.GetWrapMode(a.wrapS)),void 0!==a.wrapT&&(c.wrapV=tQ.GetWrapMode(a.wrapT)),c.name=t,i.babylonTexture=c,n(c)}static LoadShaderStringAsync(e,t,s,n){let i=e.shaders[t];if(eZ.Tools.IsBase64(i.uri)){let e=atob(i.uri.split(",")[1]);s&&s(e)}else eZ.Tools.LoadFile(e.rootUrl+i.uri,s,void 0,void 0,!1,e=>{e&&n&&n(e.status+" "+e.statusText)})}static LoadMaterialAsync(e,t,s,n){let i=e.materials[t];if(!i.technique){n&&n("No technique found.");return}let a=e.techniques[i.technique];if(!a){e.scene._blockEntityCollection=!!e.assetContainer;let n=new tI.StandardMaterial(t,e.scene);n._parentContainer=e.assetContainer,e.scene._blockEntityCollection=!1,n.diffuseColor=new tA.Color3(.5,.5,.5),n.sideOrientation=tR.Material.CounterClockWiseSideOrientation,s(n);return}let o=e.programs[a.program],r=a.states,l=tE.Effect.ShadersStore[o.vertexShader+"VertexShader"],h=tE.Effect.ShadersStore[o.fragmentShader+"PixelShader"],u="",c="",d=new tJ(l),p=new tJ(h),_={},m=[],f=[],g=[];for(let e in a.uniforms){let t=a.uniforms[e],s=a.parameters[t];if(_[e]=s,!s.semantic||s.node||s.source)s.type===eU.SAMPLER_2D?g.push(e):m.push(e);else{let t=t0.indexOf(s.semantic);-1!==t?(m.push(t1[t]),delete _[e]):m.push(e)}}for(let e in a.attributes){let t=a.attributes[e],s=a.parameters[t];if(s.semantic){let e=t5(s);e&&f.push(e)}}for(;!d.isEnd()&&d.getNextToken();){if(d.currentToken!==eX.IDENTIFIER){u+=d.currentString;continue}let e=!1;for(let t in a.attributes){let s=a.attributes[t],n=a.parameters[s];if(d.currentIdentifier===t&&n.semantic){u+=t5(n),e=!0;break}}e||(u+=so(d,a,_))}for(;!p.isEnd()&&p.getNextToken();){if(p.currentToken!==eX.IDENTIFIER){c+=p.currentString;continue}c+=so(p,a,_)}let y={vertex:o.vertexShader+t,fragment:o.fragmentShader+t},b={attributes:f,uniforms:m,samplers:g,needAlphaBlending:r&&r.enable&&-1!==r.enable.indexOf(3042)};tE.Effect.ShadersStore[o.vertexShader+t+"VertexShader"]=u,tE.Effect.ShadersStore[o.fragmentShader+t+"PixelShader"]=c;let T=new tB.ShaderMaterial(t,e.scene,y,b);if(T.onError=(e,t)=>{T.dispose(!0),n("Cannot compile program named "+o.name+". Error: "+t+". Default material will be applied")},T.onCompiled=t=>{((e,t,s,n,i)=>{let a=n.values||s.parameters,o=s.uniforms;for(let s in i){let r=i[s],l=r.type,h=a[o[s]];if(void 0===h&&(h=r.value),!h)continue;let u=e=>s=>{r.value&&e&&(t.setTexture(e,s),delete i[e])};l===eU.SAMPLER_2D?su.LoadTextureAsync(e,n.values?h:r.value,u(s),()=>u(null)):r.value&&tQ.SetUniform(t,s,n.values?h:r.value,l)&&delete i[s]}})(e,T,a,i,_),T.onBind=t=>{((e,t,s,n,i,a,o)=>{let r=a.values||i.parameters;for(let o in s){let l=s[o],h=l.type;if(h===eU.FLOAT_MAT2||h===eU.FLOAT_MAT3||h===eU.FLOAT_MAT4)if(!l.semantic||l.source||l.node){if(l.semantic&&(l.source||l.node)){let e=t.scene.getNodeByName(l.source||l.node||"");if(null===e&&(e=t.scene.getNodeById(l.source||l.node||"")),null===e)continue;tQ.SetMatrix(t.scene,e,l,o,n.getEffect())}}else tQ.SetMatrix(t.scene,e,l,o,n.getEffect());else{let e=r[i.uniforms[o]];if(!e)continue;if(h===eU.SAMPLER_2D){let s=t.textures[a.values?e:l.value].babylonTexture;if(null==s)continue;n.getEffect().setTexture(o,s)}else tQ.SetUniform(n.getEffect(),o,e,h)}}o(n)})(t,e,_,T,a,i,s)}},T.sideOrientation=tR.Material.CounterClockWiseSideOrientation,r&&r.functions){let e=r.functions;e.cullFace&&e.cullFace[0]!==eW.BACK&&(T.backFaceCulling=!1);let t=e.blendFuncSeparate;t&&(t[0]===ej.SRC_ALPHA&&t[1]===ej.ONE_MINUS_SRC_ALPHA&&t[2]===ej.ONE&&t[3]===ej.ONE?T.alphaMode=tY.Constants.ALPHA_COMBINE:t[0]===ej.ONE&&t[1]===ej.ONE&&t[2]===ej.ZERO&&t[3]===ej.ONE?T.alphaMode=tY.Constants.ALPHA_ONEONE:t[0]===ej.SRC_ALPHA&&t[1]===ej.ONE&&t[2]===ej.ZERO&&t[3]===ej.ONE?T.alphaMode=tY.Constants.ALPHA_ADD:t[0]===ej.ZERO&&t[1]===ej.ONE_MINUS_SRC_COLOR&&t[2]===ej.ONE&&t[3]===ej.ONE?T.alphaMode=tY.Constants.ALPHA_SUBTRACT:t[0]===ej.DST_COLOR&&t[1]===ej.ZERO&&t[2]===ej.ONE&&t[3]===ej.ONE?T.alphaMode=tY.Constants.ALPHA_MULTIPLY:t[0]===ej.SRC_ALPHA&&t[1]===ej.ONE_MINUS_SRC_COLOR&&t[2]===ej.ONE&&t[3]===ej.ONE&&(T.alphaMode=tY.Constants.ALPHA_MAXIMIZED))}}}class sh{static RegisterExtension(e){sh.Extensions[e.name]?eZ.Tools.Error('Tool with the same name "'+e.name+'" already exists'):sh.Extensions[e.name]=e}dispose(){}_importMeshAsync(e,t,s,n,i,a,o,r){return t.useRightHandedSystem=!0,su.LoadRuntimeAsync(t,s,n,t=>{t.assetContainer=i,t.importOnlyMeshes=!0,""===e?t.importMeshesNames=[]:"string"==typeof e?t.importMeshesNames=[e]:!e||e instanceof Array?(t.importMeshesNames=[],eZ.Tools.Warn("Argument meshesNames must be of type string or string[]")):t.importMeshesNames=[e],this._createNodes(t);let s=[],n=[];for(let e in t.nodes){let n=t.nodes[e];n.babylonNode instanceof e2.AbstractMesh&&s.push(n.babylonNode)}for(let e in t.skins){let s=t.skins[e];s.babylonSkeleton instanceof tF&&n.push(s.babylonSkeleton)}this._loadBuffersAsync(t,()=>{this._loadShadersAsync(t,()=>{sr(t),sa(t),!tg.IncrementalLoading&&a&&a(s,n)})}),tg.IncrementalLoading&&a&&a(s,n)},r),!0}importMeshAsync(e,t,s,n,i,a){return new Promise((o,r)=>{this._importMeshAsync(e,t,n,i,s,(e,t)=>{o({meshes:e,particleSystems:[],skeletons:t,animationGroups:[],lights:[],transformNodes:[],geometries:[],spriteManagers:[]})},a,e=>{r(Error(e))})})}_loadAsync(e,t,s,n,i,a){e.useRightHandedSystem=!0,su.LoadRuntimeAsync(e,t,s,e=>{su.LoadRuntimeExtensionsAsync(e,()=>{this._createNodes(e),this._loadBuffersAsync(e,()=>{this._loadShadersAsync(e,()=>{sr(e),sa(e),tg.IncrementalLoading||n()})}),tg.IncrementalLoading&&n()},a)},a)}async loadAsync(e,t,s,n){return await new Promise((i,a)=>{this._loadAsync(e,t,s,()=>{i()},n,e=>{a(Error(e))})})}_loadShadersAsync(e,t){let s=!1,n=(s,n)=>{su.LoadShaderStringAsync(e,s,i=>{i instanceof ArrayBuffer||(e.loadedShaderCount++,i&&(tE.Effect.ShadersStore[s+(n.type===eH.VERTEX?"VertexShader":"PixelShader")]=i),e.loadedShaderCount===e.shaderscount&&t())},()=>{eZ.Tools.Error("Error when loading shader program named "+s+" located at "+n.uri)})};for(let t in e.shaders){s=!0;let i=e.shaders[t];i?n.bind(this,t,i)():eZ.Tools.Error("No shader named: "+t)}s||t()}_loadBuffersAsync(e,t){let s=!1,n=(s,n)=>{su.LoadBufferAsync(e,s,i=>{e.loadedBufferCount++,i&&(i.byteLength!=e.buffers[s].byteLength&&eZ.Tools.Error("Buffer named "+s+" is length "+i.byteLength+". Expected: "+n.byteLength),e.loadedBufferViews[s]=i),e.loadedBufferCount===e.buffersCount&&t()},()=>{eZ.Tools.Error("Error when loading buffer named "+s+" located at "+n.uri)})};for(let t in e.buffers){s=!0;let i=e.buffers[t];i?n.bind(this,t,i)():eZ.Tools.Error("No buffer named: "+t)}s||t()}_createNodes(e){let t=e.currentScene;if(t)for(let s=0;s<t.nodes.length;s++)si(e,t.nodes[s],null);else for(let s in e.scenes){t=e.scenes[s];for(let s=0;s<t.nodes.length;s++)si(e,t.nodes[s],null)}}}sh.Extensions={};class su{constructor(e){this._name=e}get name(){return this._name}loadRuntimeAsync(e,t,s,n,i){return!1}loadRuntimeExtensionsAsync(e,t,s){return!1}loadBufferAsync(e,t,s,n,i){return!1}loadTextureBufferAsync(e,t,s,n){return!1}createTextureAsync(e,t,s,n,i){return!1}loadShaderStringAsync(e,t,s,n){return!1}loadMaterialAsync(e,t,s,n){return!1}static LoadRuntimeAsync(e,t,s,n,i){su._ApplyExtensions(a=>a.loadRuntimeAsync(e,t,s,n,i),()=>{setTimeout(()=>{n&&n(sl.CreateRuntime(t.json,e,s))})})}static LoadRuntimeExtensionsAsync(e,t,s){su._ApplyExtensions(n=>n.loadRuntimeExtensionsAsync(e,t,s),()=>{setTimeout(()=>{t()})})}static LoadBufferAsync(e,t,s,n,i){su._ApplyExtensions(a=>a.loadBufferAsync(e,t,s,n,i),()=>{sl.LoadBufferAsync(e,t,s,n,i)})}static LoadTextureAsync(e,t,s,n){su._LoadTextureBufferAsync(e,t,i=>{i&&su._CreateTextureAsync(e,t,i,s,n)},n)}static LoadShaderStringAsync(e,t,s,n){su._ApplyExtensions(i=>i.loadShaderStringAsync(e,t,s,n),()=>{sl.LoadShaderStringAsync(e,t,s,n)})}static LoadMaterialAsync(e,t,s,n){su._ApplyExtensions(i=>i.loadMaterialAsync(e,t,s,n),()=>{sl.LoadMaterialAsync(e,t,s,n)})}static _LoadTextureBufferAsync(e,t,s,n){su._ApplyExtensions(i=>i.loadTextureBufferAsync(e,t,s,n),()=>{sl.LoadTextureBufferAsync(e,t,s,n)})}static _CreateTextureAsync(e,t,s,n,i){su._ApplyExtensions(a=>a.createTextureAsync(e,t,s,n,i),()=>{sl.CreateTextureAsync(e,t,s,n)})}static _ApplyExtensions(e,t){for(let t in sh.Extensions)if(e(sh.Extensions[t]))return;t()}}tg._CreateGLTF1Loader=()=>new sh,e.s(["GLTFLoader",0,sh,"GLTFLoaderBase",0,sl,"GLTFLoaderExtension",0,su],38843);class sc extends su{constructor(){super("KHR_binary_glTF")}loadRuntimeAsync(e,t,s,n){let i=t.json.extensionsUsed;return!!i&&-1!==i.indexOf(this.name)&&!!t.bin&&(this._bin=t.bin,n(sl.CreateRuntime(t.json,e,s)),!0)}loadBufferAsync(e,t,s,n){return -1!==e.extensionsUsed.indexOf(this.name)&&"binary_glTF"===t&&(this._bin.readAsync(0,this._bin.byteLength).then(s,e=>n(e.message)),!0)}loadTextureBufferAsync(e,t,s){let n=e.textures[t],i=e.images[n.source];if(!i.extensions||!(this.name in i.extensions))return!1;let a=i.extensions[this.name],o=e.bufferViews[a.bufferView];return s(tQ.GetBufferFromBufferView(e,o,0,o.byteLength,eK.UNSIGNED_BYTE)),!0}loadShaderStringAsync(e,t,s){let n=e.shaders[t];if(!n.extensions||!(this.name in n.extensions))return!1;let i=n.extensions[this.name],a=e.bufferViews[i.bufferView],o=tQ.GetBufferFromBufferView(e,a,0,a.byteLength,eK.UNSIGNED_BYTE);return setTimeout(()=>{s(tQ.DecodeBufferToText(o))}),!0}}sh.RegisterExtension(new sc),e.s(["GLTFBinaryExtension",0,sc],55619);class sd extends su{constructor(){super("KHR_materials_common")}loadRuntimeExtensionsAsync(e){if(!e.extensions)return!1;let t=e.extensions[this.name];if(!t)return!1;let s=t.lights;if(s)for(let t in s){let n=s[t];switch(n.type){case"ambient":{let t=new tD.HemisphericLight(n.name,new tT.Vector3(0,1,0),e.scene),s=n.ambient;s&&(t.diffuse=tA.Color3.FromArray(s.color||[1,1,1]));break}case"point":{let t=new tW(n.name,new tT.Vector3(10,10,10),e.scene),s=n.point;s&&(t.diffuse=tA.Color3.FromArray(s.color||[1,1,1]));break}case"directional":{let t=new tz(n.name,new tT.Vector3(0,-1,0),e.scene),s=n.directional;s&&(t.diffuse=tA.Color3.FromArray(s.color||[1,1,1]));break}case"spot":{let t=n.spot;t&&(new tX.SpotLight(n.name,new tT.Vector3(0,10,0),new tT.Vector3(0,-1,0),t.fallOffAngle||Math.PI,t.fallOffExponent||0,e.scene).diffuse=tA.Color3.FromArray(t.color||[1,1,1]));break}default:eZ.Tools.Warn('GLTF Material Common extension: light type "'+n.type+"” not supported")}}return!1}loadMaterialAsync(e,t,s,n){let i=e.materials[t];if(!i||!i.extensions)return!1;let a=i.extensions[this.name];if(!a)return!1;let o=new tI.StandardMaterial(t,e.scene);return o.sideOrientation=tR.Material.CounterClockWiseSideOrientation,"CONSTANT"===a.technique&&(o.disableLighting=!0),o.backFaceCulling=void 0!==a.doubleSided&&!a.doubleSided,o.alpha=void 0===a.values.transparency?1:a.values.transparency,o.specularPower=void 0===a.values.shininess?0:a.values.shininess,"string"==typeof a.values.ambient?this._loadTexture(e,a.values.ambient,o,"ambientTexture",n):o.ambientColor=tA.Color3.FromArray(a.values.ambient||[0,0,0]),"string"==typeof a.values.diffuse?this._loadTexture(e,a.values.diffuse,o,"diffuseTexture",n):o.diffuseColor=tA.Color3.FromArray(a.values.diffuse||[0,0,0]),"string"==typeof a.values.emission?this._loadTexture(e,a.values.emission,o,"emissiveTexture",n):o.emissiveColor=tA.Color3.FromArray(a.values.emission||[0,0,0]),"string"==typeof a.values.specular?this._loadTexture(e,a.values.specular,o,"specularTexture",n):o.specularColor=tA.Color3.FromArray(a.values.specular||[0,0,0]),!0}_loadTexture(e,t,s,n,i){sl.LoadTextureBufferAsync(e,t,i=>{sl.CreateTextureAsync(e,t,i,e=>s[n]=e)},i)}}sh.RegisterExtension(new sd),e.s(["GLTFMaterialsCommonExtension",0,sd],99153),e.s([],63655),e.i(63655),e.i(55619),e.i(38843),e.i(29752),e.i(81395),e.i(99153),e.s(["EBlendingFunction",0,ej,"EComponentType",0,eK,"ECullingType",0,eW,"EParameterType",0,eU,"EShaderType",0,eH,"ETextureFilterType",0,ez,"ETextureFormat",0,eq,"ETextureWrapMode",0,e$,"GLTFBinaryExtension",0,sc,"GLTFLoader",0,sh,"GLTFLoaderBase",0,sl,"GLTFLoaderExtension",0,su,"GLTFMaterialsCommonExtension",0,sd,"GLTFUtils",0,tQ],78268);var sp=e.i(78268);(0,e4.RegisterInstancedMesh)();class s_{get resolve(){return this._resolve}get reject(){return this._reject}constructor(){this.promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}}var sm=e.i(22832);let sf=(I=[],B=[],N=[],k=[],eB=class{get influence(){return this._influence}set influence(e){if(this._influence===e)return;let t=this._influence;this._influence=e,this.onInfluenceChanged.hasObservers()&&this.onInfluenceChanged.notifyObservers(0===t||0===e)}get animationPropertiesOverride(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride}set animationPropertiesOverride(e){this._animationPropertiesOverride=e}constructor(e,t=0,s=null,n=null){this.name=e,this.animations=[],this._positions=null,this._normals=null,this._tangents=null,this._uvs=null,this._uv2s=null,this._colors=null,this._uniqueId=0,this.onInfluenceChanged=new eY.Observable,this._onDataLayoutChanged=new eY.Observable,this.id=(0,tV.__runInitializers)(this,I,void 0),this.morphTargetManager=((0,tV.__runInitializers)(this,B),(0,tV.__runInitializers)(this,N,null)),this._animationPropertiesOverride=((0,tV.__runInitializers)(this,k),null),this.id=e,this.morphTargetManager=n,this._scene=s||e8.EngineStore.LastCreatedScene,this.influence=t,this._scene&&(this._uniqueId=this._scene.getUniqueId())}get uniqueId(){return this._uniqueId}get hasPositions(){return!!this._positions}get hasNormals(){return!!this._normals}get hasTangents(){return!!this._tangents}get hasUVs(){return!!this._uvs}get hasUV2s(){return!!this._uv2s}get hasColors(){return!!this._colors}get vertexCount(){return this._positions?this._positions.length/3:this._normals?this._normals.length/3:this._tangents?this._tangents.length/3:this._uvs?this._uvs.length/2:this._uv2s?this._uv2s.length/2:this._colors?this._colors.length/4:0}setPositions(e){let t=this.hasPositions;this._positions=e,t!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)}getPositions(){return this._positions}setNormals(e){let t=this.hasNormals;this._normals=e,t!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)}getNormals(){return this._normals}setTangents(e){let t=this.hasTangents;this._tangents=e,t!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)}getTangents(){return this._tangents}setUVs(e){let t=this.hasUVs;this._uvs=e,t!==this.hasUVs&&this._onDataLayoutChanged.notifyObservers(void 0)}getUVs(){return this._uvs}setUV2s(e){let t=this.hasUV2s;this._uv2s=e,t!==this.hasUV2s&&this._onDataLayoutChanged.notifyObservers(void 0)}getUV2s(){return this._uv2s}setColors(e){let t=this.hasColors;this._colors=e,t!==this.hasColors&&this._onDataLayoutChanged.notifyObservers(void 0)}getColors(){return this._colors}clone(){let e=sm.SerializationHelper.Clone(()=>new eB(this.name,this.influence,this._scene,this.morphTargetManager),this);return e._positions=this._positions,e._normals=this._normals,e._tangents=this._tangents,e._uvs=this._uvs,e._uv2s=this._uv2s,e._colors=this._colors,e}serialize(){let e={};return e.name=this.name,e.influence=this.influence,null!=this.id&&(e.id=this.id),e.uniqueId=this.uniqueId,e.positions=Array.prototype.slice.call(this.getPositions()),this.hasNormals&&(e.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(e.tangents=Array.prototype.slice.call(this.getTangents())),this.hasUVs&&(e.uvs=Array.prototype.slice.call(this.getUVs())),this.hasUV2s&&(e.uv2s=Array.prototype.slice.call(this.getUV2s())),this.hasColors&&(e.colors=Array.prototype.slice.call(this.getColors())),sm.SerializationHelper.AppendSerializedAnimations(this,e),e}getClassName(){return"MorphTarget"}static Parse(e,t,s=null){let n=new eB(e.name,e.influence,t,s);if(n.setPositions(e.positions),null!=e.id&&(n.id=e.id),e.normals&&n.setNormals(e.normals),e.tangents&&n.setTangents(e.tangents),e.uvs&&n.setUVs(e.uvs),e.uv2s&&n.setUV2s(e.uv2s),e.colors&&n.setColors(e.colors),e.animations){for(let t=0;t<e.animations.length;t++){let s=e.animations[t],i=(0,t$.GetClass)("BABYLON.Animation");i&&n.animations.push(i.Parse(s))}e.autoAnimate&&t&&t.beginAnimation(n,e.autoAnimateFrom,e.autoAnimateTo,e.autoAnimateLoop,e.autoAnimateSpeed||1)}return n}static FromMesh(e,t,s){t||(t=e.name);let n=new eB(t,s,e.getScene(),e.morphTargetManager);return n.setPositions(e.getVerticesData(tP.VertexBuffer.PositionKind)),e.isVerticesDataPresent(tP.VertexBuffer.NormalKind)&&n.setNormals(e.getVerticesData(tP.VertexBuffer.NormalKind)),e.isVerticesDataPresent(tP.VertexBuffer.TangentKind)&&n.setTangents(e.getVerticesData(tP.VertexBuffer.TangentKind)),e.isVerticesDataPresent(tP.VertexBuffer.UVKind)&&n.setUVs(e.getVerticesData(tP.VertexBuffer.UVKind)),e.isVerticesDataPresent(tP.VertexBuffer.UV2Kind)&&n.setUV2s(e.getVerticesData(tP.VertexBuffer.UV2Kind)),e.isVerticesDataPresent(tP.VertexBuffer.ColorKind)&&n.setColors(e.getVerticesData(tP.VertexBuffer.ColorKind)),n}},P="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0,R=[(0,tK.serialize)()],O=[(0,tK.serialize)()],(0,tV.__esDecorate)(null,null,R,{kind:"field",name:"id",static:!1,private:!1,access:{has:e=>"id"in e,get:e=>e.id,set:(e,t)=>{e.id=t}},metadata:P},I,B),(0,tV.__esDecorate)(null,null,O,{kind:"field",name:"morphTargetManager",static:!1,private:!1,access:{has:e=>"morphTargetManager"in e,get:e=>e.morphTargetManager,set:(e,t)=>{e.morphTargetManager=t}},metadata:P},N,k),P&&Object.defineProperty(eB,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:P}),eB);var sg=e.i(36598),sy=tN;class sb extends sy.Texture{get depth(){return this._depth}constructor(e,t,s,n,i,a,o=!0,r=!1,l=sy.Texture.TRILINEAR_SAMPLINGMODE,h=0,u,c){super(null,a,!o,r),this.format=i,this._texture=a.getEngine().createRawTexture2DArray(e,t,s,n,i,o,r,l,null,h,u??0,c),this._depth=n,this.is2DArray=!0}update(e){this.updateMipLevel(e,0)}updateMipLevel(e,t){this._texture&&this._getEngine().updateRawTexture2DArray(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type,t)}static CreateRGBATexture(e,t,s,n,i,a=!0,o=!1,r=3,l=0){return new sb(e,t,s,n,5,i,a,o,r,l)}}class sT{set areUpdatesFrozen(e){e?this._blockCounter++:(this._blockCounter--,this._blockCounter<=0&&(this._blockCounter=0,this._syncActiveTargets(this._forceUpdateWhenUnfrozen),this._forceUpdateWhenUnfrozen=!1))}get areUpdatesFrozen(){return this._blockCounter>0}constructor(e=null,t){if(this.meshName=t,this._targets=[],this._targetInfluenceChangedObservers=[],this._targetDataLayoutChangedObservers=[],this._activeTargets=new sg.SmartArray(16),this._supportsPositions=!1,this._supportsNormals=!1,this._supportsTangents=!1,this._supportsUVs=!1,this._supportsUV2s=!1,this._supportsColors=!1,this._vertexCount=0,this._uniqueId=0,this._tempInfluences=[],this._canUseTextureForTargets=!1,this._blockCounter=0,this._mustSynchronize=!0,this._forceUpdateWhenUnfrozen=!1,this._textureVertexStride=0,this._textureWidth=0,this._textureHeight=1,this._parentContainer=null,this.optimizeInfluencers=!0,this.enablePositionMorphing=!0,this.enableNormalMorphing=!0,this.enableTangentMorphing=!0,this.enableUVMorphing=!0,this.enableUV2Morphing=!0,this.enableColorMorphing=!0,this._numMaxInfluencers=0,this._useTextureToStoreTargets=!0,this.metadata=null,this._influencesAreDirty=!1,this._needUpdateInfluences=!1,e||(e=e8.EngineStore.LastCreatedScene),this._scene=e,this._scene){this._scene.addMorphTargetManager(this),this._uniqueId=this._scene.getUniqueId();const e=this._scene.getEngine().getCaps();this._canUseTextureForTargets=e.canUseGLVertexID&&e.textureFloat&&e.maxVertexTextureImageUnits>0&&e.texture2DArrayMaxLayerCount>1}}get numMaxInfluencers(){return sT.ConstantTargetCountForTextureMode>0&&this.isUsingTextureForTargets?sT.ConstantTargetCountForTextureMode:this._numMaxInfluencers}set numMaxInfluencers(e){this._numMaxInfluencers!==e&&(this._numMaxInfluencers=e,this._mustSynchronize=!0,this._syncActiveTargets())}get uniqueId(){return this._uniqueId}get vertexCount(){return this._vertexCount}get supportsPositions(){return this._supportsPositions&&this.enablePositionMorphing}get supportsNormals(){return this._supportsNormals&&this.enableNormalMorphing}get supportsTangents(){return this._supportsTangents&&this.enableTangentMorphing}get supportsUVs(){return this._supportsUVs&&this.enableUVMorphing}get supportsUV2s(){return this._supportsUV2s&&this.enableUV2Morphing}get supportsColors(){return this._supportsColors&&this.enableColorMorphing}get hasPositions(){return this._supportsPositions}get hasNormals(){return this._supportsNormals}get hasTangents(){return this._supportsTangents}get hasUVs(){return this._supportsUVs}get hasUV2s(){return this._supportsUV2s}get hasColors(){return this._supportsColors}get numTargets(){return this._targets.length}get numInfluencers(){return this._influencesAreDirty&&this._syncActiveTargets(),this._activeTargets.length}get influences(){return this._influencesAreDirty&&this._syncActiveTargets(),this._influences}get useTextureToStoreTargets(){return this._useTextureToStoreTargets}set useTextureToStoreTargets(e){this._useTextureToStoreTargets!==e&&(this._useTextureToStoreTargets=e,this._mustSynchronize=!0,this._syncActiveTargets())}get isUsingTextureForTargets(){return sT.EnableTextureStorage&&this.useTextureToStoreTargets&&this._canUseTextureForTargets&&!this._scene?.getEngine().getCaps().disableMorphTargetTexture}getActiveTarget(e){return this._influencesAreDirty&&this._syncActiveTargets(),this._activeTargets.data[e]}getTarget(e){return this._targets[e]}getTargetByName(e){for(let t of this._targets)if(t.name===e)return t;return null}addTarget(e){this._targets.push(e),this._targetInfluenceChangedObservers.push(e.onInfluenceChanged.add(e=>{this.areUpdatesFrozen&&e&&(this._forceUpdateWhenUnfrozen=!0),this._influencesAreDirty=!0,this._needUpdateInfluences=this._needUpdateInfluences||e})),this._targetDataLayoutChangedObservers.push(e._onDataLayoutChanged.add(()=>{this._mustSynchronize=!0,this._syncActiveTargets()})),this._mustSynchronize=!0,this._syncActiveTargets()}removeTarget(e){let t=this._targets.indexOf(e);t>=0&&(this._targets.splice(t,1),e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t,1)[0]),e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t,1)[0]),this._mustSynchronize=!0,this._syncActiveTargets()),this._scene&&this._scene.stopAnimation(e)}_bind(e){this._influencesAreDirty&&this._syncActiveTargets(),e.setFloat3("morphTargetTextureInfo",this._textureVertexStride,this._textureWidth,this._textureHeight),e.setFloatArray("morphTargetTextureIndices",this._morphTargetTextureIndices),e.setTexture("morphTargets",this._targetStoreTexture),e.setFloat("morphTargetCount",this.numInfluencers)}clone(){let e=new sT(this._scene);for(let t of(e.areUpdatesFrozen=!0,this._targets))e.addTarget(t.clone());return e.areUpdatesFrozen=!1,e.enablePositionMorphing=this.enablePositionMorphing,e.enableNormalMorphing=this.enableNormalMorphing,e.enableTangentMorphing=this.enableTangentMorphing,e.enableUVMorphing=this.enableUVMorphing,e.enableUV2Morphing=this.enableUV2Morphing,e.enableColorMorphing=this.enableColorMorphing,e.metadata=this.metadata,e}serialize(){let e={};for(let t of(e.id=this.uniqueId,e.meshName=this.meshName,e.targets=[],this._targets))e.targets.push(t.serialize());return this.metadata&&(e.metadata=this.metadata),e}_syncActiveTargets(e=!1){if(this.areUpdatesFrozen)return;e=e||this._needUpdateInfluences,this._needUpdateInfluences=!1,this._influencesAreDirty=!1;let t=!!this._targetStoreTexture,s=this.isUsingTextureForTargets;(this._mustSynchronize||t!==s)&&(this._mustSynchronize=!1,this.synchronize());let n=0;this._activeTargets.reset(),this._morphTargetTextureIndices&&this._morphTargetTextureIndices.length===this._targets.length||(this._morphTargetTextureIndices=new Float32Array(this._targets.length));let i=-1;for(let e of this._targets)if(i++,0!==e.influence||!this.optimizeInfluencers){if(this._activeTargets.length>=sT.MaxActiveMorphTargetsInVertexAttributeMode&&!this.isUsingTextureForTargets)break;this._activeTargets.push(e),this._morphTargetTextureIndices[n]=i,this._tempInfluences[n++]=e.influence}this._morphTargetTextureIndices.length!==n&&(this._morphTargetTextureIndices=this._morphTargetTextureIndices.slice(0,n)),this._influences&&this._influences.length===n||(this._influences=new Float32Array(n));for(let e=0;e<n;e++)this._influences[e]=this._tempInfluences[e];if(e&&this._scene)for(let e of this._scene.meshes)e.morphTargetManager===this&&(s?e._markSubMeshesAsAttributesDirty():e._syncGeometryWithMorphTargetManager())}synchronize(){if(!this._scene||this.areUpdatesFrozen)return;let e=this._scene.getEngine();for(let t of(this._supportsPositions=!0,this._supportsNormals=!0,this._supportsTangents=!0,this._supportsUVs=!0,this._supportsUV2s=!0,this._supportsColors=!0,this._vertexCount=0,this._targetStoreTexture?.dispose(),this._targetStoreTexture=null,this.isUsingTextureForTargets&&this._targets.length>e.getCaps().texture2DArrayMaxLayerCount&&(this.useTextureToStoreTargets=!1),this._targets)){this._supportsPositions=this._supportsPositions&&t.hasPositions,this._supportsNormals=this._supportsNormals&&t.hasNormals,this._supportsTangents=this._supportsTangents&&t.hasTangents,this._supportsUVs=this._supportsUVs&&t.hasUVs,this._supportsUV2s=this._supportsUV2s&&t.hasUV2s,this._supportsColors=this._supportsColors&&t.hasColors;let e=t.vertexCount;if(0===this._vertexCount)this._vertexCount=e;else if(this._vertexCount!==e)return void e3.Logger.Error(`Incompatible target. Targets must all have the same vertices count. Current vertex count: ${this._vertexCount}, vertex count for target "${t.name}": ${e}`)}if(this.isUsingTextureForTargets){let t;this._textureVertexStride=0,this._supportsPositions&&this._textureVertexStride++,this._supportsNormals&&this._textureVertexStride++,this._supportsTangents&&this._textureVertexStride++,this._supportsUVs&&this._textureVertexStride++,this._supportsUV2s&&this._textureVertexStride++,this._supportsColors&&this._textureVertexStride++,this._textureWidth=this._vertexCount*this._textureVertexStride||1,this._textureHeight=1;let s=e.getCaps().maxTextureSize;this._textureWidth>s&&(this._textureHeight=Math.ceil(this._textureWidth/s),this._textureWidth=s);let n=this._targets.length,i=new Float32Array(n*this._textureWidth*this._textureHeight*4);for(let e=0;e<n;e++){let s=this._targets[e],n=s.getPositions(),a=s.getNormals(),o=s.getUVs(),r=s.getTangents(),l=s.getUV2s(),h=s.getColors();t=e*this._textureWidth*this._textureHeight*4;for(let e=0;e<this._vertexCount;e++)this._supportsPositions&&n&&(i[t]=n[3*e],i[t+1]=n[3*e+1],i[t+2]=n[3*e+2],t+=4),this._supportsNormals&&a&&(i[t]=a[3*e],i[t+1]=a[3*e+1],i[t+2]=a[3*e+2],t+=4),this._supportsUVs&&o&&(i[t]=o[2*e],i[t+1]=o[2*e+1],t+=4),this._supportsTangents&&r&&(i[t]=r[3*e],i[t+1]=r[3*e+1],i[t+2]=r[3*e+2],t+=4),this._supportsUV2s&&l&&(i[t]=l[2*e],i[t+1]=l[2*e+1],t+=4),this._supportsColors&&h&&(i[t]=h[4*e],i[t+1]=h[4*e+1],i[t+2]=h[4*e+2],i[t+3]=h[4*e+3],t+=4)}this._targetStoreTexture=sb.CreateRGBATexture(i,this._textureWidth,this._textureHeight,n,this._scene,!1,!1,1,1),this._targetStoreTexture.name=`Morph texture_${this.uniqueId}`}for(let e of this._scene.meshes)e.morphTargetManager===this&&e._syncGeometryWithMorphTargetManager()}dispose(){if(this._targetStoreTexture&&this._targetStoreTexture.dispose(),this._targetStoreTexture=null,this.metadata=null,this._scene){if(this._scene.removeMorphTargetManager(this),this._parentContainer){let e=this._parentContainer.morphTargetManagers.indexOf(this);e>-1&&this._parentContainer.morphTargetManagers.splice(e,1),this._parentContainer=null}for(let e of this._targets)this._scene.stopAnimation(e)}}static Parse(e,t){let s=new sT(t);for(let n of e.targets)s.addTarget(sf.Parse(n,t,s));return e.metadata&&(s.metadata=e.metadata),s}}sT.EnableTextureStorage=!0,sT.MaxActiveMorphTargetsInVertexAttributeMode=8,sT.ConstantTargetCountForTextureMode=0;var sA=e.i(6939),sx=e.i(97363);let sv=new Map;function sw(e,t,s){sM(e)&&e3.Logger.Warn(`Extension with the name '${e}' already exists`),sv.set(e,{isGLTFExtension:t,factory:s})}function sM(e){return sv.delete(e)}e.s(["registerGLTFExtension",0,sw,"registeredGLTFExtensions",0,sv,"unregisterGLTFExtension",0,sM],14879);var sC=e.i(66433);class sS{constructor(e){this._factory=e}get value(){return this._factory&&(this._value=this._factory(),this._factory=void 0),this._value}}let sF=new sS(()=>e.A(42130)),sE=new sS(()=>e.A(6696));class sR{static Get(e,t,s){if(!t||void 0==s||!t[s])throw Error(`${e}: Failed to find index (${s})`);return t[s]}static TryGet(e,t){return e&&void 0!=t&&e[t]?e[t]:null}static Assign(e){if(e)for(let t=0;t<e.length;t++)e[t].index=t}}function sO(e){if(e.min&&e.max){let t=e.min,s=e.max,n=tT.TmpVectors.Vector3[0].copyFromFloats(t[0],t[1],t[2]),i=tT.TmpVectors.Vector3[1].copyFromFloats(s[0],s[1],s[2]);if(e.normalized&&5126!==e.componentType){let t=1;switch(e.componentType){case 5120:t=127;break;case 5121:t=255;break;case 5122:t=32767;break;case 5123:t=65535}let s=1/t;n.scaleInPlace(s),i.scaleInPlace(s)}return new sx.BoundingInfo(n,i)}return null}class sI{isMatchingMaterialType(e){if(!e)return!1;for(let t of Array.from(this._pbrMaterialImpls.values()))if(e instanceof t.materialClass)return!0;return!1}static RegisterExtension(e,t){sw(e,!1,t)}static UnregisterExtension(e){return sM(e)}get gltf(){if(!this._gltf)throw Error("glTF JSON is not available");return this._gltf}get bin(){return this._bin}get parent(){return this._parent}get babylonScene(){if(!this._babylonScene)throw Error("Scene is not available");return this._babylonScene}get rootBabylonMesh(){return this._rootBabylonMesh}get rootUrl(){return this._rootUrl}constructor(e){this._completePromises=[],this._assetContainer=null,this._babylonLights=[],this._disableInstancedMesh=0,this._allMaterialsDirtyRequired=!1,this._skipStartAnimationStep=!1,this._extensions=[],this._disposed=!1,this._rootUrl=null,this._fileName=null,this._uniqueRootUrl=null,this._bin=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions=[],this._materialAdapterCache=new WeakMap,this._materialAdapters=new Set,this._pbrMaterialImpls=new Map,this._parent=e}_getOrCreateMaterialAdapter(e){let t=this._materialAdapterCache.get(e);if(!t){for(let s of Array.from(this._pbrMaterialImpls.values()))if(e instanceof s.materialClass){t=new s.adapterClass(e);break}if(!t)throw Error("Appropriate material adapter class not found");let s=t;this._materialAdapterCache.set(e,s),this._materialAdapters.add(s)}return t}dispose(){this._disposed||(this._disposed=!0,this._completePromises.length=0,this._extensions.forEach(e=>e.dispose&&e.dispose()),this._extensions.length=0,this._materialAdapters.clear(),this._gltf=null,this._bin=null,this._babylonScene=null,this._rootBabylonMesh=null,this._defaultBabylonMaterialData={},this._postSceneLoadActions.length=0,this._parent.dispose())}async importMeshAsync(e,t,s,n,i,a,o=""){return await Promise.resolve().then(async()=>{this._babylonScene=t,this._assetContainer=s,this._loadData(n);let a=null;if(e){let t={};if(this._gltf.nodes)for(let e of this._gltf.nodes)e.name&&(t[e.name]=e.index);a=(e instanceof Array?e:[e]).map(e=>{let s=t[e];if(void 0===s)throw Error(`Failed to find node '${e}'`);return s})}return await this._loadAsync(i,o,a,()=>({meshes:this._getMeshes(),particleSystems:[],skeletons:this._getSkeletons(),animationGroups:this._getAnimationGroups(),lights:this._babylonLights,transformNodes:this._getTransformNodes(),geometries:this._getGeometries(),spriteManagers:[]}))})}async loadAsync(e,t,s,n,i=""){return this._babylonScene=e,this._loadData(t),await this._loadAsync(s,i,null,()=>void 0)}async _loadAsync(t,s,n,i){return await Promise.resolve().then(async()=>{if(this._rootUrl=t,this._uniqueRootUrl=!t.startsWith("file:")&&s?t:`${t}${(0,sA.RandomGUID)()}/`,this._fileName=s,this._allMaterialsDirtyRequired=!1,await this._loadExtensionsAsync(),!this.parent.skipMaterials){let t=this.parent.useOpenPBR||this.isExtensionUsed("KHR_materials_openpbr"),s=!1;this.parent.useOpenPBR?this._gltf.materials?.length&&this._gltf.materials.some(e=>!e.extensions?.KHR_materials_openpbr)&&(s=!0):s=!0;let n=[];t&&!this._pbrMaterialImpls.has("openpbr")&&n.push(Promise.all([e.A(14674),e.A(17740)]).then(([{OpenPBRMaterial:e,RegisterOpenpbrMaterial:t},{OpenPBRMaterialLoadingAdapter:s}])=>{t(),this._pbrMaterialImpls.set("openpbr",{materialClass:e,adapterClass:s})})),s&&!this._pbrMaterialImpls.has("pbr")&&n.push(Promise.all([e.A(49711),e.A(58141)]).then(([{PBRMaterial:e,RegisterPbrMaterial:t},{PBRMaterialLoadingAdapter:s}])=>{t(),this._pbrMaterialImpls.set("pbr",{materialClass:e,adapterClass:s})})),await Promise.all(n)}let a=`${eV[eV.LOADING]} => ${eV[eV.READY]}`,o=`${eV[eV.LOADING]} => ${eV[eV.COMPLETE]}`;this._parent._startPerformanceCounter(a),this._parent._startPerformanceCounter(o),this._parent._setState(eV.LOADING),this._extensionsOnLoading();let r=[],l=this._babylonScene.blockMaterialDirtyMechanism;if(this._babylonScene.blockMaterialDirtyMechanism=!0,!this.parent.loadOnlyMaterials){if(n)r.push(this.loadSceneAsync("/nodes",{nodes:n,index:-1}));else if(void 0!=this._gltf.scene||this._gltf.scenes&&this._gltf.scenes[0]){let e=sR.Get("/scene",this._gltf.scenes,this._gltf.scene||0);r.push(this.loadSceneAsync(`/scenes/${e.index}`,e))}}if(!this.parent.skipMaterials&&this.parent.loadAllMaterials&&this._gltf.materials)for(let e=0;e<this._gltf.materials.length;++e){let t=this._gltf.materials[e],s="/materials/"+e,n=tR.Material.TriangleFillMode;r.push(this._loadMaterialAsync(s,t,null,n,()=>{}))}this._allMaterialsDirtyRequired?this._babylonScene.blockMaterialDirtyMechanism=l:this._babylonScene._forceBlockMaterialDirtyMechanism(l),this._parent.compileMaterials&&r.push(this._compileMaterialsAsync()),this._parent.compileShadowGenerators&&r.push(this._compileShadowGeneratorsAsync());let h=Promise.all(r).then(()=>{for(let e of(this._rootBabylonMesh&&this._rootBabylonMesh!==this._parent.customRootNode&&this._rootBabylonMesh.setEnabled(!0),this._babylonScene.materials))void 0!==e.maxSimultaneousLights&&(e.maxSimultaneousLights=Math.max(e.maxSimultaneousLights,this._babylonScene.lights.length));for(let e of Array.from(this._materialAdapters))this._completePromises.push(e.finalizeAsync(this));return this._extensionsOnReady(),this._parent._setState(eV.READY),this._skipStartAnimationStep||this._startAnimations(),i()});return await h.then(e=>(this._parent._endPerformanceCounter(a),eZ.Tools.SetImmediate(()=>{this._disposed||Promise.all(this._completePromises).then(()=>{this._parent._endPerformanceCounter(o),this._parent._setState(eV.COMPLETE),this._parent.onCompleteObservable.notifyObservers(void 0),this._parent.onCompleteObservable.clear(),this.dispose()},e=>{this._parent.onErrorObservable.notifyObservers(e),this._parent.onErrorObservable.clear(),this.dispose()})}),e))}).catch(e=>{throw this._disposed||(this._parent.onErrorObservable.notifyObservers(e),this._parent.onErrorObservable.clear(),this.dispose()),e})}_loadData(e){if(this._gltf=e.json,this._setupData(),e.bin){let t=this._gltf.buffers;if(t&&t[0]&&!t[0].uri){let s=t[0];(s.byteLength<e.bin.byteLength-3||s.byteLength>e.bin.byteLength)&&e3.Logger.Warn(`Binary buffer length (${s.byteLength}) from JSON does not match chunk length (${e.bin.byteLength})`),this._bin=e.bin}else e3.Logger.Warn("Unexpected BIN chunk")}}_setupData(){if(sR.Assign(this._gltf.accessors),sR.Assign(this._gltf.animations),sR.Assign(this._gltf.buffers),sR.Assign(this._gltf.bufferViews),sR.Assign(this._gltf.cameras),sR.Assign(this._gltf.images),sR.Assign(this._gltf.materials),sR.Assign(this._gltf.meshes),sR.Assign(this._gltf.nodes),sR.Assign(this._gltf.samplers),sR.Assign(this._gltf.scenes),sR.Assign(this._gltf.skins),sR.Assign(this._gltf.textures),this._gltf.nodes){let e={};for(let t of this._gltf.nodes)if(t.children)for(let s of t.children)e[s]=t.index;let t=this._createRootNode();for(let s of this._gltf.nodes){let n=e[s.index];s.parent=void 0===n?t:this._gltf.nodes[n]}}}async _loadExtensionsAsync(){let e=[];if(sv.forEach((t,s)=>{this.parent.extensionOptions[s]?.enabled===!1?t.isGLTFExtension&&this.isExtensionUsed(s)&&e3.Logger.Warn(`Extension ${s} is used but has been explicitly disabled.`):(!t.isGLTFExtension||this.isExtensionUsed(s))&&e.push((async()=>{let e=await t.factory(this);return e.name!==s&&e3.Logger.Warn(`The name of the glTF loader extension instance does not match the registered name: ${e.name} !== ${s}`),this._parent.onExtensionLoadedObservable.notifyObservers(e),e})())}),this._extensions.push(...await Promise.all(e)),this._extensions.sort((e,t)=>(e.order||Number.MAX_VALUE)-(t.order||Number.MAX_VALUE)),this._parent.onExtensionLoadedObservable.clear(),this._gltf.extensionsRequired){for(let e of this._gltf.extensionsRequired)if(!this._extensions.some(t=>t.name===e&&t.enabled)){if(this.parent.extensionOptions[e]?.enabled===!1)throw Error(`Required extension ${e} is disabled`);throw Error(`Required extension ${e} is not available`)}}}_createRootNode(){if(void 0!==this._parent.customRootNode)return this._rootBabylonMesh=this._parent.customRootNode,{_babylonTransformNode:null===this._rootBabylonMesh?void 0:this._rootBabylonMesh,index:-1};this._babylonScene._blockEntityCollection=!!this._assetContainer;let e=new e0.Mesh("__root__",this._babylonScene);this._rootBabylonMesh=e,this._rootBabylonMesh._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._rootBabylonMesh.setEnabled(!1);let t={_babylonTransformNode:this._rootBabylonMesh,index:-1};switch(this._parent.coordinateSystemMode){case eG.AUTO:this._babylonScene.useRightHandedSystem||(t.rotation=[0,1,0,0],t.scale=[1,1,-1],sI._LoadTransform(t,this._rootBabylonMesh));break;case eG.FORCE_RIGHT_HANDED:this._babylonScene.useRightHandedSystem=!0;break;default:throw Error(`Invalid coordinate system mode (${this._parent.coordinateSystemMode})`)}return this._parent.onMeshLoadedObservable.notifyObservers(e),t}loadSceneAsync(e,t){let s=this._extensionsLoadSceneAsync(e,t);if(s)return s;let n=[];if(this.logOpen(`${e} ${t.name||""}`),t.nodes)for(let s of t.nodes){let t=sR.Get(`${e}/nodes/${s}`,this._gltf.nodes,s);n.push(this.loadNodeAsync(`/nodes/${t.index}`,t,e=>{e.parent=this._rootBabylonMesh}))}for(let e of this._postSceneLoadActions)e();return n.push(this._loadAnimationsAsync()),this.logClose(),Promise.all(n).then(()=>{})}_forEachPrimitive(e,t){if(e._primitiveBabylonMeshes)for(let s of e._primitiveBabylonMeshes)t(s)}_getGeometries(){let e=[],t=this._gltf.nodes;if(t)for(let s of t)this._forEachPrimitive(s,t=>{let s=t.geometry;s&&-1===e.indexOf(s)&&e.push(s)});return e}_getMeshes(){let e=[];this._rootBabylonMesh instanceof e2.AbstractMesh&&e.push(this._rootBabylonMesh);let t=this._gltf.nodes;if(t)for(let s of t)this._forEachPrimitive(s,t=>{e.push(t)});return e}_getTransformNodes(){let e=[],t=this._gltf.nodes;if(t)for(let s of t)s._babylonTransformNode&&"TransformNode"===s._babylonTransformNode.getClassName()&&e.push(s._babylonTransformNode),s._babylonTransformNodeForSkin&&e.push(s._babylonTransformNodeForSkin);return e}_getSkeletons(){let e=[],t=this._gltf.skins;if(t)for(let s of t)s._data&&e.push(s._data.babylonSkeleton);return e}_getAnimationGroups(){let e=[],t=this._gltf.animations;if(t)for(let s of t)s._babylonAnimationGroup&&e.push(s._babylonAnimationGroup);return e}_startAnimations(){switch(this._parent.animationStartMode){case eD.NONE:break;case eD.FIRST:{let e=this._getAnimationGroups();0!==e.length&&e[0].start(!0);break}case eD.ALL:for(let e of this._getAnimationGroups())e.start(!0);break;default:return void e3.Logger.Error(`Invalid animation start mode (${this._parent.animationStartMode})`)}}loadNodeAsync(e,t,s=()=>{}){let n=this._extensionsLoadNodeAsync(e,t,s);if(n)return n;if(t._babylonTransformNode)throw Error(`${e}: Invalid recursive node hierarchy`);let i=[];this.logOpen(`${e} ${t.name||""}`);let a=n=>{if(sI.AddPointerMetadata(n,e),sI._LoadTransform(t,n),void 0!=t.camera){let s=sR.Get(`${e}/camera`,this._gltf.cameras,t.camera);i.push(this.loadCameraAsync(`/cameras/${s.index}`,s,e=>{e.parent=n,this._babylonScene.useRightHandedSystem||(n.scaling.x=-1)}))}if(t.children)for(let s of t.children){let t=sR.Get(`${e}/children/${s}`,this._gltf.nodes,s);i.push(this.loadNodeAsync(`/nodes/${t.index}`,t,e=>{e.parent=n}))}s(n)},o=void 0!=t.mesh,r=this._parent.loadSkins&&void 0!=t.skin;if(!o||r){let e=t.name||`node${t.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;let s=new e1.TransformNode(e,this._babylonScene);s._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,void 0==t.mesh?t._babylonTransformNode=s:t._babylonTransformNodeForSkin=s,a(s)}if(o)if(r){let s=sR.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);i.push(this._loadMeshAsync(`/meshes/${s.index}`,t,s,s=>{let n=t._babylonTransformNodeForSkin;s.metadata=function e(...t){let s=e=>!!e&&"object"==typeof e;return t.reduce((t,n)=>{for(let i of Object.keys(n)){let a=t[i],o=n[i];Array.isArray(a)&&Array.isArray(o)?t[i]=a.concat(...o):s(a)&&s(o)?t[i]=e(a,o):t[i]=o}return t},{})}(n.metadata,s.metadata||{});let a=sR.Get(`${e}/skin`,this._gltf.skins,t.skin);i.push(this._loadSkinAsync(`/skins/${a.index}`,t,a,e=>{this._forEachPrimitive(t,t=>{t.skeleton=e}),this._postSceneLoadActions.push(()=>{if(void 0!=a.skeleton){let e=sR.Get(`/skins/${a.index}/skeleton`,this._gltf.nodes,a.skeleton).parent;t.index===e.index?s.parent=n.parent:s.parent=e._babylonTransformNode}else s.parent=this._rootBabylonMesh;this._parent.onSkinLoadedObservable.notifyObservers({node:n,skinnedNode:s})})}))}))}else{let s=sR.Get(`${e}/mesh`,this._gltf.meshes,t.mesh);i.push(this._loadMeshAsync(`/meshes/${s.index}`,t,s,a))}return this.logClose(),Promise.all(i).then(()=>(this._forEachPrimitive(t,e=>{!e.isAnInstance&&e.geometry&&e.geometry.useBoundingInfoFromGeometry?e._updateBoundingInfo():e.refreshBoundingInfo(!0,!0)}),t._babylonTransformNode))}_loadMeshAsync(e,t,s,n){let i=s.primitives;if(!i||!i.length)throw Error(`${e}: Primitives are missing`);void 0==i[0].index&&sR.Assign(i);let a=[];this.logOpen(`${e} ${s.name||""}`);let o=t.name||`node${t.index}`;if(1===i.length){let n=s.primitives[0];a.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${n.index}`,o,t,s,n,e=>{t._babylonTransformNode=e,t._primitiveBabylonMeshes=[e]}))}else for(let n of(this._babylonScene._blockEntityCollection=!!this._assetContainer,t._babylonTransformNode=new e1.TransformNode(o,this._babylonScene),t._babylonTransformNode._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._primitiveBabylonMeshes=[],i))a.push(this._loadMeshPrimitiveAsync(`${e}/primitives/${n.index}`,`${o}_primitive${n.index}`,t,s,n,e=>{e.parent=t._babylonTransformNode,t._primitiveBabylonMeshes.push(e)}));return n(t._babylonTransformNode),this.logClose(),Promise.all(a).then(()=>t._babylonTransformNode)}_loadMeshPrimitiveAsync(e,t,s,n,i,a){let o,r,l=this._extensionsLoadMeshPrimitiveAsync(e,t,s,n,i,a);if(l)return l;this.logOpen(`${e}`);let h=0===this._disableInstancedMesh&&this._parent.createInstances&&void 0==s.skin&&!n.primitives[0].targets;if(h&&i._instanceData)this._babylonScene._blockEntityCollection=!!this._assetContainer,(o=i._instanceData.babylonSourceMesh.createInstance(t))._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,r=i._instanceData.promise;else{let a=[];this._babylonScene._blockEntityCollection=!!this._assetContainer;let l=new e0.Mesh(t,this._babylonScene);if(l._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,l.sideOrientation=this._babylonScene.useRightHandedSystem?tR.Material.CounterClockWiseSideOrientation:tR.Material.ClockWiseSideOrientation,this._createMorphTargets(e,s,n,i,l),a.push(this._loadVertexDataAsync(e,i,l).then(async t=>await this._loadMorphTargetsAsync(e,i,l,t).then(()=>{this._disposed||(this._babylonScene._blockEntityCollection=!!this._assetContainer,t.applyToMesh(l),t._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1)}))),!this.parent.skipMaterials){let t=sI._GetDrawMode(e,i.mode);if(void 0==i.material){let e=this._defaultBabylonMaterialData[t];e||(e=this._createDefaultMaterial("__GLTFLoader._default",t,this._getDefaultImpl()),this._parent.onMaterialLoadedObservable.notifyObservers(e),this._defaultBabylonMaterialData[t]=e),l.material=e}else{let s=sR.Get(`${e}/material`,this._gltf.materials,i.material);a.push(this._loadMaterialAsync(`/materials/${s.index}`,s,l,t,e=>{l.material=e}))}}r=Promise.all(a),h&&(i._instanceData={babylonSourceMesh:l,promise:r}),o=l}return sI.AddPointerMetadata(o,e),this._parent.onMeshLoadedObservable.notifyObservers(o),a(o),this.logClose(),r.then(()=>o)}_loadVertexDataAsync(e,t,s){let n=this._extensionsLoadVertexDataAsync(e,t,s);if(n)return n;let i=t.attributes;if(!i)throw Error(`${e}: Attributes are missing`);let a=[],o=new tL.Geometry(s.name,this._babylonScene);if(void 0==t.indices)s.isUnIndexed=!0;else{let s=sR.Get(`${e}/indices`,this._gltf.accessors,t.indices);a.push(this._loadIndicesAccessorAsync(`/accessors/${s.index}`,s).then(e=>{o.setIndices(e)}))}let r=(t,n,r)=>{if(void 0==i[t])return;s._delayInfo=s._delayInfo||[],-1===s._delayInfo.indexOf(n)&&s._delayInfo.push(n);let l=sR.Get(`${e}/attributes/${t}`,this._gltf.accessors,i[t]);a.push(this._loadVertexAccessorAsync(`/accessors/${l.index}`,l,n).then(e=>{if(e.getKind()===tP.VertexBuffer.PositionKind&&!this.parent.alwaysComputeBoundingBox&&!s.skeleton){let e=sO(l);e&&(o._boundingInfo=e,o.useBoundingInfoFromGeometry=!0)}o.setVerticesBuffer(e,l.count)})),n==tP.VertexBuffer.MatricesIndicesExtraKind&&(s.numBoneInfluencers=8),r&&r(l)};return r("POSITION",tP.VertexBuffer.PositionKind),r("NORMAL",tP.VertexBuffer.NormalKind),r("TANGENT",tP.VertexBuffer.TangentKind),r("TEXCOORD_0",tP.VertexBuffer.UVKind),r("TEXCOORD_1",tP.VertexBuffer.UV2Kind),r("TEXCOORD_2",tP.VertexBuffer.UV3Kind),r("TEXCOORD_3",tP.VertexBuffer.UV4Kind),r("TEXCOORD_4",tP.VertexBuffer.UV5Kind),r("TEXCOORD_5",tP.VertexBuffer.UV6Kind),r("JOINTS_0",tP.VertexBuffer.MatricesIndicesKind),r("WEIGHTS_0",tP.VertexBuffer.MatricesWeightsKind),r("JOINTS_1",tP.VertexBuffer.MatricesIndicesExtraKind),r("WEIGHTS_1",tP.VertexBuffer.MatricesWeightsExtraKind),r("COLOR_0",tP.VertexBuffer.ColorKind,e=>{"VEC4"===e.type&&(s.hasVertexAlpha=!0)}),Promise.all(a).then(()=>o)}_createMorphTargets(e,t,s,n,i){if(!n.targets||!this._parent.loadMorphTargets)return;if(void 0==t._numMorphTargets)t._numMorphTargets=n.targets.length;else if(n.targets.length!==t._numMorphTargets)throw Error(`${e}: Primitives do not have the same number of targets`);let a=s.extras?s.extras.targetNames:null;this._babylonScene._blockEntityCollection=!!this._assetContainer,i.morphTargetManager=new sT(this._babylonScene),i.morphTargetManager._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,i.morphTargetManager.areUpdatesFrozen=!0;for(let e=0;e<n.targets.length;e++){let n=t.weights?t.weights[e]:s.weights?s.weights[e]:0,o=a?a[e]:`morphTarget${e}`;i.morphTargetManager.addTarget(new sf(o,n,i.getScene()))}}_loadMorphTargetsAsync(e,t,s,n){if(!t.targets||!this._parent.loadMorphTargets)return Promise.resolve();let i=[],a=s.morphTargetManager;for(let s=0;s<a.numTargets;s++){let o=a.getTarget(s);i.push(this._loadMorphTargetVertexDataAsync(`${e}/targets/${s}`,n,t.targets[s],o))}return Promise.all(i).then(()=>{a.areUpdatesFrozen=!1,this._parent.useMaxMorphTargetInfluencers&&(a.isUsingTextureForTargets||a.numTargets<=sT.MaxActiveMorphTargetsInVertexAttributeMode)&&(a.optimizeInfluencers=!1,a.numMaxInfluencers=a.numTargets)})}async _loadMorphTargetVertexDataAsync(e,t,s,n){let i=[],a=(n,a,o)=>{if(void 0==s[n])return;let r=t.getVertexBuffer(a);if(!r)return;let l=sR.Get(`${e}/${n}`,this._gltf.accessors,s[n]);i.push(this._loadFloatAccessorAsync(`/accessors/${l.index}`,l).then(e=>{o(r,e)}))};return a("POSITION",tP.VertexBuffer.PositionKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setPositions(s)}),a("NORMAL",tP.VertexBuffer.NormalKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(s.length,(e,n)=>{s[n]=t[n]+e}),n.setNormals(s)}),a("TANGENT",tP.VertexBuffer.TangentKind,(e,t)=>{let s=new Float32Array(t.length/3*4),i=0;e.forEach(t.length/3*4,(e,n)=>{(n+1)%4!=0&&(s[i]=t[i]+e,i++)}),n.setTangents(s)}),a("TEXCOORD_0",tP.VertexBuffer.UVKind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setUVs(s)}),a("TEXCOORD_1",tP.VertexBuffer.UV2Kind,(e,t)=>{let s=new Float32Array(t.length);e.forEach(t.length,(e,n)=>{s[n]=t[n]+e}),n.setUV2s(s)}),a("COLOR_0",tP.VertexBuffer.ColorKind,(t,s)=>{let i=null,a=t.getSize();if(3===a){i=new Float32Array(s.length/3*4),t.forEach(s.length,(e,t)=>{let n=Math.floor(t/3),a=t%3;i[4*n+a]=s[3*n+a]+e});for(let e=0;e<s.length/3;++e)i[4*e+3]=1}else if(4===a)i=new Float32Array(s.length),t.forEach(s.length,(e,t)=>{i[t]=s[t]+e});else throw Error(`${e}: Invalid number of components (${a}) for COLOR_0 attribute`);n.setColors(i)}),await Promise.all(i).then(()=>{})}static _LoadTransform(e,t){if(void 0!=e.skin)return;let s=tT.Vector3.Zero(),n=tT.Quaternion.Identity(),i=tT.Vector3.One();e.matrix?tT.Matrix.FromArray(e.matrix).decompose(i,n,s):(e.translation&&(s=tT.Vector3.FromArray(e.translation)),e.rotation&&(n=tT.Quaternion.FromArray(e.rotation)),e.scale&&(i=tT.Vector3.FromArray(e.scale))),t.position=s,t.rotationQuaternion=n,t.scaling=i}_loadSkinAsync(e,t,s,n){if(!this._parent.loadSkins)return Promise.resolve();let i=this._extensionsLoadSkinAsync(e,t,s);if(i)return i;if(s._data)return n(s._data.babylonSkeleton),s._data.promise;let a=`skeleton${s.index}`;this._babylonScene._blockEntityCollection=!!this._assetContainer;let o=new tF(s.name||a,a,this._babylonScene);o._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,this._loadBones(e,s,o);let r=this._loadSkinInverseBindMatricesDataAsync(e,s).then(e=>{this._updateBoneMatrices(o,e)});return s._data={babylonSkeleton:o,promise:r},n(o),r}_loadBones(e,t,s){if(void 0==t.skeleton||this._parent.alwaysComputeSkeletonRootNode){let s=this._findSkeletonRootNode(`${e}/joints`,t.joints);if(s)if(void 0===t.skeleton)t.skeleton=s.index;else{let n=sR.Get(`${e}/skeleton`,this._gltf.nodes,t.skeleton);n===s||((e,t)=>{for(;t.parent;t=t.parent)if(t.parent===e)return!0;return!1})(n,s)||(e3.Logger.Warn(`${e}/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root`),t.skeleton=s.index)}else e3.Logger.Warn(`${e}: Failed to find common root`)}let n={};for(let i of t.joints){let a=sR.Get(`${e}/joints/${i}`,this._gltf.nodes,i);this._loadBone(a,t,s,n)}}_findSkeletonRootNode(e,t){if(0===t.length)return null;let s={};for(let n of t){let t=[],i=sR.Get(`${e}/${n}`,this._gltf.nodes,n);for(;-1!==i.index;)t.unshift(i),i=i.parent;s[n]=t}let n=null;for(let e=0;;++e){let i=s[t[0]];if(e>=i.length)return n;let a=i[e];for(let o=1;o<t.length;++o)if(e>=(i=s[t[o]]).length||a!==i[e])return n;n=a}}_loadBone(e,t,s,n){e._isJoint=!0;let i=n[e.index];if(i)return i;let a=null;e.index!==t.skeleton&&(e.parent&&-1!==e.parent.index?a=this._loadBone(e.parent,t,s,n):void 0!==t.skeleton&&e3.Logger.Warn(`/skins/${t.index}/skeleton: Skeleton node is not a common root`));let o=t.joints.indexOf(e.index);return i=new tw.Bone(e.name||`joint${e.index}`,s,a,this._getNodeMatrix(e),null,null,o),n[e.index]=i,this._postSceneLoadActions.push(()=>{i.linkTransformNode(e._babylonTransformNode)}),i}_loadSkinInverseBindMatricesDataAsync(e,t){if(void 0==t.inverseBindMatrices)return Promise.resolve(null);let s=sR.Get(`${e}/inverseBindMatrices`,this._gltf.accessors,t.inverseBindMatrices);return this._loadFloatAccessorAsync(`/accessors/${s.index}`,s)}_updateBoneMatrices(e,t){for(let s of e.bones){let e=tT.Matrix.Identity(),n=s._index;t&&-1!==n&&(tT.Matrix.FromArrayToRef(t,16*n,e),e.invertToRef(e));let i=s.getParent();i&&e.multiplyToRef(i.getAbsoluteInverseBindMatrix(),e),s.updateMatrix(e,!1,!1),s._updateAbsoluteBindMatrices(void 0,!1)}}_getNodeMatrix(e){return e.matrix?tT.Matrix.FromArray(e.matrix):tT.Matrix.Compose(e.scale?tT.Vector3.FromArray(e.scale):tT.Vector3.One(),e.rotation?tT.Quaternion.FromArray(e.rotation):tT.Quaternion.Identity(),e.translation?tT.Vector3.FromArray(e.translation):tT.Vector3.Zero())}loadCameraAsync(e,t,s=()=>{}){let n=this._extensionsLoadCameraAsync(e,t,s);if(n)return n;this.logOpen(`${e} ${t.name||""}`),this._babylonScene._blockEntityCollection=!!this._assetContainer;let i=new tx.FreeCamera(t.name||`camera${t.index}`,tT.Vector3.Zero(),this._babylonScene,!1);switch(i._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonCamera=i,i.setTarget(new tT.Vector3(0,0,-1)),t.type){case"perspective":{let s=t.perspective;if(!s)throw Error(`${e}: Camera perspective properties are missing`);i.fov=s.yfov,i.minZ=s.znear,i.maxZ=s.zfar||0;break}case"orthographic":if(!t.orthographic)throw Error(`${e}: Camera orthographic properties are missing`);i.mode=e7.Camera.ORTHOGRAPHIC_CAMERA,i.orthoLeft=-t.orthographic.xmag,i.orthoRight=t.orthographic.xmag,i.orthoBottom=-t.orthographic.ymag,i.orthoTop=t.orthographic.ymag,i.minZ=t.orthographic.znear,i.maxZ=t.orthographic.zfar;break;default:throw Error(`${e}: Invalid camera type (${t.type})`)}return sI.AddPointerMetadata(i,e),this._parent.onCameraLoadedObservable.notifyObservers(i),s(i),this.logClose(),Promise.all([]).then(()=>i)}_loadAnimationsAsync(){this._parent._startPerformanceCounter("Load animations");let e=this._gltf.animations;if(!e)return Promise.resolve();let t=[];for(let s=0;s<e.length;s++){let n=e[s];t.push(this.loadAnimationAsync(`/animations/${n.index}`,n).then(e=>{0===e.targetedAnimations.length&&e.dispose()}))}return Promise.all(t).then(()=>{this._parent._endPerformanceCounter("Load animations")})}loadAnimationAsync(e,t){this._parent._startPerformanceCounter("Load animation");let s=this._extensionsLoadAnimationAsync(e,t);return s||sF.value.then(({AnimationGroup:s})=>{this._babylonScene._blockEntityCollection=!!this._assetContainer;let n=new s(t.name||`animation${t.index}`,this._babylonScene);n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,t._babylonAnimationGroup=n;let i=[];for(let s of(sR.Assign(t.channels),sR.Assign(t.samplers),t.channels))i.push(this._loadAnimationChannelAsync(`${e}/channels/${s.index}`,e,t,s,(e,t)=>{e.animations=e.animations||[],e.animations.push(t),n.addTargetedAnimation(t,e)}));return this._parent._endPerformanceCounter("Load animation"),Promise.all(i).then(()=>(n.normalize(0),n))})}_loadAnimationChannelAsync(e,t,s,n,i){let a=this._extensionsLoadAnimationChannelAsync(e,t,s,n,i);if(a)return a;if(void 0==n.target.node)return Promise.resolve();let o=sR.Get(`${e}/target/node`,this._gltf.nodes,n.target.node),r=n.target.path,l="weights"===r;return(!l||o._numMorphTargets)&&(l||o._babylonTransformNode)&&(this._parent.loadNodeAnimations||l||o._isJoint)?sE.value.then(()=>{let a;switch(r){case"translation":a=(0,sC.GetMappingForKey)("/nodes/{}/translation")?.interpolation;break;case"rotation":a=(0,sC.GetMappingForKey)("/nodes/{}/rotation")?.interpolation;break;case"scale":a=(0,sC.GetMappingForKey)("/nodes/{}/scale")?.interpolation;break;case"weights":a=(0,sC.GetMappingForKey)("/nodes/{}/weights")?.interpolation;break;default:throw Error(`${e}/target/path: Invalid value (${n.target.path})`)}if(!a)throw Error(`${e}/target/path: Could not find interpolation properties for target path (${n.target.path})`);let l={object:o,info:a};return this._loadAnimationChannelFromTargetInfoAsync(e,t,s,n,l,i)}):Promise.resolve()}_loadAnimationChannelFromTargetInfoAsync(e,t,s,n,i,a){let o=this.parent.targetFps,r=1/o,l=sR.Get(`${e}/sampler`,s.samplers,n.sampler);return this._loadAnimationSamplerAsync(`${t}/samplers/${n.sampler}`,l).then(e=>{let t=0,l=i.object;for(let h of i.info){let i=h.getStride(l),u=e.input,c=e.output,d=Array(u.length),p=0;switch(e.interpolation){case"STEP":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,p,1);p+=i,d[e]={frame:u[e]*o,value:t,interpolation:1}}break;case"CUBICSPLINE":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,p,r);p+=i;let s=h.getValue(l,c,p,1);p+=i;let n=h.getValue(l,c,p,r);p+=i,d[e]={frame:u[e]*o,inTangent:t,value:s,outTangent:n}}break;case"LINEAR":for(let e=0;e<u.length;e++){let t=h.getValue(l,c,p,1);p+=i,d[e]={frame:u[e]*o,value:t}}}if(p>0){let e=`${s.name||`animation${s.index}`}_channel${n.index}_${t}`;for(let s of h.buildAnimations(l,e,o,d))t++,a(s.babylonAnimatable,s.babylonAnimation)}}})}_loadAnimationSamplerAsync(e,t){if(t._data)return t._data;let s=t.interpolation||"LINEAR";switch(s){case"STEP":case"LINEAR":case"CUBICSPLINE":break;default:throw Error(`${e}/interpolation: Invalid value (${t.interpolation})`)}let n=sR.Get(`${e}/input`,this._gltf.accessors,t.input),i=sR.Get(`${e}/output`,this._gltf.accessors,t.output);return t._data=Promise.all([this._loadFloatAccessorAsync(`/accessors/${n.index}`,n),this._loadFloatAccessorAsync(`/accessors/${i.index}`,i)]).then(([e,t])=>({input:e,interpolation:s,output:t})),t._data}loadBufferAsync(e,t,s,n){let i=this._extensionsLoadBufferAsync(e,t,s,n);if(i)return i;if(!t._data)if(t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{if(!this._bin)throw Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);t._data=this._bin.readAsync(0,t.byteLength)}return t._data.then(t=>{try{return new Uint8Array(t.buffer,t.byteOffset+s,n)}catch(t){throw Error(`${e}: ${t.message}`,{cause:t})}})}loadBufferViewAsync(e,t){let s=this._extensionsLoadBufferViewAsync(e,t);if(s)return s;if(t._data)return t._data;let n=sR.Get(`${e}/buffer`,this._gltf.buffers,t.buffer);return t._data=this.loadBufferAsync(`/buffers/${n.index}`,n,t.byteOffset||0,t.byteLength),t._data}_loadAccessorAsync(e,t,s){if(t._data)return t._data;let n=sI._GetNumComponents(e,t.type),i=n*(0,tP.VertexBufferGetTypeByteLength)(t.componentType),a=n*t.count;if(void 0==t.bufferView)t._data=Promise.resolve(new s(a));else{let o=sR.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${o.index}`,o).then(r=>{if(5126===t.componentType&&!t.normalized&&(!o.byteStride||o.byteStride===i))return sI._GetTypedArray(e,t.componentType,r,t.byteOffset,a);{let e=new s(a);return(0,tP.VertexBufferForEach)(r,t.byteOffset||0,o.byteStride||i,n,t.componentType,e.length,t.normalized||!1,(t,s)=>{e[s]=t}),e}})}if(t.sparse){let a=t.sparse;t._data=t._data.then(o=>{let r=sR.Get(`${e}/sparse/indices/bufferView`,this._gltf.bufferViews,a.indices.bufferView),l=sR.Get(`${e}/sparse/values/bufferView`,this._gltf.bufferViews,a.values.bufferView);return Promise.all([this.loadBufferViewAsync(`/bufferViews/${r.index}`,r),this.loadBufferViewAsync(`/bufferViews/${l.index}`,l)]).then(([r,l])=>{let h,u=sI._GetTypedArray(`${e}/sparse/indices`,a.indices.componentType,r,a.indices.byteOffset,a.count),c=n*a.count;if(5126!==t.componentType||t.normalized){let o=sI._GetTypedArray(`${e}/sparse/values`,t.componentType,l,a.values.byteOffset,c);h=new s(c),(0,tP.VertexBufferForEach)(o,0,i,n,t.componentType,h.length,t.normalized||!1,(e,t)=>{h[t]=e})}else h=sI._GetTypedArray(`${e}/sparse/values`,t.componentType,l,a.values.byteOffset,c);let d=0;for(let e=0;e<u.length;e++){let t=u[e]*n;for(let e=0;e<n;e++)o[t++]=h[d++]}return o})})}return t._data}_loadFloatAccessorAsync(e,t){return this._loadAccessorAsync(e,t,Float32Array)}_loadIndicesAccessorAsync(e,t){if("SCALAR"!==t.type)throw Error(`${e}/type: Invalid value ${t.type}`);if(5121!==t.componentType&&5123!==t.componentType&&5125!==t.componentType)throw Error(`${e}/componentType: Invalid value ${t.componentType}`);if(t._data)return t._data;if(t.sparse){let s=sI._GetTypedArrayConstructor(`${e}/componentType`,t.componentType);t._data=this._loadAccessorAsync(e,t,s)}else{let s=sR.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${s.index}`,s).then(s=>sI._GetTypedArray(e,t.componentType,s,t.byteOffset,t.count))}return t._data}_loadVertexBufferViewAsync(e){if(e._babylonBuffer)return e._babylonBuffer;let t=this._babylonScene.getEngine();return e._babylonBuffer=this.loadBufferViewAsync(`/bufferViews/${e.index}`,e).then(e=>new tP.Buffer(t,e,!1)),e._babylonBuffer}_loadVertexAccessorAsync(e,t,s){if(t._babylonVertexBuffer?.[s])return t._babylonVertexBuffer[s];t._babylonVertexBuffer||(t._babylonVertexBuffer={});let n=this._babylonScene.getEngine();if(t.sparse||void 0==t.bufferView)t._babylonVertexBuffer[s]=this._loadFloatAccessorAsync(e,t).then(e=>new tP.VertexBuffer(n,e,s,!1));else{let i=sR.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._babylonVertexBuffer[s]=this._loadVertexBufferViewAsync(i).then(a=>{let o=sI._GetNumComponents(e,t.type);return new tP.VertexBuffer(n,a,s,!1,void 0,i.byteStride,void 0,t.byteOffset,o,t.componentType,t.normalized,!0,void 0,!0)})}return t._babylonVertexBuffer[s]}_loadMaterialMetallicRoughnessPropertiesAsync(e,t,s){let n=[],i=this._getOrCreateMaterialAdapter(s);return t&&(t.baseColorFactor?(i.baseColor=tA.Color3.FromArray(t.baseColorFactor),i.geometryOpacity=t.baseColorFactor[3]):i.baseColor=tA.Color3.White(),i.baseMetalness=void 0==t.metallicFactor?1:t.metallicFactor,i.specularRoughness=void 0==t.roughnessFactor?1:t.roughnessFactor,t.baseColorTexture&&n.push(this.loadTextureInfoAsync(`${e}/baseColorTexture`,t.baseColorTexture,e=>{e.name=`${s.name} (Base Color)`,i.baseColorTexture=e})),t.metallicRoughnessTexture&&(t.metallicRoughnessTexture.nonColorData=!0,n.push(this.loadTextureInfoAsync(`${e}/metallicRoughnessTexture`,t.metallicRoughnessTexture,e=>{e.name=`${s.name} (Metallic Roughness)`,i.baseMetalnessTexture=e,i.specularRoughnessTexture=e})),i.useRoughnessFromMetallicTextureGreen=!0,i.useMetallicFromMetallicTextureBlue=!0)),Promise.all(n).then(()=>{})}_loadMaterialAsync(e,t,s,n,i=()=>{}){let a=this._extensionsLoadMaterialAsync(e,t,s,n,i);if(a)return a;t._data=t._data||{};let o=t._data[n];if(!o){this.logOpen(`${e} ${t.name||""}`);let s=this.createMaterial(e,t,n);o={babylonMaterial:s,babylonMeshes:[],promise:this.loadMaterialPropertiesAsync(e,t,s)},t._data[n]=o,sI.AddPointerMetadata(s,e),this._parent.onMaterialLoadedObservable.notifyObservers(s),this.logClose()}return s&&(o.babylonMeshes.push(s),s.onDisposeObservable.addOnce(()=>{let e=o.babylonMeshes.indexOf(s);-1!==e&&o.babylonMeshes.splice(e,1)})),i(o.babylonMaterial),o.promise.then(()=>o.babylonMaterial)}_selectImplForGltfMaterial(e){if(this.parent.useOpenPBR||e.extensions?.KHR_materials_openpbr){let e=this._pbrMaterialImpls.get("openpbr");if(e)return e}let t=this._pbrMaterialImpls.get("pbr");if(t)return t;throw Error("No PBR material implementation loaded")}_getDefaultImpl(){if(this.parent.useOpenPBR){let e=this._pbrMaterialImpls.get("openpbr");if(e)return e}let e=this._pbrMaterialImpls.get("pbr")??this._pbrMaterialImpls.values().next().value;if(e)return e;throw Error("No PBR material implementation loaded")}_createDefaultMaterial(e,t,s){this._babylonScene._blockEntityCollection=!!this._assetContainer;let n=new s.materialClass(e,this._babylonScene);n._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,n.fillMode=t,n.transparencyMode=s.materialClass.MATERIAL_OPAQUE;let i=this._getOrCreateMaterialAdapter(n);return i.transparencyAsAlphaCoverage=this._parent.transparencyAsCoverage,i.baseMetalness=1,i.specularRoughness=1,n}createMaterial(e,t,s){let n=this._extensionsCreateMaterial(e,t,s);if(n)return n;let i=t.name||`material${t.index}`;return this._createDefaultMaterial(i,s,this._selectImplForGltfMaterial(t))}loadMaterialPropertiesAsync(e,t,s){let n=this._extensionsLoadMaterialPropertiesAsync(e,t,s);if(n)return n;let i=[];return i.push(this.loadMaterialBasePropertiesAsync(e,t,s)),t.pbrMetallicRoughness&&i.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${e}/pbrMetallicRoughness`,t.pbrMetallicRoughness,s)),this.loadMaterialAlphaProperties(e,t,s),Promise.all(i).then(()=>{})}loadMaterialBasePropertiesAsync(e,t,s){let n,i,a=[],o=this._getOrCreateMaterialAdapter(s);o.emissionColor=t.emissiveFactor?tA.Color3.FromArray(t.emissiveFactor):new tA.Color3(0,0,0),t.doubleSided&&(o.backFaceCulling=!1,o.twoSidedLighting=!0),t.normalTexture&&(t.normalTexture.nonColorData=!0,a.push(this.loadTextureInfoAsync(`${e}/normalTexture`,t.normalTexture,e=>{e.name=`${s.name} (Normal)`,o.geometryNormalTexture=e,t.normalTexture?.scale!=void 0&&(e.level=t.normalTexture.scale)})),o.setNormalMapInversions(!this._babylonScene.useRightHandedSystem,this._babylonScene.useRightHandedSystem));let r=1;return t.occlusionTexture&&(t.occlusionTexture.nonColorData=!0,a.push(this.loadTextureInfoAsync(`${e}/occlusionTexture`,t.occlusionTexture,e=>{e.name=`${s.name} (Occlusion)`,n=e})),void 0!=t.occlusionTexture.strength&&(r=t.occlusionTexture.strength)),t.emissiveTexture&&a.push(this.loadTextureInfoAsync(`${e}/emissiveTexture`,t.emissiveTexture,e=>{e.name=`${s.name} (Emissive)`,i=e})),Promise.all(a).then(()=>{n&&(o.ambientOcclusionTexture=n,o.ambientOcclusionTextureStrength=r),i&&(o.emissionColorTexture=i)})}loadMaterialAlphaProperties(e,t,s){if(0===this._pbrMaterialImpls.size)throw Error(`${e}: Material type not supported`);let n=this._getOrCreateMaterialAdapter(s),i=n.baseColorTexture;switch(t.alphaMode||"OPAQUE"){case"OPAQUE":s.transparencyMode=tR.Material.MATERIAL_OPAQUE,s.alpha=1;break;case"MASK":s.transparencyMode=tR.Material.MATERIAL_ALPHATEST,n.alphaCutOff=void 0==t.alphaCutoff?.5:t.alphaCutoff,i&&(i.hasAlpha=!0,n.useAlphaFromBaseColorTexture=!0);break;case"BLEND":s.transparencyMode=tR.Material.MATERIAL_ALPHABLEND,i&&(i.hasAlpha=!0,n.useAlphaFromBaseColorTexture=!0);break;default:throw Error(`${e}/alphaMode: Invalid value (${t.alphaMode})`)}}loadTextureInfoAsync(e,t,s=()=>{}){let n=this._extensionsLoadTextureInfoAsync(e,t,s);if(n)return n;if(this.logOpen(`${e}`),t.texCoord>=6)throw Error(`${e}/texCoord: Invalid value (${t.texCoord})`);let i=sR.Get(`${e}/index`,this._gltf.textures,t.index);i._textureInfo=t;let a=this._loadTextureAsync(`/textures/${t.index}`,i,n=>{n.coordinatesIndex=t.texCoord||0,sI.AddPointerMetadata(n,e),this._parent.onTextureLoadedObservable.notifyObservers(n),s(n)});return this.logClose(),a}_loadTextureAsync(e,t,s=()=>{}){let n=this._extensionsLoadTextureAsync(e,t,s);if(n)return n;this.logOpen(`${e} ${t.name||""}`);let i=void 0==t.sampler?sI.DefaultSampler:sR.Get(`${e}/sampler`,this._gltf.samplers,t.sampler),a=sR.Get(`${e}/source`,this._gltf.images,t.source),o=this._createTextureAsync(e,i,a,s,void 0,!t._textureInfo.nonColorData);return this.logClose(),o}_createTextureAsync(e,t,s,n=()=>{},i,a){let o=this._loadSampler(`/samplers/${t.index}`,t),r=[],l=new s_;this._babylonScene._blockEntityCollection=!!this._assetContainer;let h={noMipmap:o.noMipMaps,invertY:!1,samplingMode:o.samplingMode,onLoad:()=>{this._disposed||l.resolve()},onError:(t,s)=>{this._disposed||l.reject(Error(`${e}: ${s&&s.message?s.message:t||"Failed to load texture"}`))},mimeType:s.mimeType??(0,tc.GetMimeType)(s.uri??""),loaderOptions:i,useSRGBBuffer:!!a&&this._parent.useSRGBBuffers},u=new tN.Texture(null,this._babylonScene,h);u._parentContainer=this._assetContainer,this._babylonScene._blockEntityCollection=!1,r.push(l.promise);let c=s.uri&&!(0,tc.IsBase64DataUrl)(s.uri)?s.uri:void 0,d=c??`${this._fileName}#image${s.index}`;return r.push(this.loadImageAsync(`/images/${s.index}`,s).then(e=>{let t=`data:${this._uniqueRootUrl}${d}`;u.updateURL(t,e);let n=u.getInternalTexture();n&&(n.label=s.name)})),u.wrapU=o.wrapU,u.wrapV=o.wrapV,n(u),this._parent.useGltfTextureNames&&(u.name=s.name||c||`image${s.index}`),Promise.all(r).then(()=>u)}_loadSampler(e,t){return t._data||(t._data={noMipMaps:9728===t.minFilter||9729===t.minFilter,samplingMode:sI._GetTextureSamplingMode(e,t),wrapU:sI._GetTextureWrapMode(`${e}/wrapS`,t.wrapS),wrapV:sI._GetTextureWrapMode(`${e}/wrapT`,t.wrapT)}),t._data}loadImageAsync(e,t){if(!t._data){if(this.logOpen(`${e} ${t.name||""}`),t.uri)t._data=this.loadUriAsync(`${e}/uri`,t,t.uri);else{let s=sR.Get(`${e}/bufferView`,this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(`/bufferViews/${s.index}`,s)}this.logClose()}return t._data}loadUriAsync(e,t,s){let n=this._extensionsLoadUriAsync(e,t,s);if(n)return n;if(!sI._ValidateUri(s))throw Error(`${e}: '${s}' is invalid`);if((0,tc.IsBase64DataUrl)(s)){let t=new Uint8Array((0,tc.DecodeBase64UrlToBinary)(s));return this.log(`${e}: Decoded ${s.substring(0,64)}... (${t.length} bytes)`),Promise.resolve(t)}return this.log(`${e}: Loading ${s}`),this._parent.preprocessUrlAsync(this._rootUrl+s).then(t=>new Promise((n,i)=>{this._parent._loadFile(this._babylonScene,t,t=>{this._disposed||(this.log(`${e}: Loaded ${s} (${t.byteLength} bytes)`),n(new Uint8Array(t)))},!0,t=>{i(new tc.LoadFileError(`${e}: Failed to load '${s}'${t?": "+t.status+" "+t.statusText:""}`,t))})}))}static AddPointerMetadata(e,t){e.metadata=e.metadata||{};let s=e._internalMetadata=e._internalMetadata||{},n=s.gltf=s.gltf||{};(n.pointers=n.pointers||[]).push(t)}static _GetTextureWrapMode(e,t){switch(t=void 0==t?10497:t){case 33071:return tN.Texture.CLAMP_ADDRESSMODE;case 33648:return tN.Texture.MIRROR_ADDRESSMODE;case 10497:return tN.Texture.WRAP_ADDRESSMODE;default:return e3.Logger.Warn(`${e}: Invalid value (${t})`),tN.Texture.WRAP_ADDRESSMODE}}static _GetTextureSamplingMode(e,t){let s=void 0==t.magFilter?9729:t.magFilter,n=void 0==t.minFilter?9987:t.minFilter;if(9729===s)switch(n){case 9728:return tN.Texture.LINEAR_NEAREST;case 9729:return tN.Texture.LINEAR_LINEAR;case 9984:return tN.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return tN.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return tN.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return tN.Texture.LINEAR_LINEAR_MIPLINEAR;default:return e3.Logger.Warn(`${e}/minFilter: Invalid value (${n})`),tN.Texture.LINEAR_LINEAR_MIPLINEAR}switch(9728!==s&&e3.Logger.Warn(`${e}/magFilter: Invalid value (${s})`),n){case 9728:return tN.Texture.NEAREST_NEAREST;case 9729:return tN.Texture.NEAREST_LINEAR;case 9984:return tN.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return tN.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return tN.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return tN.Texture.NEAREST_LINEAR_MIPLINEAR;default:return e3.Logger.Warn(`${e}/minFilter: Invalid value (${n})`),tN.Texture.NEAREST_NEAREST_MIPNEAREST}}static _GetTypedArrayConstructor(e,t){try{return(0,tZ.GetTypedArrayConstructor)(t)}catch(t){throw Error(`${e}: ${t.message}`,{cause:t})}}static _GetTypedArray(e,t,s,n,i){let a=s.buffer;n=s.byteOffset+(n||0);let o=sI._GetTypedArrayConstructor(`${e}/componentType`,t),r=(0,tP.VertexBufferGetTypeByteLength)(t);return n%r!=0?(e3.Logger.Warn(`${e}: Copying buffer as byte offset (${n}) is not a multiple of component type byte length (${r})`),new o(a.slice(n,n+i*r),0)):new o(a,n,i)}static _GetNumComponents(e,t){switch(t){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw Error(`${e}: Invalid type (${t})`)}static _ValidateUri(e){return eZ.Tools.IsBase64(e)||-1===e.indexOf("..")}static _GetDrawMode(e,t){switch(void 0==t&&(t=4),t){case 0:return tR.Material.PointListDrawMode;case 1:return tR.Material.LineListDrawMode;case 2:return tR.Material.LineLoopDrawMode;case 3:return tR.Material.LineStripDrawMode;case 4:return tR.Material.TriangleFillMode;case 5:return tR.Material.TriangleStripDrawMode;case 6:return tR.Material.TriangleFanDrawMode}throw Error(`${e}: Invalid mesh primitive mode (${t})`)}_compileMaterialsAsync(){this._parent._startPerformanceCounter("Compile materials");let e=[];if(this._gltf.materials){for(let t of this._gltf.materials)if(t._data)for(let s in t._data){let n=t._data[s];for(let t of n.babylonMeshes){t.computeWorldMatrix(!0);let s=n.babylonMaterial;e.push(s.forceCompilationAsync(t)),e.push(s.forceCompilationAsync(t,{useInstances:!0})),this._parent.useClipPlane&&(e.push(s.forceCompilationAsync(t,{clipPlane:!0})),e.push(s.forceCompilationAsync(t,{clipPlane:!0,useInstances:!0})))}}}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile materials")})}_compileShadowGeneratorsAsync(){this._parent._startPerformanceCounter("Compile shadow generators");let e=[];for(let t of this._babylonScene.lights){let s=t.getShadowGenerator();s&&e.push(s.forceCompilationAsync())}return Promise.all(e).then(()=>{this._parent._endPerformanceCounter("Compile shadow generators")})}_forEachExtensions(e){for(let t of this._extensions)t.enabled&&e(t)}_applyExtensions(e,t,s){for(let n of this._extensions)if(n.enabled){let i=`${n.name}.${t}`;e._activeLoaderExtensionFunctions=e._activeLoaderExtensionFunctions||{};let a=e._activeLoaderExtensionFunctions;if(!a[i]){a[i]=!0;try{let e=s(n);if(e)return e}finally{delete a[i]}}}return null}_extensionsOnLoading(){this._forEachExtensions(e=>e.onLoading&&e.onLoading())}_extensionsOnReady(){this._forEachExtensions(e=>e.onReady&&e.onReady())}_extensionsLoadSceneAsync(e,t){return this._applyExtensions(t,"loadScene",s=>s.loadSceneAsync&&s.loadSceneAsync(e,t))}_extensionsLoadNodeAsync(e,t,s){return this._applyExtensions(t,"loadNode",n=>n.loadNodeAsync&&n.loadNodeAsync(e,t,s))}_extensionsLoadCameraAsync(e,t,s){return this._applyExtensions(t,"loadCamera",n=>n.loadCameraAsync&&n.loadCameraAsync(e,t,s))}_extensionsLoadVertexDataAsync(e,t,s){return this._applyExtensions(t,"loadVertexData",n=>n._loadVertexDataAsync&&n._loadVertexDataAsync(e,t,s))}_extensionsLoadMeshPrimitiveAsync(e,t,s,n,i,a){return this._applyExtensions(i,"loadMeshPrimitive",o=>o._loadMeshPrimitiveAsync&&o._loadMeshPrimitiveAsync(e,t,s,n,i,a))}_extensionsLoadMaterialAsync(e,t,s,n,i){return this._applyExtensions(t,"loadMaterial",a=>a._loadMaterialAsync&&a._loadMaterialAsync(e,t,s,n,i))}_extensionsCreateMaterial(e,t,s){return this._applyExtensions(t,"createMaterial",n=>n.createMaterial&&n.createMaterial(e,t,s))}_extensionsLoadMaterialPropertiesAsync(e,t,s){return this._applyExtensions(t,"loadMaterialProperties",n=>n.loadMaterialPropertiesAsync&&n.loadMaterialPropertiesAsync(e,t,s))}_extensionsLoadTextureInfoAsync(e,t,s){return this._applyExtensions(t,"loadTextureInfo",n=>n.loadTextureInfoAsync&&n.loadTextureInfoAsync(e,t,s))}_extensionsLoadTextureAsync(e,t,s){return this._applyExtensions(t,"loadTexture",n=>n._loadTextureAsync&&n._loadTextureAsync(e,t,s))}_extensionsLoadAnimationAsync(e,t){return this._applyExtensions(t,"loadAnimation",s=>s.loadAnimationAsync&&s.loadAnimationAsync(e,t))}_extensionsLoadAnimationChannelAsync(e,t,s,n,i){return this._applyExtensions(s,"loadAnimationChannel",a=>a._loadAnimationChannelAsync&&a._loadAnimationChannelAsync(e,t,s,n,i))}_extensionsLoadSkinAsync(e,t,s){return this._applyExtensions(s,"loadSkin",n=>n._loadSkinAsync&&n._loadSkinAsync(e,t,s))}_extensionsLoadUriAsync(e,t,s){return this._applyExtensions(t,"loadUri",n=>n._loadUriAsync&&n._loadUriAsync(e,t,s))}_extensionsLoadBufferViewAsync(e,t){return this._applyExtensions(t,"loadBufferView",s=>s.loadBufferViewAsync&&s.loadBufferViewAsync(e,t))}_extensionsLoadBufferAsync(e,t,s,n){return this._applyExtensions(t,"loadBuffer",i=>i.loadBufferAsync&&i.loadBufferAsync(e,t,s,n))}static LoadExtensionAsync(e,t,s,n){if(!t.extensions)return null;let i=t.extensions[s];return i?n(`${e}/extensions/${s}`,i):null}static LoadExtraAsync(e,t,s,n){if(!t.extras)return null;let i=t.extras[s];return i?n(`${e}/extras/${s}`,i):null}isExtensionUsed(e){return!!this._gltf.extensionsUsed&&-1!==this._gltf.extensionsUsed.indexOf(e)}logOpen(e){this._parent._logOpen(e)}logClose(){this._parent._logClose()}log(e){this._parent._log(e)}startPerformanceCounter(e){this._parent._startPerformanceCounter(e)}endPerformanceCounter(e){this._parent._endPerformanceCounter(e)}}sI.DefaultSampler={index:-1};let sB=!1;function sN(){sB||(sB=!0,tg._CreateGLTF2Loader=e=>new sI(e))}e.s(["ArrayItem",0,sR,"GLTFLoader",0,sI,"LoadBoundingInfoFromPositionAccessor",0,sO,"RegisterGLTF2Loader",0,sN],92250),sN(),tb(),e.s([],52280);var sk=e.i(65431);e.s([],56152);var sP=e.i(27952),sL=e.i(95358),sG=e.i(32945),sD=e.i(79452),sV=e.i(57494);let sK=(q=sD.BaseTexture,W=[],j=[],X=[],Q=[],Y=[],Z=[],J=[],ee=[],et=[],es=[],en=[],ei=[],ea=[],eo=[],er=[],eN=class extends q{set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;let t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}set rotationY(e){this._rotationY=e,this.setReflectionTextureMatrix(tT.Matrix.RotationY(this._rotationY))}get rotationY(){return this._rotationY}get noMipmap(){return this._noMipmap}get forcedExtension(){return this._forcedExtension}constructor(e,t,s=null,n=!1,i=null,a=null,o=null,r=5,l=!1,h=null,u=!1,c=.8,d=0,p,_){let m;super(t),this._delayedOnLoad=(0,tV.__runInitializers)(this,W),this.onLoadObservable=new eY.Observable,this.url=(0,tV.__runInitializers)(this,j,void 0),this.boundingBoxPosition=((0,tV.__runInitializers)(this,X),(0,tV.__runInitializers)(this,Q,tT.Vector3.Zero())),this._boundingBoxSize=(0,tV.__runInitializers)(this,Y),this._rotationY=0,this._files=(0,tV.__runInitializers)(this,Z,null),this._forcedExtension=((0,tV.__runInitializers)(this,J),(0,tV.__runInitializers)(this,ee,null)),this._extensions=((0,tV.__runInitializers)(this,et),(0,tV.__runInitializers)(this,es,null)),this._textureMatrix=((0,tV.__runInitializers)(this,en),(0,tV.__runInitializers)(this,ei,void 0)),this._textureMatrixRefraction=((0,tV.__runInitializers)(this,ea),(0,tV.__runInitializers)(this,eo,new tT.Matrix)),this._format=(0,tV.__runInitializers)(this,er),this._buffer=null,(0,sV.RegisterAbstractEngineCubeTexture)(),this.name=e,this.url=e,this._noMipmap=n,this.hasAlpha=!1,this.isCube=!0,this._textureMatrix=tT.Matrix.Identity(),this.coordinatesMode=tN.Texture.CUBIC_MODE;let f=null;if(null===s||Array.isArray(s)?(this._noMipmap=n,this._format=r,this._createPolynomials=u,m=s,this._loaderOptions=p,this._useSRGBBuffer=_,this._lodScale=c,this._lodOffset=d):(m=s.extensions??null,this._noMipmap=s.noMipmap??!1,i=s.files??null,f=s.buffer??null,this._format=s.format??5,l=s.prefiltered??!1,h=s.forcedExtension??null,this._createPolynomials=s.createPolynomials??!1,this._lodScale=s.lodScale??.8,this._lodOffset=s.lodOffset??0,this._loaderOptions=s.loaderOptions,this._useSRGBBuffer=s.useSRGBBuffer,this._sphericalPolynomialTargetSize=s.sphericalPolynomialTargetSize??0,a=s.onLoad??null,o=s.onError??null),!e&&!i)return;this.updateURL(e,h,a,l,o,m,this.getScene()?.useDelayedTextureLoading,i,f)}getClassName(){return"CubeTexture"}updateURL(e,t=null,s=null,n=!1,i=null,a=null,o=!1,r=null,l=null){(!this.name||this.name.startsWith("data:"))&&(this.name=e),this.url=e,t&&(this._forcedExtension=t);let h=e.lastIndexOf("."),u=t||(h>-1?e.substring(h).toLowerCase():""),c=0===u.indexOf(".dds"),d=0===u.indexOf(".env"),p=0===u.indexOf(".basis");if(d?(this.gammaSpace=!1,this._prefiltered=!1,this.anisotropicFilteringLevel=1):(this._prefiltered=n,n&&(this.gammaSpace=!1,this.anisotropicFilteringLevel=1)),r)this._files=r;else if(p||d||c||a||(a=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),this._files=this._files||[],this._files.length=0,a){for(let t=0;t<a.length;t++)this._files.push(e+a[t]);this._extensions=a}this._buffer=l,o?(this.delayLoadState=4,this._delayedOnLoad=s,this._delayedOnError=i):this._loadTexture(s,i)}delayLoad(e){4===this.delayLoadState&&(e&&(this._forcedExtension=e),this.delayLoadState=1,this._loadTexture(this._delayedOnLoad,this._delayedOnError))}getReflectionTextureMatrix(){return this._textureMatrix}setReflectionTextureMatrix(e){if(e.updateFlag===this._textureMatrix.updateFlag||(e.isIdentity()!==this._textureMatrix.isIdentity()&&this.getScene()?.markAllMaterialsAsDirty(1,e=>-1!==e.getActiveTextures().indexOf(this)),this._textureMatrix=e,!this.getScene()?.useRightHandedSystem))return;let t=tT.TmpVectors.Vector3[0],s=tT.TmpVectors.Quaternion[0],n=tT.TmpVectors.Vector3[1];this._textureMatrix.decompose(t,s,n),s.z*=-1,s.w*=-1,tT.Matrix.ComposeToRef(t,s,n,this._textureMatrixRefraction)}getRefractionTextureMatrix(){return this.getScene()?.useRightHandedSystem?this._textureMatrixRefraction:this._textureMatrix}_loadTexture(e=null,t=null){let s=this.getScene(),n=this._texture;this._texture=this._getFromCache(this.url,this._noMipmap,void 0,void 0,this._useSRGBBuffer,this.isCube);let i=()=>{this.onLoadObservable.notifyObservers(this),n&&(n.dispose(),this.getScene()?.markAllMaterialsAsDirty(1)),e&&e()},a=(e,s)=>{this._loadingError=!0,this._errorObject={message:e,exception:s},t&&t(e,s),tN.Texture.OnTextureLoadErrorObservable.notifyObservers(this)};this._texture?this._texture.isReady?sG.TimingTools.SetImmediate(()=>i()):this._texture.onLoadedObservable.add(()=>i()):(this._prefiltered?this._texture=this._getEngine().createPrefilteredCubeTexture(this.url,s,this._lodScale,this._lodOffset,e,a,this._format,this._forcedExtension,this._createPolynomials):this._texture=this._getEngine().createCubeTexture(this.url,s,this._files,this._noMipmap,e,a,this._format,this._forcedExtension,!1,this._lodScale,this._lodOffset,null,this._loaderOptions,!!this._useSRGBBuffer,this._buffer),this._texture?.onLoadedObservable.add(()=>this.onLoadObservable.notifyObservers(this)))}clone(){let e=0,t=this.irradianceTexture,s=sm.SerializationHelper.Clone(()=>{let t=new eN(this.url,this.getScene()||this._getEngine(),this._extensions,this._noMipmap,this._files);return e=t.uniqueId,t},this);return s.uniqueId=e,t&&!this.irradianceTexture&&(this.irradianceTexture=t),s}},el="function"==typeof Symbol&&Symbol.metadata?Object.create(q[Symbol.metadata]??null):void 0,L=[(0,tK.serialize)()],G=[(0,tK.serializeAsVector3)()],D=[(0,tK.serializeAsVector3)()],V=[(0,tK.serialize)("rotationY")],K=[(0,tK.serialize)("files")],H=[(0,tK.serialize)("forcedExtension")],U=[(0,tK.serialize)("extensions")],$=[(0,tK.serializeAsMatrix)("textureMatrix")],z=[(0,tK.serializeAsMatrix)("textureMatrixRefraction")],(0,tV.__esDecorate)(eN,null,D,{kind:"getter",name:"boundingBoxSize",static:!1,private:!1,access:{has:e=>"boundingBoxSize"in e,get:e=>e.boundingBoxSize},metadata:el},null,W),(0,tV.__esDecorate)(eN,null,V,{kind:"setter",name:"rotationY",static:!1,private:!1,access:{has:e=>"rotationY"in e,set:(e,t)=>{e.rotationY=t}},metadata:el},null,W),(0,tV.__esDecorate)(null,null,L,{kind:"field",name:"url",static:!1,private:!1,access:{has:e=>"url"in e,get:e=>e.url,set:(e,t)=>{e.url=t}},metadata:el},j,X),(0,tV.__esDecorate)(null,null,G,{kind:"field",name:"boundingBoxPosition",static:!1,private:!1,access:{has:e=>"boundingBoxPosition"in e,get:e=>e.boundingBoxPosition,set:(e,t)=>{e.boundingBoxPosition=t}},metadata:el},Q,Y),(0,tV.__esDecorate)(null,null,K,{kind:"field",name:"_files",static:!1,private:!1,access:{has:e=>"_files"in e,get:e=>e._files,set:(e,t)=>{e._files=t}},metadata:el},Z,J),(0,tV.__esDecorate)(null,null,H,{kind:"field",name:"_forcedExtension",static:!1,private:!1,access:{has:e=>"_forcedExtension"in e,get:e=>e._forcedExtension,set:(e,t)=>{e._forcedExtension=t}},metadata:el},ee,et),(0,tV.__esDecorate)(null,null,U,{kind:"field",name:"_extensions",static:!1,private:!1,access:{has:e=>"_extensions"in e,get:e=>e._extensions,set:(e,t)=>{e._extensions=t}},metadata:el},es,en),(0,tV.__esDecorate)(null,null,$,{kind:"field",name:"_textureMatrix",static:!1,private:!1,access:{has:e=>"_textureMatrix"in e,get:e=>e._textureMatrix,set:(e,t)=>{e._textureMatrix=t}},metadata:el},ei,ea),(0,tV.__esDecorate)(null,null,z,{kind:"field",name:"_textureMatrixRefraction",static:!1,private:!1,access:{has:e=>"_textureMatrixRefraction"in e,get:e=>e._textureMatrixRefraction,set:(e,t)=>{e._textureMatrixRefraction=t}},metadata:el},eo,er),el&&Object.defineProperty(eN,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:el}),eN);class sH extends sK{constructor(e,t,s,n=5,i=0,a=!1,o=!1,r=3,l=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(t,s,n,i,a,o,r,l)}update(e,t,s,n,i=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,s,n,i)}updateRGBDAsync(e,t=null,s=.8,n=0){return(0,sL._UpdateRGBDAsync)(this._texture,e,t,s,n).then(()=>{})}clone(){return sm.SerializationHelper.Clone(()=>{let e=this.getScene(),t=this._texture,s=new sH(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return 13===t.source&&s.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),s},this)}}let sU="EXT_lights_image_based";class s${constructor(e){this.name=sU,this._loader=e,this.enabled=this._loader.isExtensionUsed(sU)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return sI.LoadExtensionAsync(e,t,this.name,async(s,n)=>{this._loader._allMaterialsDirtyRequired=!0;let i=[];i.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${s}`);let a=sR.Get(`${s}/light`,this._lights,n.light);return i.push(this._loadLightAsync(`/extensions/${this.name}/lights/${n.light}`,a).then(e=>{this._loader.babylonScene.environmentTexture=e})),this._loader.logClose(),await Promise.all(i).then(()=>{})})}_loadLightAsync(e,t){if(!t._loaded){let s=[];this._loader.logOpen(`${e}`);let n=Array(t.specularImages.length);for(let i=0;i<t.specularImages.length;i++){let a=t.specularImages[i];n[i]=Array(a.length);for(let t=0;t<a.length;t++){let o=`${e}/specularImages/${i}/${t}`;this._loader.logOpen(`${o}`);let r=a[t],l=sR.Get(o,this._loader.gltf.images,r);s.push(this._loader.loadImageAsync(`/images/${r}`,l).then(e=>{n[i][t]=e})),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(s).then(async()=>{let s=new sH(this._loader.babylonScene,null,t.specularImageSize);if(s.name=t.name||"environment",t._babylonTexture=s,void 0!=t.intensity&&(s.level=t.intensity),t.rotation){let e=tT.Quaternion.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(e=tT.Quaternion.Inverse(e)),tT.Matrix.FromQuaternionToRef(e,s.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw Error(`${e}: Irradiance coefficients are missing`);let i=sP.SphericalHarmonics.FromArray(t.irradianceCoefficients);i.scaleInPlace(t.intensity),i.convertIrradianceToLambertianRadiance();let a=sP.SphericalPolynomial.FromHarmonics(i),o=(n.length-1)/Math.log2(t.specularImageSize);return await s.updateRGBDAsync(n,a,o)})}return t._loaded.then(()=>t._babylonTexture)}}let sz=!1;function sq(){sz||(sz=!0,sM(sU),sw(sU,!0,e=>new s$(e)))}e.s(["EXT_lights_image_based",0,s$,"RegisterEXT_lights_image_based",0,sq],52252),sq(),e.s([],86608),e.s([],64765),e.i(90753);let sW="EXT_mesh_gpu_instancing";class sj{constructor(e){this.name=sW,this._loader=e,this.enabled=this._loader.isExtensionUsed(sW)}dispose(){this._loader=null}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(e,n)=>{this._loader._disableInstancedMesh++;let i=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,s);if(this._loader._disableInstancedMesh--,!t._primitiveBabylonMeshes)return await i;let a=[],o=0,r=t=>{if(void 0==n.attributes[t])return void a.push(Promise.resolve(null));let s=sR.Get(`${e}/attributes/${t}`,this._loader.gltf.accessors,n.attributes[t]);if(a.push(this._loader._loadFloatAccessorAsync(`/accessors/${s.bufferView}`,s)),0===o)o=s.count;else if(o!==s.count)throw Error(`${e}/attributes: Instance buffer accessors do not have the same count.`)};return r("TRANSLATION"),r("ROTATION"),r("SCALE"),r("_COLOR_0"),await i.then(async e=>{let[s,n,i,r]=await Promise.all(a),l=new Float32Array(16*o);tT.TmpVectors.Vector3[0].copyFromFloats(0,0,0),tT.TmpVectors.Quaternion[0].copyFromFloats(0,0,0,1),tT.TmpVectors.Vector3[1].copyFromFloats(1,1,1);for(let e=0;e<o;++e)s&&tT.Vector3.FromArrayToRef(s,3*e,tT.TmpVectors.Vector3[0]),n&&tT.Quaternion.FromArrayToRef(n,4*e,tT.TmpVectors.Quaternion[0]),i&&tT.Vector3.FromArrayToRef(i,3*e,tT.TmpVectors.Vector3[1]),tT.Matrix.ComposeToRef(tT.TmpVectors.Vector3[1],tT.TmpVectors.Quaternion[0],tT.TmpVectors.Vector3[0],tT.TmpVectors.Matrix[0]),tT.TmpVectors.Matrix[0].copyToArray(l,16*e);for(let e of t._primitiveBabylonMeshes)e.thinInstanceSetBuffer("matrix",l,16,!0),r&&(r.length===3*o?e.thinInstanceSetBuffer("color",r,3,!0):r.length===4*o?e.thinInstanceSetBuffer("color",r,4,!0):e3.Logger.Warn("Unexpected size of _COLOR_0 attribute for mesh "+e.name));return e})})}}let sX=!1;function sQ(){sX||(sX=!0,sM(sW),sw(sW,!0,e=>new sj(e)))}e.s(["EXT_mesh_gpu_instancing",0,sj,"RegisterEXT_mesh_gpu_instancing",0,sQ],10118),sQ(),e.s([],62689),e.s([],28825);let sY=0,sZ=null;class sJ{static get Default(){return sJ._Default||(sJ._Default=new sJ),sJ._Default}constructor(){const e=sJ.Configuration.decoder;this._decoderModulePromise=eZ.Tools.LoadBabylonScriptAsync(e.url).then(()=>MeshoptDecoder.ready)}dispose(){delete this._decoderModulePromise}async decodeGltfBufferAsync(e,t,s,n,i){await this._decoderModulePromise,0===sY&&(MeshoptDecoder.useWorkers(1),sY=1);let a=await MeshoptDecoder.decodeGltfBufferAsync(t,s,e,n,i);return null!==sZ&&clearTimeout(sZ),sZ=setTimeout(()=>{MeshoptDecoder.useWorkers(0),sY=0,sZ=null},1e3),a}}sJ.Configuration={decoder:{url:`${eZ.Tools._DefaultCdnUrl}/meshopt_decoder.js`}},sJ._Default=null;let s0="EXT_meshopt_compression";class s1{constructor(e){this.name=s0,this.enabled=e.isExtensionUsed(s0),this._loader=e}dispose(){this._loader=null}loadBufferViewAsync(e,t){return sI.LoadExtensionAsync(e,t,this.name,async(s,n)=>{if(t._meshOptData)return await t._meshOptData;let i=sR.Get(`${e}/buffer`,this._loader.gltf.buffers,n.buffer);return t._meshOptData=this._loader.loadBufferAsync(`/buffers/${i.index}`,i,n.byteOffset||0,n.byteLength).then(async e=>await sJ.Default.decodeGltfBufferAsync(e,n.count,n.byteStride,n.mode,n.filter)),await t._meshOptData})}}let s2=!1;function s3(){s2||(s2=!0,sM(s0),sw(s0,!0,e=>new s1(e)))}e.s(["EXT_meshopt_compression",0,s1,"RegisterEXT_meshopt_compression",0,s3],57470),s3(),e.s([],74231),e.s([],3123);let s8="EXT_texture_webp";class s4{constructor(e){this.name=s8,this._loader=e,this.enabled=e.isExtensionUsed(s8)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=void 0==t.sampler?sI.DefaultSampler:sR.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=sR.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,a,o,e=>{s(e)},void 0,!t._textureInfo.nonColorData)})}}let s5=!1;function s7(){s5||(s5=!0,sM(s8),sw(s8,!0,e=>new s4(e)))}e.s(["EXT_texture_webp",0,s4,"RegisterEXT_texture_webp",0,s7],45441),s7(),e.s([],14726),e.s([],95235);let s9="EXT_texture_avif";class s6{constructor(e){this.name=s9,this._loader=e,this.enabled=e.isExtensionUsed(s9)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=void 0==t.sampler?sI.DefaultSampler:sR.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=sR.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,a,o,e=>{s(e)},void 0,!t._textureInfo.nonColorData)})}}let ne=!1;function nt(){ne||(ne=!0,sM(s9),sw(s9,!0,e=>new s6(e)))}e.s(["EXT_texture_avif",0,s6,"RegisterEXT_texture_avif",0,nt],32962),nt(),e.s([],37190),e.s([],59809);let ns="EXT_lights_ies";class nn{constructor(e){this.name=ns,this._loader=e,this.enabled=this._loader.isExtensionUsed(ns)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,sR.Assign(this._lights)}}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a,o,r;this._loader._allMaterialsDirtyRequired=!0;let l=await this._loader.loadNodeAsync(e,t,e=>{let t=(o=sR.Get(n,this._lights,i.light)).name||e.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,(a=new tX.SpotLight(t,tT.Vector3.Zero(),tT.Vector3.Backward(),0,1,this._loader.babylonScene)).angle=Math.PI/2,a.innerAngle=0,a._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,o._babylonLight=a,a.falloffType=e5.Light.FALLOFF_GLTF,a.diffuse=i.color?tA.Color3.FromArray(i.color):tA.Color3.White(),a.intensity=i.multiplier||1,a.range=Number.MAX_VALUE,a.parent=e,this._loader._babylonLights.push(a),sI.AddPointerMetadata(a,n),s(e)});if(o.uri)r=await this._loader.loadUriAsync(e,o,o.uri);else{let t=sR.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,o.bufferView);r=await this._loader.loadBufferViewAsync(`/bufferViews/${t.index}`,t)}return a.iesProfileTexture=new tN.Texture(a.name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,r,!0,void 0,void 0,void 0,void 0,".ies"),l})}}let ni=!1;function na(){ni||(ni=!0,sM(ns),sw(ns,!0,e=>new nn(e)))}e.s(["EXT_lights_ies",0,nn,"RegisterEXT_lights_ies",0,na],81278),na(),e.s([],56005),e.s([],82078);var no=e.i(69874);function nr(e,t,s,n,i){let a=null,o=null,r=null;try{let l;a=new e.Decoder,(o=new e.DecoderBuffer).Init(t,t.byteLength);let h=a.GetEncodedGeometryType(o);switch(h){case e.TRIANGULAR_MESH:{let t=new e.Mesh;if(!(l=a.DecodeBufferToMesh(o,t)).ok()||0===t.ptr)throw Error(l.error_msg());let s=t.num_faces(),i=3*s,h=4*i,u=e._malloc(h);try{a.GetTrianglesUInt32Array(t,h,u);let s=new Uint32Array(i);s.set(new Uint32Array(e.HEAPF32.buffer,u,i)),n(s)}finally{e._free(u)}r=t;break}case e.POINT_CLOUD:{let t=new e.PointCloud;if(!(l=a.DecodeBufferToPointCloud(o,t)).ok()||!t.ptr)throw Error(l.error_msg());r=t;break}default:throw Error(`Draco: Cannot decode invalid geometry type ${h}`)}let u=r.num_points(),c=(t,s,n,a)=>{let o=a.data_type(),r=a.num_components(),l=a.normalized(),h=a.byte_stride(),c=a.byte_offset(),d={[e.DT_FLOAT32]:{typedArrayConstructor:Float32Array,heap:e.HEAPF32},[e.DT_INT8]:{typedArrayConstructor:Int8Array,heap:e.HEAP8},[e.DT_INT16]:{typedArrayConstructor:Int16Array,heap:e.HEAP16},[e.DT_INT32]:{typedArrayConstructor:Int32Array,heap:e.HEAP32},[e.DT_UINT8]:{typedArrayConstructor:Uint8Array,heap:e.HEAPU8},[e.DT_UINT16]:{typedArrayConstructor:Uint16Array,heap:e.HEAPU16},[e.DT_UINT32]:{typedArrayConstructor:Uint32Array,heap:e.HEAPU32}}[o];if(!d)throw Error(`Draco: Cannot decode invalid data type ${o}`);let p=u*r,_=p*d.typedArrayConstructor.BYTES_PER_ELEMENT,m=e._malloc(_);try{t.GetAttributeDataArrayForAllPoints(s,a,o,_,m);let e=new d.typedArrayConstructor(d.heap.buffer,m,p);i(n,e.slice(),r,c,h,l)}finally{e._free(m)}};if(s)for(let e in s){let t=s[e],n=a.GetAttributeByUniqueId(r,t);c(a,r,e,n)}else{let t={position:e.POSITION,normal:e.NORMAL,color:e.COLOR,uv:e.TEX_COORD};for(let e in t){let s=a.GetAttributeId(r,t[e]);if(-1!==s){let t=a.GetAttribute(r,s);c(a,r,e,t)}}}return u}finally{r&&e.destroy(r),o&&e.destroy(o),a&&e.destroy(a)}}function nl(){let e;onmessage=t=>{let s=t.data;switch(s.id){case"init":s.url&&importScripts(s.url),e=DracoDecoderModule(s.wasmBinary?{wasmBinary:s.wasmBinary}:{}),postMessage({id:"initDone"});break;case"decodeMesh":if(!e)throw Error("Draco: Decoder module is not available");e.then(e=>{let t=nr(e,s.dataView,s.attributes,e=>{postMessage({id:"indices",data:e},[e.buffer])},(e,t,s,n,i,a)=>{postMessage({id:"attribute",kind:e,data:t,size:s,byteOffset:n,byteStride:i,normalized:a},[t.buffer])});postMessage({id:"decodeMeshDone",totalVertices:t})})}}}async function nh(e,t,s){return await new Promise((n,i)=>{let a=t=>{e.removeEventListener("error",a),e.removeEventListener("message",o),i(t)},o=t=>{"initDone"===t.data.id&&(e.removeEventListener("error",a),e.removeEventListener("message",o),n(e))};if(e.addEventListener("error",a),e.addEventListener("message",o),t){let n=t.slice(0);e.postMessage({id:"init",url:s,wasmBinary:n},[n])}else e.postMessage({id:"init",url:s})})}class nu{constructor(e){if(e.workerPool){this._workerPoolPromise=Promise.resolve(e.workerPool);return}const t=e.wasmBinary,s=e.numWorkers??("object"==typeof navigator&&navigator.hardwareConcurrency?Math.min(Math.floor(.5*navigator.hardwareConcurrency),4):1),n=s&&"function"==typeof Worker&&"function"==typeof URL,i=n||!e.jsModule,a=e.wasmUrl&&e.wasmBinaryUrl&&"object"==typeof WebAssembly?{url:i?eZ.Tools.GetBabylonScriptURL(e.wasmUrl,!0):"",wasmBinaryPromise:t?Promise.resolve(t):eZ.Tools.LoadFileAsync(eZ.Tools.GetBabylonScriptURL(e.wasmBinaryUrl,!0))}:{url:i?eZ.Tools.GetBabylonScriptURL(e.fallbackUrl):"",wasmBinaryPromise:Promise.resolve(void 0)};n?this._workerPoolPromise=a.wasmBinaryPromise.then(e=>{let t=this._getWorkerContent(),n=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));return new no.AutoReleaseWorkerPool(s,()=>nh(new Worker(n),e,a.url))}):this._modulePromise=a.wasmBinaryPromise.then(async t=>{if(!this._isModuleAvailable()&&!e.jsModule){if(!a.url)throw Error("Draco codec module is not available");await eZ.Tools.LoadBabylonScriptAsync(a.url)}return await this._createModuleAsync(t,e.jsModule)})}async whenReadyAsync(){this._workerPoolPromise?await this._workerPoolPromise:this._modulePromise&&await this._modulePromise}dispose(){this._workerPoolPromise&&this._workerPoolPromise.then(e=>{e.dispose()}),delete this._workerPoolPromise,delete this._modulePromise}}class nc extends nu{static get DefaultAvailable(){var e;return!!((e=nc.DefaultConfiguration).wasmUrl&&(e.wasmBinary||e.wasmBinaryUrl)&&"object"==typeof WebAssembly||e.fallbackUrl)}static get Default(){return nc._Default??(nc._Default=new nc),nc._Default}static ResetDefault(e){nc._Default&&(e||nc._Default.dispose(),nc._Default=null)}_isModuleAvailable(){return"u">typeof DracoDecoderModule}async _createModuleAsync(e,t){return{module:await (t||DracoDecoderModule)({wasmBinary:e})}}_getWorkerContent(){return`${nr}(${nl})()`}constructor(e=nc.DefaultConfiguration){super(e)}decodeMeshToMeshDataAsync(e,t,s){let n=e instanceof ArrayBuffer?new Int8Array(e):new Int8Array(e.buffer,e.byteOffset,e.byteLength);if(this._workerPoolPromise)return this._workerPoolPromise.then(async e=>await new Promise((i,a)=>{e.push((e,o)=>{let r=null,l=[],h=t=>{e.removeEventListener("error",h),e.removeEventListener("message",u),a(t),o()},u=t=>{let n=t.data;switch(n.id){case"indices":r=n.data;break;case"attribute":var a,c;l.push({kind:n.kind,data:n.data,size:n.size,byteOffset:n.byteOffset,byteStride:n.byteStride,normalized:(a=n.kind,c=n.normalized,s&&void 0!==s[a]?(c!==s[a]&&e3.Logger.Warn(`Normalized flag from Draco data (${c}) does not match normalized flag from glTF accessor (${s[a]}). Using flag from glTF accessor.`),s[a]):c)});break;case"decodeMeshDone":e.removeEventListener("error",h),e.removeEventListener("message",u),i({indices:r,attributes:l,totalVertices:n.totalVertices}),o()}};e.addEventListener("error",h),e.addEventListener("message",u);let c=n.slice();e.postMessage({id:"decodeMesh",dataView:c,attributes:t},[c.buffer])})}));if(this._modulePromise)return this._modulePromise.then(e=>{let s=null,i=[],a=nr(e.module,n,t,e=>{s=e},(e,t,s,n,a,o)=>{i.push({kind:e,data:t,size:s,byteOffset:n,byteStride:a,normalized:o})});return{indices:s,attributes:i,totalVertices:a}});throw Error("Draco: Decoder module is not available")}async decodeMeshToGeometryAsync(e,t,s,n){let i=await this.decodeMeshToMeshDataAsync(s,n),a=new tL.Geometry(e,t);for(let e of(i.indices&&a.setIndices(i.indices),i.attributes))a.setVerticesBuffer(new tP.VertexBuffer(t.getEngine(),e.data,e.kind,!1,void 0,e.byteStride,void 0,e.byteOffset,e.size,void 0,e.normalized,!0),i.totalVertices);return a}async _decodeMeshToGeometryForGltfAsync(e,t,s,n,i,a){let o=await this.decodeMeshToMeshDataAsync(s,n,i),r=new tL.Geometry(e,t);for(let e of(a&&(r._boundingInfo=a,r.useBoundingInfoFromGeometry=!0),o.indices&&r.setIndices(o.indices),o.attributes))r.setVerticesBuffer(new tP.VertexBuffer(t.getEngine(),e.data,e.kind,!1,void 0,e.byteStride,void 0,e.byteOffset,e.size,void 0,e.normalized,!0),o.totalVertices);return r}}nc.DefaultConfiguration={wasmUrl:`${eZ.Tools._DefaultCdnUrl}/draco_wasm_wrapper_gltf.js`,wasmBinaryUrl:`${eZ.Tools._DefaultCdnUrl}/draco_decoder_gltf.wasm`,fallbackUrl:`${eZ.Tools._DefaultCdnUrl}/draco_decoder_gltf.js`},nc._Default=null;let nd="KHR_draco_mesh_compression";class np{constructor(e){this.name=nd,this.useNormalizedFlagFromAccessor=!0,this._loader=e,this.enabled=nc.DefaultAvailable&&this._loader.isExtensionUsed(nd)}dispose(){delete this.dracoDecoder,this._loader=null}_loadVertexDataAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{if(void 0!=t.mode&&4!==t.mode&&5!==t.mode)throw Error(`${e}: Unsupported mode ${t.mode}`);let a={},o={},r=(e,n)=>{let r=i.attributes[e];if(void 0!=r&&(s._delayInfo=s._delayInfo||[],-1===s._delayInfo.indexOf(n)&&s._delayInfo.push(n),a[n]=r,this.useNormalizedFlagFromAccessor)){let s=sR.TryGet(this._loader.gltf.accessors,t.attributes[e]);s&&(o[n]=s.normalized||!1)}};r("POSITION",tP.VertexBuffer.PositionKind),r("NORMAL",tP.VertexBuffer.NormalKind),r("TANGENT",tP.VertexBuffer.TangentKind),r("TEXCOORD_0",tP.VertexBuffer.UVKind),r("TEXCOORD_1",tP.VertexBuffer.UV2Kind),r("TEXCOORD_2",tP.VertexBuffer.UV3Kind),r("TEXCOORD_3",tP.VertexBuffer.UV4Kind),r("TEXCOORD_4",tP.VertexBuffer.UV5Kind),r("TEXCOORD_5",tP.VertexBuffer.UV6Kind),r("JOINTS_0",tP.VertexBuffer.MatricesIndicesKind),r("WEIGHTS_0",tP.VertexBuffer.MatricesWeightsKind),r("COLOR_0",tP.VertexBuffer.ColorKind);let l=sR.Get(n,this._loader.gltf.bufferViews,i.bufferView);return l._dracoBabylonGeometry||(l._dracoBabylonGeometry=this._loader.loadBufferViewAsync(`/bufferViews/${l.index}`,l).then(async n=>{let i=this.dracoDecoder||nc.Default,r=sR.TryGet(this._loader.gltf.accessors,t.attributes.POSITION),l=this._loader.parent.alwaysComputeBoundingBox||s.skeleton||!r?null:sO(r);return await i._decodeMeshToGeometryForGltfAsync(s.name,this._loader.babylonScene,n,a,o,l).catch(t=>{throw Error(`${e}: ${t.message}`)})})),await l._dracoBabylonGeometry})}}let n_=!1;function nm(){n_||(n_=!0,sM(nd),sw(nd,!0,e=>new np(e)))}e.s(["KHR_draco_mesh_compression",0,np,"RegisterKHR_draco_mesh_compression",0,nm],90847),nm(),e.s([],11743),e.s([],62493);var nf=e.i(82368),ng=e.i(39312);let ny="KHR_gaussian_splatting",nb=[0,3,5,7];function nT(e){return e<=0?0:e>=255?255:e+.5|0}class nA{constructor(e){this.name=ny,this._loader=e,this.enabled=this._loader.isExtensionUsed(ny)}dispose(){this._loader=null}_loadMeshPrimitiveAsync(e,t,s,n,i,a){return sI.LoadExtensionAsync(e,i,this.name,async s=>{if(void 0!=i.mode&&0!==i.mode)throw Error(`${s}: Gaussian splatting primitives must use POINTS mode`);let n=this._loader,o=t=>{let s=i.attributes[t];if(void 0==s)return null;let a=sR.Get(`${e}/attributes/${t}`,n.gltf.accessors,s);return n._loadFloatAccessorAsync(`/accessors/${a.index}`,a)},r=o("POSITION");if(!r)throw Error(`${s}: Gaussian splatting primitive is missing the POSITION attribute`);let l=0,h=[];for(let e=1;e<=3&&void 0!=i.attributes[`KHR_gaussian_splatting:SH_DEGREE_${e}_COEF_0`];e++){l=e;for(let t=0;t<nb[e];t++)h.push(`KHR_gaussian_splatting:SH_DEGREE_${e}_COEF_${t}`)}let u=n.babylonScene;u._blockEntityCollection=!!n._assetContainer;let c=new nf.GaussianSplattingMesh(t,null,u);c._parentContainer=n._assetContainer,u._blockEntityCollection=!1,sI.AddPointerMetadata(c,e),n.parent.onMeshLoadedObservable.notifyObservers(c),a(c);let d=u.getEngine().getCaps(),[p,_,m,f,g,y,...b]=await Promise.all([r,o("KHR_gaussian_splatting:ROTATION"),o("KHR_gaussian_splatting:SCALE"),o("KHR_gaussian_splatting:OPACITY"),o("KHR_gaussian_splatting:SH_DEGREE_0_COEF_0"),o("COLOR_0"),...h.map(e=>o(e))]),T=p.length/3,A=y?y.length/T:0,x=new ArrayBuffer(32*T),v=new Float32Array(x),w=new Uint8Array(x),M=null;if(l>0){let e=Math.ceil(3*((l+1)*(l+1)-1)/16),t=d.maxTextureSize,s=Math.ceil(T/t);M=(0,ng.AllocateShBuffers)(e,s*t*16)}for(let e=0;e<T;e++){let t=8*e,s=32*e,n=3*e;if(v[t+0]=p[n+0],v[t+1]=p[n+1],v[t+2]=p[n+2],v[t+3]=m?m[n+0]:1,v[t+4]=m?m[n+1]:1,v[t+5]=m?m[n+2]:1,g)w[s+24]=nT((.5+.28209479177387814*g[n+0])*255),w[s+25]=nT((.5+.28209479177387814*g[n+1])*255),w[s+26]=nT((.5+.28209479177387814*g[n+2])*255);else if(y){let t=e*A;w[s+24]=nT(255*y[t+0]),w[s+25]=nT(255*y[t+1]),w[s+26]=nT(255*y[t+2])}else w[s+24]=255,w[s+25]=255,w[s+26]=255;f?w[s+27]=nT(255*f[e]):y&&A>=4?w[s+27]=nT(255*y[e*A+3]):w[s+27]=255;let i=4*e,a=_?_[i+0]:0,o=_?_[i+1]:0,r=_?_[i+2]:0,l=_?_[i+3]:1;if(w[s+28]=nT(127.5*l+127.5),w[s+29]=nT(127.5*a+127.5),w[s+30]=nT(127.5*o+127.5),w[s+31]=nT(127.5*r+127.5),M){let t=16*e;for(let e=0;e<b.length;e++){let s=b[e];if(s)for(let i=0;i<3;i++){let a=3*e+i,o=a>>4,r=15&a;M[o][t+r]=nT(128*s[n+i]+128)}}}}return await c.updateDataAsync(x,M??void 0,void 0,l||void 0),c})}}let nx=!1;function nv(){nx||(nx=!0,sM(ny),sw(ny,!0,e=>new nA(e)))}e.s(["KHR_gaussian_splatting",0,nA,"RegisterKHR_gaussian_splatting",0,nv],2669),nv(),e.s([],93461),e.s([],48837);let nw="KHR_lights_punctual";class nM{constructor(e){this.name=nw,this._loader=e,this.enabled=this._loader.isExtensionUsed(nw)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,sR.Assign(this._lights)}}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>(this._loader._allMaterialsDirtyRequired=!0,await this._loader.loadNodeAsync(e,t,e=>{let t,a=sR.Get(n,this._lights,i.light),o=a.name||e.name;switch(this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,a.type){case"directional":{let e=new tz(o,tT.Vector3.Backward(),this._loader.babylonScene);e.position.setAll(0),t=e;break}case"point":t=new tW(o,tT.Vector3.Zero(),this._loader.babylonScene);break;case"spot":{let e=new tX.SpotLight(o,tT.Vector3.Zero(),tT.Vector3.Backward(),0,1,this._loader.babylonScene);e.angle=2*(a.spot&&a.spot.outerConeAngle||Math.PI/4),e.innerAngle=2*(a.spot&&a.spot.innerConeAngle||0),t=e;break}default:throw this._loader.babylonScene._blockEntityCollection=!1,Error(`${n}: Invalid light type (${a.type})`)}t._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,a._babylonLight=t,t.falloffType=e5.Light.FALLOFF_GLTF,t.diffuse=a.color?tA.Color3.FromArray(a.color):tA.Color3.White(),t.intensity=void 0==a.intensity?1:a.intensity,t.range=void 0==a.range?Number.MAX_VALUE:a.range,t.parent=e,this._loader._babylonLights.push(t),sI.AddPointerMetadata(t,n),s(e)})))}}let nC=!1;function nS(){nC||(nC=!0,sM(nw),sw(nw,!0,e=>new nM(e)))}async function nF(){let e=new Uint16Array(16384),t=new Uint16Array(16384),s=new Uint16Array(await eZ.Tools.LoadFileAsync(eZ.Tools.GetAssetUrl("https://assets.babylonjs.com/core/areaLights/areaLightsLTC.bin"))),n=s.length/8;for(let i=0;i<n;i++)e[4*i]=s[8*i],e[4*i+1]=s[8*i+1],e[4*i+2]=s[8*i+2],e[4*i+3]=s[8*i+3],t[4*i]=s[8*i+4],t[4*i+1]=s[8*i+5],t[4*i+2]=s[8*i+6],t[4*i+3]=s[8*i+7];return[e,t]}e.s(["KHR_lights",0,nM,"RegisterKHR_lights",0,nS],42211),nS(),e.s([],9278),e.s([],22520);let nE=(eu=e5.Light,ec=[],ed=[],ek=class extends eu{constructor(e,t,s,n){super(e,s,n),this.position=(0,tV.__runInitializers)(this,ec,void 0),(0,tV.__runInitializers)(this,ed),this.position=t,this._scene._ltcTextures||function(e){let t=e.useDelayedTextureLoading;e.useDelayedTextureLoading=!1;let s=e._blockEntityCollection;e._blockEntityCollection=!1,e._ltcTextures={LTC1:tM.RawTexture.CreateRGBATexture(null,64,64,e.getEngine(),!1,!1,2,2,0,!1,!0),LTC2:tM.RawTexture.CreateRGBATexture(null,64,64,e.getEngine(),!1,!1,2,2,0,!1,!0)},e._blockEntityCollection=s,e._ltcTextures.LTC1.wrapU=tN.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC1.wrapV=tN.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC2.wrapU=tN.Texture.CLAMP_ADDRESSMODE,e._ltcTextures.LTC2.wrapV=tN.Texture.CLAMP_ADDRESSMODE,e.useDelayedTextureLoading=t,nF().then(t=>{e._ltcTextures&&((e._ltcTextures?.LTC1).update(t[0]),(e._ltcTextures?.LTC2).update(t[1]),e.onDisposeObservable.addOnce(()=>{e._ltcTextures?.LTC1.dispose(),e._ltcTextures?.LTC2.dispose()}))}).catch(e=>{e3.Logger.Error(`Area Light fail to get LTC textures data. Error: ${e}`)})}(this._scene)}transferTexturesToEffect(e,t){return this._scene._ltcTextures&&(e.setTexture("areaLightsLTC1Sampler",this._scene._ltcTextures.LTC1),e.setTexture("areaLightsLTC2Sampler",this._scene._ltcTextures.LTC2)),this}prepareLightSpecificDefines(e,t){e["AREALIGHT"+t]=!0,e.AREALIGHTUSED=!0}_isReady(){return!!this._scene._ltcTextures&&this._scene._ltcTextures.LTC1.isReady()&&this._scene._ltcTextures.LTC2.isReady()}},ep="function"==typeof Symbol&&Symbol.metadata?Object.create(eu[Symbol.metadata]??null):void 0,eh=[(0,tK.serializeAsVector3)()],(0,tV.__esDecorate)(null,null,eh,{kind:"field",name:"position",static:!1,private:!1,access:{has:e=>"position"in e,get:e=>e.position,set:(e,t)=>{e.position=t}},metadata:ep},ec,ed),ep&&Object.defineProperty(ek,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:ep}),ek);var nR=e.i(89786);let nO=(ef=nE,eg=[],eP=class extends ef{get emissionTexture(){return this._emissionTextureTexture}set emissionTexture(e){this._emissionTextureTexture!==e&&(this._emissionTextureTexture=e,this._emissionTextureTexture&&(this._emissionTextureTexture.wrapU=0,this._emissionTextureTexture.wrapV=0),this._emissionTextureTexture&&eP._IsTexture(this._emissionTextureTexture)&&this._emissionTextureTexture.onLoadObservable.addOnce(()=>{this._markMeshesAsLightDirty()}))}get width(){return this._width.x}set width(e){this._width.x=e}get height(){return this._height.y}set height(e){this._height.y=e}constructor(e,t,s,n,i,a){super(e,t,i,a),this._width=(0,tV.__runInitializers)(this,eg),this._emissionTextureTexture=null,this._width=new tT.Vector3(s,0,0),this._height=new tT.Vector3(0,n,0),this._pointTransformedPosition=tT.Vector3.Zero(),this._pointTransformedWidth=tT.Vector3.Zero(),this._pointTransformedHeight=tT.Vector3.Zero()}getClassName(){return"RectAreaLight"}getTypeID(){return e5.Light.LIGHTTYPEID_RECT_AREALIGHT}serialize(){let e=super.serialize();if(this._emissionTextureTexture){let t=this._serializeEmissionTexture(this._emissionTextureTexture);t&&(e.emissionTexture=t)}return e}_serializeEmissionTexture(e){let t=e.serialize();if(t)return t;let s=e.getInternalTexture();if(!s)return null;let n=s.invertY,i=e.hasAlpha;return this._scene.getEngine()._features.supportSyncTextureRead?eP._BuildEmbeddedEmissionTexture((0,nR.GenerateBase64StringFromTexture)(e),n,i):eP._BuildEmbeddedEmissionTextureAsync((0,nR.GenerateBase64StringFromTextureAsync)(e),n,i)}static async _BuildEmbeddedEmissionTextureAsync(e,t,s){return eP._BuildEmbeddedEmissionTexture(await e,t,s)}static _BuildEmbeddedEmissionTexture(e,t,s){return e?{name:"areaLightEmissionTexture",base64String:e,invertY:t,hasAlpha:s}:null}_onParsed(e,t,s=""){super._onParsed(e,t,s),e.emissionTexture&&(this.emissionTexture=tN.Texture.Parse(e.emissionTexture,t,s))}_buildUniformLayout(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightWidth",4),this._uniformBuffer.addUniform("vLightHeight",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()}_computeTransformedInformation(){return!!this.parent&&!!this.parent.getWorldMatrix&&(tT.Vector3.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this._pointTransformedPosition),tT.Vector3.TransformNormalToRef(this._width,this.parent.getWorldMatrix(),this._pointTransformedWidth),tT.Vector3.TransformNormalToRef(this._height,this.parent.getWorldMatrix(),this._pointTransformedHeight),!0)}static _IsTexture(e){return void 0!==e.onLoadObservable}transferToEffect(e,t){let s=this._scene.floatingOriginOffset;return this._computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this._pointTransformedPosition.x-s.x,this._pointTransformedPosition.y-s.y,this._pointTransformedPosition.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._pointTransformedWidth.x/2,this._pointTransformedWidth.y/2,this._pointTransformedWidth.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._pointTransformedHeight.x/2,this._pointTransformedHeight.y/2,this._pointTransformedHeight.z/2,0,t)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x-s.x,this.position.y-s.y,this.position.z-s.z,0,t),this._uniformBuffer.updateFloat4("vLightWidth",this._width.x/2,this._width.y/2,this._width.z/2,0,t),this._uniformBuffer.updateFloat4("vLightHeight",this._height.x/2,this._height.y/2,this._height.z/2,0,t)),this}transferTexturesToEffect(e,t){return super.transferTexturesToEffect(e,t),this._emissionTextureTexture&&this._emissionTextureTexture.isReady()&&e.setTexture("rectAreaLightEmissionTexture"+t,this._emissionTextureTexture),this}transferToNodeMaterialEffect(e,t){let s=this._scene.floatingOriginOffset;return this._computeTransformedInformation()?e.setFloat3(t,this._pointTransformedPosition.x-s.x,this._pointTransformedPosition.y-s.y,this._pointTransformedPosition.z-s.z):e.setFloat3(t,this.position.x-s.x,this.position.y-s.y,this.position.z-s.z),this}prepareLightSpecificDefines(e,t){super.prepareLightSpecificDefines(e,t),e["RECTAREALIGHTEMISSIONTEXTURE"+t]=!!(this._emissionTextureTexture&&this._emissionTextureTexture.isReady())}},ey="function"==typeof Symbol&&Symbol.metadata?Object.create(ef[Symbol.metadata]??null):void 0,e_=[(0,tK.serialize)()],em=[(0,tK.serialize)()],(0,tV.__esDecorate)(eP,null,e_,{kind:"getter",name:"width",static:!1,private:!1,access:{has:e=>"width"in e,get:e=>e.width},metadata:ey},null,eg),(0,tV.__esDecorate)(eP,null,em,{kind:"getter",name:"height",static:!1,private:!1,access:{has:e=>"height"in e,get:e=>e.height},metadata:ey},null,eg),ey&&Object.defineProperty(eP,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:ey}),eP),nI="EXT_lights_area";class nB{constructor(e){this.name=nI,this._loader=e,this.enabled=this._loader.isExtensionUsed(nI)}dispose(){this._loader=null,delete this._lights}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._lights=t.lights,sR.Assign(this._lights)}}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>(this._loader._allMaterialsDirtyRequired=!0,await this._loader.loadNodeAsync(e,t,e=>{let t,a=sR.Get(n,this._lights,i.light),o=a.name||e.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer;let r=void 0!==a.size?a.size:1;switch(a.type){case"rect":{let e=a.rect?.aspect!==void 0?a.rect.aspect*r:r;t=new nO(o,tT.Vector3.Zero(),e,r,this._loader.babylonScene);break}case"disk":{let e=Math.sqrt(r*r*.25*Math.PI);t=new nO(o,tT.Vector3.Zero(),e,e,this._loader.babylonScene);break}default:throw this._loader.babylonScene._blockEntityCollection=!1,Error(`${n}: Invalid area light type (${a.type})`)}t._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,a._babylonLight=t,t.falloffType=e5.Light.FALLOFF_GLTF,t.diffuse=a.color?tA.Color3.FromArray(a.color):tA.Color3.White(),t.intensity=void 0==a.intensity?1:a.intensity;let l=new e1.TransformNode(`${o}_orientation`,this._loader.babylonScene);l.rotationQuaternion=tT.Quaternion.RotationAxis(tT.Vector3.Up(),Math.PI),l.parent=e,t.parent=l,this._loader._babylonLights.push(t),sI.AddPointerMetadata(t,n),s(e)})))}}let nN=!1;function nk(){nN||(nN=!0,sM(nI),sw(nI,!0,e=>new nB(e)))}e.s(["EXT_lights_area",0,nB,"RegisterEXT_lights_area",0,nk],58641),nk(),e.s([],26753),e.s([],55714);let nP="KHR_materials_pbrSpecularGlossiness";class nL{constructor(e){this.name=nP,this.order=200,this._loader=e,this.enabled=this._loader.isExtensionUsed(nP)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialBasePropertiesAsync(e,t,s)),a.push(this._loadSpecularGlossinessPropertiesAsync(n,i,s)),this._loader.loadMaterialAlphaProperties(e,t,s),await Promise.all(a).then(()=>{})})}_loadSpecularGlossinessPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureSpecularGlossiness(),t.diffuseFactor?(n.baseColor=tA.Color3.FromArray(t.diffuseFactor),s.alpha=t.diffuseFactor[3]):n.baseColor=tA.Color3.White(),n.specularColor=t.specularFactor?tA.Color3.FromArray(t.specularFactor):tA.Color3.White(),n.glossiness=void 0==t.glossinessFactor?1:t.glossinessFactor,t.diffuseTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTexture`,t.diffuseTexture,e=>{e.name=`${s.name} (Diffuse)`,n.baseColorTexture=e})),t.specularGlossinessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/specularGlossinessTexture`,t.specularGlossinessTexture,e=>{e.name=`${s.name} (Specular Glossiness)`,n.specularColorTexture=e})),Promise.all(i).then(()=>{})}}let nG=!1;function nD(){nG||(nG=!0,sM(nP),sw(nP,!0,e=>new nL(e)))}e.s(["KHR_materials_pbrSpecularGlossiness",0,nL,"RegisterKHR_materials_pbrSpecularGlossiness",0,nD],60605),nD(),e.s([],34780),e.s([],35169);let nV="KHR_materials_unlit";class nK{constructor(e){this.name=nV,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(nV)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async()=>await this._loadUnlitPropertiesAsync(e,t,s))}_loadUnlitPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[],a=t.pbrMetallicRoughness;return a&&(a.baseColorFactor&&(n.baseColor=tA.Color3.FromArray(a.baseColorFactor),n.geometryOpacity=a.baseColorFactor[3]),a.baseColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/baseColorTexture`,a.baseColorTexture,e=>{e.name=`${s.name} (Base Color)`,n.baseColorTexture=e}))),n.isUnlit=!0,t.doubleSided&&(n.backFaceCulling=!1,n.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(e,t,s),Promise.all(i).then(()=>{})}}let nH=!1;function nU(){nH||(nH=!0,sM(nV),sw(nV,!0,e=>new nK(e)))}e.s(["KHR_materials_unlit",0,nK,"RegisterKHR_materials_unlit",0,nU],96490),nU(),e.s([],81355),e.s([],27081);let n$="KHR_materials_clearcoat";class nz{constructor(e){this.name=n$,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(n$)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadClearCoatPropertiesAsync(n,i,s)),await Promise.all(a)})}_loadClearCoatPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureCoat(),n.coatWeight=void 0!==t.clearcoatFactor?t.clearcoatFactor:0,n.coatRoughness=void 0!==t.clearcoatRoughnessFactor?t.clearcoatRoughnessFactor:0,t.clearcoatTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatTexture`,t.clearcoatTexture,e=>{e.name=`${s.name} (ClearCoat)`,n.coatWeightTexture=e})),t.clearcoatRoughnessTexture&&(t.clearcoatRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatRoughnessTexture`,t.clearcoatRoughnessTexture,e=>{e.name=`${s.name} (ClearCoat Roughness)`,n.coatRoughnessTexture=e}))),t.clearcoatNormalTexture&&(t.clearcoatNormalTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/clearcoatNormalTexture`,t.clearcoatNormalTexture,e=>{e.name=`${s.name} (ClearCoat Normal)`,n.geometryCoatNormalTexture=e,t.clearcoatNormalTexture?.scale!=void 0&&(n.geometryCoatNormalTextureScale=t.clearcoatNormalTexture.scale)})),n.setNormalMapInversions(!s.getScene().useRightHandedSystem,s.getScene().useRightHandedSystem)),Promise.all(i).then(()=>{})}}let nq=!1;function nW(){nq||(nq=!0,sM(n$),sw(n$,!0,e=>new nz(e)))}e.s(["KHR_materials_clearcoat",0,nz,"RegisterKHR_materials_clearcoat",0,nW],12036),nW(),e.s([],52915),e.s([],97357);let nj="KHR_materials_coat";class nX{constructor(e){this.name=nj,this.order=191,this.useOpenPBR=!1,this._loader=e,this.enabled=this._loader.isExtensionUsed(nj)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),t.extensions&&t.extensions.KHR_materials_openpbr&&(this.useOpenPBR=!0),a.push(this._loadCoatPropertiesAsync(n,i,s)),await Promise.all(a)})}_loadCoatPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];n.configureCoat(),n.coatWeight=void 0!==t.coatFactor?t.coatFactor:0,n.coatRoughness=void 0!==t.coatRoughnessFactor?t.coatRoughnessFactor:0,t.coatTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/coatTexture`,t.coatTexture,e=>{e.name=`${s.name} (Coat)`,n.coatWeightTexture=e})),t.coatRoughnessTexture&&(t.coatRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatRoughnessTexture`,t.coatRoughnessTexture,e=>{e.name=`${s.name} (Coat Roughness)`,n.coatRoughnessTexture=e}))),t.coatNormalTexture&&(t.coatNormalTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatNormalTexture`,t.coatNormalTexture,e=>{e.name=`${s.name} (Coat Normal)`,n.geometryCoatNormalTexture=e,t.coatNormalTexture?.scale!=void 0&&(n.geometryCoatNormalTextureScale=t.coatNormalTexture.scale)})),n.setNormalMapInversions(!s.getScene().useRightHandedSystem,s.getScene().useRightHandedSystem)),n.coatDarkening=void 0!==t.coatDarkeningFactor?t.coatDarkeningFactor:1,n.coatIor=void 0!==t.coatIor?t.coatIor:1.5;let a=tA.Color3.White();void 0!==t.coatColorFactor&&a.fromArray(t.coatColorFactor),n.coatColor=a,t.coatColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/coatColorTexture`,t.coatColorTexture,e=>{e.name=`${s.name} (Coat Color)`,n.coatColorTexture=e}));let o=t.coatAnisotropyStrength??0,r=t.coatAnisotropyRotation??0;return n.coatRoughnessAnisotropy=o,n.geometryCoatTangentAngle=r,this.useOpenPBR||n.configureGltfStyleAnisotropy(!0),t.coatAnisotropyTexture&&(t.coatAnisotropyTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/coatAnisotropyTexture`,t.coatAnisotropyTexture,e=>{e.name=`${s.name} (Coat Anisotropy)`,n.geometryCoatTangentTexture=e}))),Promise.all(i).then(()=>{})}}let nQ=!1;function nY(){nQ||(nQ=!0,sM(nj),sw(nj,!0,e=>new nX(e)))}e.s(["KHR_materials_coat",0,nX,"RegisterKHR_materials_coat",0,nY],17345),nY(),e.s([],17402),e.s([],30889);let nZ="KHR_materials_iridescence";class nJ{constructor(e){this.name=nZ,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(nZ)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadIridescencePropertiesAsync(n,i,s)),await Promise.all(a).then(()=>{})})}_loadIridescencePropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.thinFilmWeight=t.iridescenceFactor??0,n.thinFilmIor=t.iridescenceIor??t.iridescenceIOR??1.3,n.thinFilmThicknessMinimum=t.iridescenceThicknessMinimum??100,n.thinFilmThicknessMaximum=t.iridescenceThicknessMaximum??400,t.iridescenceTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceTexture`,t.iridescenceTexture,e=>{e.name=`${s.name} (Iridescence)`,n.thinFilmWeightTexture=e})),t.iridescenceThicknessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/iridescenceThicknessTexture`,t.iridescenceThicknessTexture,e=>{e.name=`${s.name} (Iridescence Thickness)`,n.thinFilmThicknessTexture=e})),Promise.all(i).then(()=>{})}}let n0=!1;function n1(){n0||(n0=!0,sM(nZ),sw(nZ,!0,e=>new nJ(e)))}e.s(["KHR_materials_iridescence",0,nJ,"RegisterKHR_materials_iridescence",0,n1],85421),n1(),e.s([],6955),e.s([],52395);let n2="KHR_materials_anisotropy";class n3{constructor(e){this.name=n2,this.order=195,this._loader=e,this.enabled=this._loader.isExtensionUsed(n2)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadAnisotropyPropertiesAsync(n,i,s)),await Promise.all(a)})}async _loadAnisotropyPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[],a=t.anisotropyStrength??0,o=t.anisotropyRotation??0;n.specularRoughnessAnisotropy=a,n.geometryTangentAngle=o;let r=t.extensions??{};r.EXT_materials_anisotropy_openpbr&&r.EXT_materials_anisotropy_openpbr.openPbrAnisotropyEnabled||n.configureGltfStyleAnisotropy(!0),t.anisotropyTexture&&(t.anisotropyTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/anisotropyTexture`,t.anisotropyTexture,e=>{e.name=`${s.name} (Anisotropy Intensity)`,n.geometryTangentTexture=e}))),await Promise.all(i)}}let n8=!1;function n4(){n8||(n8=!0,sM(n2),sw(n2,!0,e=>new n3(e)))}e.s(["KHR_materials_anisotropy",0,n3,"RegisterKHR_materials_anisotropy",0,n4],25053),n4(),e.s([],8758),e.s([],13817);let n5="KHR_materials_emissive_strength";class n7{constructor(e){this.name=n5,this.order=170,this._loader=e,this.enabled=this._loader.isExtensionUsed(n5)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>(await this._loader.loadMaterialPropertiesAsync(e,t,s),this._loadEmissiveProperties(n,i,s),await Promise.resolve()))}_loadEmissiveProperties(e,t,s){void 0!==t.emissiveStrength&&(this._loader._getOrCreateMaterialAdapter(s).emissionLuminance=t.emissiveStrength)}}let n9=!1;function n6(){n9||(n9=!0,sM(n5),sw(n5,!0,e=>new n7(e)))}e.s(["KHR_materials_emissive_strength",0,n7,"RegisterKHR_materials_emissive_strength",0,n6],32816),n6(),e.s([],71716),e.s([],2232);let ie="KHR_materials_sheen";class it{constructor(e){this.name=ie,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(ie)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadSheenPropertiesAsync(n,i,s)),await Promise.all(a).then(()=>{})})}_loadSheenPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];n.configureFuzz();let a=void 0!==t.sheenColorFactor?tA.Color3.FromArray(t.sheenColorFactor):tA.Color3.Black(),o=void 0!==t.sheenRoughnessFactor?t.sheenRoughnessFactor:0;return n.fuzzWeight=1,n.fuzzColor=a,n.fuzzRoughness=o,t.sheenColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/sheenColorTexture`,t.sheenColorTexture,e=>{e.name=`${s.name} (Sheen Color)`,n.fuzzColorTexture=e})),t.sheenRoughnessTexture&&(t.sheenRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/sheenRoughnessTexture`,t.sheenRoughnessTexture,e=>{e.name=`${s.name} (Sheen Roughness)`,n.fuzzRoughnessTexture=e}))),Promise.all(i).then(()=>{})}}let is=!1;function ii(){is||(is=!0,sM(ie),sw(ie,!0,e=>new it(e)))}e.s(["KHR_materials_sheen",0,it,"RegisterKHR_materials_sheen",0,ii],61090),ii(),e.s([],37817),e.s([],55827);let ia="KHR_materials_fuzz";class io{constructor(e){this.name=ia,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(ia)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadFuzzPropertiesAsync(n,i,s)),await Promise.all(a).then(()=>{})})}_loadFuzzPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.configureFuzz(),n.fuzzWeight=void 0!==t.fuzzFactor?t.fuzzFactor:0,n.fuzzColor=void 0!==t.fuzzColorFactor?tA.Color3.FromArray(t.fuzzColorFactor):tA.Color3.White(),n.fuzzRoughness=void 0!==t.fuzzRoughnessFactor?t.fuzzRoughnessFactor:.5,t.fuzzTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzTexture`,t.fuzzTexture,e=>{e.name=`${s.name} (Fuzz)`,n.fuzzWeightTexture=e})),t.fuzzColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzColorTexture`,t.fuzzColorTexture,e=>{e.name=`${s.name} (Fuzz Color)`,n.fuzzColorTexture=e})),t.fuzzRoughnessTexture&&(t.fuzzRoughnessTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/fuzzRoughnessTexture`,t.fuzzRoughnessTexture,e=>{e.name=`${s.name} (Fuzz Roughness)`,n.fuzzRoughnessTexture=e}))),Promise.all(i).then(()=>{})}}let ir=!1;function il(){ir||(ir=!0,sM(ia),sw(ia,!0,e=>new io(e)))}e.s(["KHR_materials_fuzz",0,io,"RegisterKHR_materials_fuzz",0,il],52489),il(),e.s([],9968),e.s([],89632);let ih="KHR_materials_specular";class iu{constructor(e){this.name=ih,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(ih)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadSpecularPropertiesAsync(n,i,s));let o=this._loader._getOrCreateMaterialAdapter(s);return i.extensions&&i.extensions.EXT_materials_specular_edge_color&&i.extensions.EXT_materials_specular_edge_color.specularEdgeColorEnabled&&o.enableSpecularEdgeColor(!0),await Promise.all(a).then(()=>{})})}_loadSpecularPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.specularWeight=t.specularFactor??1,n.specularColor=void 0!==t.specularColorFactor?tA.Color3.FromArray(t.specularColorFactor):new tA.Color3(1,1,1),t.specularTexture&&(t.specularTexture.nonColorData=!0,i.push(this._loader.loadTextureInfoAsync(`${e}/specularTexture`,t.specularTexture,e=>{e.name=`${s.name} (Specular)`,n.specularWeightTexture=e}))),t.specularColorTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/specularColorTexture`,t.specularColorTexture,e=>{e.name=`${s.name} (Specular Color)`,n.specularColorTexture=e})),Promise.all(i).then(()=>{})}}let ic=!1;function id(){ic||(ic=!0,sM(ih),sw(ih,!0,e=>new iu(e)))}e.s(["KHR_materials_specular",0,iu,"RegisterKHR_materials_specular",0,id],86804),id(),e.s([],28948),e.s([],48614);let ip="KHR_materials_ior";class i_{constructor(e){this.name=ip,this.order=180,this._loader=e,this.enabled=this._loader.isExtensionUsed(ip)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadIorPropertiesAsync(n,i,s)),await Promise.all(a).then(()=>{})})}_loadIorPropertiesAsync(e,t,s){return this._loader._getOrCreateMaterialAdapter(s).specularIor=void 0!==t.ior?t.ior:i_._DEFAULT_IOR,Promise.resolve()}}i_._DEFAULT_IOR=1.5;let im=!1;function ig(){im||(im=!0,sM(ip),sw(ip,!0,e=>new i_(e)))}e.s(["KHR_materials_ior",0,i_,"RegisterKHR_materials_ior",0,ig],49607),ig(),e.s([],98600),e.s([],31418);let iy="KHR_materials_variants";class ib{constructor(e){this.name=iy,this._loader=e,this.enabled=this._loader.isExtensionUsed(iy)&&!this._loader.parent.skipMaterials}dispose(){this._loader=null}static GetAvailableVariants(e){let t=this._GetExtensionMetadata(e);return t?Object.keys(t.variants):[]}getAvailableVariants(e){return ib.GetAvailableVariants(e)}static SelectVariant(e,t){let s=this._GetExtensionMetadata(e);if(!s)throw Error(`Cannot select variant on a glTF mesh that does not have the ${iy} extension`);let n=e=>{let t=s.variants[e];if(t)for(let e of t)e.mesh.material=e.material};if(t instanceof Array)for(let e of t)n(e);else n(t);s.lastSelected=t}selectVariant(e,t){ib.SelectVariant(e,t)}static Reset(e){let t=this._GetExtensionMetadata(e);if(!t)throw Error(`Cannot reset on a glTF mesh that does not have the ${iy} extension`);for(let e of t.original)e.mesh.material=e.material;t.lastSelected=null}reset(e){ib.Reset(e)}static GetLastSelectedVariant(e){let t=this._GetExtensionMetadata(e);if(!t)throw Error(`Cannot get the last selected variant on a glTF mesh that does not have the ${iy} extension`);return t.lastSelected}getLastSelectedVariant(e){return ib.GetLastSelectedVariant(e)}static _GetExtensionMetadata(e){return e?._internalMetadata?.gltf?.[iy]||null}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._variants=t.variants}}onReady(){let e=this._loader.rootBabylonMesh;if(e){let t=this._loader.parent.extensionOptions[iy];t?.defaultVariant&&ib.SelectVariant(e,t.defaultVariant),t?.onLoaded?.({get variants(){return ib.GetAvailableVariants(e)},get selectedVariant(){let t=ib.GetLastSelectedVariant(e);if(!t)return ib.GetAvailableVariants(e)[0];if(Array.isArray(t))return t[0];return t},set selectedVariant(variantName){ib.SelectVariant(e,variantName)}})}}_loadMeshPrimitiveAsync(e,t,s,n,i,a){return sI.LoadExtensionAsync(e,i,this.name,async(o,r)=>{let l=[];return l.push(this._loader._loadMeshPrimitiveAsync(e,t,s,n,i,t=>{if(a(t),t instanceof e0.Mesh){let s=sI._GetDrawMode(e,i.mode),n=this._loader.rootBabylonMesh,a=n?n._internalMetadata=n._internalMetadata||{}:{},h=a.gltf=a.gltf||{},u=h[iy]=h[iy]||{lastSelected:null,original:[],variants:{}};u.original.push({mesh:t,material:t.material});for(let e=0;e<r.mappings.length;++e){let i=r.mappings[e],a=sR.Get(`${o}/mappings/${e}/material`,this._loader.gltf.materials,i.material);l.push(this._loader._loadMaterialAsync(`#/materials/${i.material}`,a,t,s,e=>{for(let s=0;s<i.variants.length;++s){let a=i.variants[s],o=sR.Get(`/extensions/${iy}/variants/${a}`,this._variants,a);u.variants[o.name]=u.variants[o.name]||[],u.variants[o.name].push({mesh:t,material:e}),t.onClonedObservable.add(e=>{let s,i=e;do{if(!(i=i.parent))return;s=ib._GetExtensionMetadata(i)}while(null===s)if(n&&s===ib._GetExtensionMetadata(n)){for(let e in i._internalMetadata={},n._internalMetadata)i._internalMetadata[e]=n._internalMetadata[e];for(let e in i._internalMetadata.gltf=[],n._internalMetadata.gltf)i._internalMetadata.gltf[e]=n._internalMetadata.gltf[e];for(let e of(i._internalMetadata.gltf[iy]={lastSelected:null,original:[],variants:{}},s.original))i._internalMetadata.gltf[iy].original.push({mesh:e.mesh,material:e.material});for(let e in s.variants)if(Object.prototype.hasOwnProperty.call(s.variants,e))for(let t of(i._internalMetadata.gltf[iy].variants[e]=[],s.variants[e]))i._internalMetadata.gltf[iy].variants[e].push({mesh:t.mesh,material:t.material});s=i._internalMetadata.gltf[iy]}for(let n of s.original)n.mesh===t&&(n.mesh=e);for(let n of s.variants[o.name])n.mesh===t&&(n.mesh=e)})}}))}}})),await Promise.all(l).then(([e])=>e)})}}let iT=!1;function iA(){iT||(iT=!0,sM(iy),sw(iy,!0,e=>new ib(e)))}e.s(["KHR_materials_variants",0,ib,"RegisterKHR_materials_variants",0,iA],99813),iA(),e.s([],40063),e.s([],47328);var ix=e.i(36074);(0,ix.RegisterRenderTargetTexture)();class iv{static _GetDefaultOptions(){return{renderSize:1024,samples:4,lodGenerationScale:1,lodGenerationOffset:-4,renderTargetTextureType:tY.Constants.TEXTURETYPE_HALF_FLOAT,generateMipmaps:!0}}constructor(e,t){this._opaqueRenderTarget=null,this._opaqueMeshesCache=[],this._transparentMeshesCache=[],this._materialObservers={},this._newMeshObserver=null,this._removedMeshObserver=null,this._disposed=!1,this._materialImpls=[],this._adapterCache=new WeakMap,this._translucentMaterialIndices=new Map,this._opaqueOnlySubMeshes=new Map,this._savedSubMeshes=new Map,this._options={...iv._GetDefaultOptions(),...e},this._scene=t,this._scene._transmissionHelper=this,this.onErrorObservable=new eY.Observable,this._scene.onDisposeObservable.addOnce(()=>{this.dispose()}),this._parseScene(),this._setupRenderTargets()}addMaterialImpl(e){this._materialImpls.some(t=>t.materialClass===e.materialClass)||this._materialImpls.push(e)}updateOptions(e){if(!Object.keys(e).filter(t=>this._options[t]!==e[t]).length)return;let t={...this._options,...e},s=this._options;this._options=t,t.renderSize===s.renderSize&&t.renderTargetTextureType===s.renderTargetTextureType&&t.generateMipmaps===s.generateMipmaps&&this._opaqueRenderTarget?(this._opaqueRenderTarget.samples=t.samples,this._opaqueRenderTarget.lodGenerationScale=t.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=t.lodGenerationOffset):this._setupRenderTargets()}getOpaqueTarget(){return this._opaqueRenderTarget}_getOrCreateAdapter(e){let t=this._adapterCache.get(e);if(!t){for(let s of this._materialImpls)if(e instanceof s.materialClass){t=new s.adapterClass(e),this._adapterCache.set(e,t);break}}return t}_classifyMeshMaterials(e){let t=e.material;if(!t)return"opaque";if(!(t instanceof tO.MultiMaterial)){let e=this._getOrCreateAdapter(t);return e&&e.isTranslucent()?(e.refractionBackgroundTexture=this._opaqueRenderTarget,"transparent"):"opaque"}let s=!1,n=!1,i=new Set;for(let e=0;e<t.subMaterials.length;e++){let a=t.subMaterials[e];if(!a){n=!0;continue}let o=this._getOrCreateAdapter(a);o&&o.isTranslucent()?(o.refractionBackgroundTexture=this._opaqueRenderTarget,s=!0,i.add(e)):n=!0}return s&&n?(this._translucentMaterialIndices.set(e,i),this._rebuildOpaqueOnlySubMeshes(e,i),"mixed"):(this._translucentMaterialIndices.delete(e),this._opaqueOnlySubMeshes.delete(e),s?"transparent":"opaque")}_rebuildOpaqueOnlySubMeshes(e,t){e.subMeshes&&this._opaqueOnlySubMeshes.set(e,e.subMeshes.filter(e=>!t.has(e.materialIndex)))}_addMesh(e){this._materialObservers[e.uniqueId]=e.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this)),eZ.Tools.SetImmediate(()=>{!this._disposed&&e.material&&("transparent"===this._classifyMeshMaterials(e)?-1===this._transparentMeshesCache.indexOf(e)&&this._transparentMeshesCache.push(e):-1===this._opaqueMeshesCache.indexOf(e)&&this._opaqueMeshesCache.push(e))})}_removeMesh(e){e.onMaterialChangedObservable.remove(this._materialObservers[e.uniqueId]),delete this._materialObservers[e.uniqueId];let t=this._transparentMeshesCache.indexOf(e);-1!==t&&this._transparentMeshesCache.splice(t,1),-1!==(t=this._opaqueMeshesCache.indexOf(e))&&this._opaqueMeshesCache.splice(t,1),this._translucentMaterialIndices.delete(e),this._opaqueOnlySubMeshes.delete(e)}_parseScene(){this._scene.meshes.forEach(this._addMesh.bind(this)),this._newMeshObserver=this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this)),this._removedMeshObserver=this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this))}_onMeshMaterialChanged(e){let t=this._transparentMeshesCache.indexOf(e),s=this._opaqueMeshesCache.indexOf(e);"transparent"===this._classifyMeshMaterials(e)?-1!==s?(this._opaqueMeshesCache.splice(s,1),this._transparentMeshesCache.push(e)):-1===t&&this._transparentMeshesCache.push(e):-1!==t?(this._transparentMeshesCache.splice(t,1),this._opaqueMeshesCache.push(e)):-1===s&&this._opaqueMeshesCache.push(e)}_isRenderTargetValid(){return this._opaqueRenderTarget?.getInternalTexture()!==null}_setupRenderTargets(){let e;for(let t of(this._opaqueRenderTarget&&this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=new ix.RenderTargetTexture("opaqueSceneTexture",this._options.renderSize,this._scene,this._options.generateMipmaps,void 0,this._options.renderTargetTextureType),this._opaqueRenderTarget.ignoreCameraViewport=!0,this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.forceLayerMaskCheck=!0,this._opaqueRenderTarget.clearColor=this._options.clearColor?.clone()??this._scene.clearColor.clone(),this._opaqueRenderTarget.clearColor.a=0,this._opaqueRenderTarget.gammaSpace=!1,this._opaqueRenderTarget.lodGenerationScale=this._options.lodGenerationScale,this._opaqueRenderTarget.lodGenerationOffset=this._options.lodGenerationOffset,this._opaqueRenderTarget.samples=this._options.samples,this._opaqueRenderTarget.renderSprites=!0,this._opaqueRenderTarget.renderParticles=!0,this._opaqueRenderTarget.disableImageProcessing=!0,this._opaqueRenderTarget.onBeforeBindObservable.add(t=>{e=this._scene.environmentIntensity,this._scene.environmentIntensity=1,this._options.clearColor?t.clearColor.copyFrom(this._options.clearColor):this._scene.clearColor.toLinearSpaceToRef(t.clearColor,this._scene.getEngine().useExactSrgbConversions),t.clearColor.a=0;let s=this._opaqueOnlySubMeshes.entries();for(let e=s.next();!e.done;e=s.next()){let t=e.value[0],s=e.value[1];t.subMeshes&&(this._savedSubMeshes.set(t,t.subMeshes),t.subMeshes=s)}}),this._opaqueRenderTarget.onAfterUnbindObservable.add(()=>{this._scene.environmentIntensity=e;let t=this._savedSubMeshes.entries();for(let e=t.next();!e.done;e=t.next())e.value[0].subMeshes=e.value[1];this._savedSubMeshes.clear()}),this._transparentMeshesCache))t.material&&this._classifyMeshMaterials(t);let t=this._translucentMaterialIndices.entries();for(let e=t.next();!e.done;e=t.next()){let t=e.value[0];t.material&&this._classifyMeshMaterials(t)}}dispose(){for(let e of(this._disposed=!0,this._newMeshObserver?.remove(),this._removedMeshObserver?.remove(),this._newMeshObserver=null,this._removedMeshObserver=null,[...this._transparentMeshesCache,...this._opaqueMeshesCache])){let t=this._materialObservers[e.uniqueId];t&&(t.remove(),delete this._materialObservers[e.uniqueId])}for(let e of this._scene.meshes){let t=this._materialObservers[e.uniqueId];t&&(t.remove(),delete this._materialObservers[e.uniqueId])}this._materialObservers={},this._scene._transmissionHelper=void 0,this._opaqueRenderTarget&&(this._opaqueRenderTarget.dispose(),this._opaqueRenderTarget=null),this._transparentMeshesCache=[],this._opaqueMeshesCache=[],this._translucentMaterialIndices.clear(),this._opaqueOnlySubMeshes.clear(),this._savedSubMeshes.clear()}}function iw(e,t){if(e.parent.dontUseTransmissionHelper)return;let s=t.getScene()._transmissionHelper,n=s??new iv({},t.getScene());for(let t of Array.from(e._pbrMaterialImpls.values()))n.addMaterialImpl(t);s&&!s._isRenderTargetValid()&&s._setupRenderTargets()}e.s(["TransmissionHelper",0,iv,"ensureTransmissionHelper",0,iw],9120);let iM="KHR_materials_transmission";class iC{constructor(e){this.name=iM,this.order=175,this._loader=e,this.enabled=this._loader.isExtensionUsed(iM),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadTransparentPropertiesAsync(n,t,s,i)),await Promise.all(a).then(()=>{})})}_loadTransparentPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s),a=void 0!==n.transmissionFactor?n.transmissionFactor:0;if(0===a||!i)return Promise.resolve();i.configureTransmission(),i.transmissionWeight=a,a>0&&iw(this._loader,s);let o=Promise.resolve(null);return n.transmissionTexture&&(n.transmissionTexture.nonColorData=!0,o=this._loader.loadTextureInfoAsync(`${e}/transmissionTexture`,n.transmissionTexture,e=>{e.name=`${s.name} (Transmission)`,i.transmissionWeightTexture=e})),o.then(()=>{})}}let iS=!1;function iF(){iS||(iS=!0,sM(iM),sw(iM,!0,e=>new iC(e)))}e.s(["KHR_materials_transmission",0,iC,"RegisterKHR_materials_transmission",0,iF],67577),iF(),e.s([],4082),e.s([],27657);let iE="KHR_materials_diffuse_transmission";class iR{constructor(e){this.name=iE,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(iE),this.enabled&&(e.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadTranslucentPropertiesAsync(n,t,s,i)),await Promise.all(a).then(()=>{})})}_loadTranslucentPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);i.configureSubsurface(),i.subsurfaceWeight=n.diffuseTransmissionFactor??0,i.subsurfaceWeight>0&&iw(this._loader,s),i.diffuseTransmissionTint=void 0!==n.diffuseTransmissionColorFactor?tA.Color3.FromArray(n.diffuseTransmissionColorFactor):tA.Color3.White();let a=[];return n.diffuseTransmissionTexture&&(n.diffuseTransmissionTexture.nonColorData=!0,a.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionTexture`,n.diffuseTransmissionTexture).then(e=>{e.name=`${s.name} (Diffuse Transmission)`,i.subsurfaceWeightTexture=e}))),n.diffuseTransmissionColorTexture&&a.push(this._loader.loadTextureInfoAsync(`${e}/diffuseTransmissionColorTexture`,n.diffuseTransmissionColorTexture).then(e=>{e.name=`${s.name} (Diffuse Transmission Color)`,i.diffuseTransmissionTintTexture=e})),Promise.all(a).then(()=>{})}}let iO=!1;function iI(){iO||(iO=!0,sM(iE),sw(iE,!0,e=>new iR(e)))}e.s(["KHR_materials_diffuse_transmission",0,iR,"RegisterKHR_materials_diffuse_transmission",0,iI],73059),iI(),e.s([],54347),e.s([],2292);let iB="KHR_materials_volume";class iN{constructor(e){this.name=iB,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(iB),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadVolumePropertiesAsync(n,t,s,i)),await Promise.all(a).then(()=>{})})}_loadVolumePropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);if(0===i.transmissionWeight&&0===i.subsurfaceWeight||!n.thicknessFactor)return Promise.resolve();i.geometryThinWalled=!1;let a=void 0!==n.attenuationDistance?n.attenuationDistance:Number.MAX_VALUE,o=void 0!==n.attenuationColor&&3==n.attenuationColor.length?tA.Color3.FromArray(n.attenuationColor):tA.Color3.White();i.configureVolume(),i.transmissionColor=o,i.transmissionDepth=a,i.volumeThickness=n.thicknessFactor??0;let r=[];return n.thicknessTexture&&(n.thicknessTexture.nonColorData=!0,r.push(this._loader.loadTextureInfoAsync(`${e}/thicknessTexture`,n.thicknessTexture,e=>{e.name=`${s.name} (Thickness)`,i.volumeThicknessTexture=e}))),Promise.all(r).then(()=>{})}}let ik=!1;function iP(){ik||(ik=!0,sM(iB),sw(iB,!0,e=>new iN(e)))}e.s(["KHR_materials_volume",0,iN,"RegisterKHR_materials_volume",0,iP],63216),iP(),e.s([],64967),e.s([],8090);let iL="KHR_materials_volume_scatter";class iG{constructor(e){this.name=iL,this.order=172,this._loader=e,this.enabled=this._loader.isExtensionUsed(iL),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadVolumePropertiesAsync(n,t,s,i)),await Promise.all(a).then(()=>{})})}_loadVolumePropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);if(0===i.transmissionWeight&&0===i.subsurfaceWeight||i.geometryThinWalled)return Promise.resolve();let a=void 0!==n.multiscatterColorFactor&&3==n.multiscatterColorFactor.length?tA.Color3.FromArray(n.multiscatterColorFactor):tA.Color3.Black(),o=void 0!==n.scatterAnisotropy?n.scatterAnisotropy:0,r=Promise.resolve(null);n.multiscatterColorTexture&&(n.multiscatterColorTexture.nonColorData=!0,r=this._loader.loadTextureInfoAsync(`${e}/multiscatterColorTexture`,n.multiscatterColorTexture,e=>{e.name=`${s.name} (Scatter Color)`,i.transmissionWeight>0&&(i.transmissionScatterTexture=e),i.subsurfaceWeight>0&&(i.subsurfaceColorTexture=e)}));let l=new tT.Vector3(-Math.log(i.transmissionColor.r),-Math.log(i.transmissionColor.g),-Math.log(i.transmissionColor.b));if(l.scaleInPlace(1/Math.max(i.transmissionDepth,1e-6)),i.transmissionWeight>0){let e,t,s,n=(e=new tT.Vector3(a.r,a.g,a.b),(t=new tT.Vector3(4.09712,4.09712,4.09712)).addInPlace(new tT.Vector3(4.20863,4.20863,4.20863).multiplyInPlace(e)),(s=new tT.Vector3(9.59217,9.59217,9.59217)).addInPlace(new tT.Vector3(41.6808,41.6808,41.6808).multiplyInPlace(e)),s.addInPlace(new tT.Vector3(17.7126,17.7126,17.7126).multiplyInPlace(e.multiply(e))),t.subtractInPlace(new tT.Vector3(Math.sqrt(s.x),Math.sqrt(s.y),Math.sqrt(s.z))),new tT.Vector3(1,1,1).subtract(t.multiply(t))),r=l.multiply(n);r.scaleInPlace(i.transmissionDepth),i.transmissionScatter.set(r.x,r.y,r.z),i.transmissionScatterAnisotropy=o}if(i.subsurfaceWeight>0){i.subsurfaceScatterAnisotropy=o,i.subsurfaceColor=a;let e=new tT.Vector3(0!==l.x?1/l.x:1,0!==l.y?1/l.y:1,0!==l.z?1/l.z:1);i.subsurfaceRadius=Math.max(e.x,e.y,e.z),i.subsurfaceRadiusScale=new tA.Color3(e.x/i.subsurfaceRadius,e.y/i.subsurfaceRadius,e.z/i.subsurfaceRadius)}return r.then(()=>{})}}let iD=!1;function iV(){iD||(iD=!0,sM(iL),sw(iL,!0,e=>new iG(e)))}e.s(["KHR_materials_volume_scatter",0,iG,"RegisterKHR_materials_volume_scatter",0,iV],15268),iV(),e.s([],90125),e.s([],67299);let iK="KHR_materials_dispersion";class iH{constructor(e){this.name=iK,this.order=174,this._loader=e,this.enabled=this._loader.isExtensionUsed(iK)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadDispersionPropertiesAsync(n,t,s,i)),await Promise.all(a).then(()=>{})})}_loadDispersionPropertiesAsync(e,t,s,n){let i=this._loader._getOrCreateMaterialAdapter(s);return 0!=i.transmissionWeight&&n.dispersion&&(i.transmissionDispersionAbbeNumber=20,i.transmissionDispersionScale=n.dispersion),Promise.resolve()}}let iU=!1;function i$(){iU||(iU=!0,sM(iK),sw(iK,!0,e=>new iH(e)))}e.s(["KHR_materials_dispersion",0,iH,"RegisterKHR_materials_dispersion",0,i$],16825),i$(),e.s([],62106),e.s([],83643);let iz="KHR_materials_diffuse_roughness";class iq{constructor(e){this.name=iz,this.order=190,this._loader=e,this.enabled=this._loader.isExtensionUsed(iz)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=[];return a.push(this._loader.loadMaterialPropertiesAsync(e,t,s)),a.push(this._loadDiffuseRoughnessPropertiesAsync(n,i,s)),await Promise.all(a).then(()=>{})})}_loadDiffuseRoughnessPropertiesAsync(e,t,s){let n=this._loader._getOrCreateMaterialAdapter(s),i=[];return n.baseDiffuseRoughness=t.diffuseRoughnessFactor??0,t.diffuseRoughnessTexture&&i.push(this._loader.loadTextureInfoAsync(`${e}/diffuseRoughnessTexture`,t.diffuseRoughnessTexture,e=>{e.name=`${s.name} (Diffuse Roughness)`,n.baseDiffuseRoughnessTexture=e})),Promise.all(i).then(()=>{})}}let iW=!1;function ij(){iW||(iW=!0,sM(iz),sw(iz,!0,e=>new iq(e)))}e.s(["KHR_materials_diffuse_roughness",0,iq,"RegisterKHR_materials_diffuse_roughness",0,ij],22088),ij(),e.s([],74367),e.s([],33537);let iX="KHR_mesh_quantization";class iQ{constructor(e){this.name=iX,this.enabled=e.isExtensionUsed(iX)}dispose(){}}let iY=!1;function iZ(){iY||(iY=!0,sM(iX),sw(iX,!0,e=>new iQ(e)))}e.s(["KHR_mesh_quantization",0,iQ,"RegisterKHR_mesh_quantization",0,iZ],9029),iZ(),e.s([],45180),e.s([],68793);let iJ="KHR_texture_basisu";class i0{constructor(e){this.name=iJ,this._loader=e,this.enabled=e.isExtensionUsed(iJ)}dispose(){this._loader=null}_loadTextureAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>{let a=void 0==t.sampler?sI.DefaultSampler:sR.Get(`${e}/sampler`,this._loader.gltf.samplers,t.sampler),o=sR.Get(`${n}/source`,this._loader.gltf.images,i.source);return await this._loader._createTextureAsync(e,a,o,e=>{s(e)},t._textureInfo.nonColorData?{useRGBAIfASTCBC7NotAvailableWhenUASTC:!0}:void 0,!t._textureInfo.nonColorData)})}}let i1=!1;function i2(){i1||(i1=!0,sM(iJ),sw(iJ,!0,e=>new i0(e)))}e.s(["KHR_texture_basisu",0,i0,"RegisterKHR_texture_basisu",0,i2],35274),i2(),e.s([],58783),e.s([],22673);let i3="KHR_texture_transform";class i8{constructor(e){this.name=i3,this._loader=e,this.enabled=this._loader.isExtensionUsed(i3)}dispose(){this._loader=null}loadTextureInfoAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(n,i)=>await this._loader.loadTextureInfoAsync(e,t,e=>{if(!(e instanceof tN.Texture))throw Error(`${n}: Texture type not supported`);i.offset&&(e.uOffset=i.offset[0],e.vOffset=i.offset[1]),e.uRotationCenter=0,e.vRotationCenter=0,i.rotation&&(e.wAng=-i.rotation),i.scale&&(e.uScale=i.scale[0],e.vScale=i.scale[1]),void 0!=i.texCoord&&(e.coordinatesIndex=i.texCoord),s(e)}))}}let i4=!1;function i5(){i4||(i4=!0,sM(i3),sw(i3,!0,e=>new i8(e)))}e.s(["KHR_texture_transform",0,i8,"RegisterKHR_texture_transform",0,i5],86602),i5(),e.s([],88298),e.s([],13197);let i7="KHR_xmp_json_ld";class i9{constructor(e){this.name=i7,this.order=100,this._loader=e,this.enabled=this._loader.isExtensionUsed(i7)}dispose(){this._loader=null}onLoading(){if(null===this._loader.rootBabylonMesh)return;let e=this._loader.gltf.extensions?.KHR_xmp_json_ld,t=this._loader.gltf.asset?.extensions?.KHR_xmp_json_ld;if(e&&t){let s=+t.packet;e.packets&&s<e.packets.length&&(this._loader.rootBabylonMesh.metadata=this._loader.rootBabylonMesh.metadata||{},this._loader.rootBabylonMesh.metadata.xmp=e.packets[s])}}}let i6=!1;function ae(){i6||(i6=!0,sM(i7),sw(i7,!0,e=>new i9(e)))}e.s(["KHR_xmp_json_ld",0,i9,"RegisterKHR_xmp_json_ld",0,ae],33656),ae(),e.s([],87449),e.s([],81183);var at=sk;function as(e,t,s,n){return tA.Color3.FromArray(t,s).scale(n)}function an(e,t,s,n){return t[s]*n}function ai(e,t,s,n){return-t[s]*n}function aa(e,t,s,n){return t[s+1]*n}function ao(e,t,s,n){return t[s]*n*2}function ar(e){return{scale:[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,`${e}.uScale`,an,()=>2),new ah(tv.Animation.ANIMATIONTYPE_FLOAT,`${e}.vScale`,aa,()=>2)],offset:[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,`${e}.uOffset`,an,()=>2),new ah(tv.Animation.ANIMATIONTYPE_FLOAT,`${e}.vOffset`,aa,()=>2)],rotation:[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,`${e}.wAng`,ai,()=>1)]}}class al extends at.AnimationPropertyInfo{buildAnimations(e,t,s,n){return[{babylonAnimatable:e._babylonCamera,babylonAnimation:this._buildAnimation(t,s,n)}]}}class ah extends at.AnimationPropertyInfo{buildAnimations(e,t,s,n){let i=[];for(let a in e._data)i.push({babylonAnimatable:e._data[a].babylonMaterial,babylonAnimation:this._buildAnimation(t,s,n)});return i}}class au extends at.AnimationPropertyInfo{buildAnimations(e,t,s,n){return[{babylonAnimatable:e._babylonLight,babylonAnimation:this._buildAnimation(t,s,n)}]}}class ac extends at.AnimationPropertyInfo{buildAnimations(e,t,s,n){return e._primitiveBabylonMeshes?e._primitiveBabylonMeshes.map(e=>({babylonAnimatable:e,babylonAnimation:this._buildAnimation(t,s,n)})):[]}}(0,sC.SetInterpolationForKey)("/cameras/{}/orthographic/xmag",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"orthoLeft",ai,()=>1),new al(tv.Animation.ANIMATIONTYPE_FLOAT,"orthoRight",aa,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/orthographic/ymag",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"orthoBottom",ai,()=>1),new al(tv.Animation.ANIMATIONTYPE_FLOAT,"orthoTop",aa,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/orthographic/zfar",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"maxZ",an,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/orthographic/znear",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"minZ",an,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/perspective/yfov",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"fov",an,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/perspective/zfar",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"maxZ",an,()=>1)]),(0,sC.SetInterpolationForKey)("/cameras/{}/perspective/znear",[new al(tv.Animation.ANIMATIONTYPE_FLOAT,"minZ",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorFactor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"albedoColor",as,()=>4),new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"alpha",function(e,t,s,n){return t[s+3]*n},()=>4)]),(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/metallicFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"metallic",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/metallicFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"roughness",an,()=>1)]);let ad=ar("albedoTexture");(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/scale",ad.scale),(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/offset",ad.offset),(0,sC.SetInterpolationForKey)("/materials/{}/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/rotation",ad.rotation);let ap=ar("metallicTexture");(0,sC.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/scale",ap.scale),(0,sC.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/offset",ap.offset),(0,sC.SetInterpolationForKey)("//materials/{}/pbrMetallicRoughness/metallicRoughnessTexture/rotation",ap.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/emissiveFactor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"emissiveColor",as,()=>3)]);let a_=ar("bumpTexture");(0,sC.SetInterpolationForKey)("/materials/{}/normalTexture/scale",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"bumpTexture.level",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/scale",a_.scale),(0,sC.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/offset",a_.offset),(0,sC.SetInterpolationForKey)("/materials/{}/normalTexture/extensions/KHR_texture_transform/rotation",a_.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/occlusionTexture/strength",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"ambientTextureStrength",an,()=>1)]);let am=ar("ambientTexture");(0,sC.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/scale",am.scale),(0,sC.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/offset",am.offset),(0,sC.SetInterpolationForKey)("/materials/{}/occlusionTexture/extensions/KHR_texture_transform/rotation",am.rotation);let af=ar("emissiveTexture");(0,sC.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/scale",af.scale),(0,sC.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/offset",af.offset),(0,sC.SetInterpolationForKey)("/materials/{}/emissiveTexture/extensions/KHR_texture_transform/rotation",af.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyStrength",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyRotation",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"anisotropy.angle",an,()=>1)]);let ag=ar("anisotropy.texture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/scale",ag.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/offset",ag.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_anisotropy/anisotropyTexture/extensions/KHR_texture_transform/rotation",ag.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.roughness",an,()=>1)]);let ay=ar("clearCoat.texture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/scale",ay.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/offset",ay.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatTexture/extensions/KHR_texture_transform/rotation",ay.rotation);let ab=ar("clearCoat.bumpTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/scale",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"clearCoat.bumpTexture.level",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/scale",ab.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/offset",ab.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatNormalTexture/extensions/KHR_texture_transform/rotation",ab.rotation);let aT=ar("clearCoat.textureRoughness");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/scale",aT.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/offset",aT.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_clearcoat/clearcoatRoughnessTexture/extensions/KHR_texture_transform/rotation",aT.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_dispersion/dispersionFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"subSurface.dispersion",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_emissive_strength/emissiveStrength",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"emissiveIntensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_ior/ior",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"indexOfRefraction",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"iridescence.intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceIor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"iridescence.indexOfRefraction",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMinimum",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"iridescence.minimumThickness",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessMaximum",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"iridescence.maximumThickness",an,()=>1)]);let aA=ar("iridescence.texture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/scale",aA.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/offset",aA.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceTexture/extensions/KHR_texture_transform/rotation",aA.rotation);let ax=ar("iridescence.thicknessTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/scale",ax.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/offset",ax.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_iridescence/iridescenceThicknessTexture/extensions/KHR_texture_transform/rotation",ax.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorFactor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"sheen.color",as,()=>3)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"sheen.roughness",an,()=>1)]);let av=ar("sheen.texture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/scale",av.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/offset",av.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenColorTexture/extensions/KHR_texture_transform/rotation",av.rotation);let aw=ar("sheen.textureRoughness");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/scale",aw.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/offset",aw.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_sheen/sheenRoughnessTexture/extensions/KHR_texture_transform/rotation",aw.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"metallicF0Factor",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorFactor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"metallicReflectanceColor",as,()=>3)]);let aM=ar("metallicReflectanceTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/scale",aM.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/offset",aM.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularTexture/extensions/KHR_texture_transform/rotation",aM.rotation);let aC=ar("reflectanceTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/scale",aC.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/offset",aC.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_specular/specularColorTexture/extensions/KHR_texture_transform/rotation",aC.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"subSurface.refractionIntensity",an,()=>1)]);let aS=ar("subSurface.refractionIntensityTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/scale",aS.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/offset",aS.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_transmission/transmissionTexture/extensions/KHR_texture_transform/rotation",aS.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/attenuationColor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"subSurface.tintColor",as,()=>3)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/attenuationDistance",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"subSurface.tintColorAtDistance",an,()=>1)]),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"subSurface.maximumThickness",an,()=>1)]);let aF=ar("subSurface.thicknessTexture");(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/scale",aF.scale),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/offset",aF.offset),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_volume/thicknessTexture/extensions/KHR_texture_transform/rotation",aF.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionFactor",[new ah(tv.Animation.ANIMATIONTYPE_FLOAT,"subSurface.translucencyIntensity",an,()=>1)]);let aE=ar("subSurface.translucencyIntensityTexture");(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/scale",aE.scale),(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/offset",aE.offset),(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionTexture/extensions/KHR_texture_transform/rotation",aE.rotation),(0,sC.SetInterpolationForKey)("/materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorFactor",[new ah(tv.Animation.ANIMATIONTYPE_COLOR3,"subSurface.translucencyColor",as,()=>3)]);let aR=ar("subSurface.translucencyColorTexture");(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/scale",aR.scale),(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/offset",aR.offset),(0,sC.SetInterpolationForKey)("materials/{}/extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorTexture/extensions/KHR_texture_transform/rotation",aR.rotation),(0,sC.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/color",[new au(tv.Animation.ANIMATIONTYPE_COLOR3,"diffuse",as,()=>3)]),(0,sC.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/intensity",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/range",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"range",an,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/spot/innerConeAngle",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"innerAngle",ao,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/KHR_lights_punctual/lights/{}/spot/outerConeAngle",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"angle",ao,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/color",[new au(tv.Animation.ANIMATIONTYPE_COLOR3,"diffuse",as,()=>3)]),(0,sC.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/intensity",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/size",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"radius",an,()=>1)]),(0,sC.SetInterpolationForKey)("/extensions/EXT_lights_area/lights/{}/rect/aspect",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"radius",an,()=>1)]),(0,sC.SetInterpolationForKey)("/nodes/{}/extensions/EXT_lights_ies/color",[new au(tv.Animation.ANIMATIONTYPE_COLOR3,"diffuse",as,()=>3)]),(0,sC.SetInterpolationForKey)("/nodes/{}/extensions/EXT_lights_ies/multiplier",[new au(tv.Animation.ANIMATIONTYPE_FLOAT,"intensity",an,()=>1)]),(0,sC.SetInterpolationForKey)("/nodes/{}/extensions/KHR_node_visibility/visible",[new ac(tv.Animation.ANIMATIONTYPE_FLOAT,"isVisible",an,()=>1)]);let aO="KHR_animation_pointer";class aI{constructor(e){this.name=aO,this._loader=e,this._pathToObjectConverter=(0,sC.GetPathToObjectConverter)(this._loader.gltf)}get enabled(){return this._loader.isExtensionUsed(aO)}dispose(){this._loader=null,delete this._pathToObjectConverter}_loadAnimationChannelAsync(e,t,s,n,i){let a=n.target.extensions?.KHR_animation_pointer;if(!a||!this._pathToObjectConverter)return null;"pointer"!==n.target.path&&e3.Logger.Warn(`${e}/target/path: Value (${n.target.path}) must be (pointer) when using the ${this.name} extension`),void 0!=n.target.node&&e3.Logger.Warn(`${e}/target/node: Value (${n.target.node}) must not be present when using the ${this.name} extension`);let o=`${e}/extensions/${this.name}`,r=a.pointer;if(!r)throw Error(`${o}: Pointer is missing`);try{let a=this._pathToObjectConverter.convert(r);if(!a.info.interpolation)throw Error(`${o}/pointer: Interpolation is missing`);return this._loader._loadAnimationChannelFromTargetInfoAsync(e,t,s,n,{object:a.object,info:a.info.interpolation},i)}catch(e){return e3.Logger.Warn(`${o}/pointer: Invalid pointer (${r}) skipped`),null}}}let aB=!1;function aN(){aB||(aB=!0,sM(aO),sw(aO,!0,e=>new aI(e)))}e.s(["KHR_animation_pointer",0,aI,"RegisterKHR_animation_pointer",0,aN],68269),aN(),e.s([],81847),e.s([],61195);let ak={coneInnerAngle:6.28318530718,coneOuterAngle:6.28318530718,coneOuterVolume:0,distanceModel:"linear",maxDistance:1e4,minDistance:1,orientation:tT.Vector3.Right(),panningEnabled:!0,panningModel:"equalpower",position:tT.Vector3.Zero(),rolloffFactor:1,rotation:tT.Vector3.Zero(),rotationQuaternion:new tT.Quaternion};function aP(e){return e.spatialEnabled||void 0!==e.spatialAutoUpdate||void 0!==e.spatialConeInnerAngle||void 0!==e.spatialConeOuterAngle||void 0!==e.spatialConeOuterVolume||void 0!==e.spatialDistanceModel||void 0!==e.spatialMaxDistance||void 0!==e.spatialMinDistance||void 0!==e.spatialMinUpdateTime||void 0!==e.spatialOrientation||void 0!==e.spatialPanningEnabled||void 0!==e.spatialPanningModel||void 0!==e.spatialPosition||void 0!==e.spatialRolloffFactor||void 0!==e.spatialRotation||void 0!==e.spatialRotationQuaternion}class aL{}(eL=eQ||(eQ={}))[eL.HAS_INPUTS=1]="HAS_INPUTS",eL[eL.HAS_OUTPUTS=2]="HAS_OUTPUTS",eL[eL.HAS_INPUTS_AND_OUTPUTS=3]="HAS_INPUTS_AND_OUTPUTS";class aG{constructor(e,t){this.onDisposeObservable=new eY.Observable,this.engine=e,1&t&&(this._upstreamNodes=new Set),2&t&&(this._downstreamNodes=new Set)}dispose(){if(this._downstreamNodes){for(let e of Array.from(this._downstreamNodes))if(!this._disconnect(e))throw Error("Disconnect failed");this._downstreamNodes.clear()}if(this._upstreamNodes){for(let e of Array.from(this._upstreamNodes))if(!e._disconnect(this))throw Error("Disconnect failed");this._upstreamNodes.clear()}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()}_connect(e){return!(!this._downstreamNodes||this._downstreamNodes.has(e))&&!!e._onConnect(this)&&(this._downstreamNodes.add(e),!0)}_disconnect(e){return!!this._downstreamNodes&&!!this._downstreamNodes.delete(e)&&e._onDisconnect(this)}_onConnect(e){return!(!this._upstreamNodes||this._upstreamNodes.has(e))&&(this._upstreamNodes.add(e),!0)}_onDisconnect(e){return this._upstreamNodes?.delete(e)??!1}}class aD extends aG{constructor(e,t,s){super(t,s),this.onNameChangedObservable=new eY.Observable,this._name=e}get name(){return this._name}set name(e){if(this._name===e)return;let t=this._name;this._name=e,this.onNameChangedObservable.notifyObservers({newName:e,oldName:t,node:this})}dispose(){super.dispose(),this.onNameChangedObservable.clear()}}class aV extends aD{constructor(e,t){super(e,t,3)}connect(e){if(!this._connect(e))throw Error("Connect failed")}disconnect(e){if(!this._disconnect(e))throw Error("Disconnect failed")}disconnectAll(){if(!this._downstreamNodes)throw Error("Disconnect failed");let e=this._downstreamNodes.values();for(let t=e.next();!t.done;t=e.next())if(!this._disconnect(t.value))throw Error("Disconnect failed")}}let aK={volume:1};class aH extends aV{constructor(e){super("Volume",e)}setOptions(e){this.setVolume(e.volume??aK.volume,{shape:"none"})}}function aU(e){return e.getSubNode("Volume")}class a${get frequencyBinCount(){return this.fftSize/2}getByteTimeDomainData(){return t??(t=new Uint8Array)}getFloatTimeDomainData(){return s??(s=new Float32Array)}}class az extends aV{constructor(e){super("Analyzer",e)}setOptions(e){this.fftSize=e.analyzerFFTSize??2048,this.minDecibels=e.analyzerMinDecibels??-100,this.maxDecibels=e.analyzerMaxDecibels??-30,this.smoothing=e.analyzerSmoothing??.8}}function aq(e){return e.getSubNode("Analyzer")}function aW(e,t,s){e.callOnSubNode("Analyzer",e=>{e[t]=s})}let aj=null,aX=null;class aQ extends a${constructor(e){super(),this._fftSize=2048,this._maxDecibels=-30,this._minDecibels=-100,this._smoothing=.8,this._subGraph=e}get fftSize(){return this._fftSize}set fftSize(e){this._fftSize=e,aW(this._subGraph,"fftSize",e)}get isEnabled(){return null!==aq(this._subGraph)}get minDecibels(){return this._minDecibels}set minDecibels(e){this._minDecibels=e,aW(this._subGraph,"minDecibels",e)}get maxDecibels(){return this._maxDecibels}set maxDecibels(e){this._maxDecibels=e,aW(this._subGraph,"maxDecibels",e)}get smoothing(){return this._smoothing}set smoothing(e){this._smoothing=e,aW(this._subGraph,"smoothing",e)}dispose(){let e=aq(this._subGraph);e&&(this._subGraph.removeSubNodeAsync(e),e.dispose())}async enableAsync(){aq(this._subGraph)||await this._subGraph.createAndAddSubNodeAsync("Analyzer")}getByteFrequencyData(){let e=aq(this._subGraph);return e?e.getByteFrequencyData():(e3.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),aj||(aj=new Uint8Array),aj)}getByteTimeDomainData(){let e=aq(this._subGraph);return e?e.getByteTimeDomainData():(e3.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),super.getByteTimeDomainData())}getFloatFrequencyData(){let e=aq(this._subGraph);return e?e.getFloatFrequencyData():(e3.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),aX||(aX=new Float32Array),aX)}getFloatTimeDomainData(){let e=aq(this._subGraph);return e?e.getFloatTimeDomainData():(e3.Logger.Warn("AudioAnalyzer not enabled"),this.enableAsync(),super.getFloatTimeDomainData())}}class aY extends aD{constructor(e,t,s){super(e,t,s),this._analyzer=null}get analyzer(){return this._analyzer??(this._analyzer=new aQ(this._subGraph))}get volume(){var e,t;return e=this._subGraph,t="volume",aU(e)?.[t]??aK[t]}set volume(e){let t=aU(this._subGraph);if(!t)throw Error("No volume subnode");t.volume=e}dispose(){super.dispose(),this._analyzer?.dispose(),this._analyzer=null,this._subGraph.dispose()}setVolume(e,t=null){let s=aU(this._subGraph);if(!s)throw Error("No volume subnode");s.setVolume(e,t)}}class aZ extends aY{constructor(e,t,s,n=2){super(e,t,n),this._spatialAutoUpdate=!0,this._spatialMinUpdateTime=0,this._outBus=null,this._spatial=null,this._onOutBusDisposed=null,"boolean"==typeof s.spatialAutoUpdate&&(this._spatialAutoUpdate=s.spatialAutoUpdate),"number"==typeof s.spatialMinUpdateTime&&(this._spatialMinUpdateTime=s.spatialMinUpdateTime)}get outBus(){return this._outBus}set outBus(e){if(this._outBus!==e){if(this._outBus&&(this._onOutBusDisposed&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),this._onOutBusDisposed=null),!this._disconnect(this._outBus)))throw Error("Disconnect failed");if(this._outBus=e,this._outBus&&(this._onOutBusDisposed=()=>{this._outBus=null},this._outBus.onDisposeObservable.add(this._onOutBusDisposed),!this._connect(this._outBus)))throw Error("Connect failed")}}get spatial(){return this._spatial?this._spatial:this._initSpatialProperty()}dispose(){super.dispose(),this._spatial?.dispose(),this._spatial=null,this._outBus&&this._onOutBusDisposed&&(this._outBus.onDisposeObservable.removeCallback(this._onOutBusDisposed),this._onOutBusDisposed=null),this._outBus=null}_initSpatialProperty(){return this._spatial=this._createSpatialProperty(this._spatialAutoUpdate,this._spatialMinUpdateTime)}get _isSpatial(){return null!==this._spatial}set _isSpatial(e){e&&!this._spatial?this._initSpatialProperty():!e&&this._spatial&&(this._spatial.dispose(),this._spatial=null)}}class aJ{}class a0 extends aV{constructor(e){super("Stereo",e)}setOptions(e){this.pan=e.stereoPan??0}}function a1(e){return e.getSubNode("Stereo")}class a2 extends aJ{constructor(e){super(),this._pan=0,this._subGraph=e}get pan(){return this._pan}set pan(e){var t;this._pan=e,t=this._subGraph,t.callOnSubNode("Stereo",t=>{t.pan=e})}}class a3{constructor(e){this._attachmentType=3,this._position=new tT.Vector3,this._rotationQuaternion=new tT.Quaternion,this._sceneNode=null,this._useBoundingBox=!1,this.dispose=()=>{this.detach()},this._spatialAudioNode=e}get isAttached(){return null!==this._sceneNode}get sceneNode(){return this._sceneNode}get useBoundingBox(){return this._useBoundingBox}get attachmentType(){return this._attachmentType}attach(e,t,s){this._sceneNode===e||(this.detach(),e&&(this._attachmentType=s,this._sceneNode=e,this._sceneNode.onDisposeObservable.add(this.dispose),this._useBoundingBox=t))}detach(){this._sceneNode?.onDisposeObservable.removeCallback(this.dispose),this._sceneNode=null}update(){let e=!!(1&this._attachmentType);e&&(this._useBoundingBox&&this._sceneNode.getBoundingInfo?this._position.copyFrom(this._sceneNode.getBoundingInfo().boundingBox.centerWorld):this._sceneNode?.getWorldMatrix().getTranslationToRef(this._position),this._spatialAudioNode.position.copyFrom(this._position),this._spatialAudioNode._updatePosition()),2&this._attachmentType&&(this._sceneNode?.getWorldMatrix().decompose(void 0,this._rotationQuaternion),this._spatialAudioNode.rotationQuaternion.copyFrom(this._rotationQuaternion),this._spatialAudioNode._updateRotation()),!e&&"panningEnabled"in this._spatialAudioNode&&!this._spatialAudioNode.panningEnabled&&this._spatialAudioNode._updatePosition()}}class a8 extends aV{constructor(e){super("Spatial",e),this._attacherComponent=null}get isAttached(){return null!==this._attacherComponent&&this._attacherComponent.isAttached}get attachedNode(){return this._attacherComponent?.sceneNode??null}get useBoundingBox(){return this._attacherComponent?.useBoundingBox??!1}get attachmentType(){return this._attacherComponent?.attachmentType??3}attach(e,t,s){this.detach(),this._attacherComponent||(this._attacherComponent=new a3(this)),this._attacherComponent.attach(e,t,s)}detach(){this._attacherComponent?.detach()}dispose(){super.dispose(),this._attacherComponent?.dispose(),this._attacherComponent=null}setOptions(e){this.coneInnerAngle=e.spatialConeInnerAngle??ak.coneInnerAngle,this.coneOuterAngle=e.spatialConeOuterAngle??ak.coneOuterAngle,this.coneOuterVolume=e.spatialConeOuterVolume??ak.coneOuterVolume,this.distanceModel=e.spatialDistanceModel??ak.distanceModel,this.maxDistance=e.spatialMaxDistance??ak.maxDistance,this.minDistance=e.spatialMinDistance??ak.minDistance,this.orientation=e.spatialOrientation??ak.orientation,this.panningEnabled=e.spatialPanningEnabled??ak.panningEnabled,this.panningModel=e.spatialPanningModel??ak.panningModel,this.rolloffFactor=e.spatialRolloffFactor??ak.rolloffFactor,e.spatialPosition&&(this.position=e.spatialPosition.clone()),e.spatialRotationQuaternion?this.rotationQuaternion=e.spatialRotationQuaternion.clone():e.spatialRotation?this.rotation=e.spatialRotation.clone():this.rotationQuaternion=ak.rotationQuaternion.clone(),this.update()}update(){this.isAttached?this._attacherComponent?.update():(this._updatePosition(),this._updateRotation())}}function a4(e){return e.getSubNode("Spatial")}function a5(e,t,s){e.callOnSubNode("Spatial",e=>{e[t]=s})}var a7=e.i(16635);let a9=RegExp("\\.(\\w{3,4})($|\\?)"),a6=new Float32Array([0,0]),oe=null,ot=null,os=null;function on(e){return e.replace(/#/gm,"%23")}function oi(e){let{url:t,headers:s}=a7.WebRequest._CollectCustomizations(e);return Object.keys(s).length>0&&e3.Logger.Warn("WebAudioStreamingSound: Custom request headers cannot be applied to a streaming <audio> element and will be ignored. To use custom headers with audio, switch to a static (non-streaming) sound which fetches the file up-front."),t}async function oa(e){let t=await a7.WebRequest.FetchAsync(e);if(!t.ok)throw Error(`HTTP ${t.status} loading '${e}': ${t.statusText}`);return{data:await t.arrayBuffer(),contentType:t.headers.get("Content-Type")??""}}let oo=!0;class or{constructor(e,t){this._rampEndTime=0,this._engine=e,this._param=t,this._targetValue=t.value}get isRamping(){return this._engine.currentTime<this._rampEndTime}get targetValue(){return this._targetValue}set targetValue(e){this.setTargetValue(e)}get value(){return this._param.value}dispose(){this._param=null,this._engine=null}setTargetValue(e,t=null){if(!Number.isFinite(e))return void e3.Logger.Warn(`Attempted to set audio parameter to non-finite value: ${e}`);this._param.cancelScheduledValues(0);let s="string"==typeof t?.shape?t.shape:"linear",n=this._engine.currentTime;if("none"===s){this._param.value=this._targetValue=e,this._rampEndTime=n;return}let i="number"==typeof t?.duration?Math.max(t.duration,this._engine.parameterRampDuration):this._engine.parameterRampDuration;if(this._targetValue=e,(i=Math.max(this._engine.parameterRampDuration,i))<1e-6)return void this._param.setValueAtTime(e,n);try{this._param.setValueCurveAtTime(function(e,t,s){let n;if(oe||(oe=new Float32Array(100)),"linear"===e)return a6[0]=t,a6[1]=s,a6;if("exponential"===e)n=function(){if(!ot){ot=new Float32Array(100);let e=1/99,t=1/99;for(let s=1;s<100;s++)ot[s]=Math.exp(-11.512925464970227*(1-t)),t+=e}return ot}();else if("logarithmic"===e)n=function(){if(!os){os=new Float32Array(100);let e=.01;for(let t=0;t<100;t++)os[t]=1+Math.log10(e)/Math.log10(100),e+=.01}return os}();else throw Error(`Unknown ramp shape: ${e}`);let i=Math.sign(s-t),a=Math.abs(s-t);if(1===i)for(let e=0;e<n.length;e++)oe[e]=t+a*n[e];else{let e=99;for(let s=0;s<n.length;s++,e--)oe[s]=t-a*(1-n[e])}return oe}(s,Number.isFinite(this._param.value)?this._param.value:0,e),n,i),this._rampEndTime=n+i}catch(e){oo&&(e3.Logger.Warn(`Audio parameter ramping failed: ${e.message}`),oo=!1)}}}let ol=tT.Matrix.Zero(),oh=new tT.Quaternion;function ou(e){return e*Math.PI/180}function oc(e){return 180*e/Math.PI}async function od(e){return new op(e)}class op extends a8{constructor(e){super(e),this._lastOrientation=tT.Vector3.Zero(),this._lastPosition=tT.Vector3.Zero(),this._lastRotation=tT.Vector3.Zero(),this._lastRotationQuaternion=new tT.Quaternion,this._panningEnabled=ak.panningEnabled,this.orientation=ak.orientation.clone(),this.position=ak.position.clone(),this.rotation=ak.rotation.clone(),this.rotationQuaternion=ak.rotationQuaternion.clone(),this._inputNode=new GainNode(e._audioContext),this._attenuationNode=new GainNode(e._audioContext),this._attenuation=new or(e,this._attenuationNode.gain),this.node=new PannerNode(e._audioContext),this._orientationX=new or(e,this.node.orientationX),this._orientationY=new or(e,this.node.orientationY),this._orientationZ=new or(e,this.node.orientationZ),this._positionX=new or(e,this.node.positionX),this._positionY=new or(e,this.node.positionY),this._positionZ=new or(e,this.node.positionZ),this._connectActiveInput()}dispose(){super.dispose(),this._attenuation.dispose(),this._orientationX.dispose(),this._orientationY.dispose(),this._orientationZ.dispose(),this._positionX.dispose(),this._positionY.dispose(),this._positionZ.dispose(),this._inputNode.disconnect(),this._attenuationNode.disconnect(),this.node.disconnect()}get coneInnerAngle(){return ou(this.node.coneInnerAngle)}set coneInnerAngle(e){this.node.coneInnerAngle=oc(e)}get coneOuterAngle(){return ou(this.node.coneOuterAngle)}set coneOuterAngle(e){this.node.coneOuterAngle=oc(e)}get coneOuterVolume(){return this.node.coneOuterGain}set coneOuterVolume(e){this.node.coneOuterGain=e}get distanceModel(){return this.node.distanceModel}set distanceModel(e){this.node.distanceModel=e;let t=this.node.maxDistance;this.node.maxDistance=t+.001,this.node.maxDistance=t,this._updateAttenuation()}get minDistance(){return this.node.refDistance}set minDistance(e){this.node.refDistance=e,this._updateAttenuation()}get maxDistance(){return this.node.maxDistance}set maxDistance(e){this.node.maxDistance=e,this._updateAttenuation()}get panningEnabled(){return this._panningEnabled}set panningEnabled(e){this._panningEnabled!==e&&(this._panningEnabled=e,this._connectActiveInput(),this._updateAttenuation())}get panningModel(){return this.node.panningModel}set panningModel(e){this.node.panningModel=e}get rolloffFactor(){return this.node.rolloffFactor}set rolloffFactor(e){this.node.rolloffFactor=e,this._updateAttenuation()}get _inNode(){return this._inputNode}get _outNode(){return this._panningEnabled?this.node:this._attenuationNode}_updatePosition(){this._lastPosition.equalsWithEpsilon(this.position)||(this._positionX.targetValue=this.position.x,this._positionY.targetValue=this.position.y,this._positionZ.targetValue=this.position.z,this._lastPosition.copyFrom(this.position)),this._updateAttenuation()}_updateRotation(){let e=!1;if(this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion))if(this._lastRotation.equalsWithEpsilon(this.rotation)){if(this._lastOrientation.equalsWithEpsilon(this.orientation))return}else tT.Quaternion.FromEulerAnglesToRef(this.rotation.x,this.rotation.y,this.rotation.z,oh),this._lastRotation.copyFrom(this.rotation),e=!0;else oh.copyFrom(this.rotationQuaternion),this._lastRotationQuaternion.copyFrom(this.rotationQuaternion),e=!0;e&&(tT.Matrix.FromQuaternionToRef(oh,ol),tT.Vector3.TransformNormalToRef(tT.Vector3.RightReadOnly,ol,this.orientation)),this._orientationX.targetValue=this.orientation.x,this._orientationY.targetValue=this.orientation.y,this._orientationZ.targetValue=this.orientation.z}_connect(e){return!!super._connect(e)&&(e._inNode&&(this.node.connect(e._inNode),this._attenuationNode.connect(e._inNode)),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&(this.node.disconnect(e._inNode),this._attenuationNode.disconnect(e._inNode)),!0)}getClassName(){return"_SpatialWebAudioSubNode"}_connectActiveInput(){this._inputNode.disconnect(),this._panningEnabled?this._inputNode.connect(this.node):this._inputNode.connect(this._attenuationNode)}_updateAttenuation(){if(this._panningEnabled){this._attenuation.targetValue=1;return}let e=this.engine.listener.position,t=this.position.x-e.x,s=this.position.y-e.y,n=this.position.z-e.z,i=Math.sqrt(t*t+s*s+n*n),a=Math.max(this.minDistance,0),o=1;switch(this.distanceModel){case"linear":{let e=Math.max(this.maxDistance,a),t=Math.min(Math.max(i,a),e);o=e===a?+(i<=a):1-this.rolloffFactor*(t-a)/(e-a)}break;case"inverse":if(0===a){o=0;break}o=a/(a+this.rolloffFactor*(Math.max(i,a)-a));break;case"exponential":if(0===a){o=0;break}o=Math.pow(Math.max(i,a)/a,-this.rolloffFactor)}this._attenuation.targetValue=Math.min(Math.max(o,0),1)}}async function o_(e){return new om(e)}class om extends a0{constructor(e){super(e),this.node=new StereoPannerNode(e._audioContext),this._pan=new or(e,this.node.pan)}dispose(){super.dispose(),this._pan.dispose()}get pan(){return this._pan.targetValue}set pan(e){this._pan.targetValue=e}get _inNode(){return this.node}get _outNode(){return this.node}getClassName(){return"_StereoWebAudioSubNode"}_connect(e){return!!super._connect(e)&&(e._inNode&&this.node.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this.node.disconnect(e._inNode),!0)}}class of{constructor(){this._createSubNodePromises={},this._isDisposed=!1,this._subNodes={},this._onSubNodeDisposed=e=>{delete this._subNodes[e.name],this._onSubNodesChanged()}}callOnSubNode(e,t){let s=this.getSubNode(e);s?t(s):this._createSubNodePromisesResolvedAsync().then(()=>{let s=this.getSubNode(e);s?t(s):this.createAndAddSubNodeAsync(e).then(e=>{t(e)})})}createAndAddSubNodeAsync(e){var t;return(t=this._createSubNodePromises)[e]||(t[e]=this._createSubNode(e).then(e=>(this._addSubNode(e),e))),this._createSubNodePromises[e]}dispose(){for(let e of(this._isDisposed=!0,Object.values(this._subNodes)))e.dispose();this._subNodes={},this._createSubNodePromises={}}getSubNode(e){return this._subNodes[e]??null}async removeSubNodeAsync(e){if(!e)return;await this._createSubNodePromisesResolvedAsync();let t=e.name;this._subNodes[t]&&delete this._subNodes[t],delete this._createSubNodePromises[t],this._onSubNodesChanged()}async _createSubNodePromisesResolvedAsync(){return await Promise.all(Object.values(this._createSubNodePromises))}_addSubNode(e){this._isDisposed?e.dispose():(this._subNodes[e.name]=e,e.onDisposeObservable.addOnce(this._onSubNodeDisposed),this._onSubNodesChanged())}}async function og(e){return new oy(e)}class oy extends aH{constructor(e){super(e);const t=this.node=new GainNode(e._audioContext);this._volume=new or(e,t.gain)}dispose(){super.dispose(),this._volume.dispose()}get volume(){return this._volume.value}set volume(e){this.setVolume(e)}get _inNode(){return this.node}get _outNode(){return this.node}setVolume(e,t=null){this._volume.setTargetValue(e,t)}_connect(e){return!!super._connect(e)&&(e._inNode&&this.node.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this.node.disconnect(e._inNode),!0)}getClassName(){return"_VolumeWebAudioSubNode"}}async function ob(e){return new oT(e)}class oT extends az{constructor(e){super(e),this._byteFrequencyData=null,this._byteTimeDomainData=null,this._floatFrequencyData=null,this._floatTimeDomainData=null,this._analyzerNode=new AnalyserNode(e._audioContext)}get fftSize(){return this._analyzerNode.fftSize}set fftSize(e){e!==this._analyzerNode.fftSize&&(this._analyzerNode.fftSize=e,this._clearArrays())}get _inNode(){return this._analyzerNode}get minDecibels(){return this._analyzerNode.minDecibels}set minDecibels(e){this._analyzerNode.minDecibels=e}get maxDecibels(){return this._analyzerNode.maxDecibels}set maxDecibels(e){this._analyzerNode.maxDecibels=e}get smoothing(){return this._analyzerNode.smoothingTimeConstant}set smoothing(e){this._analyzerNode.smoothingTimeConstant=e}dispose(){super.dispose(),this._clearArrays(),this._analyzerNode.disconnect()}getClassName(){return"_WebAudioAnalyzerSubNode"}getByteFrequencyData(){return this._byteFrequencyData&&0!==this._byteFrequencyData.length||(this._byteFrequencyData=new Uint8Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getByteFrequencyData(this._byteFrequencyData),this._byteFrequencyData}getByteTimeDomainData(){return this._byteTimeDomainData&&0!==this._byteTimeDomainData.length||(this._byteTimeDomainData=new Uint8Array(this._analyzerNode.fftSize)),this._analyzerNode.getByteTimeDomainData(this._byteTimeDomainData),this._byteTimeDomainData}getFloatFrequencyData(){return this._floatFrequencyData&&0!==this._floatFrequencyData.length||(this._floatFrequencyData=new Float32Array(this._analyzerNode.frequencyBinCount)),this._analyzerNode.getFloatFrequencyData(this._floatFrequencyData),this._floatFrequencyData}getFloatTimeDomainData(){return this._floatTimeDomainData&&0!==this._floatTimeDomainData.length||(this._floatTimeDomainData=new Float32Array(this._analyzerNode.fftSize)),this._analyzerNode.getFloatTimeDomainData(this._floatTimeDomainData),this._floatTimeDomainData}_clearArrays(){this._byteFrequencyData=null,this._byteTimeDomainData=null,this._floatFrequencyData=null,this._floatTimeDomainData=null}}class oA extends of{constructor(e){super(),this._outputNode=null,this._owner=e}async initAsync(e){let t=e.analyzerEnabled||void 0!==e.analyzerFFTSize||void 0!==e.analyzerMinDecibels||void 0!==e.analyzerMaxDecibels||void 0!==e.analyzerSmoothing;if(t&&await this.createAndAddSubNodeAsync("Analyzer"),await this.createAndAddSubNodeAsync("Volume"),await this._createSubNodePromisesResolvedAsync(),t){let t=aq(this);if(!t)throw Error("No analyzer subnode.");t.setOptions(e)}let s=aU(this);if(!s)throw Error("No volume subnode.");if(s.setOptions(e),"_VolumeWebAudioSubNode"!==s.getClassName())throw Error("Not a WebAudio subnode.");if(this._outputNode=s.node,this._outputNode&&this._downstreamNodes){let e=this._downstreamNodes.values();for(let t=e.next();!t.done;t=e.next()){let e=t.value._inNode;e&&this._outputNode.connect(e)}}}get _inNode(){return this._outputNode}get _outNode(){return this._outputNode}_createSubNode(e){switch(e){case"Analyzer":return ob(this._owner.engine);case"Volume":return og(this._owner.engine);default:throw Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){let e=aq(this),t=aU(this);e&&t&&t.connect(e)}}class ox extends oA{constructor(){super(...arguments),this._rootNode=null,this._inputNode=null}async initAsync(e){let t,s;await super.initAsync(e),(t=aP(e))&&await this.createAndAddSubNodeAsync("Spatial"),(s=e.stereoEnabled||void 0!==e.stereoPan)&&await this.createAndAddSubNodeAsync("Stereo"),await this._createSubNodePromisesResolvedAsync(),t&&a4(this)?.setOptions(e),s&&a1(this)?.setOptions(e)}get _inNode(){return this._inputNode}_createSubNode(e){try{return super._createSubNode(e)}catch(e){}switch(e){case"Spatial":return od(this._owner.engine);case"Stereo":return o_(this._owner.engine);default:throw Error(`Unknown subnode name: ${e}`)}}_onSubNodesChanged(){let e;super._onSubNodesChanged();let t=a4(this),s=a1(this),n=aU(this);if(t&&"_SpatialWebAudioSubNode"!==t.getClassName()||s&&"_StereoWebAudioSubNode"!==s.getClassName()||n&&"_VolumeWebAudioSubNode"!==n.getClassName())throw Error("Not a WebAudio subnode.");t&&(t.disconnectAll(),n&&t.connect(n)),s&&(s.disconnectAll(),n&&s.connect(n)),t&&s?(this._rootNode=new GainNode(this._owner.engine._audioContext),this._rootNode.connect(t._inNode),this._rootNode.connect(s._inNode)):(this._rootNode?.disconnect(),this._rootNode=null);let i=null;if(this._rootNode?e=this._rootNode:(t?i=t:s?i=s:n&&(i=n),e=i?._inNode??null),this._inputNode!==e){if(this._inputNode&&this._upstreamNodes){let e=this._upstreamNodes.values();for(let t=e.next();!t.done;t=e.next())t.value._outNode?.disconnect(this._inputNode)}if(this._inputNode=e,e&&this._upstreamNodes){let t=this._upstreamNodes.values();for(let s=t.next();!s.done;s=t.next())s.value._outNode?.connect(e)}}}}class ov extends aL{constructor(e){super(),this._coneInnerAngle=ak.coneInnerAngle,this._coneOuterAngle=ak.coneOuterAngle,this._coneOuterVolume=ak.coneOuterVolume,this._distanceModel=ak.distanceModel,this._maxDistance=ak.maxDistance,this._minDistance=ak.minDistance,this._panningEnabled=ak.panningEnabled,this._panningModel=ak.panningModel,this._rolloffFactor=ak.rolloffFactor;const t=a4(e);t?(this._orientation=t.orientation.clone(),this._panningEnabled=t.panningEnabled,this._position=t.position.clone(),this._rotation=t.rotation.clone(),this._rotationQuaternion=t.rotationQuaternion.clone()):(this._orientation=ak.orientation.clone(),this._position=ak.position.clone(),this._rotation=ak.rotation.clone(),this._rotationQuaternion=ak.rotationQuaternion.clone(),e.createAndAddSubNodeAsync("Spatial")),this._subGraph=e}dispose(){this._subGraph.removeSubNodeAsync(a4(this._subGraph))}get coneInnerAngle(){return this._coneInnerAngle}set coneInnerAngle(e){this._coneInnerAngle=e,a5(this._subGraph,"coneInnerAngle",e)}get coneOuterAngle(){return this._coneOuterAngle}set coneOuterAngle(e){this._coneOuterAngle=e,a5(this._subGraph,"coneOuterAngle",e)}get coneOuterVolume(){return this._coneOuterVolume}set coneOuterVolume(e){this._coneOuterVolume=e,a5(this._subGraph,"coneOuterVolume",e)}get distanceModel(){return this._distanceModel}set distanceModel(e){this._distanceModel=e,a5(this._subGraph,"distanceModel",e)}get isAttached(){return this._subGraph.getSubNode("Spatial")?.isAttached??!1}get attachedNode(){return this._subGraph.getSubNode("Spatial")?.attachedNode??null}get useBoundingBox(){return this._subGraph.getSubNode("Spatial")?.useBoundingBox??!1}get attachmentType(){return this._subGraph.getSubNode("Spatial")?.attachmentType??3}get maxDistance(){return this._maxDistance}set maxDistance(e){e<=0&&(e=1e-6),this._maxDistance=e,a5(this._subGraph,"maxDistance",e)}get minDistance(){return this._minDistance}set minDistance(e){this._minDistance=e,a5(this._subGraph,"minDistance",e)}get orientation(){return this._orientation}set orientation(e){this._orientation=e,this._updateRotation()}get panningEnabled(){return this._panningEnabled}set panningEnabled(e){this._panningEnabled=e,a5(this._subGraph,"panningEnabled",e)}get panningModel(){return this._panningModel}set panningModel(e){this._panningModel=e,a5(this._subGraph,"panningModel",e)}get position(){return this._position}set position(e){this._position=e,this._updatePosition()}get rolloffFactor(){return this._rolloffFactor}set rolloffFactor(e){this._rolloffFactor=e,a5(this._subGraph,"rolloffFactor",e)}get rotation(){return this._rotation}set rotation(e){this._rotation=e,this._updateRotation()}get rotationQuaternion(){return this._rotationQuaternion}set rotationQuaternion(e){this._rotationQuaternion=e,this._updateRotation()}attach(e,t=!1,s=3){a4(this._subGraph)?.attach(e,t,s)}detach(){a4(this._subGraph)?.detach()}update(){let e=a4(this._subGraph);e&&(e.isAttached?e.update():(this._updatePosition(e),this._updateRotation(e)))}_updatePosition(e=null){(e||(e=a4(this._subGraph)))&&(e.position.equalsWithEpsilon(this._position)?e.panningEnabled||e._updatePosition():(e.position.copyFrom(this._position),e._updatePosition()))}_updateRotation(e=null){(e||(e=a4(this._subGraph)))&&(e.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)?e.rotation.equalsWithEpsilon(this._rotation)?e.orientation.equalsWithEpsilon(this._orientation)||(e.orientation.copyFrom(this._orientation),e._updateRotation(),this._rotation.copyFrom(e.rotation),this._rotationQuaternion.copyFrom(e.rotationQuaternion)):(e.rotation.copyFrom(this._rotation),e._updateRotation(),this._orientation.copyFrom(e.orientation),this._rotationQuaternion.copyFrom(e.rotationQuaternion)):(e.rotationQuaternion.copyFrom(this._rotationQuaternion),e._updateRotation(),this._orientation.copyFrom(e.orientation),this._rotation.copyFrom(e.rotation)))}}var ow=e.i(63391);class oM{constructor(e,t,s){if(this._autoUpdate=!0,this._lastUpdateTime=0,this.minUpdateTime=0,!t)return;this.minUpdateTime=s;const n=()=>{if(!this._autoUpdate)return;let t=!1;if(0<this.minUpdateTime){let e=ow.PrecisionDate.Now;this._lastUpdateTime&&e-this._lastUpdateTime<1e3*this.minUpdateTime&&(t=!0),this._lastUpdateTime=e}t||e.update(),requestAnimationFrame(n)};requestAnimationFrame(n)}dispose(){this._autoUpdate=!1}}class oC extends ov{constructor(e,t,s){super(e),this._updaterComponent=new oM(this,t,s)}get minUpdateTime(){return this._updaterComponent.minUpdateTime}set minUpdateTime(e){this._updaterComponent.minUpdateTime=e}dispose(){super.dispose(),this._updaterComponent.dispose(),this._updaterComponent=null}}class oS extends aZ{constructor(e,t,s,n){super(e,s,n),this._stereo=null,this._webAudioNode=null,this._mediaStreamAudioElement=null,this._stopMediaStreamTracksOnDispose=!1,this._audioContext=this.engine._audioContext,this._webAudioNode=t,this._stopMediaStreamTracksOnDispose=!0===n.stopMediaStreamTracksOnDispose,!1!==n.mediaStreamSinkEnabled&&t instanceof MediaStreamAudioSourceNode&&this._attachMediaStreamSink(t.mediaStream),this._subGraph=new oS._SubGraph(this)}_attachMediaStreamSink(e){if("u"<typeof Audio)return;let t=new Audio;t.muted=!0,t.srcObject=e,this._mediaStreamAudioElement=t,this._startMediaStreamSinkAsync(t)}async _startMediaStreamSinkAsync(e){try{await e.play()}catch{}}async _initAsync(e){e.outBus?this.outBus=e.outBus:!1!==e.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(e),aP(e)&&this._initSpatialProperty(),this.engine._addNode(this)}get _inNode(){return this._webAudioNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new a2(this._subGraph))}dispose(){if(super.dispose(),this._mediaStreamAudioElement&&(this._mediaStreamAudioElement.pause(),this._mediaStreamAudioElement.srcObject=null,this._mediaStreamAudioElement=null),this._webAudioNode){if(this._stopMediaStreamTracksOnDispose&&this._webAudioNode instanceof MediaStreamAudioSourceNode)for(let e of this._webAudioNode.mediaStream.getTracks())e.stop();this._webAudioNode.disconnect(),this._webAudioNode=null}this._stereo=null,this._subGraph.dispose(),this.engine._removeNode(this)}getClassName(){return"_WebAudioSoundSource"}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new oC(this._subGraph,e,t)}}oS._SubGraph=class extends ox{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}_onSubNodesChanged(){super._onSubNodesChanged(),this._owner._inNode?.disconnect(),this._owner._subGraph._inNode&&this._owner._inNode?.connect(this._owner._subGraph._inNode)}};class oF extends aZ{constructor(e,t,s){super(e,t,s,3),this._newestInstance=null,this._privateInstances=new Set,this._state=1,this._instances=this._privateInstances,this.onEndedObservable=new eY.Observable,this._onInstanceEnded=e=>{this._newestInstance===e&&(this._newestInstance=null),e.onStateChangedObservable.removeCallback(this._onInstanceStateChanged),this._privateInstances.delete(e),0===this._instances.size&&(this._state=1,this.onEndedObservable.notifyObservers(this)),e.dispose(),this.engine._onSoundPlaybackStateChanged()},this._onInstanceStateChanged=e=>{this.engine._onSoundPlaybackStateChanged()}}get activeInstancesCount(){return this._instances.size}get autoplay(){return this._options.autoplay}get currentTime(){let e=this._getNewestInstance();return e?e.currentTime:0}set currentTime(e){this.startOffset=e;let t=this._getNewestInstance();t&&(t.currentTime=e)}get loop(){return this._options.loop}set loop(e){this._options.loop=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.loop=e}get maxInstances(){return this._options.maxInstances}set maxInstances(e){this._options.maxInstances=e}get startOffset(){return this._options.startOffset}set startOffset(e){this._options.startOffset=e}get state(){return this._state}dispose(){super.dispose(),this.stop(),this._newestInstance=null,this._privateInstances.clear(),this.onEndedObservable.clear()}pause(){let e=this._instances.values();for(let t=e.next();!t.done;t=e.next())t.value.pause();this._state=5,this.engine._onSoundPlaybackStateChanged()}resume(e){if(5!==this._state)return;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.resume(e);this._state=3,this.engine._onSoundPlaybackStateChanged()}_beforePlay(e){5===this.state&&this._instances.size>0?this.resume():(e.onEndedObservable.addOnce(this._onInstanceEnded),e.onStateChangedObservable.add(this._onInstanceStateChanged),this._privateInstances.add(e),this._newestInstance=e)}_afterPlay(e){this._state=e.state,this.engine._onSoundPlaybackStateChanged()}_getNewestInstance(){if(0===this._instances.size)return null;if(!this._newestInstance){let e=this._instances.values();for(let t=e.next();!t.done;t=e.next())this._newestInstance=t.value}return this._newestInstance}_setState(e){this._state=e}_stopExcessInstances(){if(this.maxInstances<1/0){let e=Array.from(this._instances).filter(e=>3===e.state),t=e.length-this.maxInstances;for(let s=0;s<t;s++)e[s].stop()}}}class oE extends oF{constructor(e,t,s){super(e,t,s)}get duration(){return this._options.duration}set duration(e){this._options.duration=e}get loopStart(){return this._options.loopStart}set loopStart(e){this._options.loopStart=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.loopStart=e}get loopEnd(){return this._options.loopEnd}set loopEnd(e){this._options.loopEnd=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.loopEnd=e}get pitch(){return this._options.pitch}set pitch(e){this._options.pitch=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.pitch=e}get playbackRate(){return this._options.playbackRate}set playbackRate(e){this._options.playbackRate=e;let t=this._instances.values();for(let s=t.next();!s.done;s=t.next())s.value.playbackRate=e}play(e={}){if(5===this.state)return void this.resume(e);e.duration??(e.duration=this.duration),e.loop??(e.loop=this.loop),e.loopStart??(e.loopStart=this.loopStart),e.loopEnd??(e.loopEnd=this.loopEnd),e.startOffset??(e.startOffset=this.startOffset),e.volume??(e.volume=1),e.waitTime??(e.waitTime=0);let t=this._createInstance();this._beforePlay(t),t.play(e),this._afterPlay(t),this._stopExcessInstances()}resume(e){super.resume(e)}stop(e={}){if(e.waitTime&&0<e.waitTime?this._setState(0):this._setState(1),this._instances)for(let t of Array.from(this._instances))t.stop(e)}}let oR=1;class oO{constructor(e){this.name=`StaticSoundBuffer #${oR++}`,this.engine=e}}class oI extends aG{constructor(e){super(e.engine,2),this._state=1,this.onEndedObservable=new eY.Observable,this.onErrorObservable=new eY.Observable,this.onStateChangedObservable=new eY.Observable,this._sound=e}get state(){return this._state}dispose(){super.dispose(),this.stop(),this.onEndedObservable.clear(),this.onStateChangedObservable.clear()}_setState(e){this._state!==e&&(this._state=e,this.onStateChangedObservable.notifyObservers(this),1===this._state&&this.onEndedObservable.notifyObservers(this))}}class oB extends oI{}class oN extends oE{constructor(e,t,s){super(e,t,s),this._stereo=null,this._options={autoplay:s.autoplay??!1,duration:s.duration??0,loop:s.loop??!1,loopEnd:s.loopEnd??0,loopStart:s.loopStart??0,maxInstances:s.maxInstances??1/0,pitch:s.pitch??0,playbackRate:s.playbackRate??1,startOffset:s.startOffset??0},this._subGraph=new oN._SubGraph(this)}async _initAsync(e,t){this._audioContext=this.engine._audioContext,e instanceof ok?this._buffer=e:("string"==typeof e||Array.isArray(e)||e instanceof ArrayBuffer||e instanceof AudioBuffer)&&(this._buffer=await this.engine.createSoundBufferAsync(e,t)),t.outBus?this.outBus=t.outBus:!1!==t.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(t),aP(t)&&this._initSpatialProperty(),t.autoplay&&this.play(),this.engine._addSound(this)}get buffer(){return this._buffer}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new a2(this._subGraph))}async cloneAsync(e=null){let t=await this.engine.createSoundAsync(this.name,e?.cloneBuffer?this.buffer.clone():this.buffer,this._options);return t.outBus=e?.outBus?e.outBus:this.outBus,t}dispose(){super.dispose(),this._stereo=null,this._subGraph.dispose(),this.engine._removeSound(this)}getClassName(){return"_WebAudioStaticSound"}_createInstance(){return new oP(this,this._options)}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new oC(this._subGraph,e,t)}_getOptions(){return this._options}}oN._SubGraph=class extends ox{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class ok extends oO{constructor(e){super(e)}async _initAsync(e,t){e instanceof AudioBuffer?this._audioBuffer=e:"string"==typeof e?await this._initFromUrlAsync(e):Array.isArray(e)?await this._initFromUrlsAsync(e,t.skipCodecCheck??!1):e instanceof ArrayBuffer&&await this._initFromArrayBufferAsync(e)}get channelCount(){return this._audioBuffer.numberOfChannels}get duration(){return this._audioBuffer.duration}get length(){return this._audioBuffer.length}get sampleRate(){return this._audioBuffer.sampleRate}clone(e=null){let t=new AudioBuffer({length:this._audioBuffer.length,numberOfChannels:this._audioBuffer.numberOfChannels,sampleRate:this._audioBuffer.sampleRate});for(let e=0;e<this._audioBuffer.numberOfChannels;e++)t.copyToChannel(this._audioBuffer.getChannelData(e),e);let s=new ok(this.engine);return s._audioBuffer=t,s.name=e?.name?e.name:this.name,s}async _initFromArrayBufferAsync(e){this._audioBuffer=await this.engine._audioContext.decodeAudioData(e)}async _initFromUrlAsync(e){e=on(e);let{data:t}=await oa(e);await this._initFromArrayBufferAsync(t)}async _initFromUrlsAsync(e,t){for(let s of e){if(t)await this._initFromUrlAsync(s);else{let e=s.match(a9),t=e?.at(1);if(t&&this.engine.isFormatValid(t))try{await this._initFromUrlAsync(s)}catch{t&&0<t.length&&this.engine.flagInvalidFormat(t)}}if(this._audioBuffer)break}}}class oP extends oB{constructor(e,t){super(e),this._enginePlayTime=0,this._enginePauseTime=0,this._isConnected=!1,this._pitch=null,this._playbackRate=null,this._sourceNode=null,this._onEnded=()=>{this._enginePlayTime=0,5!==this._state&&this.onEndedObservable.notifyObservers(this),this._deinitSourceNode()},this._onEngineStateChanged=()=>{"running"===this.engine.state&&(this._options.loop&&2===this.state&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._options=t,this._volumeNode=new GainNode(e._audioContext),this._initSourceNode()}dispose(){super.dispose(),this._pitch?.dispose(),this._playbackRate?.dispose(),this.stop(),this._deinitSourceNode(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}get currentTime(){if(1===this._state)return 0;let e=5===this._state?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){let t=2===this._state||3===this._state;if(t){let e=this._sourceNode;this._deinitSourceNode(),e?.stop(),this._state=1}this._enginePauseTime=0,this._options.startOffset=e,t&&this.play()}get _outNode(){return this._volumeNode}set loop(e){this._options.loop=e,this._sourceNode&&(this._sourceNode.loop=e)}set loopStart(e){this._options.loopStart=e,this._sourceNode&&(this._sourceNode.loopStart=e)}set loopEnd(e){this._options.loopEnd=e,this._sourceNode&&(this._sourceNode.loopEnd=e)}set pitch(e){this._pitch?.setTargetValue(e)}set playbackRate(e){this._playbackRate?.setTargetValue(e)}get startTime(){return 1===this._state?0:this._enginePlayTime}getClassName(){return"_WebAudioStaticSoundInstance"}play(e={}){if(3===this._state)return;void 0!==e.duration&&(this._options.duration=e.duration),void 0!==e.loop&&(this._options.loop=e.loop),void 0!==e.loopStart&&(this._options.loopStart=e.loopStart),void 0!==e.loopEnd&&(this._options.loopEnd=e.loopEnd),void 0!==e.startOffset&&(this._options.startOffset=e.startOffset);let t=this._options.startOffset;if(5===this._state){let e=this._sound.buffer.duration,s=this._enginePauseTime;if(this._options.loop){let n=0,i=e;this._options.loopStart>=0&&this._options.loopEnd>0&&this._options.loopStart<this._options.loopEnd&&(n=this._options.loopStart,i=Math.min(this._options.loopEnd,e));let a=i-t;s<a?t+=s:t=n+(s-a)%(i-n)}else t+=s,t%=e}this._enginePlayTime=this.engine.currentTime+(e.waitTime??0),void 0!==e.volume&&(this._volumeNode.gain.value=e.volume),this._initSourceNode(),"running"===this.engine.state?(this._setState(3),this._sourceNode?.start(this._enginePlayTime,t,this._options.duration>0?this._options.duration:void 0)):this._options.loop&&(this._setState(2),this.engine.stateChangedObservable.add(this._onEngineStateChanged))}pause(){if(3!==this._state&&2!==this._state)return;let e=3===this._state;this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,e?this._sourceNode?.stop():this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged),this._deinitSourceNode()}resume(e={}){5===this._state&&this.play(e)}stop(e={}){if(1!==this._state){if(3===this._state){let t=this.engine.currentTime+(e.waitTime??0);this._sourceNode?.stop(t)}(void 0===e.waitTime||e.waitTime<=0)&&(this._setState(1),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))}}_connect(e){return!!super._connect(e)&&(e instanceof oN&&e._inNode&&(this._outNode?.connect(e._inNode),this._isConnected=!0),!0)}_disconnect(e){return!!super._disconnect(e)&&(e instanceof oN&&e._inNode&&(this._outNode?.disconnect(e._inNode),this._isConnected=!1),!0)}_deinitSourceNode(){if(this._sourceNode){if(this._isConnected&&!this._disconnect(this._sound))throw Error("Disconnect failed");this._sourceNode.disconnect(this._volumeNode),this._sourceNode.removeEventListener("ended",this._onEnded),this._sourceNode=null}}_initSourceNode(){if(!this._sourceNode){if(this._sourceNode=new AudioBufferSourceNode(this._sound._audioContext,{buffer:this._sound.buffer._audioBuffer}),this._sourceNode.addEventListener("ended",this._onEnded,{once:!0}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound))throw Error("Connect failed");this._pitch=new or(this.engine,this._sourceNode.detune),this._playbackRate=new or(this.engine,this._sourceNode.playbackRate)}let e=this._sourceNode;e.detune.value=this._sound.pitch,e.loop=this._options.loop,e.loopEnd=this._options.loopEnd,e.loopStart=this._options.loopStart,e.playbackRate.value=this._sound.playbackRate}}class oL extends oF{constructor(e,t,s){super(e,t,s),this._preloadedInstances=[]}get preloadCount(){return this._options.preloadCount??1}get preloadCompletedCount(){return this._preloadedInstances.length}preloadInstanceAsync(){let e=this._createInstance();return this._addPreloadedInstance(e),e.preloadedPromise}async preloadInstancesAsync(e){for(let t=0;t<e;t++)this.preloadInstanceAsync();await Promise.all(this._preloadedInstances.map(async e=>await e.preloadedPromise))}play(e={}){let t;if(5===this.state)return void this.resume(e);this.preloadCompletedCount>0?((t=this._preloadedInstances[0]).startOffset=this.startOffset,this._removePreloadedInstance(t)):t=this._createInstance();let s=()=>{3===t.state&&(this._stopExcessInstances(),t.onStateChangedObservable.removeCallback(s))};t.onStateChangedObservable.add(s),e.startOffset??(e.startOffset=this.startOffset),e.loop??(e.loop=this.loop),e.volume??(e.volume=1),this._beforePlay(t),t.play(e),this._afterPlay(t)}resume(e){super.resume(e)}stop(){if(this._setState(1),this._instances)for(let e of Array.from(this._instances))e.stop()}_addPreloadedInstance(e){this._preloadedInstances.includes(e)||this._preloadedInstances.push(e)}_removePreloadedInstance(e){let t=this._preloadedInstances.indexOf(e);-1!==t&&this._preloadedInstances.splice(t,1)}}class oG extends oI{constructor(e){super(e),this.onReadyObservable=new eY.Observable,this.preloadedPromise=new Promise((e,t)=>{this._rejectPreloadedPromise=t,this._resolvePreloadedPromise=e}),this.onErrorObservable.add(this._rejectPreloadedPromise),this.onReadyObservable.add(this._resolvePreloadedPromise)}set startOffset(e){this._options.startOffset=e}dispose(){super.dispose(),this.onErrorObservable.clear(),this.onReadyObservable.clear(),this._resolvePreloadedPromise()}}class oD extends oL{constructor(e,t,s){super(e,t,s),this._stereo=null,this._options={autoplay:s.autoplay??!1,loop:s.loop??!1,maxInstances:s.maxInstances??1/0,preloadCount:s.preloadCount??1,startOffset:s.startOffset??0},this._subGraph=new oD._SubGraph(this)}async _initAsync(e,t){let s=this.engine._audioContext;if(!(s instanceof AudioContext))throw Error("Unsupported audio context type.");this._audioContext=s,this._source=e,t.outBus?this.outBus=t.outBus:!1!==t.outBusAutoDefault&&(await this.engine.isReadyPromise,this.outBus=this.engine.defaultMainBus),await this._subGraph.initAsync(t),aP(t)&&this._initSpatialProperty(),this.preloadCount&&await this.preloadInstancesAsync(this.preloadCount),t.autoplay&&this.play(t),this.engine._addSound(this)}get _inNode(){return this._subGraph._inNode}get _outNode(){return this._subGraph._outNode}get stereo(){return this._stereo??(this._stereo=new a2(this._subGraph))}dispose(){super.dispose(),this._stereo=null,this._subGraph.dispose(),this.engine._removeSound(this)}getClassName(){return"_WebAudioStreamingSound"}_createInstance(){return new oV(this,this._options)}_connect(e){return!!super._connect(e)&&(e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_createSpatialProperty(e,t){return new oC(this._subGraph,e,t)}_getOptions(){return this._options}}oD._SubGraph=class extends ox{get _downstreamNodes(){return this._owner._downstreamNodes??null}get _upstreamNodes(){return this._owner._upstreamNodes??null}};class oV extends oG{constructor(e,t){if(super(e),this._currentTimeChangedWhilePaused=!1,this._enginePlayTime=1/0,this._enginePauseTime=0,this._isReady=!1,this._isReadyPromise=new Promise((e,t)=>{this._resolveIsReadyPromise=e,this._rejectIsReadyPromise=t}),this._onCanPlayThrough=()=>{this._isReady=!0,this._resolveIsReadyPromise(this._mediaElement),this.onReadyObservable.notifyObservers(this)},this._onEnded=()=>{this._setState(1)},this._onError=e=>{this._setState(4),this.onErrorObservable.notifyObservers(e),this._rejectIsReadyPromise(e),this.dispose()},this._onEngineStateChanged=()=>{"running"===this.engine.state&&(this._options.loop&&2===this.state&&this.play(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged))},this._onUserGesture=()=>{this.play()},this._options=t,this._volumeNode=new GainNode(e._audioContext),"string"==typeof e._source)this._initFromUrl(e._source);else if(Array.isArray(e._source))this._initFromUrls(e._source);else if(e._source instanceof HTMLMediaElement)this._initFromMediaElement(e._source);else throw Error(`Invalid streaming sound source (${e._source}).`)}get currentTime(){if(1===this._state)return 0;let e=5===this._state?0:this.engine.currentTime-this._enginePlayTime;return this._enginePauseTime+e+this._options.startOffset}set currentTime(e){let t=2===this._state||3===this._state;t&&(this._mediaElement.pause(),this._state=1),this._enginePauseTime=0,this._options.startOffset=e,t?this.play({startOffset:e}):5===this._state&&(this._currentTimeChangedWhilePaused=!0)}get _outNode(){return this._volumeNode}set loop(e){this._options.loop=e,this._mediaElement.loop=e}get startTime(){return 1===this._state?0:this._enginePlayTime}dispose(){for(let e of(super.dispose(),this.stop(),this._sourceNode?.disconnect(this._volumeNode),this._sourceNode=null,this._mediaElement.removeEventListener("error",this._onError),this._mediaElement.removeEventListener("ended",this._onEnded),this._mediaElement.removeEventListener("canplaythrough",this._onCanPlayThrough),Array.from(this._mediaElement.children)))this._mediaElement.removeChild(e);this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged),this.engine.userGestureObservable.removeCallback(this._onUserGesture)}play(e={}){if(3===this._state)return;void 0!==e.loop&&(this._options.loop=e.loop),this._mediaElement.loop=this._options.loop;let t=e.startOffset;this._currentTimeChangedWhilePaused?(t=this._options.startOffset,this._currentTimeChangedWhilePaused=!1):5===this._state&&(t=this.currentTime),t&&t>0&&(this._mediaElement.currentTime=t),void 0!==e.volume&&(this._volumeNode.gain.value=e.volume),this._play()}pause(){(2===this._state||3===this._state)&&(this._setState(5),this._enginePauseTime+=this.engine.currentTime-this._enginePlayTime,this._mediaElement.pause())}resume(e={}){5===this._state?this.play(e):this._currentTimeChangedWhilePaused&&this.play(e)}stop(){1!==this._state&&this._stop()}getClassName(){return"_WebAudioStreamingSoundInstance"}_connect(e){return!!super._connect(e)&&(e instanceof oD&&e._inNode&&this._outNode?.connect(e._inNode),!0)}_disconnect(e){return!!super._disconnect(e)&&(e instanceof oD&&e._inNode&&this._outNode?.disconnect(e._inNode),!0)}_initFromMediaElement(e){if(eZ.Tools.SetCorsBehavior(e.currentSrc,e),e.controls=!1,e.loop=this._options.loop,e.preload="auto",e.addEventListener("canplaythrough",this._onCanPlayThrough,{once:!0}),e.addEventListener("ended",this._onEnded,{once:!0}),e.addEventListener("error",this._onError,{once:!0}),e.load(),this._sourceNode=new MediaElementAudioSourceNode(this._sound._audioContext,{mediaElement:e}),this._sourceNode.connect(this._volumeNode),!this._connect(this._sound))throw Error("Connect failed");this._mediaElement=e}_initFromUrl(e){let t=new Audio(a7.WebRequest.IsCustomRequestAvailable?oi(on(e)):on(e));this._initFromMediaElement(t)}_initFromUrls(e){let t=new Audio;for(let s of e){let e=document.createElement("source");e.src=a7.WebRequest.IsCustomRequestAvailable?oi(on(s)):on(s),t.appendChild(e)}this._initFromMediaElement(t)}_play(){if(this._setState(2),!this._isReady)return void this._playWhenReady();if(2===this._state)if("running"===this.engine.state){let e=this._mediaElement.play();this._enginePlayTime=this.engine.currentTime,this._setState(3),e.catch(()=>{this._setState(4),this._options.loop&&this.engine.userGestureObservable.addOnce(this._onUserGesture)})}else this._options.loop?this.engine.stateChangedObservable.add(this._onEngineStateChanged):(this.stop(),this._setState(4))}_playWhenReady(){this._isReadyPromise.then(()=>{this._play()}).catch(()=>{e3.Logger.Error("Streaming sound instance failed to play"),this._setState(4)})}_stop(){this._mediaElement.pause(),this._onEnded(),this.engine.stateChangedObservable.removeCallback(this._onEngineStateChanged)}}var oK=e.i(99429),oH=e.i(43880);class oU{constructor(e,t={}){if(this.id=-1,this._isInitialized=!1,!(e=e||e8.EngineStore.LastCreatedScene))return;this._scene=e,this.soundCollection=[],this._options=t,!this._options.mainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1)}_initializeSoundTrackAudioGraph(){oK.AbstractEngine.audioEngine?.canUseWebAudio&&oK.AbstractEngine.audioEngine.audioContext&&(this._outputAudioNode=oK.AbstractEngine.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(oK.AbstractEngine.audioEngine.masterGain),this._options&&this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._isInitialized=!0)}dispose(){if(oK.AbstractEngine.audioEngine&&oK.AbstractEngine.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}}addSound(e){this._isInitialized||this._initializeSoundTrackAudioGraph(),oK.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&e.connectToSoundTrackAudioNode(this._outputAudioNode),void 0!==e.soundTrackId&&(-1===e.soundTrackId?this._scene.mainSoundTrack.removeSound(e):this._scene.soundTracks&&this._scene.soundTracks[e.soundTrackId].removeSound(e)),this.soundCollection.push(e),e.soundTrackId=this.id}removeSound(e){let t=this.soundCollection.indexOf(e);-1!==t&&this.soundCollection.splice(t,1)}setVolume(e){oK.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=e)}switchPanningModelToHRTF(){if(oK.AbstractEngine.audioEngine?.canUseWebAudio)for(let e=0;e<this.soundCollection.length;e++)this.soundCollection[e].switchPanningModelToHRTF()}switchPanningModelToEqualPower(){if(oK.AbstractEngine.audioEngine?.canUseWebAudio)for(let e=0;e<this.soundCollection.length;e++)this.soundCollection[e].switchPanningModelToEqualPower()}connectToAnalyser(e){this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas(),this._connectedAnalyser=e,oK.AbstractEngine.audioEngine?.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.disconnect(),this._connectedAnalyser.connectAudioNodes(this._outputAudioNode,oK.AbstractEngine.audioEngine.masterGain))}}var o$=e.i(17828),oz=e.i(87710);let oq={};class oW{get audioEnabled(){return this._audioEnabled}get headphone(){return this._headphone}constructor(e){if(this.name=o$.SceneComponentConstants.NAME_AUDIO,this._audioEnabled=!0,this._headphone=!1,this.audioPositioningRefreshRate=500,this.audioListenerPositionProvider=null,this.audioListenerRotationProvider=null,this._cachedCameraDirection=new tT.Vector3,this._cachedCameraPosition=new tT.Vector3,this._lastCheck=0,this._invertMatrixTemp=new tT.Matrix,this._cameraDirectionTemp=new tT.Vector3,!(e=e||e8.EngineStore.LastCreatedScene))return;this.scene=e,e.soundTracks=[],e.sounds=[]}register(){this.scene._afterRenderStage.registerStep(o$.SceneComponentConstants.STEP_AFTERRENDER_AUDIO,this,this._afterRender)}rebuild(){}serialize(e){if(e.sounds=[],this.scene.soundTracks)for(let t=0;t<this.scene.soundTracks.length;t++){let s=this.scene.soundTracks[t];for(let t=0;t<s.soundCollection.length;t++)e.sounds.push(s.soundCollection[t].serialize())}}addFromContainer(e){if(e.sounds)for(let t of e.sounds)t.play(),t.autoplay=!0,this.scene.mainSoundTrack.addSound(t)}removeFromContainer(e,t=!1){if(e.sounds)for(let s of e.sounds)s.stop(),s.autoplay=!1,this.scene.mainSoundTrack.removeSound(s),t&&s.dispose()}dispose(){let e=this.scene;if(e._mainSoundTrack&&e.mainSoundTrack.dispose(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].dispose()}disableAudio(){let e,t=this.scene;for(this._audioEnabled=!1,oK.AbstractEngine.audioEngine&&oK.AbstractEngine.audioEngine.audioContext&&oK.AbstractEngine.audioEngine.audioContext.suspend(),e=0;e<t.mainSoundTrack.soundCollection.length;e++)t.mainSoundTrack.soundCollection[e].pause();if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++)t.soundTracks[e].soundCollection[s].pause()}enableAudio(){let e,t=this.scene;for(this._audioEnabled=!0,oK.AbstractEngine.audioEngine&&oK.AbstractEngine.audioEngine.audioContext&&oK.AbstractEngine.audioEngine.audioContext.resume(),e=0;e<t.mainSoundTrack.soundCollection.length;e++)t.mainSoundTrack.soundCollection[e].isPaused&&t.mainSoundTrack.soundCollection[e].play();if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++)t.soundTracks[e].soundCollection[s].isPaused&&t.soundTracks[e].soundCollection[s].play()}switchAudioModeForHeadphones(){let e=this.scene;if(this._headphone=!0,e.mainSoundTrack.switchPanningModelToHRTF(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToHRTF()}switchAudioModeForNormalSpeakers(){let e=this.scene;if(this._headphone=!1,e.mainSoundTrack.switchPanningModelToEqualPower(),e.soundTracks)for(let t=0;t<e.soundTracks.length;t++)e.soundTracks[t].switchPanningModelToEqualPower()}_afterRender(){let e=ow.PrecisionDate.Now;if(this._lastCheck&&e-this._lastCheck<this.audioPositioningRefreshRate)return;this._lastCheck=e;let t=this.scene;if(!this._audioEnabled||!t._mainSoundTrack||!t.soundTracks||0===t._mainSoundTrack.soundCollection.length&&1===t.soundTracks.length)return;let s=oK.AbstractEngine.audioEngine;if(s&&s.audioContext){let e,n=t.activeCamera;if(t.activeCameras&&t.activeCameras.length>0&&(n=t.activeCameras[0]),this.audioListenerPositionProvider){let e=this.audioListenerPositionProvider();s.audioContext.listener.setPosition(e.x||0,e.y||0,e.z||0)}else n?this._cachedCameraPosition.equals(n.globalPosition)||(this._cachedCameraPosition.copyFrom(n.globalPosition),s.audioContext.listener.setPosition(n.globalPosition.x,n.globalPosition.y,n.globalPosition.z)):s.audioContext.listener.setPosition(0,0,0);if(this.audioListenerRotationProvider){let e=this.audioListenerRotationProvider();s.audioContext.listener.setOrientation(e.x||0,e.y||0,e.z||0,0,1,0)}else n?(n.rigCameras&&n.rigCameras.length>0&&(n=n.rigCameras[0]),n.getViewMatrix().invertToRef(this._invertMatrixTemp),tT.Vector3.TransformNormalToRef(oW._CameraDirection,this._invertMatrixTemp,this._cameraDirectionTemp),this._cameraDirectionTemp.normalize(),isNaN(this._cameraDirectionTemp.x)||isNaN(this._cameraDirectionTemp.y)||isNaN(this._cameraDirectionTemp.z)||this._cachedCameraDirection.equals(this._cameraDirectionTemp)||(this._cachedCameraDirection.copyFrom(this._cameraDirectionTemp),s.audioContext.listener.setOrientation(this._cameraDirectionTemp.x,this._cameraDirectionTemp.y,this._cameraDirectionTemp.z,0,1,0))):s.audioContext.listener.setOrientation(0,0,0,0,1,0);for(e=0;e<t.mainSoundTrack.soundCollection.length;e++){let s=t.mainSoundTrack.soundCollection[e];s.useCustomAttenuation&&s.updateDistanceFromListener()}if(t.soundTracks)for(e=0;e<t.soundTracks.length;e++)for(let s=0;s<t.soundTracks[e].soundCollection.length;s++){let n=t.soundTracks[e].soundCollection[s];n.useCustomAttenuation&&n.updateDistanceFromListener()}}}}oW._CameraDirection=new tT.Vector3(0,0,-1);let oj=!1;function oX(e){if(!oj){var t;oj=!0,t=o$.SceneComponentConstants.NAME_AUDIO,oq[t]=(t,s,n,i)=>{let a,o=[];if(n.sounds=n.sounds||[],void 0!==t.sounds&&null!==t.sounds)for(let r=0,l=t.sounds.length;r<l;r++){let l=t.sounds[r];oK.AbstractEngine.audioEngine?.canUseWebAudio?(l.url||(l.url=l.name),o[l.url]?n.sounds.push(e.Parse(l,s,i,o[l.url])):(a=e.Parse(l,s,i),o[l.url]=a,n.sounds.push(a))):n.sounds.push(new e(l.name,null,s))}},Object.defineProperty(oz.Scene.prototype,"mainSoundTrack",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),this._mainSoundTrack||(this._mainSoundTrack=new oU(this,{mainTrack:!0})),this._mainSoundTrack},enumerable:!0,configurable:!0}),oz.Scene.prototype.getSoundByName=function(e){let t;for(t=0;t<this.mainSoundTrack.soundCollection.length;t++)if(this.mainSoundTrack.soundCollection[t].name===e)return this.mainSoundTrack.soundCollection[t];if(this.soundTracks){for(let s=0;s<this.soundTracks.length;s++)for(t=0;t<this.soundTracks[s].soundCollection.length;t++)if(this.soundTracks[s].soundCollection[t].name===e)return this.soundTracks[s].soundCollection[t]}return null},Object.defineProperty(oz.Scene.prototype,"audioEnabled",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),e.audioEnabled},set:function(e){let t=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);t||(t=new oW(this),this._addComponent(t)),e?t.enableAudio():t.disableAudio()},enumerable:!0,configurable:!0}),Object.defineProperty(oz.Scene.prototype,"headphone",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),e.headphone},set:function(e){let t=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);t||(t=new oW(this),this._addComponent(t)),e?t.switchAudioModeForHeadphones():t.switchAudioModeForNormalSpeakers()},enumerable:!0,configurable:!0}),Object.defineProperty(oz.Scene.prototype,"audioListenerPositionProvider",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),e.audioListenerPositionProvider},set:function(e){let t=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);if(t||(t=new oW(this),this._addComponent(t)),e&&"function"!=typeof e)throw Error("The value passed to [Scene.audioListenerPositionProvider] must be a function that returns a Vector3");t.audioListenerPositionProvider=e},enumerable:!0,configurable:!0}),Object.defineProperty(oz.Scene.prototype,"audioListenerRotationProvider",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),e.audioListenerRotationProvider},set:function(e){let t=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);if(t||(t=new oW(this),this._addComponent(t)),e&&"function"!=typeof e)throw Error("The value passed to [Scene.audioListenerRotationProvider] must be a function that returns a Vector3");t.audioListenerRotationProvider=e},enumerable:!0,configurable:!0}),Object.defineProperty(oz.Scene.prototype,"audioPositioningRefreshRate",{get:function(){let e=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);return e||(e=new oW(this),this._addComponent(e)),e.audioPositioningRefreshRate},set:function(e){let t=this._getComponent(o$.SceneComponentConstants.NAME_AUDIO);t||(t=new oW(this),this._addComponent(t)),t.audioPositioningRefreshRate=e},enumerable:!0,configurable:!0}),e._SceneComponentInitialization=e=>{let t=e._getComponent(o$.SceneComponentConstants.NAME_AUDIO);t||(t=new oW(e),e._addComponent(t))}}}let oQ={duration:0,shape:"linear"},oY={duration:0,startOffset:0,waitTime:0},oZ={waitTime:0};function oJ(e){return e*Math.PI/180}function o0(e){return 180*e/Math.PI}class o1{get name(){return this._soundV2.name}set name(e){this._soundV2.name=e}get autoplay(){return this._soundV2 instanceof oS||this._optionsV2.autoplay}set autoplay(e){this._optionsV2.autoplay=e}get loop(){return this._soundV2 instanceof oS||this._soundV2.loop}set loop(e){this._soundV2 instanceof oS||this._soundV2&&(this._soundV2.loop=e)}get isPlaying(){return this._soundV2 instanceof oS||this._soundV2?.state===3||!this.isReady()&&this._optionsV2.autoplay}get isPaused(){return!(this._soundV2 instanceof oS)&&5===this._soundV2.state}get maxDistance(){return this._optionsV2.spatialMaxDistance||100}set maxDistance(e){this._optionsV2.spatialMaxDistance=e,!this.useCustomAttenuation&&this._soundV2&&(this._initSpatial(),this._soundV2.spatial.maxDistance=e)}get distanceModel(){return this._optionsV2.spatialDistanceModel||"linear"}set distanceModel(e){this._optionsV2.spatialDistanceModel=e,this._soundV2&&(this._initSpatial(),this._soundV2.spatial.distanceModel=e)}get currentTime(){return this._soundV2 instanceof oS?this._soundV2.engine.currentTime:this._soundV2.currentTime}get spatialSound(){return this._soundV2?._isSpatial??!1}set spatialSound(e){this._soundV2&&(e?this._initSpatial():this._soundV2._isSpatial=!1)}get _onReady(){return this._onReadyObservable||(this._onReadyObservable=new eY.Observable),this._onReadyObservable}constructor(e,t,s,n=null,i){if(this.useCustomAttenuation=!1,this.soundTrackId=-1,this.refDistance=1,this.rolloffFactor=1,this.metadata=null,this.onEndedObservable=new eY.Observable,this._localDirection=new tT.Vector3(1,0,0),this._volume=1,this._isReadyToPlay=!1,this._isDirectional=!1,this._isOutputConnected=!1,this._url=null,this._onReadyObservable=null,this._onReadyToPlay=()=>{this._scene.mainSoundTrack.addSound(this),this._isReadyToPlay=!0,this._readyToPlayCallback(),this._onReadyObservable&&this._onReadyObservable.notifyObservers(),this._optionsV2.autoplay&&this.play()},this._onended=()=>{this.onended&&this.onended(),this.onEndedObservable.notifyObservers(this)},!(s=s||e8.EngineStore.LastCreatedScene))return;this._scene=s,oX(o1),o1._SceneComponentInitialization(s),this._readyToPlayCallback=n||(()=>{}),this._customAttenuationFunction=(e,t,s,n,i)=>t<s?e*(1-t/s):0;const a={analyzerEnabled:!1,autoplay:!1,duration:(i=i||{}).length||0,loop:i.loop||!1,loopEnd:0,loopStart:0,outBus:null,outBusAutoDefault:!1,playbackRate:i.playbackRate||1,pitch:0,skipCodecCheck:i.skipCodecCheck||!1,spatialDistanceModel:i.distanceModel,spatialEnabled:i.spatialSound,spatialMaxDistance:i.maxDistance,spatialMinDistance:i.refDistance,spatialRolloffFactor:i.rolloffFactor,stereoEnabled:!1,startOffset:i.offset||0,volume:i.volume??1};this._volume=i.volume??1,aP(a)&&(a.spatialAutoUpdate=!1,a.spatialConeInnerAngle=ak.coneInnerAngle,a.spatialConeOuterAngle=ak.coneOuterAngle,a.spatialConeOuterVolume=ak.coneOuterVolume,a.spatialMinUpdateTime=0,a.spatialOrientation=ak.orientation.clone(),a.spatialPanningModel=this._scene.headphone?"HRTF":"equalpower",a.spatialPosition=ak.position.clone(),a.spatialRotation=ak.rotation.clone(),a.spatialRotationQuaternion=ak.rotationQuaternion.clone(),void 0===a.spatialMaxDistance&&(a.spatialMaxDistance=100)),this._optionsV2={...a},this._optionsV2.autoplay=i.autoplay||!1,this.useCustomAttenuation=i.useCustomAttenuation??!1,this.useCustomAttenuation&&(a.spatialMaxDistance=Number.MAX_VALUE,a.volume=0);let o=i?.streaming||!1;if(!oK.AbstractEngine.audioEngine)return;const r=oK.AbstractEngine.audioEngine._v2,l=()=>{if(o){let s=new oD(e,r,{preloadCount:0,...a});return s._initAsync(t,a).then(()=>{s.preloadInstancesAsync(1).then(this._onReadyToPlay)}),s}{let s=new oN(e,r,a);return s._initAsync(t,a).then(this._onReadyToPlay),s}};if(t)if("string"==typeof t)this._url=t,this._soundV2=l();else if(t instanceof ArrayBuffer)o=!1,this._soundV2=l();else if(t instanceof HTMLMediaElement)o=!0,this._soundV2=l();else if(t instanceof MediaStream){const s=new MediaStreamAudioSourceNode(r._audioContext,{mediaStream:t});this._soundV2=new oS(e,s,r,a),this._soundV2._initAsync(a).then(this._onReadyToPlay)}else t instanceof AudioBuffer?(o=!1,this._soundV2=l()):Array.isArray(t)&&(this._soundV2=l());else this._soundV2=new oN(e,r,a);if(!this._soundV2)return void e3.Logger.Error("Parameter must be a URL to the sound, an Array of URLs (.mp3 & .ogg) or an ArrayBuffer of the sound.");this._soundV2 instanceof oS||this._soundV2.onEndedObservable.add(this._onended)}dispose(){this.isPlaying&&this.stop(),this._isReadyToPlay=!1,-1===this.soundTrackId?this._scene.mainSoundTrack.removeSound(this):this._scene.soundTracks&&this._scene.soundTracks[this.soundTrackId].removeSound(this),this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._connectedTransformNode=null),this._soundV2.dispose()}isReady(){return this._isReadyToPlay}getClassName(){return"Sound"}setAudioBuffer(e){!this._isReadyToPlay&&this._soundV2 instanceof oN&&this._soundV2._initAsync(e,this._optionsV2).then(this._onReadyToPlay)}updateOptions(e){if(e){if(this.loop=e.loop??this.loop,this.maxDistance=e.maxDistance??this.maxDistance,this.useCustomAttenuation=e.useCustomAttenuation??this.useCustomAttenuation,this.rolloffFactor=e.rolloffFactor??this.rolloffFactor,this.refDistance=e.refDistance??this.refDistance,this.distanceModel=e.distanceModel??this.distanceModel,void 0!==e.playbackRate&&this.setPlaybackRate(e.playbackRate),void 0!==e.spatialSound&&(this.spatialSound=e.spatialSound),void 0!==e.volume&&this.setVolume(e.volume),this._soundV2 instanceof oN){let t=!1;void 0!==e.offset&&(this._optionsV2.startOffset=e.offset,t=!0),void 0!==e.length&&(this._soundV2.duration=e.length,t=!0),t&&this.isPaused&&this.stop()}this._updateSpatialParameters()}}_updateSpatialParameters(){if(!this.spatialSound)return;let e=this._soundV2.spatial;this.useCustomAttenuation?(e.distanceModel="linear",e.minDistance=1,e.maxDistance=Number.MAX_VALUE,e.rolloffFactor=1,e.panningModel="equalpower"):(e.distanceModel=this.distanceModel,e.minDistance=this.refDistance,e.maxDistance=this.maxDistance,e.rolloffFactor=this.rolloffFactor,e.panningModel=this._optionsV2.spatialPanningModel||"equalpower")}switchPanningModelToHRTF(){this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.panningModel="HRTF")}switchPanningModelToEqualPower(){this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.panningModel="equalpower")}connectToSoundTrackAudioNode(e){let t=this._soundV2._outNode;t&&(this._isOutputConnected&&t.disconnect(),t.connect(e),this._isOutputConnected=!0)}setDirectionalCone(e,t,s){t<e?e3.Logger.Error("setDirectionalCone(): outer angle of the cone must be superior or equal to the inner angle."):(this._optionsV2.spatialConeInnerAngle=oJ(e),this._optionsV2.spatialConeOuterAngle=oJ(t),this._optionsV2.spatialConeOuterVolume=s,this._initSpatial(),this._soundV2.spatial.coneInnerAngle=this._optionsV2.spatialConeInnerAngle,this._soundV2.spatial.coneOuterAngle=this._optionsV2.spatialConeOuterAngle,this._soundV2.spatial.coneOuterVolume=s,this._isDirectional=!0,this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._optionsV2.startOffset,this._optionsV2.duration)))}get directionalConeInnerAngle(){return o0("number"==typeof this._optionsV2.spatialConeInnerAngle?this._optionsV2.spatialConeInnerAngle:ak.coneInnerAngle)}set directionalConeInnerAngle(e){if((e=oJ(e))!=this._optionsV2.spatialConeInnerAngle){if(this.directionalConeOuterAngle<e)return void e3.Logger.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");this._optionsV2.spatialConeInnerAngle=e,this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.coneInnerAngle=e)}}get directionalConeOuterAngle(){return o0("number"==typeof this._optionsV2.spatialConeOuterAngle?this._optionsV2.spatialConeOuterAngle:ak.coneOuterAngle)}set directionalConeOuterAngle(e){if((e=oJ(e))!=this._optionsV2.spatialConeOuterAngle){if(e<this.directionalConeInnerAngle)return void e3.Logger.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");this._optionsV2.spatialConeOuterAngle=e,this.spatialSound&&(this._initSpatial(),this._soundV2.spatial.coneOuterAngle=e)}}setPosition(e){!(this._optionsV2.spatialPosition&&e.equals(this._optionsV2.spatialPosition))&&(this._optionsV2.spatialPosition||(this._optionsV2.spatialPosition=tT.Vector3.Zero()),this._optionsV2.spatialPosition.copyFrom(e),!this.spatialSound||isNaN(e.x)||isNaN(e.y)||isNaN(e.z)||(this._initSpatial(),this._soundV2.spatial.position=e))}setLocalDirectionToMesh(e){this._localDirection=e,this._connectedTransformNode&&this.isPlaying&&this._updateDirection()}_updateDirection(){if(!this._connectedTransformNode||!this.spatialSound)return;let e=this._connectedTransformNode.getWorldMatrix(),t=tT.Vector3.TransformNormal(this._localDirection,e);t.normalize(),this._initSpatial(),this._soundV2.spatial.orientation=t}_initSpatial(){this._soundV2._isSpatial=!0,void 0===this._optionsV2.spatialDistanceModel&&(this._optionsV2.spatialDistanceModel="linear",this._soundV2.spatial.distanceModel="linear"),void 0===this._optionsV2.spatialMaxDistance&&(this._optionsV2.spatialMaxDistance=100,this._soundV2.spatial.maxDistance=100)}updateDistanceFromListener(){if(this._soundV2._outNode&&this._connectedTransformNode&&this.useCustomAttenuation&&this._scene.activeCamera){let e=this._scene.audioListenerPositionProvider?this._connectedTransformNode.position.subtract(this._scene.audioListenerPositionProvider()).length():this._connectedTransformNode.getDistanceToCamera(this._scene.activeCamera);this._soundV2.volume=this._customAttenuationFunction(this._volume,e,this.maxDistance,this.refDistance,this.rolloffFactor)}}setAttenuationFunction(e){this._customAttenuationFunction=e}play(e,t,s){let n=oK.AbstractEngine.audioEngine;if(n?.unlock(),!(this._soundV2 instanceof oS)&&this._isReadyToPlay&&this._scene.audioEnabled){5===this._soundV2.state&&(void 0!==e||void 0!==t||void 0!==s)&&this._soundV2.stop();try{oY.duration=s||0,oY.startOffset=void 0!==t&&t||this._optionsV2.startOffset,oY.waitTime=e||0,oY.loop=void 0,oY.loopStart=void 0,oY.loopEnd=void 0,oY.volume=void 0,n?.unlocked?this._soundV2.play(oY):setTimeout(()=>{this._soundV2.play(oY)},500)}catch(e){e3.Logger.Error("Error while trying to play audio: "+this.name+", "+e.message)}}}stop(e){!this._soundV2||this._soundV2 instanceof oS||(oZ.waitTime=e||0,this._soundV2.stop(oZ))}pause(){!this._soundV2||this._soundV2 instanceof oS||this._soundV2.pause()}setVolume(e,t){this.isReady()?(oQ.duration=t||0,this._soundV2.setVolume(e,oQ),this._volume=e):this._onReady.addOnce(()=>{this.setVolume(e,t)})}setPlaybackRate(e){this._soundV2 instanceof oN&&(this._soundV2.playbackRate=e)}getPlaybackRate(){return this._soundV2 instanceof oN?this._soundV2.playbackRate:1}getVolume(){return this._volume}attachToMesh(e){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=e,!this.spatialSound&&(this.spatialSound=!0,this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._optionsV2.startOffset,this._optionsV2.duration))),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=e=>this._onRegisterAfterWorldMatrixUpdate(e),this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)}detachFromMesh(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)}_onRegisterAfterWorldMatrixUpdate(e){if(e.getBoundingInfo){let t=e.getBoundingInfo();this.setPosition(t.boundingSphere.centerWorld)}else this.setPosition(e.absolutePosition);this._isDirectional&&this.isPlaying&&this._updateDirection()}clone(){if(!(this._soundV2 instanceof oN))return null;let e={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},t=new o1(this.name+"_cloned",this._soundV2.buffer,this._scene,null,e);return t._optionsV2=this._optionsV2,this.useCustomAttenuation&&t.setAttenuationFunction(this._customAttenuationFunction),t}getAudioBuffer(){return this._soundV2 instanceof oN?this._soundV2.buffer._audioBuffer:null}getSoundSource(){return null}getSoundGain(){return this._soundV2._outNode}serialize(){let e={name:this.name,url:this._url,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this.getPlaybackRate(),panningModel:this._soundV2.spatial.panningModel,soundTrackId:this.soundTrackId,metadata:this.metadata};return this.spatialSound&&(this._connectedTransformNode&&(e.connectedMeshId=this._connectedTransformNode.id),e.position=this._soundV2.spatial.position.asArray(),e.refDistance=this.refDistance,e.distanceModel=this.distanceModel,e.isDirectional=this._isDirectional,e.localDirectionToMesh=this._localDirection.asArray(),e.coneInnerAngle=this.directionalConeInnerAngle,e.coneOuterAngle=this.directionalConeOuterAngle,e.coneOuterGain=this._soundV2.spatial.coneOuterVolume),e}static Parse(e,t,s,n){let i,a,o=e.name;i=e.url?s+e.url:s+o;let r={autoplay:e.autoplay,loop:e.loop,volume:e.volume,spatialSound:e.spatialSound,maxDistance:e.maxDistance,rolloffFactor:e.rolloffFactor,refDistance:e.refDistance,distanceModel:e.distanceModel,playbackRate:e.playbackRate};if(n?(a=new o1(o,new ArrayBuffer(0),t,null,r),(0,sG._RetryWithInterval)(()=>n._isReadyToPlay,()=>{let e=n.getAudioBuffer();e&&a.setAudioBuffer(e),a._isReadyToPlay=!0,a.autoplay&&a.play(0,n._optionsV2.startOffset,n._optionsV2.duration)},void 0,300)):(a=new o1(o,i,t,()=>{t.removePendingData(a)},r),t.addPendingData(a)),e.position){let t=tT.Vector3.FromArray(e.position);a.setPosition(t)}if(e.isDirectional&&(a.setDirectionalCone(e.coneInnerAngle||360,e.coneOuterAngle||360,e.coneOuterGain||0),e.localDirectionToMesh)){let t=tT.Vector3.FromArray(e.localDirectionToMesh);a.setLocalDirectionToMesh(t)}if(e.connectedMeshId){let s=t.getMeshById(e.connectedMeshId);s&&a.attachToMesh(s)}return e.metadata&&(a.metadata=e.metadata),a}}o1._SceneComponentInitialization=e=>{throw(0,oH._WarnImport)("AudioSceneComponent")},oX(o1);class o2{constructor(e,t,s){this.frame=e,this.action=t,this.onlyOnce=s,this.isDone=!1}_clone(){return new o2(this.frame,this.action,this.onlyOnce)}}class o3{constructor(e,t,s){if(this.loop=!1,this._coneInnerAngle=360,this._coneOuterAngle=360,this._volume=1,this.isPlaying=!1,this.isPaused=!1,this._sounds=[],this._weights=[],t.length!==s.length)throw Error("Sounds length does not equal weights length");this.loop=e,this._weights=s;let n=0;for(const e of s)n+=e;const i=n>0?1/n:0;for(let e=0;e<this._weights.length;e++)this._weights[e]*=i;for(const e of(this._sounds=t,this._sounds))e.onEndedObservable.add(()=>{this._onended()})}get directionalConeInnerAngle(){return this._coneInnerAngle}set directionalConeInnerAngle(e){if(e!==this._coneInnerAngle){if(this._coneOuterAngle<e)return void e3.Logger.Error("directionalConeInnerAngle: outer angle of the cone must be superior or equal to the inner angle.");for(let t of(this._coneInnerAngle=e,this._sounds))t.directionalConeInnerAngle=e}}get directionalConeOuterAngle(){return this._coneOuterAngle}set directionalConeOuterAngle(e){if(e!==this._coneOuterAngle){if(e<this._coneInnerAngle)return void e3.Logger.Error("directionalConeOuterAngle: outer angle of the cone must be superior or equal to the inner angle.");for(let t of(this._coneOuterAngle=e,this._sounds))t.directionalConeOuterAngle=e}}get volume(){return this._volume}set volume(e){if(e!==this._volume)for(let t of this._sounds)t.setVolume(e)}_onended(){void 0!==this._currentIndex&&(this._sounds[this._currentIndex].autoplay=!1),this.loop&&this.isPlaying?this.play():this.isPlaying=!1}pause(){this.isPlaying&&(this.isPaused=!0,void 0!==this._currentIndex&&this._sounds[this._currentIndex].pause())}stop(){this.isPlaying=!1,void 0!==this._currentIndex&&this._sounds[this._currentIndex].stop()}play(e){if(!this.isPaused){this.stop();let e=Math.random(),t=0;for(let s=0;s<this._weights.length;s++)if(e<=(t+=this._weights[s])){this._currentIndex=s;break}}let t=this._sounds[this._currentIndex??0];t.isReady()?t.play(0,this.isPaused?void 0:e):t.autoplay=!0,this.isPlaying=!0,this.isPaused=!1}}let o8="MSFT_audio_emitter";class o4{constructor(e){this.name=o8,this._loader=e,this.enabled=this._loader.isExtensionUsed(o8)}dispose(){this._loader=null,this._clips=null,this._emitters=null}onLoading(){let e=this._loader.gltf.extensions;if(e&&e[this.name]){let t=e[this.name];this._clips=t.clips,this._emitters=t.emitters,sR.Assign(this._clips),sR.Assign(this._emitters)}}loadSceneAsync(e,t){return sI.LoadExtensionAsync(e,t,this.name,async(s,n)=>{let i=[];for(let a of(i.push(this._loader.loadSceneAsync(e,t)),n.emitters)){let e=sR.Get(`${s}/emitters`,this._emitters,a);if(void 0!=e.refDistance||void 0!=e.maxDistance||void 0!=e.rolloffFactor||void 0!=e.distanceModel||void 0!=e.innerAngle||void 0!=e.outerAngle)throw Error(`${s}: Direction or Distance properties are not allowed on emitters attached to a scene`);i.push(this._loadEmitterAsync(`${s}/emitters/${e.index}`,e))}await Promise.all(i)})}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(e,n)=>{let i=[],a=await this._loader.loadNodeAsync(e,t,t=>{for(let s of n.emitters){let n=sR.Get(`${e}/emitters`,this._emitters,s);i.push(this._loadEmitterAsync(`${e}/emitters/${n.index}`,n).then(()=>{for(let e of n._babylonSounds)e.attachToMesh(t),(void 0!=n.innerAngle||void 0!=n.outerAngle)&&(e.setLocalDirectionToMesh(tT.Vector3.Forward()),e.setDirectionalCone(2*eZ.Tools.ToDegrees(void 0==n.innerAngle?Math.PI:n.innerAngle),2*eZ.Tools.ToDegrees(void 0==n.outerAngle?Math.PI:n.outerAngle),0))}))}s(t)});return await Promise.all(i),a})}loadAnimationAsync(e,t){return sI.LoadExtensionAsync(e,t,this.name,async(s,n)=>{let i=await this._loader.loadAnimationAsync(e,t),a=[];for(let o of(sR.Assign(n.events),n.events))a.push(this._loadAnimationEventAsync(`${s}/events/${o.index}`,e,t,o,i));return await Promise.all(a),i})}_loadClipAsync(e,t){let s;if(t._objectURL)return t._objectURL;if(t.uri)s=this._loader.loadUriAsync(e,t,t.uri);else{let n=sR.Get(`${e}/bufferView`,this._loader.gltf.bufferViews,t.bufferView);s=this._loader.loadBufferViewAsync(`/bufferViews/${n.index}`,n)}return t._objectURL=s.then(e=>{let s=(0,tZ.GetBlobBufferSource)(e);return URL.createObjectURL(new Blob([s],{type:t.mimeType}))}),t._objectURL}_loadEmitterAsync(e,t){if(t._babylonSounds=t._babylonSounds||[],!t._babylonData){let e=[],s=t.name||`emitter${t.index}`,n={loop:!1,autoplay:!1,volume:void 0==t.volume?1:t.volume};for(let i=0;i<t.clips.length;i++){let a=`/extensions/${this.name}/clips`,o=sR.Get(a,this._clips,t.clips[i].clip);e.push(this._loadClipAsync(`${a}/${t.clips[i].clip}`,o).then(e=>{let a=t._babylonSounds[i]=new o1(s,e,this._loader.babylonScene,null,n);a.refDistance=t.refDistance||1,a.maxDistance=t.maxDistance||256,a.rolloffFactor=t.rolloffFactor||1,a.distanceModel=t.distanceModel||"exponential"}))}let i=Promise.all(e).then(()=>{let e=t.clips.map(e=>e.weight||1),s=new o3(t.loop||!1,t._babylonSounds,e);t.innerAngle&&(s.directionalConeInnerAngle=2*eZ.Tools.ToDegrees(t.innerAngle)),t.outerAngle&&(s.directionalConeOuterAngle=2*eZ.Tools.ToDegrees(t.outerAngle)),t.volume&&(s.volume=t.volume),t._babylonData.sound=s});t._babylonData={loaded:i}}return t._babylonData.loaded}_getEventAction(e,t,s,n,i){switch(s){case"play":return e=>{t.play((i||0)+(e-n))};case"stop":return()=>{t.stop()};case"pause":return()=>{t.pause()};default:throw Error(`${e}: Unsupported action ${s}`)}}_loadAnimationEventAsync(e,t,s,n,i){if(0==i.targetedAnimations.length)return Promise.resolve();let a=i.targetedAnimations[0],o=n.emitter,r=sR.Get(`/extensions/${this.name}/emitters`,this._emitters,o);return this._loadEmitterAsync(e,r).then(()=>{let t=r._babylonData.sound;if(t){let s=new o2(n.time,this._getEventAction(e,t,n.action,n.time,n.startOffset));a.animation.addEvent(s),i.onAnimationGroupEndObservable.add(()=>{t.stop()}),i.onAnimationGroupPauseObservable.add(()=>{t.pause()})}})}}let o5=!1;function o7(){o5||(o5=!0,sM(o8),sw(o8,!0,e=>new o4(e)))}e.s(["MSFT_audio_emitter",0,o4,"RegisterMSFT_audio_emitter",0,o7],20943),o7(),e.s([],8842),e.s([],62411);let o9="MSFT_lod";class o6{constructor(e){this.name=o9,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new eY.Observable,this.onMaterialLODsLoadedObservable=new eY.Observable,this._bufferLODs=[],this._nodeIndexLOD=null,this._nodeSignalLODs=[],this._nodePromiseLODs=[],this._nodeBufferLODs=[],this._materialIndexLOD=null,this._materialSignalLODs=[],this._materialPromiseLODs=[],this._materialBufferLODs=[],this._loader=e,this.maxLODsToLoad=this._loader.parent.extensionOptions[o9]?.maxLODsToLoad??this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(o9)}dispose(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()}onReady(){for(let e=0;e<this._nodePromiseLODs.length;e++){let t=Promise.all(this._nodePromiseLODs[e]).then(()=>{0!==e&&(this._loader.endPerformanceCounter(`Node LOD ${e}`),this._loader.log(`Loaded node LOD ${e}`)),this.onNodeLODsLoadedObservable.notifyObservers(e),e!==this._nodePromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Node LOD ${e+1}`),this._loadBufferLOD(this._nodeBufferLODs,e+1),this._nodeSignalLODs[e]&&this._nodeSignalLODs[e].resolve())});this._loader._completePromises.push(t)}for(let e=0;e<this._materialPromiseLODs.length;e++){let t=Promise.all(this._materialPromiseLODs[e]).then(()=>{0!==e&&(this._loader.endPerformanceCounter(`Material LOD ${e}`),this._loader.log(`Loaded material LOD ${e}`)),this.onMaterialLODsLoadedObservable.notifyObservers(e),e!==this._materialPromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Material LOD ${e+1}`),this._loadBufferLOD(this._materialBufferLODs,e+1),this._materialSignalLODs[e]&&this._materialSignalLODs[e].resolve())});this._loader._completePromises.push(t)}}loadSceneAsync(e,t){let s=this._loader.loadSceneAsync(e,t);return this._loadBufferLOD(this._bufferLODs,0),s}loadNodeAsync(e,t,s){return sI.LoadExtensionAsync(e,t,this.name,async(e,n)=>{let i,a=this._getLODs(e,t,this._loader.gltf.nodes,n.ids);this._loader.logOpen(`${e}`);for(let e=0;e<a.length;e++){let t=a[e];0!==e&&(this._nodeIndexLOD=e,this._nodeSignalLODs[e]=this._nodeSignalLODs[e]||new s_);let n=e=>{s(e),e.setEnabled(!1)},o=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,n).then(t=>{if(0!==e){let t=a[e-1];t._babylonTransformNode&&(this._disposeTransformNode(t._babylonTransformNode),delete t._babylonTransformNode)}return t.setEnabled(!0),t});this._nodePromiseLODs[e]=this._nodePromiseLODs[e]||[],0===e?i=o:(this._nodeIndexLOD=null,this._nodePromiseLODs[e].push(o))}return this._loader.logClose(),await i})}_loadMaterialAsync(e,t,s,n,i){return this._nodeIndexLOD?null:sI.LoadExtensionAsync(e,t,this.name,async(e,a)=>{let o,r=this._getLODs(e,t,this._loader.gltf.materials,a.ids);this._loader.logOpen(`${e}`);for(let e=0;e<r.length;e++){let t=r[e];0!==e&&(this._materialIndexLOD=e);let a=this._loader._loadMaterialAsync(`/materials/${t.index}`,t,s,n,t=>{0===e&&i(t)}).then(t=>{if(0!==e){i(t);let s=r[e-1]._data;s[n]&&(this._disposeMaterials([s[n].babylonMaterial]),delete s[n])}return t});this._materialPromiseLODs[e]=this._materialPromiseLODs[e]||[],0===e?o=a:(this._materialIndexLOD=null,this._materialPromiseLODs[e].push(a))}return this._loader.logClose(),await o})}_loadUriAsync(e,t,s){if(null!==this._nodeIndexLOD){this._loader.log("deferred");let n=this._nodeIndexLOD-1;return this._nodeSignalLODs[n]=this._nodeSignalLODs[n]||new s_,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then(async()=>await this._loader.loadUriAsync(e,t,s))}if(null!==this._materialIndexLOD){this._loader.log("deferred");let n=this._materialIndexLOD-1;return this._materialSignalLODs[n]=this._materialSignalLODs[n]||new s_,this._materialSignalLODs[n].promise.then(async()=>await this._loader.loadUriAsync(e,t,s))}return null}loadBufferAsync(e,t,s,n){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);let t=async(e,t)=>{let i=s+n-1,a=e[t];return a?(a.start=Math.min(a.start,s),a.end=Math.max(a.end,i)):(a={start:s,end:i,loaded:new s_},e[t]=a),await a.loaded.promise.then(e=>new Uint8Array(e.buffer,e.byteOffset+s-a.start,n))};return(this._loader.log("deferred"),null!==this._nodeIndexLOD)?t(this._nodeBufferLODs,this._nodeIndexLOD):null!==this._materialIndexLOD?t(this._materialBufferLODs,this._materialIndexLOD):t(this._bufferLODs,0)}return null}_loadBufferLOD(e,t){let s=e[t];s&&(this._loader.log(`Loading buffer range [${s.start}-${s.end}]`),this._loader.bin.readAsync(s.start,s.end-s.start+1).then(e=>{s.loaded.resolve(e)},e=>{s.loaded.reject(e)}))}_getLODs(e,t,s,n){if(this.maxLODsToLoad<=0)throw Error("maxLODsToLoad must be greater than zero");let i=[];for(let t=n.length-1;t>=0;t--)if(i.push(sR.Get(`${e}/ids/${n[t]}`,s,n[t])),i.length===this.maxLODsToLoad)return i;return i.push(t),i}_disposeTransformNode(e){let t=[],s=e.material;for(let n of(s&&t.push(s),e.getChildMeshes()))n.material&&t.push(n.material);e.dispose();let n=t.filter(e=>this._loader.babylonScene.meshes.every(t=>t.material!=e));this._disposeMaterials(n)}_disposeMaterials(e){let t={};for(let s of e){for(let e of s.getActiveTextures())t[e.uniqueId]=e;s.dispose()}for(let e in t)for(let s of this._loader.babylonScene.materials)s.hasTexture(t[e])&&delete t[e];for(let e in t)t[e].dispose()}}let re=!1;function rt(){re||(re=!0,sM(o9),sw(o9,!0,e=>new o6(e)))}e.s(["MSFT_lod",0,o6,"RegisterMSFT_lod",0,rt],80711),rt(),e.s([],21388),e.s([],96740);let rs="MSFT_minecraftMesh";class rn{constructor(e){this.name=rs,this._loader=e,this.enabled=this._loader.isExtensionUsed(rs)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtraAsync(e,t,this.name,async(n,i)=>{if(i){if(!this._loader._pbrMaterialImpls.get("pbr"))throw Error(`${n}: Material type not supported`);let i=this._loader.loadMaterialPropertiesAsync(e,t,s);return s.needAlphaBlending()&&(s.forceDepthWrite=!0,s.separateCullingPass=!0),s.backFaceCulling=s.forceDepthWrite,s.twoSidedLighting=!0,await i}})}}let ri=!1;function ra(){ri||(ri=!0,sM(rs),sw(rs,!0,e=>new rn(e)))}e.s(["MSFT_minecraftMesh",0,rn,"RegisterMSFT_minecraftMesh",0,ra],29691),ra(),e.s([],44040),e.s([],94779);let ro="MSFT_sRGBFactors";class rr{constructor(e){this.name=ro,this._loader=e,this.enabled=this._loader.isExtensionUsed(ro)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,s){return sI.LoadExtraAsync(e,t,this.name,async(n,i)=>{if(i){let n=this._loader._getOrCreateMaterialAdapter(s),i=this._loader.loadMaterialPropertiesAsync(e,t,s),a=s.getScene().getEngine().useExactSrgbConversions;return n.baseColorTexture||n.baseColor.toLinearSpaceToRef(n.baseColor,a),n.specularColorTexture||n.specularColor.toLinearSpaceToRef(n.specularColor,a),await i}})}}let rl=!1;function rh(){rl||(rl=!0,sM(ro),sw(ro,!0,e=>new rr(e)))}e.s(["MSFT_sRGBFactors",0,rr,"RegisterMSFT_sRGBFactors",0,rh],32283),rh(),e.s([],56629),e.s([],85246);var ru=e.i(87090);let rc={},rd={};var rp=e.i(57011),r_=e.i(95754),rm=e.i(50137);async function rf(t,s){let n=await Promise.all(t.allBlocks.map(async t=>{let s=function(t){switch(t){case"FlowGraphPlayAnimationBlock":return async()=>(await e.A(26078)).FlowGraphPlayAnimationBlock;case"FlowGraphStopAnimationBlock":return async()=>(await e.A(67770)).FlowGraphStopAnimationBlock;case"FlowGraphPauseAnimationBlock":return async()=>(await e.A(49630)).FlowGraphPauseAnimationBlock;case"FlowGraphInterpolationBlock":return async()=>(await e.A(6219)).FlowGraphInterpolationBlock;case"FlowGraphSceneReadyEventBlock":return async()=>(await e.A(617)).FlowGraphSceneReadyEventBlock;case"FlowGraphSceneTickEventBlock":return async()=>(await e.A(61089)).FlowGraphSceneTickEventBlock;case"FlowGraphSendCustomEventBlock":return async()=>(await e.A(1121)).FlowGraphSendCustomEventBlock;case"FlowGraphReceiveCustomEventBlock":return async()=>(await e.A(83216)).FlowGraphReceiveCustomEventBlock;case"FlowGraphStopEventPropagationBlock":return async()=>(await e.A(6751)).FlowGraphStopEventPropagationBlock;case"FlowGraphMeshPickEventBlock":return async()=>(await e.A(32111)).FlowGraphMeshPickEventBlock;case"FlowGraphEBlock":return async()=>(await e.A(87239)).FlowGraphEBlock;case"FlowGraphPIBlock":return async()=>(await e.A(87239)).FlowGraphPiBlock;case"FlowGraphTauBlock":return async()=>(await e.A(87239)).FlowGraphTauBlock;case"FlowGraphInfBlock":return async()=>(await e.A(87239)).FlowGraphInfBlock;case"FlowGraphNaNBlock":return async()=>(await e.A(87239)).FlowGraphNaNBlock;case"FlowGraphRandomBlock":return async()=>(await e.A(87239)).FlowGraphRandomBlock;case"FlowGraphAddBlock":return async()=>(await e.A(87239)).FlowGraphAddBlock;case"FlowGraphSubtractBlock":return async()=>(await e.A(87239)).FlowGraphSubtractBlock;case"FlowGraphMultiplyBlock":return async()=>(await e.A(87239)).FlowGraphMultiplyBlock;case"FlowGraphDivideBlock":return async()=>(await e.A(87239)).FlowGraphDivideBlock;case"FlowGraphAbsBlock":return async()=>(await e.A(87239)).FlowGraphAbsBlock;case"FlowGraphSignBlock":return async()=>(await e.A(87239)).FlowGraphSignBlock;case"FlowGraphTruncBlock":return async()=>(await e.A(87239)).FlowGraphTruncBlock;case"FlowGraphFloorBlock":return async()=>(await e.A(87239)).FlowGraphFloorBlock;case"FlowGraphCeilBlock":return async()=>(await e.A(87239)).FlowGraphCeilBlock;case"FlowGraphRoundBlock":return async()=>(await e.A(87239)).FlowGraphRoundBlock;case"FlowGraphFractBlock":return async()=>(await e.A(87239)).FlowGraphFractionBlock;case"FlowGraphNegationBlock":return async()=>(await e.A(87239)).FlowGraphNegationBlock;case"FlowGraphModuloBlock":return async()=>(await e.A(87239)).FlowGraphModuloBlock;case"FlowGraphMinBlock":return async()=>(await e.A(87239)).FlowGraphMinBlock;case"FlowGraphMaxBlock":return async()=>(await e.A(87239)).FlowGraphMaxBlock;case"FlowGraphClampBlock":return async()=>(await e.A(87239)).FlowGraphClampBlock;case"FlowGraphSaturateBlock":return async()=>(await e.A(87239)).FlowGraphSaturateBlock;case"FlowGraphMathInterpolationBlock":return async()=>(await e.A(87239)).FlowGraphMathInterpolationBlock;case"FlowGraphMathSlerpBlock":return async()=>(await e.A(87239)).FlowGraphMathSlerpBlock;case"FlowGraphSmoothStepBlock":return async()=>(await e.A(87239)).FlowGraphMathSmoothStepBlock;case"FlowGraphRGBToOkLChBlock":return async()=>(await e.A(87239)).FlowGraphRGBToOkLChBlock;case"FlowGraphRGBFromOkLChBlock":return async()=>(await e.A(87239)).FlowGraphRGBFromOkLChBlock;case"FlowGraphEqualityBlock":return async()=>(await e.A(87239)).FlowGraphEqualityBlock;case"FlowGraphLessThanBlock":return async()=>(await e.A(87239)).FlowGraphLessThanBlock;case"FlowGraphLessThanOrEqualBlock":return async()=>(await e.A(87239)).FlowGraphLessThanOrEqualBlock;case"FlowGraphGreaterThanBlock":return async()=>(await e.A(87239)).FlowGraphGreaterThanBlock;case"FlowGraphGreaterThanOrEqualBlock":return async()=>(await e.A(87239)).FlowGraphGreaterThanOrEqualBlock;case"FlowGraphIsNaNBlock":return async()=>(await e.A(87239)).FlowGraphIsNanBlock;case"FlowGraphIsInfBlock":return async()=>(await e.A(87239)).FlowGraphIsInfinityBlock;case"FlowGraphDegToRadBlock":return async()=>(await e.A(87239)).FlowGraphDegToRadBlock;case"FlowGraphRadToDegBlock":return async()=>(await e.A(87239)).FlowGraphRadToDegBlock;case"FlowGraphSinBlock":return async()=>(await e.A(87239)).FlowGraphSinBlock;case"FlowGraphCosBlock":return async()=>(await e.A(87239)).FlowGraphCosBlock;case"FlowGraphTanBlock":return async()=>(await e.A(87239)).FlowGraphTanBlock;case"FlowGraphASinBlock":return async()=>(await e.A(87239)).FlowGraphAsinBlock;case"FlowGraphACosBlock":return async()=>(await e.A(87239)).FlowGraphAcosBlock;case"FlowGraphATanBlock":return async()=>(await e.A(87239)).FlowGraphAtanBlock;case"FlowGraphATan2Block":return async()=>(await e.A(87239)).FlowGraphAtan2Block;case"FlowGraphSinhBlock":return async()=>(await e.A(87239)).FlowGraphSinhBlock;case"FlowGraphCoshBlock":return async()=>(await e.A(87239)).FlowGraphCoshBlock;case"FlowGraphTanhBlock":return async()=>(await e.A(87239)).FlowGraphTanhBlock;case"FlowGraphASinhBlock":return async()=>(await e.A(87239)).FlowGraphAsinhBlock;case"FlowGraphACoshBlock":return async()=>(await e.A(87239)).FlowGraphAcoshBlock;case"FlowGraphATanhBlock":return async()=>(await e.A(87239)).FlowGraphAtanhBlock;case"FlowGraphExponentialBlock":return async()=>(await e.A(87239)).FlowGraphExpBlock;case"FlowGraphLogBlock":return async()=>(await e.A(87239)).FlowGraphLogBlock;case"FlowGraphLog2Block":return async()=>(await e.A(87239)).FlowGraphLog2Block;case"FlowGraphLog10Block":return async()=>(await e.A(87239)).FlowGraphLog10Block;case"FlowGraphSquareRootBlock":return async()=>(await e.A(87239)).FlowGraphSquareRootBlock;case"FlowGraphPowerBlock":return async()=>(await e.A(87239)).FlowGraphPowerBlock;case"FlowGraphCubeRootBlock":return async()=>(await e.A(87239)).FlowGraphCubeRootBlock;case"FlowGraphBitwiseAndBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseAndBlock;case"FlowGraphBitwiseOrBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseOrBlock;case"FlowGraphBitwiseNotBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseNotBlock;case"FlowGraphBitwiseXorBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseXorBlock;case"FlowGraphBitwiseLeftShiftBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseLeftShiftBlock;case"FlowGraphBitwiseRightShiftBlock":return async()=>(await e.A(87239)).FlowGraphBitwiseRightShiftBlock;case"FlowGraphLengthBlock":return async()=>(await e.A(50078)).FlowGraphLengthBlock;case"FlowGraphNormalizeBlock":return async()=>(await e.A(50078)).FlowGraphNormalizeBlock;case"FlowGraphDotBlock":return async()=>(await e.A(50078)).FlowGraphDotBlock;case"FlowGraphCrossBlock":return async()=>(await e.A(50078)).FlowGraphCrossBlock;case"FlowGraphRotate2DBlock":return async()=>(await e.A(50078)).FlowGraphRotate2DBlock;case"FlowGraphRotate3DBlock":return async()=>(await e.A(50078)).FlowGraphRotate3DBlock;case"FlowGraphTransposeBlock":return async()=>(await e.A(42570)).FlowGraphTransposeBlock;case"FlowGraphDeterminantBlock":return async()=>(await e.A(42570)).FlowGraphDeterminantBlock;case"FlowGraphInvertMatrixBlock":return async()=>(await e.A(42570)).FlowGraphInvertMatrixBlock;case"FlowGraphMatrixMultiplicationBlock":return async()=>(await e.A(42570)).FlowGraphMatrixMultiplicationBlock;case"FlowGraphBranchBlock":return async()=>(await e.A(90758)).FlowGraphBranchBlock;case"FlowGraphSetDelayBlock":return async()=>(await e.A(66519)).FlowGraphSetDelayBlock;case"FlowGraphCancelDelayBlock":return async()=>(await e.A(41995)).FlowGraphCancelDelayBlock;case"FlowGraphCallCounterBlock":return async()=>(await e.A(90691)).FlowGraphCallCounterBlock;case"FlowGraphDebounceBlock":return async()=>(await e.A(11560)).FlowGraphDebounceBlock;case"FlowGraphThrottleBlock":return async()=>(await e.A(87966)).FlowGraphThrottleBlock;case"FlowGraphDoNBlock":return async()=>(await e.A(2398)).FlowGraphDoNBlock;case"FlowGraphFlipFlopBlock":return async()=>(await e.A(95322)).FlowGraphFlipFlopBlock;case"FlowGraphForLoopBlock":return async()=>(await e.A(9151)).FlowGraphForLoopBlock;case"FlowGraphMultiGateBlock":return async()=>(await e.A(13559)).FlowGraphMultiGateBlock;case"FlowGraphSequenceBlock":return async()=>(await e.A(5700)).FlowGraphSequenceBlock;case"FlowGraphSwitchBlock":return async()=>(await e.A(3823)).FlowGraphSwitchBlock;case"FlowGraphWaitAllBlock":return async()=>(await e.A(68445)).FlowGraphWaitAllBlock;case"FlowGraphWhileLoopBlock":return async()=>(await e.A(84746)).FlowGraphWhileLoopBlock;case"FlowGraphConsoleLogBlock":return async()=>(await e.A(64869)).FlowGraphConsoleLogBlock;case"FlowGraphConditionalBlock":return async()=>(await e.A(54473)).FlowGraphConditionalDataBlock;case"FlowGraphConstantBlock":return async()=>(await e.A(42690)).FlowGraphConstantBlock;case"FlowGraphTransformCoordinatesSystemBlock":return async()=>(await e.A(41200)).FlowGraphTransformCoordinatesSystemBlock;case"FlowGraphGetAssetBlock":return async()=>(await e.A(55366)).FlowGraphGetAssetBlock;case"FlowGraphGetPropertyBlock":return async()=>(await e.A(9985)).FlowGraphGetPropertyBlock;case"FlowGraphSetPropertyBlock":return async()=>(await e.A(37218)).FlowGraphSetPropertyBlock;case"FlowGraphGetVariableBlock":return async()=>(await e.A(67970)).FlowGraphGetVariableBlock;case"FlowGraphSetVariableBlock":return async()=>(await e.A(30864)).FlowGraphSetVariableBlock;case"FlowGraphJsonPointerParserBlock":return async()=>(await e.A(36359)).FlowGraphJsonPointerParserBlock;case"FlowGraphLeadingZerosBlock":return async()=>(await e.A(87239)).FlowGraphLeadingZerosBlock;case"FlowGraphTrailingZerosBlock":return async()=>(await e.A(87239)).FlowGraphTrailingZerosBlock;case"FlowGraphOneBitsCounterBlock":return async()=>(await e.A(87239)).FlowGraphOneBitsCounterBlock;case"FlowGraphCombineVector2Block":return async()=>(await e.A(1805)).FlowGraphCombineVector2Block;case"FlowGraphCombineVector3Block":return async()=>(await e.A(1805)).FlowGraphCombineVector3Block;case"FlowGraphCombineVector4Block":return async()=>(await e.A(1805)).FlowGraphCombineVector4Block;case"FlowGraphCombineMatrixBlock":return async()=>(await e.A(1805)).FlowGraphCombineMatrixBlock;case"FlowGraphCombineMatrix2DBlock":return async()=>(await e.A(1805)).FlowGraphCombineMatrix2DBlock;case"FlowGraphCombineMatrix3DBlock":return async()=>(await e.A(1805)).FlowGraphCombineMatrix3DBlock;case"FlowGraphExtractVector2Block":return async()=>(await e.A(1805)).FlowGraphExtractVector2Block;case"FlowGraphExtractVector3Block":return async()=>(await e.A(1805)).FlowGraphExtractVector3Block;case"FlowGraphExtractVector4Block":return async()=>(await e.A(1805)).FlowGraphExtractVector4Block;case"FlowGraphExtractMatrixBlock":return async()=>(await e.A(1805)).FlowGraphExtractMatrixBlock;case"FlowGraphExtractMatrix2DBlock":return async()=>(await e.A(1805)).FlowGraphExtractMatrix2DBlock;case"FlowGraphExtractMatrix3DBlock":return async()=>(await e.A(1805)).FlowGraphExtractMatrix3DBlock;case"FlowGraphTransformVectorBlock":return async()=>(await e.A(50078)).FlowGraphTransformBlock;case"FlowGraphTransformCoordinatesBlock":return async()=>(await e.A(50078)).FlowGraphTransformCoordinatesBlock;case"FlowGraphConjugateBlock":return async()=>(await e.A(50078)).FlowGraphConjugateBlock;case"FlowGraphAngleBetweenBlock":return async()=>(await e.A(50078)).FlowGraphAngleBetweenBlock;case"FlowGraphQuaternionFromAxisAngleBlock":return async()=>(await e.A(50078)).FlowGraphQuaternionFromAxisAngleBlock;case"FlowGraphAxisAngleFromQuaternionBlock":return async()=>(await e.A(50078)).FlowGraphAxisAngleFromQuaternionBlock;case"FlowGraphQuaternionFromDirectionsBlock":return async()=>(await e.A(50078)).FlowGraphQuaternionFromDirectionsBlock;case"FlowGraphQuaternionFromUpForwardBlock":return async()=>(await e.A(50078)).FlowGraphQuaternionFromUpForwardBlock;case"FlowGraphQuaternionFromAnglesBlock":return async()=>(await e.A(50078)).FlowGraphQuaternionFromAnglesBlock;case"FlowGraphVectorSlerpBlock":return async()=>(await e.A(50078)).FlowGraphVectorSlerpBlock;case"FlowGraphMatrixDecompose":return async()=>(await e.A(42570)).FlowGraphMatrixDecomposeBlock;case"FlowGraphMatrixCompose":return async()=>(await e.A(42570)).FlowGraphMatrixComposeBlock;case"FlowGraphBooleanToFloat":return async()=>(await e.A(70956)).FlowGraphBooleanToFloat;case"FlowGraphBooleanToInt":return async()=>(await e.A(70956)).FlowGraphBooleanToInt;case"FlowGraphFloatToBoolean":return async()=>(await e.A(70956)).FlowGraphFloatToBoolean;case"FlowGraphIntToBoolean":return async()=>(await e.A(70956)).FlowGraphIntToBoolean;case"FlowGraphIntToFloat":return async()=>(await e.A(70956)).FlowGraphIntToFloat;case"FlowGraphFloatToInt":return async()=>(await e.A(70956)).FlowGraphFloatToInt;case"FlowGraphEasingBlock":return async()=>(await e.A(84289)).FlowGraphEasingBlock;case"FlowGraphBezierCurveEasing":return async()=>(await e.A(73402)).FlowGraphBezierCurveEasingBlock;case"FlowGraphPointerOverEventBlock":return async()=>(await e.A(38813)).FlowGraphPointerOverEventBlock;case"FlowGraphPointerOutEventBlock":return async()=>(await e.A(38723)).FlowGraphPointerOutEventBlock;case"FlowGraphPointerDownEventBlock":return async()=>(await e.A(62207)).FlowGraphPointerDownEventBlock;case"FlowGraphPointerUpEventBlock":return async()=>(await e.A(76763)).FlowGraphPointerUpEventBlock;case"FlowGraphPointerMoveEventBlock":return async()=>(await e.A(76205)).FlowGraphPointerMoveEventBlock;case"FlowGraphKeyDownEventBlock":return async()=>(await e.A(32047)).FlowGraphKeyDownEventBlock;case"FlowGraphKeyUpEventBlock":return async()=>(await e.A(50304)).FlowGraphKeyUpEventBlock;case"FlowGraphIsKeyPressedBlock":return async()=>(await e.A(14613)).FlowGraphIsKeyPressedBlock;case"FlowGraphContextBlock":return async()=>(await e.A(97933)).FlowGraphContextBlock;case"FlowGraphArrayIndexBlock":return async()=>(await e.A(76418)).FlowGraphArrayIndexBlock;case"FlowGraphCodeExecutionBlock":return async()=>(await e.A(1998)).FlowGraphCodeExecutionBlock;case"FlowGraphIndexOfBlock":return async()=>(await e.A(29433)).FlowGraphIndexOfBlock;case"FlowGraphFunctionReference":return async()=>(await e.A(73714)).FlowGraphFunctionReferenceBlock;case"FlowGraphDataSwitchBlock":return async()=>(await e.A(31261)).FlowGraphDataSwitchBlock;case"FlowGraphDebugBlock":return async()=>(await e.A(82819)).FlowGraphDebugBlock;case"FlowGraphPhysicsCollisionEventBlock":return async()=>(await e.A(84026)).FlowGraphPhysicsCollisionEventBlock;case"FlowGraphApplyForceBlock":return async()=>(await e.A(91135)).FlowGraphApplyForceBlock;case"FlowGraphApplyImpulseBlock":return async()=>(await e.A(33210)).FlowGraphApplyImpulseBlock;case"FlowGraphSetLinearVelocityBlock":return async()=>(await e.A(8672)).FlowGraphSetLinearVelocityBlock;case"FlowGraphSetAngularVelocityBlock":return async()=>(await e.A(35530)).FlowGraphSetAngularVelocityBlock;case"FlowGraphSetPhysicsMotionTypeBlock":return async()=>(await e.A(62611)).FlowGraphSetPhysicsMotionTypeBlock;case"FlowGraphGetLinearVelocityBlock":return async()=>(await e.A(80360)).FlowGraphGetLinearVelocityBlock;case"FlowGraphGetAngularVelocityBlock":return async()=>(await e.A(33004)).FlowGraphGetAngularVelocityBlock;case"FlowGraphGetPhysicsMassPropertiesBlock":return async()=>(await e.A(79655)).FlowGraphGetPhysicsMassPropertiesBlock;case"FlowGraphPlaySoundBlock":return async()=>(await e.A(12171)).FlowGraphPlaySoundBlock;case"FlowGraphStopSoundBlock":return async()=>(await e.A(96108)).FlowGraphStopSoundBlock;case"FlowGraphPauseSoundBlock":return async()=>(await e.A(65695)).FlowGraphPauseSoundBlock;case"FlowGraphSetSoundVolumeBlock":return async()=>(await e.A(11915)).FlowGraphSetSoundVolumeBlock;case"FlowGraphSoundEndedEventBlock":return async()=>(await e.A(87283)).FlowGraphSoundEndedEventBlock;case"FlowGraphGetSoundVolumeBlock":return async()=>(await e.A(23888)).FlowGraphGetSoundVolumeBlock;case"FlowGraphIsSoundPlayingBlock":return async()=>(await e.A(46810)).FlowGraphIsSoundPlayingBlock;default:if(rc[t])return rc[t];if(!t.includes("/")){let e=rd[t];if(e&&rc[e])return rc[e]}throw Error(`Unknown block name ${t}`)}}(t.className);return await s()}));return function(e,t,s){let n=t.coordinator.createGraph();e.name&&(n.name=e.name),e.uniqueId&&(n.uniqueId=e.uniqueId);let i=[],a=t.valueParseFunction??rm.defaultValueParseFunction;for(let o=0;o<e.allBlocks.length;o++){let r=function(e,t,s){let n={},i=t.valueParseFunction??rm.defaultValueParseFunction;if(e.config)for(let s in e.config)n[s]=i(s,e.config,t.assetsContainer||t.scene,t.scene);if((0,rm.needsPathConverter)(e.className)){if(!t.pathConverter)throw Error("Block "+e.className+" requires a path converter to be provided in parse options.");n.pathConverter=t.pathConverter}let a=new s(n);a.uniqueId=e.uniqueId;for(let s=0;s<e.dataInputs.length;s++){let n=a.getDataInput(e.dataInputs[s].name);if(n)n.deserialize(e.dataInputs[s]),void 0!==e.dataInputs[s].defaultValue&&(n._defaultValue=i("defaultValue",e.dataInputs[s],t.assetsContainer||t.scene,t.scene));else throw Error("Could not find data input with name "+e.dataInputs[s].name+" in block "+e.className)}for(let t=0;t<e.dataOutputs.length;t++){let s=a.getDataOutput(e.dataOutputs[t].name);if(s)s.deserialize(e.dataOutputs[t]);else throw Error("Could not find data output with name "+e.dataOutputs[t].name+" in block "+e.className)}return a.metadata=e.metadata,a.deserialize&&a.deserialize(e),a}(e.allBlocks[o],{scene:t.coordinator.config.scene,pathConverter:t.pathConverter,assetsContainer:t.coordinator.config.scene,valueParseFunction:a},s[o]);i.push(r),n.addBlock(r),r instanceof rp.FlowGraphEventBlock&&n.addEventBlock(r)}let o=new Map,r=new Map,l=new Map,h=new Map;for(let e of i){for(let t of e.dataInputs)o.set(t.uniqueId,t);for(let t of e.dataOutputs)r.set(t.uniqueId,t);if(e instanceof r_.FlowGraphExecutionBlock){for(let t of e.signalInputs)l.set(t.uniqueId,t);for(let t of e.signalOutputs)h.set(t.uniqueId,t)}}let u=(e,t)=>{-1===e._connectedPoint.indexOf(t)&&e.connectTo(t)};for(let e of i){for(let t of e.dataInputs)for(let e of t.connectedPointIds){let s=r.get(e);if(!s)throw Error("Could not find data out connection with unique id "+e);u(t,s)}for(let t of e.dataOutputs)for(let e of t.connectedPointIds){let s=o.get(e);if(!s)throw Error("Could not find data in connection with unique id "+e);u(t,s)}if(e instanceof r_.FlowGraphExecutionBlock){for(let t of e.signalOutputs)for(let e of t.connectedPointIds){let s=l.get(e);if(!s)throw Error("Could not find signal in connection with unique id "+e);u(t,s)}for(let t of e.signalInputs)for(let e of t.connectedPointIds){let s=h.get(e);if(!s)throw Error("Could not find signal out connection with unique id "+e);u(s,t)}}}for(let t of e.executionContexts??[])!function(e,t,s){let n=t.graph.createContext();e.enableLogging&&(n.enableLogging=!0),n.treatDataAsRightHanded=s||!1;let i=t.valueParseFunction??rm.defaultValueParseFunction;n.uniqueId=e.uniqueId,n.name=e.name??"";let a=n.getScene();if(e._assetsContext){let t=e._assetsContext;n.assetsContext={meshes:t.meshes?.map(e=>a.getMeshById(e)),lights:t.lights?.map(e=>a.getLightByName(e)),cameras:t.cameras?.map(e=>a.getCameraByName(e)),materials:t.materials?.map(e=>a.getMaterialById(e)),textures:t.textures?.map(e=>a.getTextureByName(e)),animations:t.animations?.map(e=>a.animations.find(t=>t.name===e)),skeletons:t.skeletons?.map(e=>a.getSkeletonByName(e)),particleSystems:t.particleSystems?.map(e=>a.getParticleSystemById(e)),animationGroups:t.animationGroups?.map(e=>a.getAnimationGroupByName(e)),transformNodes:t.transformNodes?.map(e=>a.getTransformNodeById(e)),rootNodes:[],multiMaterials:[],morphTargetManagers:[],geometries:[],actionManagers:[],environmentTexture:null,postProcesses:[],sounds:null,effectLayers:[],layers:[],reflectionProbes:[],lensFlareSystems:[],proceduralTextures:[],getNodes:function(){throw Error("Function not implemented.")}}}for(let t in e._userVariables){let s=i(t,e._userVariables,n.assetsContext,a);n.userVariables[t]=s}if(e._variableTypes)for(let t in e._variableTypes)n.setVariableType(t,e._variableTypes[t]);for(let t in e._connectionValues){let s=i(t,e._connectionValues,n.assetsContext,a);n._setConnectionValueByKey(t,s)}}(t,{graph:n,valueParseFunction:a},e.rightHanded);return n}(t,s,n)}e.i(13870);var rg=e.i(97009);function ry(e){let[t,s]=e.split(":");return rb({op:t,extension:s})}function rb(e,t=!0){let s=e.extension?rA[e.extension]?.[e.op]:rx[e.op];if(!s&&(e3.Logger.Warn(`No mapping found for operation ${e.op} and extension ${e.extension||"KHR_interactivity"}`),t)){let t={},s={flows:{}};if(e.inputValueSockets)for(let s in t.values={},e.inputValueSockets)t.values[s]={name:s};return e.outputValueSockets&&(s.values={},Object.keys(e.outputValueSockets).forEach(e=>{s.values[e]={name:e}})),{blocks:[],inputs:t,outputs:s}}return s}function rT(e,t,s){rA[t]||(rA[t]={}),rA[t][e]=s}let rA={BABYLON:{"flow/log":{blocks:["FlowGraphConsoleLogBlock"],inputs:{values:{message:{name:"message"}}}}}},rx={"event/onStart":{blocks:["FlowGraphSceneReadyEventBlock"],outputs:{values:{event:{name:"event"}},flows:{out:{name:"done"}}}},"event/onTick":{blocks:["FlowGraphSceneTickEventBlock"],inputs:{},outputs:{values:{timeSinceLastTick:{name:"deltaTime",gltfType:"number"},event:{name:"event"}},flows:{out:{name:"done"}}}},"event/send":{blocks:["FlowGraphSendCustomEventBlock"],extraProcessor(e,t,s,n,i){if("event/send"!==t.op||!e.configuration||1!==Object.keys(e.configuration).length)throw Error("Receive event should have a single configuration object, the event itself");let a=e.configuration.event,o=a.value?.[0];if("number"!=typeof o)throw Error("Event id should be a number");let r=n.arrays.events[o],l=i[0];return l.config||(l.config={}),l.config.eventId=r.eventId,l.config.eventData=r.eventData,i}},"event/receive":{blocks:["FlowGraphReceiveCustomEventBlock"],outputs:{values:{event:{name:"event"}},flows:{out:{name:"done"}}},validation(e,t){if(!e.configuration)return e3.Logger.Error("Receive event should have a configuration object"),{valid:!1,error:"Receive event should have a configuration object"};let s=e.configuration.event;if(!s)return e3.Logger.Error("Receive event should have a single configuration object, the event itself"),{valid:!1,error:"Receive event should have a single configuration object, the event itself"};let n=s.value?.[0];return"number"!=typeof n?(e3.Logger.Error("Event id should be a number"),{valid:!1,error:"Event id should be a number"}):t.events?.[n]?{valid:!0}:(e3.Logger.Error(`Event with id ${n} not found`),{valid:!1,error:`Event with id ${n} not found`})},extraProcessor(e,t,s,n,i){if("event/receive"!==t.op||!e.configuration||1!==Object.keys(e.configuration).length)throw Error("Receive event should have a single configuration object, the event itself");let a=e.configuration.event,o=a.value?.[0];if("number"!=typeof o)throw Error("Event id should be a number");let r=n.arrays.events[o],l=i[0];return l.config||(l.config={}),l.config.eventId=r.eventId,l.config.eventData=r.eventData,i}},"event/stopPropagation":{blocks:["FlowGraphStopEventPropagationBlock"],inputs:{values:{event:{name:"event"},stopImmediate:{name:"stopImmediate"}},flows:{in:{name:"in"}}},outputs:{flows:{out:{name:"out"}}}},"math/E":rv("FlowGraphEBlock"),"math/Pi":rv("FlowGraphPIBlock"),"math/Tau":rv("FlowGraphTauBlock"),"math/Inf":rv("FlowGraphInfBlock"),"math/NaN":rv("FlowGraphNaNBlock"),"math/abs":rv("FlowGraphAbsBlock"),"math/sign":rv("FlowGraphSignBlock"),"math/trunc":rv("FlowGraphTruncBlock"),"math/floor":rv("FlowGraphFloorBlock"),"math/ceil":rv("FlowGraphCeilBlock"),"math/round":{blocks:["FlowGraphRoundBlock"],configuration:{},inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var a;return(a=i[0]).config||(a.config={}),i[0].config.roundHalfAwayFromZero=!0,i}},"math/fract":rv("FlowGraphFractBlock"),"math/neg":rv("FlowGraphNegationBlock"),"math/add":rv("FlowGraphAddBlock",["a","b"],!0),"math/sub":rv("FlowGraphSubtractBlock",["a","b"],!0),"math/mul":{blocks:["FlowGraphMultiplyBlock"],extraProcessor(e,t,s,n,i){var a;(a=i[0]).config||(a.config={}),i[0].config.useMatrixPerComponent=!0,i[0].config.preventIntegerFloatArithmetic=!0;let o=-1;return Object.keys(e.values||{}).find(t=>e.values?.[t].type!==void 0&&(o=e.values[t].type,!0)),-1!==o&&(i[0].config.type=n.arrays.types[o].flowGraphType),i},validation:e=>e.values?rw(e):{valid:!0}},"math/div":rv("FlowGraphDivideBlock",["a","b"],!0),"math/rem":rv("FlowGraphModuloBlock",["a","b"]),"math/min":rv("FlowGraphMinBlock",["a","b"]),"math/max":rv("FlowGraphMaxBlock",["a","b"]),"math/clamp":rv("FlowGraphClampBlock",["a","b","c"]),"math/saturate":rv("FlowGraphSaturateBlock"),"math/mix":rv("FlowGraphMathInterpolationBlock",["a","b","c"]),"math/smoothStep":rv("FlowGraphSmoothStepBlock",["a","b","c"]),"math/rgbToOkLCh":{blocks:["FlowGraphRGBToOkLChBlock"],inputs:{values:{r:{name:"r",gltfType:"number"},g:{name:"g",gltfType:"number"},b:{name:"b",gltfType:"number"}}},outputs:{values:{l:{name:"l"},c:{name:"c"},h:{name:"h"}}}},"math/rgbFromOkLCh":{blocks:["FlowGraphRGBFromOkLChBlock"],inputs:{values:{l:{name:"l",gltfType:"number"},c:{name:"c",gltfType:"number"},h:{name:"h",gltfType:"number"}}},outputs:{values:{r:{name:"r"},g:{name:"g"},b:{name:"b"}}}},"math/quatSlerp":rv("FlowGraphMathSlerpBlock",["a","b","c"]),"math/slerp":rv("FlowGraphVectorSlerpBlock",["a","b","c"]),"math/eq":rv("FlowGraphEqualityBlock",["a","b"]),"ref/eq":rv("FlowGraphEqualityBlock",["a","b"]),"math/lt":rv("FlowGraphLessThanBlock",["a","b"]),"math/le":rv("FlowGraphLessThanOrEqualBlock",["a","b"]),"math/gt":rv("FlowGraphGreaterThanBlock",["a","b"]),"math/ge":rv("FlowGraphGreaterThanOrEqualBlock",["a","b"]),"math/isNaN":rv("FlowGraphIsNaNBlock"),"math/isInf":rv("FlowGraphIsInfBlock"),"math/select":{blocks:["FlowGraphConditionalBlock"],inputs:{values:{condition:{name:"condition"},a:{name:"onTrue"},b:{name:"onFalse"}}},outputs:{values:{value:{name:"output"}}}},"math/random":{blocks:["FlowGraphRandomBlock"],outputs:{values:{value:{name:"value"}}}},"math/sin":rv("FlowGraphSinBlock"),"math/cos":rv("FlowGraphCosBlock"),"math/tan":rv("FlowGraphTanBlock"),"math/asin":rv("FlowGraphASinBlock"),"math/acos":rv("FlowGraphACosBlock"),"math/atan":rv("FlowGraphATanBlock"),"math/atan2":rv("FlowGraphATan2Block",["a","b"]),"math/sinh":rv("FlowGraphSinhBlock"),"math/cosh":rv("FlowGraphCoshBlock"),"math/tanh":rv("FlowGraphTanhBlock"),"math/asinh":rv("FlowGraphASinhBlock"),"math/acosh":rv("FlowGraphACoshBlock"),"math/atanh":rv("FlowGraphATanhBlock"),"math/exp":rv("FlowGraphExponentialBlock"),"math/log":rv("FlowGraphLogBlock"),"math/log2":rv("FlowGraphLog2Block"),"math/log10":rv("FlowGraphLog10Block"),"math/sqrt":rv("FlowGraphSquareRootBlock"),"math/cbrt":rv("FlowGraphCubeRootBlock"),"math/pow":rv("FlowGraphPowerBlock",["a","b"]),"math/length":rv("FlowGraphLengthBlock"),"math/normalize":rv("FlowGraphNormalizeBlock"),"math/dot":rv("FlowGraphDotBlock",["a","b"]),"math/cross":rv("FlowGraphCrossBlock",["a","b"]),"math/rotate2D":{blocks:["FlowGraphRotate2DBlock"],inputs:{values:{a:{name:"a"},angle:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/rotate3D":{blocks:["FlowGraphRotate3DBlock"],inputs:{values:{a:{name:"a"},rotation:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/transform":{blocks:["FlowGraphTransformVectorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}}},"math/combine2":{blocks:["FlowGraphCombineVector2Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine3":{blocks:["FlowGraphCombineVector3Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine4":{blocks:["FlowGraphCombineVector4Block"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract2":{blocks:["FlowGraphExtractVector2Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"}}}},"math/extract3":{blocks:["FlowGraphExtractVector3Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"}}}},"math/extract4":{blocks:["FlowGraphExtractVector4Block"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/transpose":rv("FlowGraphTransposeBlock"),"math/determinant":rv("FlowGraphDeterminantBlock"),"math/inverse":rv("FlowGraphInvertMatrixBlock"),"math/matMul":rv("FlowGraphMatrixMultiplicationBlock",["a","b"]),"math/matCompose":{blocks:["FlowGraphMatrixCompose"],inputs:{values:{translation:{name:"position",gltfType:"float3"},rotation:{name:"rotationQuaternion",gltfType:"float4"},scale:{name:"scaling",gltfType:"float3"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,a){let o=i[0].dataInputs.find(e=>"rotationQuaternion"===e.name);if(!o)throw Error("Rotation quaternion input not found");return a._connectionValues[o.uniqueId]&&(a._connectionValues[o.uniqueId].type="Quaternion"),i}},"math/matDecompose":{blocks:["FlowGraphMatrixDecompose"],inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{translation:{name:"position"},rotation:{name:"rotationQuaternion"},scale:{name:"scaling"}}},extraProcessor(e,t,s,n,i){var a;return(a=i[0]).config||(a.config={}),i[0].config.keepDegenerateComponents=!0,i}},"math/quatConjugate":rv("FlowGraphConjugateBlock",["a"]),"math/quatMul":{blocks:["FlowGraphMultiplyBlock"],inputs:{values:{a:{name:"a",gltfType:"vector4"},b:{name:"b",gltfType:"vector4"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i){var a;return(a=i[0]).config||(a.config={}),i[0].config.type="Quaternion",i}},"math/quatAngleBetween":rv("FlowGraphAngleBetweenBlock",["a","b"]),"math/quatFromAxisAngle":{blocks:["FlowGraphQuaternionFromAxisAngleBlock"],inputs:{values:{axis:{name:"a",gltfType:"float3"},angle:{name:"b",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/quatToAxisAngle":rv("FlowGraphAxisAngleFromQuaternionBlock",["a"]),"math/quatFromDirections":rv("FlowGraphQuaternionFromDirectionsBlock",["a","b"]),"math/quatFromUpForward":{blocks:["FlowGraphQuaternionFromUpForwardBlock"],inputs:{values:{up:{name:"a",gltfType:"float3"},forward:{name:"b",gltfType:"float3"}}},outputs:{values:{value:{name:"value"}}}},"math/quatFromAngles":{blocks:["FlowGraphQuaternionFromAnglesBlock"],configuration:{order:{name:"order",defaultValue:["yxz"]}},inputs:{values:{x:{name:"a",gltfType:"number"},y:{name:"b",gltfType:"number"},z:{name:"c",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/combine2x2":{blocks:["FlowGraphCombineMatrix2DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract2x2":{blocks:["FlowGraphExtractMatrix2DBlock"],inputs:{values:{a:{name:"input",gltfType:"float2x2"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"}}}},"math/combine3x3":{blocks:["FlowGraphCombineMatrix3DBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract3x3":{blocks:["FlowGraphExtractMatrix3DBlock"],inputs:{values:{a:{name:"input",gltfType:"float3x3"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"}}}},"math/combine4x4":{blocks:["FlowGraphCombineMatrixBlock"],inputs:{values:{a:{name:"input_0",gltfType:"number"},b:{name:"input_1",gltfType:"number"},c:{name:"input_2",gltfType:"number"},d:{name:"input_3",gltfType:"number"},e:{name:"input_4",gltfType:"number"},f:{name:"input_5",gltfType:"number"},g:{name:"input_6",gltfType:"number"},h:{name:"input_7",gltfType:"number"},i:{name:"input_8",gltfType:"number"},j:{name:"input_9",gltfType:"number"},k:{name:"input_10",gltfType:"number"},l:{name:"input_11",gltfType:"number"},m:{name:"input_12",gltfType:"number"},n:{name:"input_13",gltfType:"number"},o:{name:"input_14",gltfType:"number"},p:{name:"input_15",gltfType:"number"}}},outputs:{values:{value:{name:"value"}}}},"math/extract4x4":{blocks:["FlowGraphExtractMatrixBlock"],configuration:{},inputs:{values:{a:{name:"input",gltfType:"number"}}},outputs:{values:{0:{name:"output_0"},1:{name:"output_1"},2:{name:"output_2"},3:{name:"output_3"},4:{name:"output_4"},5:{name:"output_5"},6:{name:"output_6"},7:{name:"output_7"},8:{name:"output_8"},9:{name:"output_9"},10:{name:"output_10"},11:{name:"output_11"},12:{name:"output_12"},13:{name:"output_13"},14:{name:"output_14"},15:{name:"output_15"}}}},"math/not":{blocks:["FlowGraphBitwiseNotBlock"],inputs:{values:{a:{name:"a"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,a){var o;(o=i[0]).config||(o.config={});let r=i[0].dataInputs[0];return i[0].config.valueType=a._connectionValues[r.uniqueId]?.type??"FlowGraphInteger",i}},"math/and":{blocks:["FlowGraphBitwiseAndBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,a){var o;(o=i[0]).config||(o.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=a._connectionValues[r.uniqueId]?.type??a._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/or":{blocks:["FlowGraphBitwiseOrBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,a){var o;(o=i[0]).config||(o.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=a._connectionValues[r.uniqueId]?.type??a._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/xor":{blocks:["FlowGraphBitwiseXorBlock"],inputs:{values:{a:{name:"a"},b:{name:"b"}}},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,s,n,i,a){var o;(o=i[0]).config||(o.config={});let r=i[0].dataInputs[0],l=i[0].dataInputs[1];return i[0].config.valueType=a._connectionValues[r.uniqueId]?.type??a._connectionValues[l.uniqueId]?.type??"FlowGraphInteger",i}},"math/asr":rv("FlowGraphBitwiseRightShiftBlock",["a","b"]),"math/lsl":rv("FlowGraphBitwiseLeftShiftBlock",["a","b"]),"math/clz":rv("FlowGraphLeadingZerosBlock"),"math/ctz":rv("FlowGraphTrailingZerosBlock"),"math/popcnt":rv("FlowGraphOneBitsCounterBlock"),"math/rad":rv("FlowGraphDegToRadBlock"),"math/deg":rv("FlowGraphRadToDegBlock"),"type/boolToInt":rv("FlowGraphBooleanToInt"),"type/boolToFloat":rv("FlowGraphBooleanToFloat"),"type/intToBool":rv("FlowGraphIntToBoolean"),"type/intToFloat":rv("FlowGraphIntToFloat"),"type/floatToInt":rv("FlowGraphFloatToInt"),"type/floatToBool":rv("FlowGraphFloatToBoolean"),"flow/sequence":{blocks:["FlowGraphSequenceBlock"],extraProcessor(e,t,s,n,i){let a=i[0];return a.config||(a.config={}),a.config.outputSignalCount=Object.keys(e.flows||[]).length,a.signalOutputs.forEach((e,t)=>{e.name="out_"+t}),i}},"flow/branch":{blocks:["FlowGraphBranchBlock"],outputs:{flows:{true:{name:"onTrue"},false:{name:"onFalse"}}}},"flow/switch":{blocks:["FlowGraphSwitchBlock"],configuration:{cases:{name:"cases",isArray:!0,inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"},default:{name:"default"}}},validation(e){let t=e.configuration?.cases;if(t&&t.value){if(!t.value.every(e=>"number"==typeof e&&/^-?\d+$/.test(e.toString())))return e3.Logger.Warn("Switch cases should be integers. Using empty array instead."),t.value=[],{valid:!0};let e=new Set(t.value);t.value=Array.from(e)}return{valid:!0}},extraProcessor(e,t,s,n,i){if("flow/switch"!==t.op||!e.flows||0===Object.keys(e.flows).length)throw Error("Switch should have a single configuration object, the cases array");return i[0].signalOutputs.forEach(e=>{"default"!==e.name&&(e.name="out_"+e.name)}),i}},"flow/while":{blocks:["FlowGraphWhileLoopBlock"],outputs:{flows:{loopBody:{name:"executionFlow"}}}},"flow/for":{blocks:["FlowGraphForLoopBlock"],configuration:{initialIndex:{name:"initialIndex",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{values:{startIndex:{name:"startIndex",gltfType:"number"},endIndex:{name:"endIndex",gltfType:"number"}}},outputs:{values:{index:{name:"index"}},flows:{loopBody:{name:"executionFlow"}}},extraProcessor(e,t,s,n,i){let a=i[0];return a.config||(a.config={}),a.config.incrementIndexWhenLoopDone=!0,a.config.maxLoopIterations=2e4,i}},"flow/doN":{blocks:["FlowGraphDoNBlock"],configuration:{},inputs:{values:{n:{name:"maxExecutions",gltfType:"number"}}},outputs:{values:{currentCount:{name:"executionCount"}}}},"flow/multiGate":{blocks:["FlowGraphMultiGateBlock"],configuration:{isRandom:{name:"isRandom",gltfType:"boolean",inOptions:!0,defaultValue:!1},isLoop:{name:"isLoop",gltfType:"boolean",inOptions:!0,defaultValue:!1}},extraProcessor(e,t,s,n,i){if("flow/multiGate"!==t.op||!e.flows||0===Object.keys(e.flows).length)throw Error("MultiGate should have a single configuration object, the number of output flows");let a=i[0];return a.config||(a.config={}),a.config.outputSignalCount=Object.keys(e.flows).length,a.signalOutputs.forEach((e,t)=>{e.name="out_"+t}),i}},"flow/waitAll":{blocks:["FlowGraphWaitAllBlock"],configuration:{inputFlows:{name:"inputSignalCount",gltfType:"number",inOptions:!0,defaultValue:0}},inputs:{flows:{reset:{name:"reset"},"[segment]":{name:"in_$1"}}},validation:e=>("number"!=typeof e.configuration?.inputFlows?.value?.[0]&&(e.configuration=e.configuration||{inputFlows:{value:[0]}},e.configuration.inputFlows.value=[0]),{valid:!0})},"flow/throttle":{blocks:["FlowGraphThrottleBlock"],outputs:{flows:{err:{name:"error"}}}},"flow/setDelay":{blocks:["FlowGraphSetDelayBlock"],outputs:{flows:{err:{name:"error"}},values:{lastDelay:{name:"lastDelayIndex"}}}},"flow/cancelDelay":{blocks:["FlowGraphCancelDelayBlock"],inputs:{values:{delay:{name:"delayIndex"}}}},"variable/get":{blocks:["FlowGraphGetVariableBlock"],validation:e=>e.configuration?.variable?.value?{valid:!0}:(e3.Logger.Error("Variable get block should have a variable configuration"),{valid:!1,error:"Variable get block should have a variable configuration"}),configuration:{variable:{name:"variable",gltfType:"number",flowGraphType:"string",inOptions:!0,isVariable:!0,dataTransformer:(e,t)=>t.getVariableName(e)}}},"variable/set":{blocks:["FlowGraphSetVariableBlock"],configuration:{variables:{name:"variables",gltfType:"number",flowGraphType:"string",inOptions:!0,isArray:!0,dataTransformer:(e,t)=>e.map(e=>t.getVariableName(e))}},extraProcessor:(e,t,s,n,i)=>(i[0].dataInputs.forEach(e=>{e.name=n.getVariableName(+e.name)}),i)},"variable/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphContextBlock","FlowGraphPlayAnimationBlock","FlowGraphBezierCurveEasing","FlowGraphGetVariableBlock"],configuration:{variable:{name:"propertyName",inOptions:!0,isVariable:!0,dataTransformer:(e,t)=>t.getVariableName(e)},useSlerp:{name:"animationType",inOptions:!0,defaultValue:!1,dataTransformer:e=>!0===e?"Quaternion":void 0}},inputs:{values:{value:{name:"value_1"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphBezierCurveEasing"},p2:{name:"controlPoint2",toBlock:"FlowGraphBezierCurveEasing"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"userVariables",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:4,isVariable:!0}],extraProcessor(e,t,s,n,i){var a,o;let r=i[0],l=e.configuration?.variable.value?.[0];if("number"!=typeof l)throw e3.Logger.Error("Variable index is not defined for variable interpolation block"),Error("Variable index is not defined for variable interpolation block");let h=n.arrays.staticVariables[l];void 0===r.config?.animationType?.value&&(r.config||(r.config={}),(a=r.config).animationType||(a.animationType={}),r.config.animationType.value=(0,rg.getAnimationTypeByFlowGraphType)(h.type));let u=i[4];return u.config||(u.config={}),(o=u.config).variable||(o.variable={}),u.config.variable.value=n.getVariableName(l),i}},"pointer/get":{blocks:["FlowGraphGetPropertyBlock","FlowGraphJsonPointerParserBlock"],validation:rM,configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customGetFunction",output:"getFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(e=>{"FlowGraphJsonPointerParserBlock"===e.className&&(e.config||(e.config={}),e.config.outputValue=!0)}),i)},"pointer/set":{blocks:["FlowGraphSetPropertyBlock","FlowGraphJsonPointerParserBlock"],validation:rM,configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customSetFunction",output:"setFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(e=>{"FlowGraphJsonPointerParserBlock"===e.className&&(e.config||(e.config={}),e.config.outputValue=!0)}),i)},"pointer/interpolate":{blocks:["FlowGraphInterpolationBlock","FlowGraphJsonPointerParserBlock","FlowGraphPlayAnimationBlock","FlowGraphBezierCurveEasing"],validation:rM,configuration:{pointer:{name:"jsonPointer",toBlock:"FlowGraphJsonPointerParserBlock"}},inputs:{values:{value:{name:"value_1"},"[segment]":{name:"$1",toBlock:"FlowGraphJsonPointerParserBlock"},duration:{name:"duration_1",gltfType:"number"},p1:{name:"controlPoint1",toBlock:"FlowGraphBezierCurveEasing"},p2:{name:"controlPoint2",toBlock:"FlowGraphBezierCurveEasing"}},flows:{in:{name:"in",toBlock:"FlowGraphPlayAnimationBlock"}}},outputs:{flows:{err:{name:"error",toBlock:"FlowGraphPlayAnimationBlock"},out:{name:"out",toBlock:"FlowGraphPlayAnimationBlock"},done:{name:"done",toBlock:"FlowGraphPlayAnimationBlock"}}},interBlockConnectors:[{input:"object",output:"object",inputBlockIndex:2,outputBlockIndex:1,isVariable:!0},{input:"propertyName",output:"propertyName",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"customBuildAnimation",output:"generateAnimationsFunction",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"animation",output:"animation",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0},{input:"easingFunction",output:"easingFunction",inputBlockIndex:0,outputBlockIndex:3,isVariable:!0},{input:"value_0",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0}],extraProcessor:(e,t,s,n,i)=>(i.forEach(t=>{"FlowGraphJsonPointerParserBlock"===t.className?(t.config||(t.config={}),t.config.outputValue=!0):"FlowGraphInterpolationBlock"===t.className&&(t.config||(t.config={}),Object.keys(e.values||[]).forEach(s=>{let i=e.values?.[s];if("value"===s&&i){let e=i.type;void 0!==e&&(t.config.animationType=n.arrays.types[e].flowGraphType)}}))}),i)},"animation/start":{blocks:["FlowGraphPlayAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},speed:{name:"speed",gltfType:"number"},startTime:{name:"from",gltfType:"number",convertConnectedTimeToFrames:!0,dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]},endTime:{name:"to",gltfType:"number",convertConnectedTimeToFrames:!0,dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=o,i}},"animation/stop":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=o,i}},"animation/stopAt":{blocks:["FlowGraphStopAnimationBlock","FlowGraphArrayIndexBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{},inputs:{values:{animation:{name:"index",gltfType:"number",toBlock:"FlowGraphArrayIndexBlock"},stopTime:{name:"stopAtFrame",gltfType:"number",convertConnectedTimeToFrames:!0,dataTransformer:(e,t)=>[e[0]*t._animationTargetFps]}}},outputs:{flows:{err:{name:"error"}}},interBlockConnectors:[{input:"animationGroup",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"animationGroups",inputBlockIndex:1,outputBlockIndex:2,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];return r.config||(r.config={}),r.config.glTF=o,i}},"math/switch":{blocks:["FlowGraphDataSwitchBlock"],configuration:{cases:{name:"cases",isArray:!0,inOptions:!0,defaultValue:[]}},inputs:{values:{selection:{name:"case"}}},validation(e){let t=e.configuration?.cases;if(t&&t.value){if(!t.value.every(e=>"number"==typeof e&&/^-?\d+$/.test(e.toString())))return e3.Logger.Warn("Switch cases should be integers. Using empty array instead."),t.value=[],{valid:!0};let e=new Set(t.value);t.value=Array.from(e)}return{valid:!0}},extraProcessor(e,t,s,n,i){let a=i[0];return a.dataInputs.forEach(e=>{"default"!==e.name&&"case"!==e.name&&(e.name="in_"+e.name)}),a.config||(a.config={}),a.config.treatCasesAsIntegers=!0,i}},"debug/log":{blocks:["FlowGraphConsoleLogBlock"],configuration:{message:{name:"messageTemplate",inOptions:!0}}}};function rv(e,t=["a"],s){return{blocks:[e],inputs:{values:t.reduce((e,t)=>(e[t]={name:t},e),{})},outputs:{values:{value:{name:"value"}}},extraProcessor(e,t,n,i,a){var o;if(s){(o=a[0]).config||(o.config={}),a[0].config.preventIntegerFloatArithmetic=!0;let t=-1;Object.keys(e.values||{}).find(s=>e.values?.[s].type!==void 0&&(t=e.values[s].type,!0)),-1!==t&&(a[0].config.type=i.arrays.types[t].flowGraphType)}return a},validation:e=>s?rw(e):{valid:!0}}}function rw(e){if(e.values){let t=Object.keys(e.values).map(t=>e.values[t].type).filter(e=>void 0!==e);if(!t.every(e=>e===t[0]))return{valid:!1,error:"All inputs must be of the same type"}}return{valid:!0}}function rM(e){let t=e.configuration?.pointer?.value?.[0];if("string"!=typeof t)return{valid:!1,error:"A pointer operation requires a string `pointer` configuration value"};if(0!==t.length&&"/"!==t[0])return{valid:!1,error:`The JSON Pointer Template "${t}" is not a syntactically valid JSON Pointer`};let s=e=>({valid:!1,error:`The JSON Pointer Template "${t}" is invalid: ${e}`}),n=new Set;for(let e of t.split("/")){let t="["===e[0]&&"["!==e[1],i="{"===e[0]&&"{"!==e[1];if(!t&&!i){if(function(e){for(let t=0;t<e.length;t++){let s=e[t];if(-1==="[]{}".indexOf(s))continue;let n=1;for(;e[t+n]===s;)n++;if(n%2!=0)return!0;t+=n-1}return!1}(e))return s(`the path segment "${e}" contains an odd number of consecutive brackets`);continue}let a=t?"]":"}",o=e.substring(1,e.length-1);if(e.length<3||e[e.length-1]!==a||/[[{]/.test(o)||/[\]}]/.test(o))return s(`the template parameter path segment "${e}" is malformed`);let r=o.replace(/~1/g,"/").replace(/~0/g,"~");if(n.has(r))return s(`the template parameter "${r}" is used more than once`);n.add(r)}return{valid:!0}}function rC(){return Object.keys(rx)}e.s(["addNewInteractivityFlowGraphMapping",0,rT,"getAllSupportedNativeNodeTypes",0,rC,"getMappingForDeclaration",0,rb,"getMappingForFullOperationName",0,ry],55614);let rS={float:{length:1,flowGraphType:"number",elementType:"number"},bool:{length:1,flowGraphType:"boolean",elementType:"boolean"},float2:{length:2,flowGraphType:"Vector2",elementType:"number"},float3:{length:3,flowGraphType:"Vector3",elementType:"number"},float4:{length:4,flowGraphType:"Vector4",elementType:"number"},float4x4:{length:16,flowGraphType:"Matrix",elementType:"number"},float2x2:{length:4,flowGraphType:"Matrix2D",elementType:"number"},float3x3:{length:9,flowGraphType:"Matrix3D",elementType:"number"},int:{length:1,flowGraphType:"FlowGraphInteger",elementType:"number"},ref:{length:1,flowGraphType:"string",elementType:"string"}};class rF{constructor(e,t,s=60){this._interactivityGraph=e,this._gltf=t,this._animationTargetFps=s,this._types=[],this._mappings=[],this._staticVariables=[],this._events=[],this._internalEventsCounter=0,this._nodes=[],this._insertedBlocks=[],this._parseTypes(),this._parseDeclarations(),this._parseVariables(),this._parseEvents(),this._parseNodes()}get arrays(){return{types:this._types,mappings:this._mappings,staticVariables:this._staticVariables,events:this._events,nodes:this._nodes}}_parseTypes(){if(this._interactivityGraph.types)for(let e of this._interactivityGraph.types)this._types.push(rS[e.signature])}_parseDeclarations(){if(this._interactivityGraph.declarations)for(let e of this._interactivityGraph.declarations){let t=rb(e);if(!t)throw e3.Logger.Error(["No mapping found for declaration",e]),Error("Error parsing declarations");this._mappings.push({flowGraphMapping:t,fullOperationName:e.extension?e.op+":"+e.extension:e.op})}}_parseVariables(){if(this._interactivityGraph.variables)for(let e of this._interactivityGraph.variables){let t=this._parseVariable(e);this._staticVariables.push(t)}}_parseVariable(e,t){let s=this._types[e.type];if(!s)throw e3.Logger.Error(["No type found for variable",e]),Error("Error parsing variables");if(e.value&&e.value.length!==s.length)throw e3.Logger.Error(["Invalid value length for variable",e,s]),Error("Error parsing variables");let n=e.value||[];if(!n.length)switch(s.flowGraphType){case"boolean":n.push(!1);break;case"FlowGraphInteger":n.push(0);break;case"number":n.push(NaN);break;case"string":n.push("");break;case"Vector2":n.push(NaN,NaN);break;case"Vector3":n.push(NaN,NaN,NaN);break;case"Vector4":case"Matrix2D":case"Quaternion":n.fill(NaN,0,4);break;case"Matrix":n.fill(NaN,0,16);break;case"Matrix3D":n.fill(NaN,0,9)}return"number"===s.elementType&&"string"==typeof n[0]&&(n[0]=parseFloat(n[0])),{type:s.flowGraphType,value:t?t(n,this):n}}_parseEvents(){if(this._interactivityGraph.events)for(let e of this._interactivityGraph.events){let t={eventId:e.id||"internalEvent_"+this._internalEventsCounter++};e.values&&(t.eventData=Object.keys(e.values).map(t=>{let s=e.values?.[t];if(!s)throw e3.Logger.Error(["No value found for event key",t]),Error("Error parsing events");let n=this._types[s.type];if(!n)throw e3.Logger.Error(["No type found for event value",s]),Error("Error parsing events");let i=void 0!==s.value?this._parseVariable(s):void 0;return{id:t,type:n.flowGraphType,eventData:!0,value:i}})),this._events.push(t)}}_parseNodes(){if(this._interactivityGraph.nodes)for(let e of this._interactivityGraph.nodes){if("number"!=typeof e.declaration)throw e3.Logger.Error(["No declaration found for node",e]),Error("Error parsing nodes");let t=this._mappings[e.declaration];if(!t)throw e3.Logger.Error(["No mapping found for node",e]),Error("Error parsing nodes");if(t.flowGraphMapping.validation){let s=t.flowGraphMapping.validation(e,this._interactivityGraph,this._gltf);if(!s.valid)throw Error(`Error validating interactivity node ${this._interactivityGraph.declarations?.[e.declaration].op} - ${s.error}`)}let s=[];for(let n of t.flowGraphMapping.blocks){let i=this._getEmptyBlock(n,t.fullOperationName);this._parseNodeConfiguration(e,i,t.flowGraphMapping,n),s.push(i)}this._nodes.push({blocks:s,fullOperationName:t.fullOperationName})}}_getEmptyBlock(e,t){return{uniqueId:(0,sA.RandomGUID)(),className:e,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[],config:{},type:t,metadata:{}}}_parseNodeConfiguration(e,t,s,n){let i=e.configuration;if(i)for(let e in i){let a=i[e];if(!a)throw Error("Error parsing node configuration");let o=s.configuration?.[e];if(o&&o.toBlock?o.toBlock===n:0===s.blocks.indexOf(n)){let s=o?.defaultValue;a?.value&&(s=a.value),o?.isArray||(1!==s.length&&e3.Logger.Warn(`Invalid non-array value length: ${s.length}`),s=s[0]),o?.dataTransformer&&(s=o.dataTransformer(s,this)),void 0!==s&&(t.config[o?.name||e]={value:s})}}}_parseNodeConnections(e){for(let t=0;t<this._nodes.length;t++){let s=this._interactivityGraph.nodes?.[t];if(!s)throw e3.Logger.Error(["No node found for interactivity node",this._nodes[t]]),Error("Error parsing node connections");let n=this._nodes[t],i=this._mappings[s.declaration];if(!i)throw e3.Logger.Error(["No mapping found for node",s]),Error("Error parsing node connections");if(0===n.blocks.length){e3.Logger.Warn(`Skipping connections for no-op node #${t} (unsupported operation: ${n.fullOperationName})`);continue}let a=s.flows||{};for(let e of Object.keys(a).sort()){let s=a[e],o=i.flowGraphMapping.outputs?.flows?.[e],r=o?.name||e,l=s.node,h=this._nodes[l];if(!h)throw e3.Logger.Error(["No node found for input node id",l]),Error("Error parsing node connections");if(0===h.blocks.length){e3.Logger.Warn(`Dropping flow connection from node #${t} "${e}" to no-op node #${l} (unsupported operation: ${h.fullOperationName})`);continue}let u=this._createNewSocketConnection(r,!0);(o&&o.toBlock&&n.blocks.find(e=>e.className===o.toBlock)||n.blocks[0]).signalOutputs.push(u);let c=ry(h.fullOperationName);if(!c)throw e3.Logger.Error(["No mapping found for input node",h]),Error("Error parsing node connections");let d=c.inputs?.flows?.[s.socket||"in"],p=!1;if(!d)for(let e in c.inputs?.flows)e.startsWith("[")&&e.endsWith("]")&&(p=!0,d=c.inputs?.flows?.[e]);let _=d?p?d.name.replace("$1",s.socket||""):d.name:s.socket||"in",m=d&&d.toBlock&&h.blocks.find(e=>e.className===d.toBlock)||h.blocks[0],f=m.signalInputs.find(e=>e.name===_);f||(f=this._createNewSocketConnection(_),m.signalInputs.push(f)),f.connectedPointIds.push(u.uniqueId),u.connectedPointIds.push(f.uniqueId)}let o=s.values||{};for(let s of Object.keys(o)){let a=o[s],r=i.flowGraphMapping.inputs?.values?.[s],l=!1;if(!r)for(let e in i.flowGraphMapping.inputs?.values)e.startsWith("[")&&e.endsWith("]")&&(l=!0,r=i.flowGraphMapping.inputs?.values?.[e]);let h=r?l?r.name.replace("$1",s):r.name:s,u=this._createNewSocketConnection(h);(r&&r.toBlock&&n.blocks.find(e=>e.className===r.toBlock)||n.blocks[0]).dataInputs.push(u);let c=!!r?.convertConnectedTimeToFrames;if(void 0!==a.value){let t=this._parseVariable(a,r&&r.dataTransformer);e._connectionValues[u.uniqueId]=t}else if(void 0!==a.node){let n=a.node,i=a.socket||"value",o=this._nodes[n];if(!o)throw e3.Logger.Error(["No node found for output socket reference",a]),Error("Error parsing node connections");if(0===o.blocks.length){e3.Logger.Warn(`Dropping value connection from no-op node #${n} (unsupported operation: ${o.fullOperationName}) into node #${t} "${s}"; consumer will use type-default value`);continue}let r=ry(o.fullOperationName);if(!r)throw e3.Logger.Error(["No mapping found for output socket reference",a]),Error("Error parsing node connections");let l=r.outputs?.values?.[i],h=!1;if(!l)for(let e in r.outputs?.values)e.startsWith("[")&&e.endsWith("]")&&(h=!0,l=r.outputs?.values?.[e]);let d=l?h?l.name.replace("$1",i):l?.name:i,p=l&&l.toBlock&&o.blocks.find(e=>e.className===l.toBlock)||o.blocks[0],_=p.dataOutputs.find(e=>e.name===d);_||(_=this._createNewSocketConnection(d,!0),p.dataOutputs.push(_)),c?this._connectWithSecondsToFramesConversion(e,_,u):(u.connectedPointIds.push(_.uniqueId),_.connectedPointIds.push(u.uniqueId))}else throw e3.Logger.Error(["Invalid value for value connection",a]),Error("Error parsing node connections")}if(i.flowGraphMapping.interBlockConnectors)for(let e of i.flowGraphMapping.interBlockConnectors){let t=e.input,s=e.output,i=e.isVariable;this._connectFlowGraphNodes(t,s,n.blocks[e.inputBlockIndex],n.blocks[e.outputBlockIndex],i)}if(i.flowGraphMapping.extraProcessor){let t=this._interactivityGraph.declarations?.[s.declaration];if(!t)throw e3.Logger.Error(["No declaration found for extra processor",s]),Error("Error parsing node connections");n.blocks=i.flowGraphMapping.extraProcessor(s,t,i.flowGraphMapping,this,n.blocks,e,this._gltf)}}}_createNewSocketConnection(e,t){return{uniqueId:(0,sA.RandomGUID)(),name:e,_connectionType:+!!t,connectedPointIds:[]}}_connectWithSecondsToFramesConversion(e,t,s){let n=this._getEmptyBlock("FlowGraphMultiplyBlock","FlowGraphMultiplyBlock");n.config={type:"number"};let i=this._createNewSocketConnection("a"),a=this._createNewSocketConnection("b"),o=this._createNewSocketConnection("value",!0);n.dataInputs.push(i,a),n.dataOutputs.push(o),e._connectionValues[a.uniqueId]={type:"number",value:[this._animationTargetFps]},i.connectedPointIds.push(t.uniqueId),t.connectedPointIds.push(i.uniqueId),s.connectedPointIds.push(o.uniqueId),o.connectedPointIds.push(s.uniqueId),this._insertedBlocks.push(n)}_connectFlowGraphNodes(e,t,s,n,i){let a=i?s.dataInputs:s.signalInputs,o=i?n.dataOutputs:n.signalOutputs,r=a.find(t=>t.name===e)||this._createNewSocketConnection(e),l=o.find(e=>e.name===t)||this._createNewSocketConnection(t,!0);a.find(t=>t.name===e)||a.push(r),o.find(e=>e.name===t)||o.push(l),r.connectedPointIds.push(l.uniqueId),l.connectedPointIds.push(r.uniqueId)}getVariableName(e){return"staticVariable_"+e}serializeToFlowGraph(){let e={uniqueId:(0,sA.RandomGUID)(),_userVariables:{},_connectionValues:{}};this._parseNodeConnections(e);for(let t=0;t<this._staticVariables.length;t++){let s=this._staticVariables[t];e._userVariables[this.getVariableName(t)]=s}return{rightHanded:!0,allBlocks:this._nodes.reduce((e,t)=>e.concat(t.blocks),[]).concat(this._insertedBlocks),executionContexts:[e]}}}e.s(["InteractivityGraphToFlowGraphParser",0,rF,"gltfTypeToBabylonType",0,rS],37992);class rE{constructor(e,t){this._prefixes=e,this._fallback=t}addPrefix(e){this._prefixes.unshift(e)}convert(e){for(let{prefix:t,converter:s}of this._prefixes)if(e.startsWith(t))return s.convert(e);return this._fallback.convert(e)}}let rR="/extensions/BABYLON_scene_objects/";class rO{constructor(e,t){this._scene=e,this._tree=t}convert(e){if(!e.startsWith(rR))throw Error(`BabylonScenePathToObjectConverter: path "${e}" does not start with the expected prefix "${rR}".`);let t=e.slice(rR.length).split("/").filter(e=>e.length>0);if(0===t.length)throw Error(`BabylonScenePathToObjectConverter: path "${e}" is missing a collection name.`);let s=t[0],n=this._tree[s];if(!n)throw Error(`BabylonScenePathToObjectConverter: unknown collection "${s}" in path "${e}".`);if(2===t.length&&"length"===t[1])return{object:this._getCollectionArray(s),info:n.length};if(t.length<2)throw Error(`BabylonScenePathToObjectConverter: path "${e}" is missing an instance id.`);if(!/^\d+$/.test(t[1]))throw Error(`BabylonScenePathToObjectConverter: invalid uniqueId "${t[1]}" in path "${e}".`);let i=parseInt(t[1],10);if(!Number.isFinite(i)||i<0)throw Error(`BabylonScenePathToObjectConverter: invalid uniqueId "${t[1]}" in path "${e}".`);let a=this._lookupInstanceByUniqueId(s,i);if(!a)throw Error(`BabylonScenePathToObjectConverter: no ${s} instance found with uniqueId ${i} (path "${e}").`);if(2===t.length)return{object:a,info:this._buildIdentityAccessor(a)};if(t.length>3)throw Error(`BabylonScenePathToObjectConverter: nested property paths are not yet supported (path "${e}").`);let o=t[2],r=n.__array__[o];if(!r||"boolean"==typeof r)throw Error(`BabylonScenePathToObjectConverter: property "${o}" is not registered on ${s} (path "${e}").`);return{object:a,info:r}}_getCollectionArray(e){switch(e){case"transformNodes":return this._scene.transformNodes;case"meshes":return this._scene.meshes;case"materials":return this._scene.materials;default:return[]}}_lookupInstanceByUniqueId(e,t){switch(e){case"transformNodes":{let e=this._scene.transformNodes.find(e=>e.uniqueId===t);if(e)return e;return this._scene.meshes.find(e=>e.uniqueId===t)}case"meshes":return this._scene.meshes.find(e=>e.uniqueId===t);case"materials":return this._scene.materials.find(e=>e.uniqueId===t);default:return}}_buildIdentityAccessor(e){return{type:"object",get:()=>e,getTarget:()=>e,isReadOnly:!0}}}var rI=e.i(59012);(0,rI.RegisterFlowGraphInteger)();let rB="/extensions/KHR_interactivity/events/",rN="/extensions/KHR_interactivity/delays/";var rk=e.i(12752);let rP={isKhrInteractivityRef:!0};class rL{convert(e){let t=e.endsWith("/")?e.slice(0,-1):e;if(t.startsWith(rB)){let e=t.substring(rB.length);return{object:rP,info:{type:"object",isReadOnly:!0,get:()=>e.length>0?t:void 0,getTarget:()=>rP}}}let s=t.substring(rN.length),n=/^\d+$/.test(s)?parseInt(s,10):NaN;return{object:rP,info:{type:"object",isReadOnly:!0,get:(e,t,s)=>{if(!(!s||isNaN(n))&&!(n<0))return(0,rk.IsDelayActive)(s,n)?new rI.FlowGraphInteger(n):void 0},getTarget:()=>rP}}}}let rG="/extensions/KHR_interactivity/asset/",rD="/extensions/KHR_interactivity/limits/",rV={major:2,minor:0},rK={maxActiveAnimations:0x7fffffff,maxActiveDelays:0x7fffffff,maxActivePropertyInterpolations:0x7fffffff,maxActiveVariableInterpolations:0x7fffffff},rH={isKhrInteractivityAssetCapability:!0};class rU{constructor(e,t){this._gltf=e,this._isExtensionEnabled=t}convert(e){let t=e.endsWith("/")?e.slice(0,-1):e;if(t.startsWith(rD)){let s=rK[t.substring(rD.length)];if(void 0===s)throw Error(`Path ${e} is invalid`);return this._createAccessor("number",()=>s)}let s=t.substring(rG.length);if("majorVersion"===s||"minorVersion"===s)return this._createAccessor("number",()=>(function(e){let[t,s]=(e??"").split("."),n=parseInt(t,10),i=parseInt(s,10);return isNaN(n)?rV:n!==rV.major?n<rV.major?{major:n,minor:isNaN(i)?0:i}:rV:{major:n,minor:Math.min(isNaN(i)?0:i,rV.minor)}})(this._gltf.asset?.version)["majorVersion"===s?"major":"minor"]);let n=s.split("/");if(3===n.length&&"extensions"===n[0]&&"enabled"===n[2]){let e=n[1];return this._createAccessor("boolean",()=>this._isExtensionEnabled(e))}throw Error(`Path ${e} is invalid`)}_createAccessor(e,t){return{object:rH,info:{type:e,isReadOnly:!0,get:t,getTarget:()=>rH}}}}class r${encodeEventReference(e){return rB+e}decodeEventReference(e){var t;return"string"==typeof(t=e)&&t.startsWith(rB)?e.substring(rB.length):void 0}decodeIndexReference(e){if(0===e.length||"/"!==e[0])return;let t=e.substring(e.lastIndexOf("/")+1);if(/^(0|[1-9]\d*)$/.test(t))return parseInt(t,10)}getObjectReference(e,t){let s=e._internalMetadata?.gltf?.pointers;if(!Array.isArray(s))return;let n=s.filter(e=>"string"==typeof e);if(0!==n.length){if(t){let e=n.find(e=>e.split("/")[1]===t);if(e)return e}return n[0]}}}let rz="KHR_interactivity";class rq{constructor(e){this._loader=e,this.name=rz,this.enabled=this._loader.isExtensionUsed(rz),this._gltfPathConverter=(0,sC.GetPathToObjectConverter)(this._loader.gltf);const t=e.babylonScene;if(this._gltfPathConverter){const e=[];t&&e.push({prefix:rR,converter:new rO(t,{transformNodes:{length:{type:"number",get:e=>e.length,getTarget:e=>e},__array__:{__target__:!0,name:{type:"string",get:e=>e.name,set:(e,t)=>{t.name=e},getTarget:e=>e},translation:{type:"Vector3",get:e=>e.position,set:(e,t)=>t.position.copyFrom(e),getTarget:e=>e},rotation:{type:"Quaternion",get:e=>e.rotationQuaternion??tT.Quaternion.RotationYawPitchRoll(e.rotation.y,e.rotation.x,e.rotation.z),set:(e,t)=>{t.rotationQuaternion?t.rotationQuaternion.copyFrom(e):t.rotationQuaternion=e.clone()},getTarget:e=>e},scale:{type:"Vector3",get:e=>e.scaling,set:(e,t)=>t.scaling.copyFrom(e),getTarget:e=>e},matrix:{type:"Matrix",get:e=>e.computeWorldMatrix(!1),getTarget:e=>e,isReadOnly:!0},globalMatrix:{type:"Matrix",get:e=>e.computeWorldMatrix(!0),getTarget:e=>e,isReadOnly:!0}}},meshes:{length:{type:"number",get:e=>e.length,getTarget:e=>e},__array__:{__target__:!0,name:{type:"string",get:e=>e.name,set:(e,t)=>{t.name=e},getTarget:e=>e},visible:{type:"boolean",get:e=>e.isVisible,set:(e,t)=>{t.isVisible=e},getTarget:e=>e}}},materials:{length:{type:"number",get:e=>e.length,getTarget:e=>e},__array__:{__target__:!0,name:{type:"string",get:e=>e.name,set:(e,t)=>{t.name=e},getTarget:e=>e}}}})});const s=new rL;e.push({prefix:rB,converter:s}),e.push({prefix:rN,converter:s});const n=new Set((this._loader.gltf.extensionsUsed??[]).filter(e=>sv.has(e)&&this._loader.parent.extensionOptions[e]?.enabled!==!1)),i=new rU(this._loader.gltf,e=>n.has(e));e.push({prefix:rG,converter:i}),e.push({prefix:rD,converter:i}),this._pathConverter=new rE(e,this._gltfPathConverter)}e._skipStartAnimationStep=!0,t&&rW(t)}dispose(){this._loader=null,delete this._gltfPathConverter,delete this._pathConverter}async onReady(){if(!this._loader.babylonScene||!this._pathConverter)return;let e=this._loader.babylonScene,t=this._loader.gltf.extensions?.KHR_interactivity;t&&await Promise.all(t.graphs.map(async(t,s)=>{let n=new ru.FlowGraphCoordinator({scene:e,hostResolver:new r$});n.dispatchEventsSynchronously=!1;try{let e=new rF(t,this._loader.gltf,this._loader.parent.targetFps);await rf(e.serializeToFlowGraph(),{coordinator:n,pathConverter:this._pathConverter}),n.start()}catch(e){e3.Logger.Error(`KHR_interactivity: rejecting behavior graph #${s}: ${e?.message??e}`),n.dispose()}}))}}function rW(e){(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/rotation",{get:()=>{if(!e.activeCamera)return new tT.Quaternion(NaN,NaN,NaN,NaN);let t=tT.Quaternion.FromRotationMatrix(e.activeCamera.getWorldMatrix()).normalize();return e.useRightHandedSystem||(t.w*=-1,t.x*=-1),t},type:"Quaternion",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/position",{get:()=>{if(!e.activeCamera)return new tT.Vector3(NaN,NaN,NaN);let t=e.activeCamera.getWorldMatrix().getTranslation();return e.useRightHandedSystem||(t.x*=-1),t},type:"Vector3",getTarget:()=>e.activeCamera});let t=t=>{let s=e.activeCamera;return s&&s.mode!==tY.Constants.ORTHOGRAPHIC_CAMERA?t(s):NaN},s=t=>{let s=e.activeCamera;return s&&s.mode===tY.Constants.ORTHOGRAPHIC_CAMERA?t(s):NaN};(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/perspective/aspectRatio",{get:()=>t(e=>e.getEngine().getAspectRatio(e)),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/perspective/yfov",{get:()=>t(e=>{if(e.fovMode===tY.Constants.FOVMODE_VERTICAL_FIXED)return e.fov;let t=e.getEngine().getAspectRatio(e);return t?2*Math.atan(Math.tan(e.fov/2)/t):e.fov}),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/perspective/znear",{get:()=>t(e=>e.minZ),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/perspective/zfar",{get:()=>t(e=>0===e.maxZ?1/0:e.maxZ),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/orthographic/xmag",{get:()=>s(e=>{let t=e.getEngine().getRenderWidth()/2;return((e.orthoRight??t)-(e.orthoLeft??-t))/2}),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/orthographic/ymag",{get:()=>s(e=>{let t=e.getEngine().getRenderHeight()/2;return((e.orthoTop??t)-(e.orthoBottom??-t))/2}),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/orthographic/znear",{get:()=>s(e=>e.minZ),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/extensions/KHR_interactivity/?/activeCamera/orthographic/zfar",{get:()=>s(e=>e.maxZ),type:"number",getTarget:()=>e.activeCamera}),(0,sC.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/isPlaying",{get:e=>e._babylonAnimationGroup?.isPlaying??!1,type:"boolean",getTarget:e=>e._babylonAnimationGroup}),(0,sC.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/minTime",{get:e=>(e._babylonAnimationGroup?.from??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,sC.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/maxTime",{get:e=>(e._babylonAnimationGroup?.to??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,sC.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/playhead",{get:e=>(e._babylonAnimationGroup?.getCurrentFrame()??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup}),(0,sC.AddObjectAccessorToKey)("/animations/{}/extensions/KHR_interactivity/virtualPlayhead",{get:e=>(e._babylonAnimationGroup?.getCurrentFrame()??0)/60,type:"number",getTarget:e=>e._babylonAnimationGroup})}let rj=!1;function rX(){if(!rj){var t;let s;rj=!0,t=async()=>(await e.A(42020)).FlowGraphGLTFDataProvider,rc[s=`${rz}/FlowGraphGLTFDataProvider`]=t,rd.FlowGraphGLTFDataProvider=s,sM(rz),sw(rz,!0,e=>new rq(e))}}e.s(["KHR_interactivity",0,rq,"RegisterKHR_interactivity",0,rX,"_AddInteractivityObjectModel",0,rW],28429),rX(),e.s([],75530),e.s([],96293);let rQ="KHR_node_visibility";class rY{constructor(e){this.name=rQ,this._loader=e,this.enabled=e.isExtensionUsed(rQ)}onReady(){if(!this._loader)return;let e=this._loader.gltf.nodes;if(e)for(let t of e){let e=t._babylonTransformNode;e&&(e.inheritVisibility=!0,t.extensions&&t.extensions.KHR_node_visibility&&!1===t.extensions.KHR_node_visibility.visible&&(e.isVisible=!1,t._primitiveBabylonMeshes?.forEach(e=>{e.inheritVisibility=!0,e.isVisible=!1})))}}dispose(){delete this._loader}}let rZ=!1;function rJ(){rZ||(rZ=!0,(0,sC.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_visibility/visible",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.isVisible||t.isVisible},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(e=>{e.inheritVisibility=!0}),t._babylonTransformNode&&(t._babylonTransformNode.isVisible=e),t._primitiveBabylonMeshes?.forEach(t=>{t.isVisible=e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"isVisible"],type:"boolean"}),sM(rQ),sw(rQ,!0,e=>new rY(e)))}e.s(["KHR_node_visibility",0,rY,"RegisterKHR_node_visibility",0,rJ],69785),rJ(),e.s([],72020),e.s([],82494);let r0="KHR_node_selectability";class r1{constructor(e){this.name=r0,this._loader=e,this.enabled=e.isExtensionUsed(r0)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_selectability&&e.extensions?.KHR_node_selectability.selectable===!1&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.isPickable=!1})})}dispose(){this._loader=null}}let r2=!1;function r3(){r2||(r2=!0,rT("event/onSelect",r0,{blocks:["FlowGraphMeshPickEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>"pickedMesh_"+e}},outputs:{values:{selectedNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},selectedNode:{name:"pickedMesh",toBlock:"FlowGraphMeshPickEventBlock"},controllerIndex:{name:"pointerId"},selectionPoint:{name:"pickedPoint"},selectionRayOrigin:{name:"pickOrigin"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"asset",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"pickedMesh",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=o;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h="pickedMesh_"+l;return i[1].config.variable=h,a._userVariables[h]={className:"Mesh",id:o?.nodes?.[l]._babylonTransformNode?.id,uniqueId:o?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),(0,sC.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_selectability/selectable",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.isPickable||t.isPickable},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(t=>{t.isPickable=e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"isPickable"],type:"boolean"}),sM(r0),sw(r0,!0,e=>new r1(e)))}e.s(["KHR_node_selectability",0,r1,"RegisterKHR_node_selectability",0,r3],74643),r3(),e.s([],55843),e.s([],8013);let r8="KHR_node_hoverability",r4="targetMeshPointerOver_",r5="targetMeshPointerOut_";class r7{constructor(e){this.name=r8,this._loader=e,this.enabled=e.isExtensionUsed(r8)}async onReady(){this._loader.gltf.nodes?.forEach(e=>{e.extensions?.KHR_node_hoverability&&e.extensions?.KHR_node_hoverability.hoverable===!1&&e._babylonTransformNode?.getChildMeshes().forEach(e=>{e.pointerOverDisableMeshTesting=!0})})}dispose(){this._loader=null}}let r9=!1;function r6(){r9||(r9=!0,rT("event/onHoverIn",r8,{blocks:["FlowGraphPointerOverEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>r4+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},hoveredNode:{name:"meshUnderPointer",toBlock:"FlowGraphPointerOverEventBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshUnderPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=o;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h=r4+l;return i[1].config.variable=h,a._userVariables[h]={className:"Mesh",id:o?.nodes?.[l]._babylonTransformNode?.id,uniqueId:o?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),rT("event/onHoverOut",r8,{blocks:["FlowGraphPointerOutEventBlock","FlowGraphGetVariableBlock","FlowGraphIndexOfBlock","KHR_interactivity/FlowGraphGLTFDataProvider"],configuration:{stopPropagation:{name:"stopPropagation"},nodeIndex:{name:"variable",toBlock:"FlowGraphGetVariableBlock",dataTransformer:e=>r5+e}},outputs:{values:{hoverNodeIndex:{name:"index",toBlock:"FlowGraphIndexOfBlock"},hoveredNode:{name:"meshOutOfPointer",toBlock:"FlowGraphPointerOutEventBlock"},controllerIndex:{name:"pointerId"}},flows:{out:{name:"done"}}},interBlockConnectors:[{input:"targetMesh",output:"value",inputBlockIndex:0,outputBlockIndex:1,isVariable:!0},{input:"array",output:"nodes",inputBlockIndex:2,outputBlockIndex:3,isVariable:!0},{input:"object",output:"meshOutOfPointer",inputBlockIndex:2,outputBlockIndex:0,isVariable:!0}],extraProcessor(e,t,s,n,i,a,o){let r=i[i.length-1];r.config=r.config||{},r.config.glTF=o;let l=e.configuration?.nodeIndex?.value?.[0];if(void 0===l||"number"!=typeof l)throw Error("nodeIndex not found in configuration");let h=r5+l;return i[1].config.variable=h,a._userVariables[h]={className:"Mesh",id:o?.nodes?.[l]._babylonTransformNode?.id,uniqueId:o?.nodes?.[l]._babylonTransformNode?.uniqueId},i}}),(0,sC.AddObjectAccessorToKey)("/nodes/{}/extensions/KHR_node_hoverability/hoverable",{get:e=>{let t=e._babylonTransformNode;return!t||void 0===t.pointerOverDisableMeshTesting||t.pointerOverDisableMeshTesting},set:(e,t)=>{t._primitiveBabylonMeshes?.forEach(t=>{t.pointerOverDisableMeshTesting=!e})},getTarget:e=>e._babylonTransformNode,getPropertyName:[()=>"pointerOverDisableMeshTesting"],type:"boolean"}),sM(r8),sw(r8,!0,e=>new r7(e)))}e.s(["KHR_node_hoverability",0,r7,"RegisterKHR_node_hoverability",0,r6],73593),r6(),e.s([],76940),e.s([],90437);let le="ExtrasAsMetadata";class lt{_assignExtras(e,t){if(t.extras&&Object.keys(t.extras).length>0){let s=e.metadata=e.metadata||{};(s.gltf=s.gltf||{}).extras=t.extras}}constructor(e){this.name=le,this.enabled=!0,this._loader=e}dispose(){this._loader=null}loadNodeAsync(e,t,s){return this._loader.loadNodeAsync(e,t,e=>{this._assignExtras(e,t),s(e)})}loadCameraAsync(e,t,s){return this._loader.loadCameraAsync(e,t,e=>{this._assignExtras(e,t),s(e)})}createMaterial(e,t,s){let n=this._loader.createMaterial(e,t,s);return this._assignExtras(n,t),n}loadAnimationAsync(e,t){return this._loader.loadAnimationAsync(e,t).then(e=>(this._assignExtras(e,t),e))}}let ls=!1;function ln(){ls||(ls=!0,sM(le),sw(le,!1,e=>new lt(e)))}e.s(["ExtrasAsMetadata",0,lt,"RegisterExtrasAsMetadata",0,ln],78563),ln(),e.s([],7273),e.s([],11031),e.s([],8807),e.s([],84940),e.i(84940),e.i(52280),e.i(92250),e.s(["ArrayItem",0,sR,"GLTFFileLoader",0,tg,"GLTFLoader",0,sI,"LoadBoundingInfoFromPositionAccessor",0,sO,"RegisterGLTF2Loader",0,sN],34177),e.i(34177),e.s(["ArrayItem",0,sR,"GLTFFileLoader",0,tg,"GLTFLoader",0,sI,"LoadBoundingInfoFromPositionAccessor",0,sO,"RegisterGLTF2Loader",0,sN],20375),e.i(20375),e.s([],48498),e.i(48498),e.i(14879),e.s([],16175),e.i(16175);var li=e.i(68841),la=e.i(44541);e.i(8807),e.i(86608),e.i(56152),e.i(52252),e.s(["EXT_lights_image_based",0,s$,"RegisterEXT_lights_image_based",0,sq],98012),e.i(98012),e.i(62689),e.i(64765),e.i(10118),e.s(["EXT_mesh_gpu_instancing",0,sj,"RegisterEXT_mesh_gpu_instancing",0,sQ],715),e.i(715),e.i(74231),e.i(28825),e.i(57470),e.s(["EXT_meshopt_compression",0,s1,"RegisterEXT_meshopt_compression",0,s3],38083),e.i(38083),e.i(14726),e.i(3123),e.i(45441),e.s(["EXT_texture_webp",0,s4,"RegisterEXT_texture_webp",0,s7],21729),e.i(21729),e.i(37190),e.i(95235),e.i(32962),e.s(["EXT_texture_avif",0,s6,"RegisterEXT_texture_avif",0,nt],88036),e.i(88036),e.i(56005),e.i(59809),e.i(81278),e.s(["EXT_lights_ies",0,nn,"RegisterEXT_lights_ies",0,na],8685),e.i(8685),e.i(11743),e.i(82078),e.i(90847),e.s(["KHR_draco_mesh_compression",0,np,"RegisterKHR_draco_mesh_compression",0,nm],18891),e.i(18891),e.i(93461),e.i(62493),e.i(2669),e.s(["KHR_gaussian_splatting",0,nA,"RegisterKHR_gaussian_splatting",0,nv],90211),e.i(90211),e.i(9278),e.i(48837),e.i(42211),e.s(["KHR_lights",0,nM,"RegisterKHR_lights",0,nS],80124),e.i(80124),e.i(26753),e.i(22520),e.i(58641),e.s(["EXT_lights_area",0,nB,"RegisterEXT_lights_area",0,nk],20425),e.i(20425),e.i(34780),e.i(55714),e.i(60605),e.s(["KHR_materials_pbrSpecularGlossiness",0,nL,"RegisterKHR_materials_pbrSpecularGlossiness",0,nD],18982),e.i(18982),e.i(81355),e.i(35169),e.i(96490),e.s(["KHR_materials_unlit",0,nK,"RegisterKHR_materials_unlit",0,nU],82341),e.i(82341),e.i(52915),e.i(27081),e.i(12036),e.s(["KHR_materials_clearcoat",0,nz,"RegisterKHR_materials_clearcoat",0,nW],98085),e.i(98085),e.i(17402),e.i(97357),e.i(17345),e.s(["KHR_materials_coat",0,nX,"RegisterKHR_materials_coat",0,nY],62554),e.i(62554),e.i(6955),e.i(30889),e.i(85421),e.s(["KHR_materials_iridescence",0,nJ,"RegisterKHR_materials_iridescence",0,n1],26426),e.i(26426),e.i(8758),e.i(52395),e.i(25053),e.s(["KHR_materials_anisotropy",0,n3,"RegisterKHR_materials_anisotropy",0,n4],58416),e.i(58416),e.i(71716),e.i(13817),e.i(32816),e.s(["KHR_materials_emissive_strength",0,n7,"RegisterKHR_materials_emissive_strength",0,n6],69415),e.i(69415),e.i(37817),e.i(2232),e.i(61090),e.s(["KHR_materials_sheen",0,it,"RegisterKHR_materials_sheen",0,ii],54050),e.i(54050),e.i(9968),e.i(55827),e.i(52489),e.s(["KHR_materials_fuzz",0,io,"RegisterKHR_materials_fuzz",0,il],51716),e.i(51716),e.i(28948),e.i(89632),e.i(86804),e.s(["KHR_materials_specular",0,iu,"RegisterKHR_materials_specular",0,id],51035),e.i(51035),e.i(98600),e.i(48614),e.i(49607),e.s(["KHR_materials_ior",0,i_,"RegisterKHR_materials_ior",0,ig],2715),e.i(2715),e.i(40063),e.i(31418),e.i(99813),e.s(["KHR_materials_variants",0,ib,"RegisterKHR_materials_variants",0,iA],61201),e.i(61201),e.i(9120),e.i(4082),e.i(47328),e.i(67577),e.s(["KHR_materials_transmission",0,iC,"RegisterKHR_materials_transmission",0,iF],60086),e.i(60086),e.i(54347),e.i(27657),e.i(73059),e.s(["KHR_materials_diffuse_transmission",0,iR,"RegisterKHR_materials_diffuse_transmission",0,iI],87370),e.i(87370),e.i(64967),e.i(2292),e.i(63216),e.s(["KHR_materials_volume",0,iN,"RegisterKHR_materials_volume",0,iP],59919),e.i(59919),e.i(90125),e.i(8090),e.i(15268),e.s(["KHR_materials_volume_scatter",0,iG,"RegisterKHR_materials_volume_scatter",0,iV],58999),e.i(58999),e.i(62106),e.i(67299),e.i(16825),e.s(["KHR_materials_dispersion",0,iH,"RegisterKHR_materials_dispersion",0,i$],57543),e.i(57543),e.i(74367),e.i(83643),e.i(22088),e.s(["KHR_materials_diffuse_roughness",0,iq,"RegisterKHR_materials_diffuse_roughness",0,ij],4469),e.i(4469),e.i(45180),e.i(33537),e.i(9029),e.s(["KHR_mesh_quantization",0,iQ,"RegisterKHR_mesh_quantization",0,iZ],39477),e.i(39477),e.i(58783),e.i(68793),e.i(35274),e.s(["KHR_texture_basisu",0,i0,"RegisterKHR_texture_basisu",0,i2],65040),e.i(65040),e.i(88298),e.i(22673),e.i(86602),e.s(["KHR_texture_transform",0,i8,"RegisterKHR_texture_transform",0,i5],36697),e.i(36697),e.i(87449),e.i(13197),e.i(33656),e.s(["KHR_xmp_json_ld",0,i9,"RegisterKHR_xmp_json_ld",0,ae],50099),e.i(50099),e.i(81847),e.i(81183),e.i(68269),e.s(["KHR_animation_pointer",0,aI,"RegisterKHR_animation_pointer",0,aN],59234),e.i(59234),e.i(8842),e.i(61195),e.i(20943),e.s(["MSFT_audio_emitter",0,o4,"RegisterMSFT_audio_emitter",0,o7],96904),e.i(96904),e.i(21388),e.i(62411),e.i(80711),e.s(["MSFT_lod",0,o6,"RegisterMSFT_lod",0,rt],73053),e.i(73053),e.i(44040),e.i(96740),e.i(29691),e.s(["MSFT_minecraftMesh",0,rn,"RegisterMSFT_minecraftMesh",0,ra],11893),e.i(11893),e.i(56629),e.i(94779),e.i(32283),e.s(["MSFT_sRGBFactors",0,rr,"RegisterMSFT_sRGBFactors",0,rh],26900),e.i(26900),e.i(75530),e.i(85246),e.i(28429),e.s(["KHR_interactivity",0,rq,"RegisterKHR_interactivity",0,rX,"_AddInteractivityObjectModel",0,rW],76649),e.i(76649),e.i(72020),e.i(96293),e.i(69785),e.s(["KHR_node_visibility",0,rY,"RegisterKHR_node_visibility",0,rJ],78287),e.i(78287),e.i(55843),e.i(82494),e.i(74643),e.s(["KHR_node_selectability",0,r1,"RegisterKHR_node_selectability",0,r3],6518),e.i(6518),e.i(76940),e.i(8013),e.i(73593),e.s(["KHR_node_hoverability",0,r7,"RegisterKHR_node_hoverability",0,r6],42449),e.i(42449),e.i(7273),e.i(90437),e.i(78563),e.s(["ExtrasAsMetadata",0,lt,"RegisterExtrasAsMetadata",0,ln],4342),e.i(4342),e.i(11031),e.i(55614),e.i(37992);var lo=e.i(76723);e.s(["FlowGraphGLTFDataProvider",()=>lo.FlowGraphGLTFDataProvider,"InteractivityGraphToFlowGraphParser",0,rF,"addNewInteractivityFlowGraphMapping",0,rT,"getAllSupportedNativeNodeTypes",0,rC,"getMappingForDeclaration",0,rb,"getMappingForFullOperationName",0,ry,"gltfTypeToBabylonType",0,rS],13799),e.i(13799),e.s(["AddObjectAccessorToKey",()=>sC.AddObjectAccessorToKey,"EXT_lights_area",0,nB,"EXT_lights_ies",0,nn,"EXT_lights_image_based",0,s$,"EXT_mesh_gpu_instancing",0,sj,"EXT_meshopt_compression",0,s1,"EXT_texture_avif",0,s6,"EXT_texture_webp",0,s4,"ExtrasAsMetadata",0,lt,"FlowGraphGLTFDataProvider",()=>lo.FlowGraphGLTFDataProvider,"GetMappingForKey",()=>sC.GetMappingForKey,"GetPathToObjectConverter",()=>sC.GetPathToObjectConverter,"InteractivityGraphToFlowGraphParser",0,rF,"KHR_animation_pointer",0,aI,"KHR_draco_mesh_compression",0,np,"KHR_gaussian_splatting",0,nA,"KHR_interactivity",0,rq,"KHR_lights",0,nM,"KHR_materials_anisotropy",0,n3,"KHR_materials_clearcoat",0,nz,"KHR_materials_coat",0,nX,"KHR_materials_diffuse_roughness",0,iq,"KHR_materials_diffuse_transmission",0,iR,"KHR_materials_dispersion",0,iH,"KHR_materials_emissive_strength",0,n7,"KHR_materials_fuzz",0,io,"KHR_materials_ior",0,i_,"KHR_materials_iridescence",0,nJ,"KHR_materials_pbrSpecularGlossiness",0,nL,"KHR_materials_sheen",0,it,"KHR_materials_specular",0,iu,"KHR_materials_transmission",0,iC,"KHR_materials_unlit",0,nK,"KHR_materials_variants",0,ib,"KHR_materials_volume",0,iN,"KHR_materials_volume_scatter",0,iG,"KHR_mesh_quantization",0,iQ,"KHR_node_hoverability",0,r7,"KHR_node_selectability",0,r1,"KHR_node_visibility",0,rY,"KHR_texture_basisu",0,i0,"KHR_texture_transform",0,i8,"KHR_xmp_json_ld",0,i9,"MSFT_audio_emitter",0,o4,"MSFT_lod",0,o6,"MSFT_minecraftMesh",0,rn,"MSFT_sRGBFactors",0,rr,"RegisterEXT_lights_area",0,nk,"RegisterEXT_lights_ies",0,na,"RegisterEXT_lights_image_based",0,sq,"RegisterEXT_mesh_gpu_instancing",0,sQ,"RegisterEXT_meshopt_compression",0,s3,"RegisterEXT_texture_avif",0,nt,"RegisterEXT_texture_webp",0,s7,"RegisterExtrasAsMetadata",0,ln,"RegisterKHR_animation_pointer",0,aN,"RegisterKHR_draco_mesh_compression",0,nm,"RegisterKHR_gaussian_splatting",0,nv,"RegisterKHR_interactivity",0,rX,"RegisterKHR_lights",0,nS,"RegisterKHR_materials_anisotropy",0,n4,"RegisterKHR_materials_clearcoat",0,nW,"RegisterKHR_materials_coat",0,nY,"RegisterKHR_materials_diffuse_roughness",0,ij,"RegisterKHR_materials_diffuse_transmission",0,iI,"RegisterKHR_materials_dispersion",0,i$,"RegisterKHR_materials_emissive_strength",0,n6,"RegisterKHR_materials_fuzz",0,il,"RegisterKHR_materials_ior",0,ig,"RegisterKHR_materials_iridescence",0,n1,"RegisterKHR_materials_pbrSpecularGlossiness",0,nD,"RegisterKHR_materials_sheen",0,ii,"RegisterKHR_materials_specular",0,id,"RegisterKHR_materials_transmission",0,iF,"RegisterKHR_materials_unlit",0,nU,"RegisterKHR_materials_variants",0,iA,"RegisterKHR_materials_volume",0,iP,"RegisterKHR_materials_volume_scatter",0,iV,"RegisterKHR_mesh_quantization",0,iZ,"RegisterKHR_node_hoverability",0,r6,"RegisterKHR_node_selectability",0,r3,"RegisterKHR_node_visibility",0,rJ,"RegisterKHR_texture_basisu",0,i2,"RegisterKHR_texture_transform",0,i5,"RegisterKHR_xmp_json_ld",0,ae,"RegisterMSFT_audio_emitter",0,o7,"RegisterMSFT_lod",0,rt,"RegisterMSFT_minecraftMesh",0,ra,"RegisterMSFT_sRGBFactors",0,rh,"SetInterpolationForKey",()=>sC.SetInterpolationForKey,"TransmissionHelper",0,iv,"_AddInteractivityObjectModel",0,rW,"addNewInteractivityFlowGraphMapping",0,rT,"ensureTransmissionHelper",0,iw,"getAllSupportedNativeNodeTypes",0,rC,"getMappingForDeclaration",0,rb,"getMappingForFullOperationName",0,ry,"gltfTypeToBabylonType",0,rS],81565),e.i(81565),e.s(["AddObjectAccessorToKey",()=>sC.AddObjectAccessorToKey,"AnimationPropertyInfo",()=>sk.AnimationPropertyInfo,"ArrayItem",0,sR,"EXT_lights_area",0,nB,"EXT_lights_ies",0,nn,"EXT_lights_image_based",0,s$,"EXT_mesh_gpu_instancing",0,sj,"EXT_meshopt_compression",0,s1,"EXT_texture_avif",0,s6,"EXT_texture_webp",0,s4,"ExtrasAsMetadata",0,lt,"FlowGraphGLTFDataProvider",()=>lo.FlowGraphGLTFDataProvider,"GLTFFileLoader",0,tg,"GLTFLoader",0,sI,"GetMappingForKey",()=>sC.GetMappingForKey,"GetPathToObjectConverter",()=>sC.GetPathToObjectConverter,"InteractivityGraphToFlowGraphParser",0,rF,"KHR_animation_pointer",0,aI,"KHR_draco_mesh_compression",0,np,"KHR_gaussian_splatting",0,nA,"KHR_interactivity",0,rq,"KHR_lights",0,nM,"KHR_materials_anisotropy",0,n3,"KHR_materials_clearcoat",0,nz,"KHR_materials_coat",0,nX,"KHR_materials_diffuse_roughness",0,iq,"KHR_materials_diffuse_transmission",0,iR,"KHR_materials_dispersion",0,iH,"KHR_materials_emissive_strength",0,n7,"KHR_materials_fuzz",0,io,"KHR_materials_ior",0,i_,"KHR_materials_iridescence",0,nJ,"KHR_materials_pbrSpecularGlossiness",0,nL,"KHR_materials_sheen",0,it,"KHR_materials_specular",0,iu,"KHR_materials_transmission",0,iC,"KHR_materials_unlit",0,nK,"KHR_materials_variants",0,ib,"KHR_materials_volume",0,iN,"KHR_materials_volume_scatter",0,iG,"KHR_mesh_quantization",0,iQ,"KHR_node_hoverability",0,r7,"KHR_node_selectability",0,r1,"KHR_node_visibility",0,rY,"KHR_texture_basisu",0,i0,"KHR_texture_transform",0,i8,"KHR_xmp_json_ld",0,i9,"LoadBoundingInfoFromPositionAccessor",0,sO,"MSFT_audio_emitter",0,o4,"MSFT_lod",0,o6,"MSFT_minecraftMesh",0,rn,"MSFT_sRGBFactors",0,rr,"OpenPBRMaterialLoadingAdapter",()=>li.OpenPBRMaterialLoadingAdapter,"PBRMaterialLoadingAdapter",()=>la.PBRMaterialLoadingAdapter,"RegisterEXT_lights_area",0,nk,"RegisterEXT_lights_ies",0,na,"RegisterEXT_lights_image_based",0,sq,"RegisterEXT_mesh_gpu_instancing",0,sQ,"RegisterEXT_meshopt_compression",0,s3,"RegisterEXT_texture_avif",0,nt,"RegisterEXT_texture_webp",0,s7,"RegisterExtrasAsMetadata",0,ln,"RegisterGLTF2Loader",0,sN,"RegisterKHR_animation_pointer",0,aN,"RegisterKHR_draco_mesh_compression",0,nm,"RegisterKHR_gaussian_splatting",0,nv,"RegisterKHR_interactivity",0,rX,"RegisterKHR_lights",0,nS,"RegisterKHR_materials_anisotropy",0,n4,"RegisterKHR_materials_clearcoat",0,nW,"RegisterKHR_materials_coat",0,nY,"RegisterKHR_materials_diffuse_roughness",0,ij,"RegisterKHR_materials_diffuse_transmission",0,iI,"RegisterKHR_materials_dispersion",0,i$,"RegisterKHR_materials_emissive_strength",0,n6,"RegisterKHR_materials_fuzz",0,il,"RegisterKHR_materials_ior",0,ig,"RegisterKHR_materials_iridescence",0,n1,"RegisterKHR_materials_pbrSpecularGlossiness",0,nD,"RegisterKHR_materials_sheen",0,ii,"RegisterKHR_materials_specular",0,id,"RegisterKHR_materials_transmission",0,iF,"RegisterKHR_materials_unlit",0,nU,"RegisterKHR_materials_variants",0,iA,"RegisterKHR_materials_volume",0,iP,"RegisterKHR_materials_volume_scatter",0,iV,"RegisterKHR_mesh_quantization",0,iZ,"RegisterKHR_node_hoverability",0,r6,"RegisterKHR_node_selectability",0,r3,"RegisterKHR_node_visibility",0,rJ,"RegisterKHR_texture_basisu",0,i2,"RegisterKHR_texture_transform",0,i5,"RegisterKHR_xmp_json_ld",0,ae,"RegisterMSFT_audio_emitter",0,o7,"RegisterMSFT_lod",0,rt,"RegisterMSFT_minecraftMesh",0,ra,"RegisterMSFT_sRGBFactors",0,rh,"SetInterpolationForKey",()=>sC.SetInterpolationForKey,"TransformNodeAnimationPropertyInfo",()=>sk.TransformNodeAnimationPropertyInfo,"TransmissionHelper",0,iv,"WeightAnimationPropertyInfo",()=>sk.WeightAnimationPropertyInfo,"_AddInteractivityObjectModel",0,rW,"addNewInteractivityFlowGraphMapping",0,rT,"ensureTransmissionHelper",0,iw,"getAllSupportedNativeNodeTypes",0,rC,"getMappingForDeclaration",0,rb,"getMappingForFullOperationName",0,ry,"getQuaternion",()=>sk.getQuaternion,"getVector3",()=>sk.getVector3,"getWeights",()=>sk.getWeights,"gltfTypeToBabylonType",0,rS,"registerGLTFExtension",0,sw,"registeredGLTFExtensions",0,sv,"unregisterGLTFExtension",0,sM],14558);var lr=e.i(14558);e.s([],17514),e.i(17514),e.i(73711),e.i(59934),e.i(56149),e.s(["GLTFFileLoader",0,tg,"GLTFLoaderAnimationStartMode",0,eD,"GLTFLoaderCoordinateSystemMode",0,eG,"GLTFLoaderDefaultOptions",0,tm,"GLTFLoaderState",0,eV,"RegisterGLTFFileLoader",0,tb],59968),e.i(59968),e.i(85920),e.s(["GLTF1",0,sp,"GLTF2",0,lr,"GLTFFileLoader",0,tg,"GLTFLoaderAnimationStartMode",0,eD,"GLTFLoaderCoordinateSystemMode",0,eG,"GLTFLoaderDefaultOptions",0,tm,"GLTFLoaderState",0,eV,"GLTFValidation",0,tr,"RegisterGLTFFileLoader",0,tb],16952)}]);