From b476e08d193484d33cffccbdeeffc1400e9324a6 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Tue, 31 Mar 2026 18:02:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0H265=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=99=A8=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E7=9A=84JS=E5=92=8CWASM=E6=96=87=E4=BB=B6=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=92=AD=E6=94=BE=E5=99=A8=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 2 +- web/public/index.html | 4 +- web/public/static/js/h265web2/extjs.js | 17 + web/public/static/js/h265web2/extwasm.js | 17 + web/public/static/js/h265web2/extwasm.wasm | Bin 0 -> 2107917 bytes web/public/static/js/h265web2/h265web.js | 17 + web/public/static/js/h265web2/h265web_wasm.js | 8969 +++++++++++++++++ .../static/js/h265web2/h265web_wasm.wasm | 17 + web/src/views/common/h265web.vue | 44 +- 9 files changed, 9070 insertions(+), 17 deletions(-) create mode 100644 web/public/static/js/h265web2/extjs.js create mode 100644 web/public/static/js/h265web2/extwasm.js create mode 100644 web/public/static/js/h265web2/extwasm.wasm create mode 100644 web/public/static/js/h265web2/h265web.js create mode 100644 web/public/static/js/h265web2/h265web_wasm.js create mode 100644 web/public/static/js/h265web2/h265web_wasm.wasm diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 558e78720..f6b7f7771 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -5,4 +5,4 @@ spring: virtual: enabled: true profiles: - active: dev + active: 274-dev diff --git a/web/public/index.html b/web/public/index.html index 6b89ee4aa..5825d0f3c 100644 --- a/web/public/index.html +++ b/web/public/index.html @@ -11,8 +11,8 @@ - - + + diff --git a/web/public/static/js/h265web2/extjs.js b/web/public/static/js/h265web2/extjs.js new file mode 100644 index 000000000..c0a6bbb47 --- /dev/null +++ b/web/public/static/js/h265web2/extjs.js @@ -0,0 +1,17 @@ + + + + + + 503 Backend.max_conn reached + + +

Error 503 Backend.max_conn reached

+

Backend.max_conn reached

+

Error 54113

+

Details: cache-hkg17935-HKG 1774949106 3569844636

+
+

Varnish cache server

+ + diff --git a/web/public/static/js/h265web2/extwasm.js b/web/public/static/js/h265web2/extwasm.js new file mode 100644 index 000000000..b0a677c7a --- /dev/null +++ b/web/public/static/js/h265web2/extwasm.js @@ -0,0 +1,17 @@ + + + + + + 503 Backend.max_conn reached + + +

Error 503 Backend.max_conn reached

+

Backend.max_conn reached

+

Error 54113

+

Details: cache-hkg17921-HKG 1774949114 1797962780

+
+

Varnish cache server

+ + diff --git a/web/public/static/js/h265web2/extwasm.wasm b/web/public/static/js/h265web2/extwasm.wasm new file mode 100644 index 0000000000000000000000000000000000000000..386859188e0c24b63eebc88cf2107c7222545d45 GIT binary patch literal 2107917 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

WOh*RhEykQu70Vza-!6C;W@LLD94LhP$||N_`6# zZp&S~NS%-n3i;PbmYSKgOWBfR2;0}Hpf8|8KS}iFwlypOJa?ckU9Tow8^@0 zUh*h?md3f2bWBqr_<{=hDS`^UHUY+DNa}t}z@h12Nqb1zvMnlQKB^=i$rWDtQlokTPrbg@~MnT17mU|D)aUms|&tb#E?8eWIruET}u-9Q)D_>}4{q{yu z*-^!T|ATmOkpQN$nL&5agJ}M+r}&q29pbFjQ8d1iB?3j3kRq|T%4M`$i7J+HTdN&Yww zNroYhd8Jt6s4iwY{FJrLF7U9%x#+zl#Bm&^%XvCQhIXcKB1IRJNK8~HKvv5!Q4y7s zHN3^Q=%XI-OPN$OUZMaE#9q2*A(?=qj$A>19fCU4W*BlwuA<^A?SMF z3u{QnFx}wTt60CREjOWRTQVr#LQRMl*U(6=}I4eg-|iGPR2TbGUYS{=KyXmxbY z11tBUOA@WV_BX$I-d+O&ki=%Le;cR%gYwp5h?Ih*VF+~wnELPR{BER< zCM_r-3tmwMP)+@x{_Xb@mBqNrS}nc~e4`|FS;~_S)kbuYZNEz&rl%G*o`*H|WPJu) zPIGFz-A3b^luA%rz3=23zN&Kv_k%#ex z67Ai?*&E(a_UzF+;N461-o3ypG6)OG0Cv?s{mjLCS6}&4n=anHcXj!Wcj+OR^SJ-b zPwVmiTj#CZy?1xkXhVE2gDzN!bVZ_l39 zuUSDPc|Ui`_gC!QqkOwv>7!kB&~VpJ7Z_Xo)$nxjUI$GHgWju7?QX@CW?hOY;XxKI zK(Vicw_wc@U}2w{R`KeK?pbk;0dUWM^BUakllB`_eMf=a2w1=wT?ctyfF+x**ijBJDb(ko)H77R5_ zHU~%7)0emH7}>h{;XPTj`$3gM1dTw;mv%F+p8| zRE$bV2G!(!5^=EaF7i-+7w%wi6aSOl7o&?|fY{>@p&M)-m33>(ZMdH~(Va02ga5kj zjA0aye`id&xSz$bm2l;*J7aW{Oy}E`_lFB#Amhhg858@j>9&|oEmLlbi9QuBhJi>> zOLWVp)^x6iv3lsplpw7af-ALYse36G#&AmvtdeeqDel23Zix}qwD%9d1hk-fGXF)T zS}T2Xe+(;$eCjvh<5*}DjXlCDEt&NjV^nS8?Jl}Ytf#pF7{K92%1ncYFg%G?)yA{Z zs@nD&I8fo3V)+*7R)w^;$MOzRYMCD_SE3MuKqtG1bM2SFtlFm0JSPG2BO_kj)Enda zQ%Tx`|Ei?8WXN@y-8$KxbK_*V`I1c$w&rYvv?+S1%WJ`nT!R@;4yeA4E=g~PWudm} zTzsH#vZL*bY|!t1guq*kIYA*}8;e4q=!V9Vs?%;r)#+|6XneaO_41|EpnSTqM;Qw^A>oP85oUK% zhdiL38I}FvIWE$k!gw}66SvS024NvHj!{{5{M2gPv56mTyJa|@lmsYEM*BiCQ8@0g zEvLvsd@EQr97WM#FaI0}(|z1V&M0~#t_?Jcoj7d?8k)b0Sd9IfWCT!xlGmyhasI{O zMFbkM$HeRBs@T5@oBMlj&U!xS;sZJ29$q^J;+8QQ@Y04 zXDhWfQOzZp)^hkR7VOKUM<@umd z6#0z+E1{D*{&i&>lDwEgdE2s|sr1c2+xCfB@}0{iwDXdmzp{>Ej`6yo?o|_Jn4~>$ zlK9<7?hRfy=$O22R1Zo5jn|FdZm%1x^YXgUJH_jUwu_0caAWi4=I^x~#^swvpn}jg z@+(LDur{9IyHtFmo}>6`@y)rWz8l3i>?Nf`0w7=CGRcHCW<}ZB)S8G<6GnZOgwZmv zT3H6Prj~x(5{Yq}seH!dSRvn6XeJ!s{ajvD|*d5xztBs#fTl?zIgEeGq z;ccdO)n}ALw+V(EoYZS|q?=j7R#UW=_e~jei(mvW8YsLLNq7kTV_1SL47wvcD?Ey{ z_slkO(BYo?&84KLGycc;3bB*7C>+3X27x#g0NaD%70fywQ{#XgkVAq6f%>Ydy3HqO zuYu8w1y_#B%Zf|hECn)TF`HO8>!HI2B04ASc;ty{pze(VcAwn14?wsjSmiEPa()>BRnEL12c#nft2RGc{3!dX#3~} zlyMN}Qb3K{It;6?sSiY?o*V9?X?~N5#YS4E?7g(Ay2rhv%AMPdPfQ0%v}w`{)0=98rVFjn}3R4R_{pa6L4MR<5u zT!{PGf*JFmX>n1162%hBL65)+M_P+Zj)8+LVz)>3-ZuMCdFaVAsIV7F8lVaPj>UIqN=e_<*b4fdu>=$$?MYf~zRC zc??|)()Bi)9LpGv2sw_%UOlo#lIkr)YKk#99>5yHn$ij**zJiT}GNbPK*EKIE~etnbyqo zQ6iD7v5}+6C9dS)?6>55w%RzWfW_A_QWU@$=h2loeq#=C2Ze8L-2_K?lyTI3qRLa< z+KR!e(4?dC5J=ScIAmB$^`QEngq$v&oHr@*Cf4NR{0$yKqz*?4^IP;pP%#Tjg&8IPaVMn5?+hOs5FQu9Y@pouQ$KnJ|>bw=HPr2i_onZUXgW_#si_A$wJws7-VpA z7#c6$!_ME?KOV0nspE)rfes<7bBr3|3yfWJv-YHY`V z->G*yXB;peKiRavkPP@;#Gn@s-b7fM@734B+$hpjw<6EfsSPiUP1y9%#Ai{X*Uc2c zDZ)6|Ekg{&fO)=RX8y%ei8->8q#VKEFUMr~iQDpy=-A-7{Czs_ zIhwHGgVb9yQQRChSO5yxnbaP8HsCaEYi3tcaBI#hW z6Dl)nc`rH3;H3TD z*;+C25{icoxSOpl+XZYDXU4234>G3VDAXTeIG{(Z5|Gdym6=)s|2Lu612@bWrZffu zm|c&Yd|(ODaX)3#S6Mr`WE7s?AH?NAjZHWL(SQ^Kmlx7qqShn-1*3z|gB;Sh$V?G{ za*EX+IoyZPPI)$onoljY4LS6XBowBRwJF%4+Ts^xTNc~2%%NL!FeQGIUsN2BS$(lElcmUcf0&OE~MCK`#jq zmBcdyqy(72$99&6+VFl+jDnS{ev~9J-&YjTt)_E=l20-xS;(X0x_}A|<~o z|D1y_9)0i3zvqVNz4_<7t(&+F2zOHmqf(aBU`@wbf#4go;QkHj9c}(;qQh~WcbtH1 z;`IV_t8N1AaSf;rHl0FLee7tHg-$c)5{aW$LTQSHHtDMvfanrlj=q3E;?m7okM1_X zlMFF96E#UFNA%J?(Mi3m)0_5Y?Pi`!;=yG~l1TIfzXAUF)0qTDjp>Vg5zD=#p>-RO zxvj$B$h27zHRU+Zup#t8i$j^^gi9-X8^V*|yVcrQj00j2j%^NEaUnO?U$HV53ut>7 zCJn;mG8po98MdD`*}vTxX#63&4A>!Cu@mw41#<*SO=gY?7AmWYO)9t9B+&)fBsm-@ z!vzuB_i9!l3_>TfM|{>55%{NCDmJOH$($64hp7P^uw+`nCP{SKW|R5=7a!rKFIi)9 zO+C&<;lb^C79{zJkMkLUw<8!uN@Gpbu%pv$tN|sAnV3SgVGA`Pe;!fu$)&b#T3xPb z+P?Y99zKv%Z^hS8pTCV#TNy9=^l}RQ5aTh(6IP|Qgj%Ff%puEI>r_C3&kimqnn|#_ zTEk>FJ1v+manCHIEu(JTHXM~5Wi|hJsqsLmdaJTw>~Y$k?nHC4@}I zgfCbYeLQja&m%71wq<48Hk3BY_)E@Y-CR5@a9NjFQD!~hm9%FGG2*gL2lFW9V_M%D zojkKdHs&}kh$!+f_$czwl=4cjB-jYbCwspl_s`$YP$%xl6BjQb{0`#G(l$tNCD)g!)eaEg6^Q5qEB@t|u zxWKRi2#V&qo>yy?tiBpD$FrnonIys&p(C;`J4@0Prn=H~9)rn(NXH6hHpkR_uu8b^ zu)%`Z*Je%|jAvO%j72^D$FivIG;mjYs1aASeTYyV<1a&b&{o!j_K^&S-++P; zul|xGC&){>CQ^-$Fp+AS`+fdiD>-W3Tgt3>g;{No78bUuH{~jYe#lbRX@hu${2RzC z(VkEDn=^^3xZxh3<%v|Hr1mG8rP{rRCNPy~L0KIP^{aZ3s}jt#&v+@SV1!&5Rey#t zv;hPYshoIcNll;xla5jx`8#EiEp#Q%q^guKdZ2J*csKHwmhWVY+t;AijyfQ_Bx7x_N3Uwc-p?x_+~Ol?DK0ubj~ClG+(Vzf&D zQY?yX!IpNF2x+u;G~RV9<4Aur^&|gHqzhP}Gw%x-hbu{rOQTHerU?r+fZD0;A8C~k zC^o}9%V?l)XQmn^tMa#VNMMI#K5Xr+E0zUWX-=WBnfq@vW(ElhX_XEoZ8>Go6eme_ zE{~8iRMQH1uDrI@xwu@bAe8)zJ#nqL{Nor6^^%m)YYab%>cRq3#z0J~BbgGCaEK92 zd!iI{8}$xV72OWr6#0HbI9*iK)h=3^K8v8O`IRK7DHC|Dy%|O$lwZTirC5NWWWBwG zgN9hS-vCDnO6m2QQT@HUoK?1tvfx2+Hy}({!-x@lbtm1M5Pg$^d#+tYDb~ZrFrpIv z3)y(u27{-aE%9uu?W-7Wq6_=o-$phl758gw4=uI%&l9A}1N=2;ToiXJH19b(13M(! zOHnMeuJmd>(?umI`U5sM&?SZ;D~(JmLAb5Y#uKoR)2Sp;DWr?S zv3FoFJ<8x}1!Zz0qo{SNbg5FZ_Shn%et<4aFqcRaqVzrfH$K{LOQ8R|J9yFh{u!Qd zS^VC505_5VOP>A{b1_1JG+YH{x`zdT38?pe6t5qoLxCm8_!3n^j$E__B6Ay*4q2*x zX2&3pP9}b)U&`kDbDUiB2?()vq!5-;gzbJKXF&W%W}bVUVC@aY5e)PYik(f9hQ`90 zH+1j^Jc0ZG3yo;p{9+7UmgGGUEgJkC8m#O5Xc%n%`tVp264ehR5|&cp0;Y%_44lsM zIYqQlZ*c6STeE2_wTijtxrr@@4rc7&Uzv){uK(0u{mqYVkhGZLw_~d%Ip(^MT0na= z0$jkeIYE=y6eH4 zhLX!O0_@Dpso+O?GR7NdB^uDT3T#nm_$Unk+x=Vh0>u{y!O2_CO)d^sF6d^RiBgyD z*F;ImUr=J?1GB;jsXdI&RCTb-*kPEDEuJphT}C@wwv;rH_C=ht+11*%JvaA$a5uk)K!%5f(^Y9~`xYz{B55tU|9B zRl!smAD7x`srhZrn`m6~TOhgBmz7yp+w(uDk+fb$q?(ZF)V&=Uh(n8WWV_Ctcx%Hx zZjHzR(&L{`C5!FxM|hsa^DxiFJfGm{cpl=};`sp2vw7alle-x_H?*;@L8X8v)(8Gs zZYjVWxPOZ0Jf2VRd^yiUJn_Nr@8h|I=LFAFdG6wQ8qb|PFW~t+`y|QOpZ$N?d;2&$ ziz?rDKhNH~-}dhA-AN~O(jlqmNq`QJ&_GB60!g(=hzxfGk)zI?KfFiIy?&B-uL*(i zFnMV-hUnlJl~F`SJHZ){X%y5EP)5SY49tickEp1q@rVw-fSIeK=pf$jZ`Jecx1>8^ zoH_UNnU8td&)cf1RaL9jTD5A`Dz1ZEALn`s*GIU{j>8gu0%AavPAji zO4K$49r+Nf@-(iT>XDqy^$^z~t_mBxjH|*1pTqSLt}o)cdSh}vmrXMer zaYB&jTh0a1x5DOX{);RyynZtQY0Lh>=p~GHroBI*0xQFEq9Z2fy7WS33BBvmRh!cR znp>yAtVAWFUrJhfE!RFd;!5j!OBDs@WHgG)3P8s}!flO7my|ugEDDi5A7SWv9Pn9$*+#5{ptB4@9cBQ~adWr7Vw zQlsj?m>`%6{9QG~zd+8_Iv#2XA>oTxp>S}f_Qbsg}ptbO!s+C}GT$wNUw!@8yUIzTp zUJKfIykI4}E6FU=CdjEURS{iB&kOjY6(Q)hB3PfIhL5rc&w^iJL+w+DJ8mDd7Yr0$ zz)u?V#qEJehqsAc)%+(uOs5sN`IK%5!Qr1{0^ZO7YV@KsfTACl(n0D!QXEDW$K=X1 zR_0v7X!90xMbL&IfVL!9fI^QK{HT8pQaGPX=xVJLW^1H~flE{qa7PKs?&?Rh#~0~M z$c$B9nos!!aI*Z^dwSiALYB7RsG%pnWDyZEavW9*rkH2oji#xfji5fM!q6Z{_#$4< zrb?Ck0J|IuQGtKd5;)C2ixl1~Z&0FBm{$z~Jk+0$F_FGJ>*|EgI@Smt^}hzybF$i7 zeJsd@32OL&%35~pOdh|f*DX^f0ei_{64fO`)}a<(Vkqy>p}a$f{9no1ffNcVU4AHd z-n`Zfp?2xeT2nm7M&C3xdYOjo*~doiqwno?XE%2SOX_s%5DEhV^r)EHRPnSN)6;TH zPirH+)5uk%$Hu@WQe#*gt@f7Zsd=8K=6RmlR{K-4JS|77rZ%ilOQN@LisM4_AG|O4 zSKv4M(DuCnJLQK4Nb{X#SRqEsF$BPn|22(!R%l$jQ6AX2IgrmZ&AK>mg2j0gEN*Mo z#aR<%6y4UmHj-B}co?iNM^}OHYlMHop=x>jhdkOW=TfZXa+qxhA#RPUST~I1IE>^t zjI`k}(!gO{@vzDnS3ym0>gs@t5olTC^xaYT)7+NFd4IeKBRIj4f0X*jxAw+9i9M(q zv=>LJT_d@9&BdD$Db|cc;O2(EL|+%cC0B0@et&w^ZLcoXD@?iuRk2qu*QD*3w%6+KNGi(lH%GAY1-POr7+EnYk#i|9$LxOWMCX=8z|u8R=p4M8&GPg9)>~G ztbi&P^oCG9L)fwbW9*N`xiB0VQKlx0Q*y#MB`1tiycRhca_5wcFpM6?<2MDrZy4_u zubyjIJ;!YKHsn+Hmx&*@mRs zLo4fj*E&e$lXld!FAxfs*Z$c7*8VYj@cYphUpGGfq8sJGN*Bt=F&<}DzOsLqlg?NO zSq7p&hh-A^WsW8EwjTb`w4@ER>OK;OTj6JxQ3=lo^OLK3Nn-XZ)_0+zMoxk4GxcI=V zK)`mZhzFXTvGz;IA>^gGS(aCw8ZZEnizp$GIJpFyfz92OORyCf+V-fStV|0=ax7v8 z^T1wMalud6?_K(3IUgdepoK;ZCv@hN$>KFG+L8{~!n`IBInnmulgq!_hs{#MRwrnO zR7NGXD4%d)5}?f3%%zmt<7E=gx>_2Vqw!PXu$YelLpeLL6j zGrn#87W{l+2Q%2iY~U|%fbW?OJVR3ET_#k9-0k*zZ$R;M&6NGPW0hM|Dw`)6PK^qN zw6|EQN&CG&q=kRu1gamW9IRF}HxsaWtuU14wYp(yG>dtyUfBTOI~{nVR*d)DYD!2s zEEF`d2L0)pePC?t+8`l2AX<=g3GcOwfIY*CY{|j}WLEUB1v*@7Yk@$53|92qpbpE- zl*+HQuD|DIU*&poJ}ghphvms_!}8>8SQ6!CZdgf*!vK}Zcx*fy`|xX1zRiv_Woakn zrJa#iE$o=+n)xu!|~Tq};n7BhLn{Dp*!()JM_-MOC{j7V zH=b+Zksc-@BNbibzjL$AJQw+&>4vb^{;OOY0%K8DG$X`qrYspU#FRCqX1@Uu7dQC> zKaFLMa}hhxcw;QNLfbR>R_hzgLjgvy8K<F0X1q18p7+7(rhBGL;e$Bf} zT)?`Ei($jjS8{ymS5ex6GU~rc=KWdb3NA|Wc_DLoDe*KCG9M*#a~dC1=6xY^qFXC- ze5HkJU&x#&`g!K>yrtLmk$J@=!-bBul;|oG4#x4szNw4&AKdjw-P3Fp3v*&!m=o*5 zHey{!37Rm@)JQV(gbjzwBzNmFNQ-$#lZx0|noSz6rsH{t?3$OF=B1`>8gCj(Wsw@0 zh|Dtvc?wNVF&G3pB%h`*+tJKZlU?kV2H)zXf!;(a57UlIDUac;&9KdtvZg!IDqu~Q z=(3UzaVROWP9zOS(VJz!mQB=>Gp4J^d+IuIet!~MveYU8huGtKy-b>-$b>d054kJuc;UR7-wMR$X$RQc?XcvD~LzYpq| zZVQLY!$g#H6fwog4Z8#G!1h#zZYE$|=kNDgEQ0)d8n)-iu@3?WY1r|V*dh+oaS7!Q zeff?r7qpkfayO{jcO$cplV&+3Qr&1I8SlXwCqb`_XRQtv{GlIK z2{KALp4c<2RRy`qJklj*DiNK{0d$yU+20_49X^Bw0nPbIN(-Y|3sv$^q`pY2kQQ7p zMCy~)LatD-Ob>Qp<;SwgaCt#lm?MTnMV`gb3&vt7V8K!Cs^!FIZvy=hYncSH&YEMH zvSr$y?cs_y3`B*wY8@i`(T`LH`mcSCIW$2BKg5G}%==XeUPVY6EX|TdfiAt<*q4|Q zPM)04{M*aG&kQcCY0l)rnx>RD zMs@;2*T9#1xIf&z0bfyO%RI}d_&CpV^qyx)hM#dA=K3sGSs3pp{fS(E%=4@U30eDV zV-IsP=K5&h^TlgqWFQ(e9K*~F3c+i4HHEjeyCFrmwL7<>=)&EIqF&p(Q47DRv@2H> zS3*fF)y4cY=emAHalKeEJ8@AwH4g&~tc3xa5mq6=q(F-oYR_U8!tLPzJtjvf@-t3l zmqoC%uSWp#A8w_s@pUhrx-j$~{+DOo{Kt|l@mhSqu3fjKw^QIlVY;DKfCvm3GXrJ3 z@5u-%2n8!pWe}+Wp&Xyz#~F#LX;xwxYEsB56}jQ_BJ&BsRLa3wfMXxjwj=TB3<&N9 zt>WTR?DF<^KVEe*`WSaM;#RXj$wD)=*gP|(Yzw;PzXr6-u!fQ>sw~syO$fm)E)Jz> z9&==TeCK5)hV$ZL4PCdAB(Ai$_-wJ|GlNipF2VQ0i(S(E$*eo_aRB3FjNT=v$fB{G z+uoEe96MjB1}F7fo2-2@N>AFJBp$xu7P>|5r0tv#q3I+KO30epox8VR&MBC^G`9sl zc0+3EzP0HB8hV!cUk=?dpH~}Ysxt_ZZ{0!pbVV&KhnuR7?9(ah3~+6pHU*-vj&L-l z3NZ3RSLB`3$0!Qes0)ks~l2*G%ejQ?+vl%QTGz1n5-3!k}sm+2N8EbicfF zu_EWZ*JVzbvAz=AQX^KgS44tbfvLXbmGy+z>F+!)P zV?>)F6u^R4;nA!G5qe~-+DEH7d+|9fP1P}()sMh#HK@q^qE!;Z7s z)k}a)zYJ<>X4@~@Y@mrtuV7Hn!|NnBQkW?@9f$f+Zdl2H=EwE^M>4T0sKTcNl}lO7&tBmc3q(O!01hj zW2Z1Z12k`3(_Q3J-VfC7h|)BuFI?#0`BLB1jzwt|>yjR1ccur~o#{b#XL^v`nI2?!rU%)b=|Qo$s+6JTTul#R@S%%n3=;d8g?DVQx`L)% z=NWRc@uL$+ZCJ!A@rWx(xs-OKrV15E3xc`SR+z}(z}#+6z;2?RPOXGDRy$PnA$t5&;G zUOUbxN|}>tY1h1-pndH;=(%ITaC=VHQnSAvMe5f`s;`wV_H}6Kg-D)tMAv z1>SiHyphC13WfyFIId#DnEhEmFwPN-{a?2r7=vI145jo-Y1fn%WglF!qNy&7n$CvA zg|fa3Zm4}eYI|3;xJC^)nJ{wnH6vn}Ti6q%T)65)4S`$3CS(_k2e>3K$Dom{Ty1x3 zl#k86^gr|+Y;Lp$F^X4TtHQg0$>7BwstND#(>DOjS#i{UTy)g?kNw z+ILtH(y$}cm4>QKpbETz{%iiPzs!~l2rR_E3cl;1Hl~&_4Xl#1$0(`xV2n#7tI%Ok z@E#3_fL>6M>M|b5zgn6bzPLIYg?Vcq7v`;c3FXpmn%YX!WH(AT<@D6P5X;d$tcDg< ze}B`&mkYJ8MuASm3yNfDZ_(Ro|3t&sgX&sRH8I2Mg5gaUO@HR_P2)M(on*8KhyvL_ zly|tT>qXkF<{@7YD*AC#&ue>25D%h=jUlqO0lV?F^z;zD->_Hw-B2FmqHfVWuHd z7}>WYD|d4vct#_0O>i&z=QzH`#s^ymun4N3R9CadnaK}5B(hUpsD7i-MID!tmttuu zn}buN-E|yk_hf0U6vUcZoU$I4umu%_3NO@|5SIVuW7Tlf#g&v!g$z@^Jk^b{sbHZ+ zm4zzOWpn4+eM3SvfJuG zC=ce1WSAnQboL0Jbo4C^o>`ihBP z8;-J8QqBb2eackbov?8KfDgw+nC|NlbEkorO zr4dS1Cj@4OYBoMWw0TW?l#>RiAe+ql`M8xG+eC;2XtBw{ZLtt5-!8>nJ7XCawO!|k zRTHYaufxZal!CsiX&OE#_rGRJL|9CX_`R&~|w)+ss#p65dSS9Ee%2}PjQa%Z>1sb>L9K+0HM`;L6bsYbo2YZ=T#|p1f zEyMDnD`-@G4^OnT?YGpMT6l9nZ(<{`!SLo$y%9TCLH3~wizR5Q zLJ3SJtbAc$9`et8h;1)6y7jV46t10ER8W^ekyX8)WA!t9BDSuSK3Vf`y(368E$R7d zQ2?~G$GiY5dIBBWledj+fGe8E-9-qj9x9hj2#bmfiwjE(Om-w_KbT2;Rtwa5o#O6_ zIZYd&lU$UtzvL>fZ6OC9>{O_Mv`c|pIR^=9&qpjaMePq$U2&P^Lq~`fK!{K6x0J-k zWTh#XU3AQvW=K|@cij!nGzaJlgb^4ZRn>!cfgIoXrLK8!>`ouKuB}%=`1EO{E{a5e zhX17N9qZb?OP?}wlTpR$WN@||%y3cJHrrS@zETHeK^}aGFt@7GYF69Ep zo7WmkGWtl()E zSHPDEW=6BhLSWa*XcSF(6dX-sz2ziO{seyv;(J$aiXuhMb%p)1mAc~o{jRuX+n2xa z2j_k5dl&3q^P^i%d+YbV_XnSz;58q%KY#ZtzI)=s7w%v4<^SWsITO*T4@~S|^Ow)o z1_lPMTQxC3yTX?CBY9#X{X-;cUUG&0{M{-g&m;36;)$B?-?!gI`zH3mI{8@MpTm-+ zD@;@>H%5_V0%kDq{Yi06!Tu?rD}2VwR%X;DHcjK0kYtva?!2O>a8+xW|9^uIj#wm0g$i?(AHa;2B> z@~`A0jg{BnfwC*C`N_GzdVXx_?$uXXwEn!VJNH-M^|n;y|MrQ;pSMt5c;by8cv9yL zA)KJMyp4&2(V??3BLC69``h2JHHzjC8f12eyuZI{BEc{L_%-MM_j7)7?hpS)r?=F< zKA^8r{O#n&F8%(&(PFR4-}&KIpcT7jyx& zKr!Jj9am6qDew)?^(^+Mo%AY1!QVCKzU=$E|M3e4FXVQ~XS)CIdw%`a3)MCEeB+My z&-whIy7SFfJWn700o}RgXQIP_eR`XdibxV#%bvTCZz8<3yf1q*M4RZ%t@{Bq$1I^% zhCui2L;fO#B%C@R)ehmR#b^DcU3coF_Lvn5AWC_55M-9|A+@1Yk-TCDA9xK!L)CMD zRTFut!h!we=3EM^^IQ(EnxNB#26K+i4R?+$+x>vn`29*Fsz$*8rg_edhh>AX6%z3k<*|wmh&%5y0BkG15GnG4AQD+lB?67PzkDR9_jIdu44w-^o`c@7=^<1INz zJrNG(^h5fB607z^1lhF7PALw@Bb3mG8Cls`33Wh$g|m!RCVN+x+oavJG~-=jwOkgvbjfylM6#2HHd}Nc zeycx+SDlN>&6tv(uW5Bmgd1gDgaI6clTLVwrYNS16l>p(qn0RCepAFT$tJlvs`ZFTE=GW^wCgsaEug2pExL2e z?Pex|UNm;%p4;@ob?yo(bJtk3O%n;u$zbaSol_$UAwwmw2g1N8NnDgbW2W85Z!PG?SMdmIR(E+R!goX(B8m@1P z6a!im0EaCwTa>*;2`ewvK(g>(1%KV&-}p&X-Aj4%mal%|`5kO!<@Wjee)M<$eR=#! zZhwCJKU{}x>kqj-{F%?be;f8KZodVSd%Y{5;upIr=TlAD5m9%8(!~KYF2a4(-h7*h z213Hcn^FaLFr^r-z1BrKW2W*?5v~n7qbnSAV)4Smt+Zz_9pnG@H;p}g_^~JNpZvvp z;vHk>q1+w#Oqc=3cV3?c5FmHrp+?r4Ji2J=G)2+`5FnK%f{uz>OQt9nU6Ga)2vZrA z2pO=QET>08*}1ZugUUAX*BCYlOy{BBIl}qhxx2DY!_MZBO!<+2jhVk=;vcW}6w}!0 z0=X*mKnQ7OBeH%HipFdz0|gAxE@9@yQ_=cE)`(?UtY5H{`@Pz3$}O25;Uc*vmiI~^4I3VG>w zI;g`2rQhkGo;4`_P6wq8ip(Nx58l-DM3f+)^gCT%dkspz(?Jn=h`jVW9n^$D>32G) z+YL&;(?JpYh!XWX9n`%BrQhkG4j7bvr-ORLp!7Q()Io#N?{rX)8W*UhGjV~q zEZZ)DH&;_zS_7xqkbh>NMii&S!j@re*xmGo>?hzjfaA1#&g_!0ClKX z%3`GgY|rP|!oqoNy5ED_C)hgV3fjg7cg7hq!5Aos_45y1+vOZa? zPA2r|sa)?mMRCePDAJR;PV)XVt~$>{j`H_&J)P8VKzC3E^WEIvCx99e=J>Fb>+M|6 z;Ce6DQ7N)+CRK}*zT#@Pn1cJX4QLj%A_l;Y%{bMw6O&J;(sF5+J4qKDR|%j_$6sx6 zZu>=;2@5Ug&a;|7gfPSedtZw+ont{bTaXF-u#q^L_tAI?&OepZ#^I>o3%KX zNee2tAr0}c!Gex4Bow-wM|5u#ZrhAe!J*cljl4cv!JMf)|2YWiuA5B{CFa_o>!<7H z5okfDu^IR|0G-nUemH=uCsA|U*&)s`F6*u*xF^hWY>7B#dJ?14H)7+X*HbsgsXU52 z--|k@fbcc9P;-UT_=L`(;P5JF05`r&>#(5dvSJarI}kVPy#wrF8zM}V!qUfdh3nUW zB12qgsop%Qc3S2;E*HIC^LR?oqx{?Hh@MTZD+`59yeZGJwZi5Ou%We)FC8*#nw&kc ztQvX$KHOf$1wDmgAno#;ZhIc?% z+0Hu7Y*m-z$~N1IJau=#j|lswk)6o6RB=mO-&)%}&?hc2%gwj(vXrLI#tWTJ(e2{} zuR=0H^Ctp!eJF(y!-B?Ioslrzh?z&oT}J~%zpvR)H{I32Zfl}&*N0K3n-?e|JO7C0 zp2aJIpv!u~7~&WuJwppk!w7$t>4wp=Y#8;x9>gOyGmR0|`hDX9&`>5?i& z?y|-hWNLK$!;1JoFKk$~Qd3U;Myc%s>jjYikpqjwHd>EH{x5(||HDRAGkdYYIwiKp zJy;_}W}2=y8l!4%7*%~5V}0&SGvJ!I(3wMsDr_!DbW<=S6D12J6K!)C&$D>`I9JI= z$wX}idx+~it`dR$jGCDejD5uJN3zb;#RMxKB}fl&J>5si%;IXKIGYABc?!y=ms|0m z(aRfJUzVJSY{oNZ+no}`E^>Pbknz@JDaoUCwgO+=itLTtDI1Yb3x*TIs|a8e@hcg- zgj#jFr5lozp#@r~5@tZkgsyEO!pyh{dqF09(V$Xf3u8ZRdt2SoBxq;X1uc8Da_NeJ z6=TEIn@~rzB`I~vMKAckwgttO)p22Ub|GsVFW?p~7rKm24$DBW&_R!sFdWQdtBH3T zT(5=yuMrMC0K@C@TR4y8HTGSv_^Rh3ezBQyhqPwNfj9t|#LTqo=gS|e!=I+(IXnEd z97G_qh`$#Z4Z^H{;m6T|%;*1l(#i%qNBJs_s>FIdU*9Iyhw*Bf3TgH^{{Mzq&fKgG zbDBdE=r(NpLQCkR3tQ+97EWN`Rzkg64QWb7Pf#+XThY9nl|YwC#mLTOF~f#bjM;S+ zqssSAcS5UVJ;7BaO=i~xb~zK+o%%q(<$8t*Y;9){S>}pHu3?G1kUa$kU zHCqC?{?^zk+cs>c%=QIftKA<{b_8s&z*|p^|x~mP?UFJ4N(oI)5W$Hq3J{ud+JsBgC=RNr5jEMGx*YF>nP@*aM53k_>+B&Z(1zuAMyryKlM!dVh zYlw?XIt39GuaV1~TdaH)I90r+p6`*oMwK^AVUho9Fgx`)Fw1$3HB&pUDT%=vuc_px zX3_rL=z6=tAz4?e@tXOIO=38*u+CqyW2EZ*rP9J*y4{@C5!( zi@$WcE-i}oLDYQ}=~SKW3{7cF-7?$yLpm`Ay@j{FDEEWTWTw_lAbkHej#y)SqhRR7 zr0i&qrJG+SvhiF=XkxIYN9% zfqHD+VyBZUfxiFD!l)~C%=+(Pttpe`Nc?2v2ezhir?h1_vSfi$<@l)bT%5U27GP}Q zNNWsIvQmK3HMSrb71gi>Tp2!29A9wNW5HDe9LK0kU#@J5ksM6a#iD-faPo?+ ze7HNBh4ZR9N$qcue`sy3^+`Dca;79NGuo?pIhw!J!MSPgMkG{`^_dLP)NQ%%4CQYW z{VMIyn##)jmCol$J2xWTqpLS2G#C@2EWOEiJjanL9a5z?$~f7BMC#z^o*q-K2}W`? z6MGa5bR)?^z+4Xp(C9t;+f=%tEzfpKK~syaLR|=Z2-+~$bYMd|1D?))6ppXa5rYbp z#{N^NvOvr=EHxX&wsq1qa~96lW<6IkjlwsQl$ z$hZLqM>8uE;iof{A2a)nG!p$vT)ld~W|?um)iE-gnP=9m%t~ZO_gBQVgpBsaO^*ym z76)W3y-iy-a#H$nryp!d-ve14cT&zt4n=neb;Mns6yA0WtY_s(OG-*y!aONNa*U+2 zTapqU=eUzF_)0@SjLJK=Ux@Z1n$jvY{=j7bqFpQolgC(3bl6r9xZ6 z#!z~()_n=2I3|J-v0XdY>hjsD+G8nk8g0;NG)>K7;t+EO3CG-ykB{L-K; z;qgm@wuHwo4O$ca2T6mXNrTccq(KwZG}536Y8q+K1T~E`Xo8wX8Z<#oBMq9MrjZ6s zP`{G~zmo=-0cBkJ&n*q0d89!$`hPoV(3aH;lm>07U!XK-OMU#(pe^C?OM|wA$1e@q z5+1)aXiYeUG>^Tjdwy`;4U_oUa;`Bm?MTW-QzNEm~zE&9Piwjuz zwA}Z5!}23E2=?1d1))U^@(|@rk%x(kB?axQngW6aALW5vc`67KCQAzJ_n8W!OdfW` zxj>rCk!Gt4l`&bfq=1{u(IMo|nikIkfJK=0B?Feelc=~lU}`OP^g^hK>S8T+bcp5_ zJ32&jiya-Jxy6nS(cEH3hfs@wDSPCO-W=!g$snd|uqm3VQu$VQG~1R}u$*ccLT3@B zWx0EoZDlKL{bj8M+bjmp0jL!>9Srn}xt6`0p_j#tiPi&HYYC7u^%8uv))L+f>P^>1 zUa{5^Ud_@gjxQvB3u`S}L13*Ve44FK@`2!JD%sarYvD{7`AqiYYb__pKHe+WGLFn6 zzLUVTs!`GVKDqg_B~@s%+)>m=@FCC+hrY{4rL5|Pvbt4P2eIyGUM%*#q$hsN2DQR0 zsIs(CceBByV5EE))6<&JVgh@ zm94x?kJ@0Kf~Gyb6tnUa48~)ps8hH0*s`~D1tZBWY#r1S;r?}D&$livTnIs{r_pc; z@%{B8OS(S1zcgH487{95m)C~N>%-*@m0xv6GqgG9s5`nXeB?|xUDd~4?xoQ>tuv3Z zyh$kJ;iTrPegTZ4a1r0|T#(22pnvFN591M5@E;6Ue7}>5e=>XdSmPz6uKlJ1<`2r| zx1X~Gs88cG+cD3EXMdu3d9vE7c1j|r#b@~-*tTtPt-C&4#=(mLZ|*j%l`2q>_Kis2 zsyaglkg9##RQ9SP31KKg8(_2IvfJVvx%#LF_!6U~pFB zZ;5TSM`T4(x8WLAne!Z4vrC9;%oZTnaw8MP0H~uL8R{^_PB*xbZ3L3sz)D{+MHyf z@R3ewi8vpGefTQJ+O^)GQB#9Pd4tMhm~~k-D6A@fh|_M`w>vZ_qYf302903#Jx=?S zkI0Io)}SozHnOWfsDHXc|HyZZ>?AU#%dR_QS4XH7JNAE7baapQ)pj=FrABIMCXts3 zF7=W1OG_U`>LUUjsE;_IE%cEqE1DYt9Tiex;HC5-fkGs-a86=;l#*GBhbM1^SqdKZ z>#y~@s^V=`7uCaR<&d-S47V_mvvWwDJ<$v)oo+zB92yU)^hX;Q1EMbcg9-(0>4!a> zUZ9Wh7Nv|rW%ocdFCY6yY%53U@lP@&sSG~qjMP75gwvHa{uvGV0hTwPckw<_%d(Q-Zqre}lgD>#s2XOHX|73WtSV9)k7N2kJ z4P;LWDiBVkWmrX=^Q0Mp9Syp9?D^P?-?+uHVBeCEug3Ulhz-mTqw&to-k1#2T$Px| zjMb>+hB8(IIJs!R6bU|vN{2_8JW0YM5Ap$z{2|%~WEidxs#-}wJqt-sQE_{Ve($aD zrHUWT_>yrVogk>;iUSK5qJ=aKBb-74U$PDM)r>FIA2f{ckj?p$G(mJ>IlxJtdNDpy3i(!OPWNx~Ik(7hWwAp3DsE&}>T>T-oVT7MMS_G~ljf^ym>a9_- z)?lAbr<=(zvfX*Wisx86Qi&|%Ou^EMtpC&`*voR1Nde`#+0K%8Z9?M6p5 zcLR8E2zGRhyfV>tp+MG*fPdt#h*YE&Xh2iXg#p_p+trVqybdK;rJ zR|0HL51)E~sn@RiM#0?vvET9&xk(Y35f6F1AVGj65_4qb$s z^#^Vy&poCM%p;9C9zDB^o7EALQc!;g+)NIA%1DAB!>fgxS-WZYbQm`?Uevj6ONh8;2O;s zD6V6hiKWolkoX=02Tdx?5#Tz7y$#$TQ5TfEP{aV4<&9Hsp$@D{gB+oZis&7byi;s3 zE#Y`*Dy72Uq8j=l`^gGyV@1`l=h&W^{$L2>3@_oPcw}4nSQ5b~Ky-x&He{{Snp6Sm z#b4>y1w6;Y)W;f6v1}?gM7ZG5-bW39hH6?(?c@T2et|Kn6Y<5g9lZWb&e{MMo~6pB z{IGoppW;KYK7=UTpb=uG;R_CV5Rm-A+Y!8U6S)R`mMkh01brs%fm*~7C%M3lfF)IwW=ePCM5!8={g3-A zm&aFzyVnvSHr(9+mN%%u_tf1T<;Ql~%{}A^NW%rM8|44TKDEE(M_XnZWgLJymKF0lH+5Hp1 zJdwdX&i&)r{UPoT**#}m#k3Fibc~YIJLfNt&kxP)pFl^WU!gtJCPV`OPjqNk;zd`% zlcYpxE333zy%4U+rnuNh9aI+|mL(S7X6qq2e+SN}HtgOhkIuw{K_A6?Wf-3omcSIX3 z2UVmwEhAcJ#g%8IPOdW)VUWYYXKTbVeh!M0{}RVwx*t675`#G|u?J&weXM zjk7L*Wz=q%Dr~iJZa~bdvF7JM9XU{E0Fr|_-!bMaDRk#RJvk7O#FdlcQ}Dg2pWYm( zF9+%mKp2np9edD{!axo*BL|upfV4NC?}Pf8l>^PrfldfO_@nDPCZ#2XIXTeW9B4QI zAvE+I;#pESF$bET11$(Z9H*l1PCrQwl;%JS1CR?qiv)C14s>!3bV>kP6o4>nEh#L{ zflkeVP76RI0qArAEy;nF=0Ilzpwj~owy`CJGjpJ`a-g#V&}aZ!CZKb2pyfHxiU71M z0AXHRQaCpUIxh!$Q2<&QfX)}t1v$`#Inb&AbiSf&l+r2^_AAf4|L=ETOprlIp*NTd z4*O>xx#LsY^{!_#^Gt%eT(x-%Gfzw_Sm*tmYuKa1ikT)-_9bCSMjBTiTH-gpbKSm} z{9vfQD(FE$!+|%G9p{HBrvP6ykNIc*{1SC`Zg}v) zYwP$lYS4xcOKvc+bf&-Vj+-|C9?)r^Pj!z#$EAb*@w?yns5YNq2yQ{Y4IMIHl+N-W z`N_M!PB}zyAQNI`6DT<97+0u6pBJ<19<(_;-ExJ2F&BU2SfAd~XPBQU}L|(?lx7biWD> zM0P^(T$#@Ge|r7*KBg|gs$=CqL6BktTTw}(NGVnSKmYOByLK9=lw{JMk0Es5-h-bL z2_QhM;E=w7z2#a8blHI|@4)xp_(qYWjtj;dDiRwOiPcj>za@8q|Ki7g`B9O&wijVV z6x<0J>B``klP+Ow{2g!q#^*H3v|bVUK7r22s8$OYIVf`l|ILZ}@7`{ui$VqkS`}zp zk830Qmu}z7k^@aI>S*8zsW#J|dgi*%UH^B=R5OTXR3VJ!Q4kZe=aFB0;nPAD{SnXx zsz;PR%YXlU*S|fCbs^9|^#}y!`menGiT8$KE(9959)Uo=zy5uX{iXUaAkb*mBM=z$ zPk-pCJHp@=0u5Y`Kwyr4^Z$7J7s9v}0u5Y`K%mb*`|zj#uX_0nRF5csrvKWT@BdU7 z%__fvs!>XV85P}-f9rcc^n*884~SS=P=(a%6c9rJfBXNw7C@0o8>&~O(N!CubSB6C zx~Cuhl=7qVeTmJJex4DD6GR}-{eSx}KMsR6@)eQMEF(_Q##IJXbaVX;hj09Utgb|0 z6im&iQgjkvVg}VikNxXksOdxxCkUuJ6a{|{KrEU14}IWYzoo8FLx4{d@PW7*rOot* z-u?7nhpuf#N%UJUZni)C?DPNf$60X=oX95!D!DoS?|=RDLn1vD*TAWzxL*IOFYNkq zAmwJ9T8iuUZ~o5xw`pjoc8z9gDQ<>;^Cu@3Wu-MxYAJ1&zi;A8pAQ4K8KsuehWz(F z_RJ@Ql1ghdQ%h-G{@Gu?<<|uNu*x-1YALSIe{b^czX)7v%C7764?Xn3eQNL^ZW;|m zgF|v#GFqAG-}9TldT;1GHE4(WZ*HI#QE`A1x!m^f!6!rtfi!yrH#?)4I-E%Oz5}1X zvR-Vzzy<=%G#5MMKl8Dt?`X)AS%Rw^S!}<5=X*c)tcX1n+dxmmpQ9JU5P$vD1C81? zuxqVt)qn9*@0bi@QMGNLCkuO?9ebPo7oOYqYoQm4ZJ^g$Y?nXuxsPqG*S3LOYq2x@ zjl17`Q(!?Vwt-%2v2*;sTPF^yGeWTq^jeFp`8WRhbDwNfw}D=3xhMF)e)2~@(0~dm zRs+A*a{K(J{^HwT(U_XPb7%Q?-1fdF0u76b8~8Psi_yUi+q8#?kDNVVKY90BY%1RN z@Lgt_B1SDcoP^2uGYi-~j47ahq4owhA`6ddg4D02mO)L4_Cz>Y^rIoM!FYzNXnHln z*{P+>P82CjM^$5J>Z2^1W7hnQKZ|6+NarvC#DzkOCN)&pnxEikeMZcd2*@ReQHGc!yp#O(QvZ?vK;f=CmR-EU&1y>Pr3^)#G8o`1&L%z5UJtLgp zgdz1J_SRO`601N9TV*;2)M}3vQ|l^2MvWY+k!{^&Es28}s}8E}l=W!9^=27ijwE_j z$jCZ)+KlR;B7$-_#85OugQ#_~*3BA|6}*1`JR=!`c(~pzX=RJrB5NHVg>VQQ zrN?Wwms5v}wpcXGq+5+E>^{FZOy7wNfxW6fj|7tR`-mf^6ns(yoc3C#DNTsYPYq#a z28^F4)ZP)REw#zm-+zj&c+L)AS-hBSOMK(AHw+{N)&?v&p$aKVV|T7^GU)TfRyV2;P^lTG;t31y&U^NVPx=O4dr8R9H$YeZ@E`aHt3C zyuIbQuCEs(aRd2EGXYpl0PN1|?)o9h>fn-)Rg9~a*Q(a~F z!^DP-xoo3hp1q)`6`hiv}V+Dn$)ouH~Ptxy@3 zRu;s7PY6(zwS;|BHT4b9rhFMp{LvXZc(o9&HBqxEdaFpJ_w>S~j8-wX92)kG#VH3y z-2`I1!U$Zu5lUH?EPwzB%6U_qRyKnD0>}k$gM@a7k0KjAQBsJMa31+lt^YIhjlU^$ zyN_Q-(zI_q)_{s92wCM~3kivpk8XNe{s{R(fnzO$oC{nug1Nvvx*W+kh2g@^K{oU<@r0>aF`F%mlC1l@M*=(*)<*WS`2}Cqsd(i702~+=bpl zjf~_q<@JTyS9BP9-=^#-P;zP&9_roR$;hp{32n=7y~p9-9~tz7xS) zQG=;#>jswE8v|dIhC>YpphB6!!NI5x&p_r5je&#>Qv=-`I1FJW!|}*RhH&P07L&?w z4@_!UEA0QK!ZmR@qVOS;aH|7;R(O1@!o}3fIU9rhl=A^k2f&m?KmHp=J%QqAYPF3K z8J&AOv$J*be5Rj@EKIA{Acwm`7ww_4bl71IZ-E-Z!%t|5tsA9@ZrDn1Li4vsnaDa@ z>=#E=dPwa{;8X74F#e%aHo!=CV3(tj6{4fpAHdPNkLv`7>ws**KL%{@gO#j5>tHHyI<;2E zTd-d^?jk&4IM0NRPExeNK(Q?DWpT6cn$gh$^)OlhF560!N*eW+IGLXzT-2gIo-IV= z)?J@gb~oY1A_rjUw^~fI!y1h;i;f_WRX2B&I}ts%%xz%x2WD;<7$8BSkVzqtkEvcW zB@zb8xZD5IW?~&;5ymh>ex~DzI@Q~%T5qdO)*bbx0!|Ufs9-Vcp-@3jCr@8Ncw3{J zj5?!c>WpefrA{{pPf_Mg6jW-XAQ{sd6jU_|l7MO*rA9%GQEIdf1!rntK#&7M0%_SNsLADh(Xd^#V|;YRz*mD zBp)PQ$-;Wa7wffSHl#sPuU;4=GqXW5H$%9X4H6DyJgz~q(Bf-vl6UgIVUR#!U4Fqu zZnoqv{&$3lmCzD#%%cjJr{@q$mBl>^*(!Yn@kuA?y&|5<=|hu8^qmtl=;&4+@blLL znHT&&n1q)c%fw#oODJzaml@%0Ef@NM-7t$P*JJ95gJ+?%@qUZYs}T3)JXj=>4bAdu zN-O8#+E|W^rG07kT)uc%Ux^s5nkj0o4%Ow2tk3wKJ0jETu_SEXk_B2xVgp|OOOzo2w9Ms9_5^3j0D?E&=fgbJ! zI-*YK*($3vw?gGZQCRxdNkZ)hc*U#Z)jH9fCL4*Jx|{1VgeY@Qb$6GY;L2;A>ih1G z;J%Hj=C2Hgrpn1e-yNLk+63;w{j&T%s{OrAUbSPym63Hz?O_^J=c#5b&wDS20SFMB z>WZ?r=?y>W5)i5kM!7E#lgddSNk@L)a(%9s^x0- zgWyxJ7Ue*CFcph^mkyxk6AZ1ix^`I2c z{7XBm0zB1HJ+)zAY1m|c(!JTc#@Oy zvB9m1C!#NNmmwo-O}TBzm!szIhXCZukzC&S}1V*^`hY~(2WLgj#*lmuG)CkQEk;2#qPjVg~y$>(CjEyA8Pl$KLo zI?@7BweHkG#%jkBC=fQyc!xinUuKWLgK5onra1>pt(FA}ZNF{4@u zA^kG1%xSetgTM}VCPwaG}K4HxMIf{vK^75&!Ho8>-22CxE!S|Ufq;}?lc5d6`3#4)fG~Ez_W#r_9l24w@x;VaQ7X z424}O>Y!m?9_otkjvAJY0G!u%Y2_*nh!W%giiL|e!%q7v#nn(o7nBicCn5}eD~{Y2 zlvVOqQcj+&TNjJLhTu*awr5~`mlu$8%UuOCWx@I@y_&&-3eYbXli&hp5{xn+pwup zTD&^O!egQc^&^~_IZn7)w&B6)88X6y18;iPYkJMF)hRMvqH;4%SD+g&cK*oCy{;yW zf?Z7z5fgGe8)4?8l3yf@l-(8j0M!+Vn#n4L8`V*UHi@CrZEP0Rx2Tg)i;tKs@7X ztZVo7WGPhNqmk3Q!7b%L@Oax;ZO?_2g7HT)<$&x`cgD74si;z09E2vu0kVhVVqw_4 zmS4AdZF)Mjx^BF*ULhN<+M=;#sMpl!N1`s%+!UzC&8WN4vD)>?*?A3?OL!2Sr?Eu;X2|5Pu&`W1I}O8^vFwOIE7+|3PSf5E z`jG%#NqUVkJN z6fRB{K||5j$>dC~jKzy#9i>U4VV5V9m5^BpM!g*!g)sT zOEh-IW1a>fpQVrw&w6BYmmgQ+nY^EWeS%^@TUICCiXCH}HY&Oq70Zjp9yBgEXk)oM ze>+2?YiCAUi)bubf>5~`c|lPFyWR3uiW=+P&5)S|>{7RKhdXCyvJ?WkFYCqHh5M5W z>vVbY1~*XJ5$|xb)e$Y-&FSY&Jw2SPau=={TC(Ql|C)5K-e0>u&hk6_0Ph2R9A5RB z;Rdx7bl&>~H@j7}yW^Y7?gG21WS~t4#jl!htM}if5q-LFSYg~?e0;~Y9gLIE%x}27 zv?IH%mE8)vjTuP!%dTx2P#Hwm<--*Ql`=d*8D7ZWmWp+)ZmHP*{WsTMoueRAQN1?J z6;3axeIs%g+zNJ_WSWC7X>YW)ypvTRrWB=Z^<2wG$=0p9mF)Km*Zqw~Zrt(x)`|)R zV%3$ys@st2w#@2Ws`C`F5Ucr2_JuXN<-gU7FBFm&uPI!$>ksdJM|2=rwWjd>uKQlU z@TaR1-@q@s1C;*HLC2avi`!fd-nDvv3Y|DUhd-daRTKeV^kS-aiM#$TELNX|AhXkO_(6G^zZBa{<~=Q7UDfiAYFCh zG?4dx?E9rws59s*rWe2IyaIYFlo>xucZ|*7lb&bS>ysB{v{`~4-HY5=V}E26c&M-q z>g#}B>l8VDAma0a-P_%HT&o6lcn4tHc5K^LChZwx*Y0pfiEyW8rC@CiT0Ri8NSvnx&CB4RJ9Gor4KKA);aC z?7-kS0_;G%)aoo8)m|1WDT}_cvn2kekbjcrpZK@7 zMKTjmlj9QNGdCa(Ax8!u(Lnf8C6g-qwe%4!57EdY5r}wPv|(|vaNmB{tINb)>N8d( zHsI9UX97J)_snVt0jp@1DphpO+;iOllO%oH$W?h|$t^Ff03$EhwMN7TkS0Eadb?R? zax*lwl$^yeMJB1_}~8Pt5@x(Vr*QeR&1ei-J5Jxt(OW4CtO*q ziikKoOxDv#%AH19%y~eXl{GU@gbGf;o(kmY#z5 zA=r26mh%TWzzCwLCQLe#0dyK!6hqnE8V+Qx79dKxBBalfp{Lso(5O!P{Hm3D0w(jo zspCUgl&L-?otnoK3(gbOq17rB)Kv}FZM*m{u!89=qC4fK9<@plfUy*AP_9NQzd{fL z8c?AOm<;GYht%|f0*&88Pj)N#e4ntVp^X+Y-AP(cFQrMZ=@N=vuy|8tq}pp?7fZd2 z38QHI4}Tzg$s(;_Q7)V`_LIV*^htVKLIWJ}pL~C>JBiW4IXyP(upuBC)4Y?mqo;-B zChPl7-mwSIDqWTDaQAvx9cOelnxQ;aFc#EHnN*_Fs*ueQLw!VGHr{Y_5}nNq!%kBx z+5iqfvk;S|lNN(EKMk_#5ozwgmz=PUeZ>tPR=hA+2o}xmF`}#5;Sk25p*%0LpTLv(v};< zVfd@Pshs5?l<5PBqb_1zgqL7#ePDU%{7K8JE6a;BzC;q7rj%nr2m#f0sa18J3?-1O z>Qs`fp!Y%i5;+a!Evdz%_BsU`7!YF{E4-{1f(!)UdV~2YXE=-~sI}r2_@@JpUy$?o z1^xpvV?mY$|K9xrZUJPenc{r^#t#@3&(9&}d+jG{K+YE=Bz&TOZ-6{8hdj~W+5&l^ zNL_Oa8DmZ}lN)NiKOBz$T5Lpat^8gd!V$FG-H2#jsGQ=3UVeG>I z1bpjr(?_cr-6vT;Ljf@o{Qi<*87Qne@~vPV!!`(C+=SIimMF7h6sQbN==~o-QXP=bva%K^z?g zC6(*+(x1~yZf~(odmbU<|Ame{h0l3uj@nk74vDM13okhR^kX3(uKeni#U(rYc9dlv z)3VY;XOnqsqEqHETBtTg6>9H@lI40Dnu{s%aU-)tXFeYcw`c1cD+CyXwP^CdNaFbT z-KVPl8U9DLkHvH8anWA9BLgj9;{WNN_SfEnA%E<^yYG(2#{cYJP6hv`zFp#+ zho90t0OQx+)|V_ZIEHCu?7#>9s+gSB{JN5yQFdpfXC=#+W&4R@w%!sJ3W&NCD#3Zx zT6JOT^J|%2BN|>GjN?O?Ezz>Yf6MMn?TV(WWzx3w4XWiw{V$$kD<2K3{GY|%sh#!* zxoWleUarF`mn$^pZ{m6y*S%a5u6wwqT*tY}MD#32VlU*1|FTW@4{<$-=Yw2NjJKiaOGqce}L;8uJ>}qNb3*c<1)yV zJyppF*GIT6=F09$azvLwhjHPjGerr;mJnOL^{T|JT(9B{=I+pxch zt6XYs;aXx$VXc#Blnl_QBt6>{E%5EvSmIMizR~v1xs=`QhuzA6=a$V zNe&bd>85@3=O|zh?MUhD!wig(_{R~XU@Mbm#>ZhaAX=)u6Bw$6B6G(#tG0lJ98g`T z4I5iGQj<825F)IAkHmLH*sqs!kyy#!j5~X!B}BvUUM#Uv`*H5H_Mt(nZeU=QnBjVB zzlv-z3`r@NfPMhis_S5$4@pZ&)sO)W^|G4wYEO3fYg&++x)?J(>7hyZ%BmJ}KHSHW zX<9nuJ$KdG4?zv18m1wAQO9A6>O!&O0Q4`@w*~+0d%ksZL{Ipi_YHJ$W-hP8JDQ2; zZ+G`-n0hOxl+O|>{5E5R0KCJj>lhG$XWTE zUrA$$4%)cWPyD>km{6g1bHwqGsv!)85AS}rVp`d2DYVQSt%Z#!@d1F|r9n_w+h3}))SZ2~=EcIoxKOOzW4@@?tjh&eARPz|j)Ufi=a_pa=pOwJ-g9d< znOu#D3ZczAm=9y3CO&lOWHL(5++8w>M)bYH4mbJ=w45^6E4DCu;|p8n4t?=%7UBy5 z676GS-((aOruZ}EhbiEX{`%i1mymbF7=$Nd*oG?L)3gDzHC^tH5D_#aqrFS!V!D-i z^5|H+^R}{MHY1k;kAFV053>c1I+4u9!%3u`QU;UeYr@SM#E6nq8di)H}^uK zju@dJyCk3>!Me;K(oRaV29jGnTV7*)mOP>N4BtyGaWQeGDy zzXZp9Ms=*gVJqlEX550>aelEOQiWI?326pz4M9OH=xZsBJLZ5K3CTFt_`v7e^{mAf zTEGeE7e#!Mu4S~jAwcaEZVfJOjy||(hiV_Flwd%;L^-5Lf1qHTa*ld8V)aqJEaE-> z(j=-9Q7(3U%mr-p>&_y**gK2#Vs{ql#qKQ9i``kI7rSGL4nG8?UAdyTl4f8Py^o*f zT-UECuD8CT;pj448dF!Az8`% z&BT`1_eK(dsyc7zd{xe%gZLYRy-mU`MWUMdoT-mbA;gVZ!G0*!qF(lAr^q2vI6tsd z+!iB0SY~-~@s;UlGoTxFOD|V=ndY}I;~7u9S3?k7E=?_mP>37dKK4}SILXLs{dSrz z+BiA>UqT5&h>*LWX1dWVYam|G$X#3zi(;p$trGDr0siV|HG~sQ<)|s&4l2mmxwJVyae_^1QwYA!|`(3nhfM zm%j&85c&ZQ6zMC`OyxQ9YN_wy8H|gp^#?uEPObb{WfvDmSRyN`bN5QaKCtV8b$aIfo%EMwlD*vVQW+>nlIflw}r4>Yv=2<^WSWspCoWg^0J*=x`{WE>Proo{NuvBKqOV|gd2P&!O>%%Y;@cc`A zvt^Ej4+)&&y5UMX`YL$0I13dkFs5v*hR@=Pe5s}9G}9O_yN(#jm=PGEd>YM~ih(z> zjUF%ahHu+bmQ9f9tYwdgg8Tb-?-Vs zst^X~J8@+a1J$s$<}NLG0bhSeoL`qCYHVEM#N{8$1JFiXy*t=(^>`_A%-kDIY$0kiHFF4 z>O0^6_4bXu9b)g-a)mQ$D_Upm=djUGv|6+mg&s81*dJh(t?<&`J`->VQFy2d7V})A zDFq)Ok^n5fyZYDl@&cWJtRj@8O!+VZsQu5<+`5dW$UcKIlRqO{Hh;7asodD&k5B%C z?U~6^>#8W}sA4abJ!0PvtIop7_9D-CcZxe(;$ENb=9AfgdZmb{e_k&}CwX5~fG zyqp$Aom10^*-&w>v!eBsQ+1|275pL8GZ|yt$-x~~g6f|r=wt~I6@yx&&dz2o=ucRX zdaFIGF~~nZV($r}sK5nr(8UFs(EMP;e*5PF(f{&GW(_#eA6B?TtYyKvD@$z6CgMtihNK`@6egt6$z;=# zQA5bcsG;VSQKN^ej2^mkX0V1}(3d(bIO!#Pz^1shUzI z{uchKWzFVc6LIP0%vEh7Zd23PMr4?v$MuOg-6uEXFh!Qi`a&k*P`#ODFkUrH!_la1 z8qPbLhI6%PxN23OhL>>>mk#`brs0;e%3>N`772j8;@r6f*=#zq4>8J)Iu&2QfNM;) zPimhfhXtfgrpU@u>aV5>FvHOLJosU45~lg@hgd_eSZ5KIj?VE#(Klb8D*BF#wb9J( z(M0*Agk?W)ac_)V@H4qm20pIP-uKlImE2M-$}##b$&lQER$4}_VRoa@_eKVV78Lxa zzVP*LUaK95OEki;n2Y@F!b*vrh#syB9yz+Wa2W}g(QuK+&+3g$N!QalUyqD-p@V|4 zcB4*gP=PveCf86t-*!t|->V9p@Fn=2=|*fS5z#WOFuDr5^&;~^4>m66?|QoG7EuXR zT3ieMn^#(|3bpTs@k7PJlwJ$AtWjiSZWuB73mCD{%DNzh;Jfy(P*YauuAt3hfQl389zf8NY66u z!qw2f%BY8DnNNlMDt=SYCb1gx|DDWxU&Xu((92Qv?PDEa5O2YquiCmMeS6{9#&(`I!F|4xJc>I>ooVl9tiuhSbYNKVP6lPk=$$h+&=D z=SOVL8kbSqa^Zgwk{2!cA(GShgtL!ued)L-xY}Iv@akLB3vbQ*ZVo>%@!s@&cfo5Q z7+juOUSH_=;G*I5{MV!%Td*iNz3CWc!9Ny>#s2N)Ph9>_(kd;Lw>F`!ku}1Rm1dYR z7SNGgG&x2`1^*vWSD<%4NekuF&FHw)JXs;)w0m-gM#v@f3zwIt@uo>p_h1@L?$G>` zoYmh|Ey&*$DI$8+-xY0uk~=1uJnv{ONeS;oWaxUou0`efYGPGN>*to3oloetx)`|n zoaS+x0i4QvI5XQ3+^I4XNSBqQC7BIuM`RBWuKg6{YJyO>8MDw;ANCY|w6U)X?ock4 z%Oz%xReV5~$D=S;-I8il?3P<9G^!2yRgZtds2Fe6JMQ32+3I1PS+T02DTcULNwS#* zzRh6<#hY5~$w&)X64{ZKsPzAe;fgJ89qQg-W*&)b1V_GF#n27wQfmeLGHg7wsaCfn zua&1}3^M%`0%r{NsSZ$pF*}*J7~w=rQ=gFarD&Xy6rE0a#z>IGh!f+xuxTmfc3BiG zVPruqUSJjqokmWq+^QyIG4z777z$aSql=GBeD)^LXZl2SStJtY%5|iM6k@K^Jk3%4 zk7Anxn_zO^smaO0&@56dzkmReJD8*mKupi9ZE8Pb30Ac^Ol!9bCK~+l9KOeqxw}jCZrgqSa4I#rX+oxQBi*i+F?xK-9=I} zrIK@>+s4p92bn%LwVut99gZUHP0FiQbEk-q#49lkXuXw!N8DnDJe-3CuEE+5N^Y^J z0OyyB+=%W#(?UQDjzzE@0S>}Yy6vtuxr0r`&qpaL`^vIqjIAP|hqcWxsyoLrr^UXu zLoXlEkf<;LA1k~9`iP98mG%9Rc1A=tl0La@mS7M<8XFUQQM8L~Qjd z4mggTPf>Kr?c(x$3{~C)5iO+ zGh*aW35xB5OG@8A7c)$$!0oK(5CO#B#WjZ1k7NO*BhX?bzy#F6jb0aXF3Lb45fiLt zCSkCe1+l^rU76{xgv<)|DwJkAusy5GXba2gU_GnHB&^8lph>8sXXTDkTh+7XmWQDp z$V4n$L$zL8@jA9Bi9$-?NQ18^9%RPaRJj$!$J<}rj!B{gVh?*YTVCvKe?feiR)~rA z7q_>+AdW_Bl6%`<9B6;>Nc)R}?Jpj0e{rb&#Z&Ds4!6H}w*AF;u?^Eb#hmucdx>={ z2Dfnx8?D`I(~dB5kJb}M43<2vZi1|f+Qlf0Xd#}aRySVh@5NcKM;{^>kBF721eeh3 zW2{#OIyYpRdtak5g|dglx?Tl#h)J9AXci)s0@CSlXF#lM@iVQGrnu7zm?ny8YCJbPj&7@ zO&;b2l7JUYVCNPKe4v~zE>L|a?mmhemTV!3e8cL}&+o*0(!sYLIgr zxnQ!V19yW$z2VrA*enk(8xEU@nnvQ8+bzQSp7-N@)qC~vs#KCnDp|Vk zTG%BcgThj5wV`7j#g>ijfQfN;vR2OwGmDwUs!}pYNNzfjrLrxIASMW78WV6v$Rv1Z z8$>q&6ATuFbleF^6mSwJ4MYhJaS}rWF@x#wF~9#l=e~E}t0$>!$XeaKTv~ef>wNCL z&p!L?v-duml8RsEHN)Ly#Xb+%XHQRJJMJp_e*-_%)xHsH0d};40AX#dN%~Q{!ug*Z zBWHYwjNa45dKr8iB>JJC zfhl28tzD|mZ`!yJ{R3|vn3iAUpn%p$o9yr2$AJ|RpUwA{To}bDFd`fDfc1wsF;7lh0m{I zGdL8e_#@NqsXu?qy){vjq-%d-h-L1T&%zp?cH};YC%NKMlzP7P%5R}GPDx`yM<1`Y ze>KLYH{?f$fJTvNjsPJ(htf09AFs;r?{PJZC(>AGg;JriT(Ck6ey`RkBz9+~kl5Wx zdIr;HR+PdlkgMlq;-UnOAS4RQAMpUtCSKr~O|pcc(*$kyqxY+7mji78IeO+!ge8D3 zJ#Tt@n6RnW6RCSBUYbLx*}~JlNnc6!-u6+*FTI;J&6vKmvTd6dnZmim3eB#DK0ufCZ0b&N%8*&j%6JxTUoxJ>mfjoBe*YWZc-9x%`a&}qJD488@>o$~ z@TKoL=AVv&<#9z8TT<3@*(N#6qIl4n-qJxM9jEJPmbWE#Nq=OFdti6_n|S_b#A(SU zS~{_$;!fe7FAtBCTzR&T6e(`8z8dVI@R+S^7uKToCn%>UGj%4d_fi;P#ReR*NvLUR z$HD!WtR}cm^LS%W4Uq2$t}9aUv}6&dp+*hln#spQteJHky!!cjz5Gy2SAgb0!&5pZ z{iBtz>?oRJ_ktowlm}Wbulenjfx_gnFWq8`kTNyyEnTPfq+6}$j zC67(`PL3Z2$AqbbC*muK)Ik%8grMiGZp+SDzK>j!H#G}$$3bwIF9pS#_Zkb#1BngO zoNhD4ckWj`?fZ9N{%`yd+w zr^;K8Eu;fk?jx5A4%#I`ZE55ayO~{h3m`e!A~Tq$ zpE?A}=|TH`h>`2`{T(?7#!!$=;->CrP)=qNk?zl?4(O(Rf3`w6u~llAof}eCKq0Iv ztW_n7?=}l#xg8O!8W9qec)&`nMRm+%?MGw?@Cz7AYNldR;T_7Xtg=%wHwFPWYIyN# zGouwAteWX6rv7yq>d<^?04wfLeAO75Uiywyrp;Zn5aOHR9<4G4L=j`F?VkSXs6TX7 z-^{MyNa`_K;L{pHX=Qrz64P*sE3iUqAP?jku+zg0EKq1k-tQGz`iQ+PWC8;OY%{V| z40yq6((p1F@Iq*h9$u>R8qJ!92+{*yCb8Bryi5(^#loi0dx=pN5Ul38v36tW)OS); zl6uvKvFV0L3ctNEK2MRTM#NInGD}Tism4+i8i?=}6)BCHo1>_M@jsqy+F1~2;fVUu z;tSqDMB{^3>U+YfSl^pET%7FJl4!)75hl3G8KKQp&Il{H${7LYRdYsI#Z}G-K*O97 zpjH(5vNj%9`6|>b_8GD)NKSkZ`+i1DF?9Q{Vk};s!BJM&aJ8L!cOrEPV5#@!R5wHh=YYyQOPWKLdY_5&vRr;QiSiNBNkx+m*pI(ZGwCord;!yXB7G zq9wX}h)ddXk8oj3J<0{PeCn2@CDVcmaoJ&y(N1Dq^VrB&>@-`?N@n|Z#HY|QL>))m zFf}~PixbK?8jvyR{{dd>^;m_!YNaxwYePQ+f3>=Q(HeMvw#OzPqYB5r4g4ho iZ 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 z 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

?!Ue>UDt#naC_4Vu;zOQH3kbXV8hWYE+ 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

SiP3pnxqC*igLG%~|fw-j4CkwP5p) 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

`c2wgXMq}XBYf+aKJvfSk${{G$h#> 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�NKVcLHYn)r^lL^c&vB=m=t0|WTK^d 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 R1m5G;wYJ(Vlf~`s{TIa-k)r?r literal 0 HcmV?d00001 diff --git a/web/public/static/js/h265web2/h265web.js b/web/public/static/js/h265web2/h265web.js new file mode 100644 index 000000000..b1b1295ea --- /dev/null +++ b/web/public/static/js/h265web2/h265web.js @@ -0,0 +1,17 @@ + + + + + + 503 Backend.max_conn reached + + +

Error 503 Backend.max_conn reached

+

Backend.max_conn reached

+

Error 54113

+

Details: cache-hkg17923-HKG 1774949130 1280024682

+
+

Varnish cache server

+ + diff --git a/web/public/static/js/h265web2/h265web_wasm.js b/web/public/static/js/h265web2/h265web_wasm.js new file mode 100644 index 000000000..8e8c1b528 --- /dev/null +++ b/web/public/static/js/h265web2/h265web_wasm.js @@ -0,0 +1,8969 @@ +var WasmModule = (() => { + var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; + + return ( +async function(moduleArg = {}) { + var moduleRtn; + +// include: shell.js +// The Module object: Our interface to the outside world. We import +// and export values on it. There are various ways Module can be used: +// 1. Not defined. We create it here +// 2. A function parameter, function(moduleArg) => Promise +// 3. pre-run appended it, var Module = {}; ..generated code.. +// 4. External script tag defines var Module. +// We need to check if Module already exists (e.g. case 3 above). +// Substitution will be replaced with actual code on later stage of the build, +// this way Closure Compiler will not mangle it (e.g. case 4. above). +// Note that if you want to run closure, and also to use Module +// after the generated code, you will need to define var Module = {}; +// before the code. Then that object will be used in the code, and you +// can continue to use Module afterwards as well. +var Module = moduleArg; + +// Set up the promise that indicates the Module is initialized +var readyPromiseResolve, readyPromiseReject; + +var readyPromise = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; +}); + +// Determine the runtime environment we are in. You can customize this by +// setting the ENVIRONMENT setting at compile time (see settings.js). +// Attempt to auto-detect the environment +var ENVIRONMENT_IS_WEB = typeof window == "object"; + +var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined"; + +// N.b. Electron.js environment is simultaneously a NODE-environment, but +// also a web environment. +var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer"; + +var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + +// Three configurations we can be running in: +// 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) +// 2) We could be the application main() thread proxied to worker. (with Emscripten -sPROXY_TO_WORKER) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) +// 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) +// The way we signal to a worker that it is hosting a pthread is to construct +// it with a specific name. +var ENVIRONMENT_IS_PTHREAD = ENVIRONMENT_IS_WORKER && self.name?.startsWith("em-pthread"); + +if (ENVIRONMENT_IS_PTHREAD) { + assert(!globalThis.moduleLoaded, "module should only be loaded once on each pthread worker"); + globalThis.moduleLoaded = true; +} + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) +// Sometimes an existing Module object exists with properties +// meant to overwrite the default module functionality. Here +// we collect those properties and reapply _after_ we configure +// the current environment's defaults to avoid having to be so +// defensive during initialization. +var moduleOverrides = { + ...Module +}; + +var arguments_ = []; + +var thisProgram = "./this.program"; + +var quit_ = (status, toThrow) => { + throw toThrow; +}; + +// `/` should be present at the end if `scriptDirectory` is not empty +var scriptDirectory = ""; + +function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; +} + +// Hooks that are implemented differently in different runtime environments. +var readAsync, readBinary; + +if (ENVIRONMENT_IS_SHELL) { + if ((typeof process == "object" && typeof require === "function") || typeof window == "object" || typeof WorkerGlobalScope != "undefined") throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); +} else // Note that this includes Node.js workers when relevant (pthreads is enabled). +// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and +// ENVIRONMENT_IS_NODE. +if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { + // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != "undefined" && document.currentScript) { + // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptName) { + scriptDirectory = _scriptName; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.startsWith("blob:")) { + scriptDirectory = ""; + } else { + scriptDirectory = scriptDirectory.slice(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1); + } + if (!(typeof window == "object" || typeof WorkerGlobalScope != "undefined")) throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)"); + { + // include: web_or_worker_shell_read.js + if (ENVIRONMENT_IS_WORKER) { + readBinary = url => { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */ (xhr.response)); + }; + } + readAsync = async url => { + assert(!isFileURI(url), "readAsync does not work with file:// URLs"); + var response = await fetch(url, { + credentials: "same-origin" + }); + if (response.ok) { + return response.arrayBuffer(); + } + throw new Error(response.status + " : " + response.url); + }; + } +} else { + throw new Error("environment detection error"); +} + +var out = Module["print"] || console.log.bind(console); + +var err = Module["printErr"] || console.error.bind(console); + +// Merge back in the overrides +Object.assign(Module, moduleOverrides); + +// Free the object hierarchy contained in the overrides, this lets the GC +// reclaim data used. +moduleOverrides = null; + +checkIncomingModuleAPI(); + +// Emit code to handle expected values on the Module object. This applies Module.x +// to the proper local x. This has two benefits: first, we only emit it if it is +// expected to arrive, and second, by using a local everywhere else that can be +// minified. +if (Module["arguments"]) arguments_ = Module["arguments"]; + +legacyModuleProp("arguments", "arguments_"); + +if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; + +legacyModuleProp("thisProgram", "thisProgram"); + +// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message +// Assertions on removed incoming Module JS APIs. +assert(typeof Module["memoryInitializerPrefixURL"] == "undefined", "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["pthreadMainPrefixURL"] == "undefined", "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["cdInitializerPrefixURL"] == "undefined", "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["filePackagePrefixURL"] == "undefined", "Module.filePackagePrefixURL option was removed, use Module.locateFile instead"); + +assert(typeof Module["read"] == "undefined", "Module.read option was removed"); + +assert(typeof Module["readAsync"] == "undefined", "Module.readAsync option was removed (modify readAsync in JS)"); + +assert(typeof Module["readBinary"] == "undefined", "Module.readBinary option was removed (modify readBinary in JS)"); + +assert(typeof Module["setWindowTitle"] == "undefined", "Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)"); + +assert(typeof Module["TOTAL_MEMORY"] == "undefined", "Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"); + +legacyModuleProp("asm", "wasmExports"); + +legacyModuleProp("readAsync", "readAsync"); + +legacyModuleProp("readBinary", "readBinary"); + +legacyModuleProp("setWindowTitle", "setWindowTitle"); + +var IDBFS = "IDBFS is no longer included by default; build with -lidbfs.js"; + +var PROXYFS = "PROXYFS is no longer included by default; build with -lproxyfs.js"; + +var WORKERFS = "WORKERFS is no longer included by default; build with -lworkerfs.js"; + +var FETCHFS = "FETCHFS is no longer included by default; build with -lfetchfs.js"; + +var ICASEFS = "ICASEFS is no longer included by default; build with -licasefs.js"; + +var JSFILEFS = "JSFILEFS is no longer included by default; build with -ljsfilefs.js"; + +var OPFS = "OPFS is no longer included by default; build with -lopfs.js"; + +var NODEFS = "NODEFS is no longer included by default; build with -lnodefs.js"; + +assert(ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER || ENVIRONMENT_IS_NODE, "Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)"); + +assert(!ENVIRONMENT_IS_NODE, "node environment detected but not enabled at build time. Add `node` to `-sENVIRONMENT` to enable."); + +assert(!ENVIRONMENT_IS_SHELL, "shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable."); + +// end include: shell.js +// include: preamble.js +// === Preamble library stuff === +// Documentation for the public APIs defined in this file must be updated in: +// site/source/docs/api_reference/preamble.js.rst +// A prebuilt local version of the documentation is available at: +// site/build/text/docs/api_reference/preamble.js.txt +// You can also build docs locally as HTML or other formats in site/ +// An online HTML version (which may be of a different version of Emscripten) +// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html +var wasmBinary = Module["wasmBinary"]; + +legacyModuleProp("wasmBinary", "wasmBinary"); + +if (typeof WebAssembly != "object") { + err("no native wasm support detected"); +} + +// Wasm globals +var wasmMemory; + +// For sending to workers. +var wasmModule; + +//======================================== +// Runtime essentials +//======================================== +// whether we are quitting the application. no code should run after this. +// set in exit() and abort() +var ABORT = false; + +// set by exit() and abort(). Passed to 'onExit' handler. +// NOTE: This is also used as the process return code code in shell environments +// but only when noExitRuntime is false. +var EXITSTATUS; + +// In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we +// don't define it at all in release modes. This matches the behaviour of +// MINIMAL_RUNTIME. +// TODO(sbc): Make this the default even without STRICT enabled. +/** @type {function(*, string=)} */ function assert(condition, text) { + if (!condition) { + abort("Assertion failed" + (text ? ": " + text : "")); + } +} + +// We used to include malloc/free by default in the past. Show a helpful error in +// builds with assertions. +// Memory management +var HEAP, /** @type {!Int8Array} */ HEAP8, /** @type {!Uint8Array} */ HEAPU8, /** @type {!Int16Array} */ HEAP16, /** @type {!Uint16Array} */ HEAPU16, /** @type {!Int32Array} */ HEAP32, /** @type {!Uint32Array} */ HEAPU32, /** @type {!Float32Array} */ HEAPF32, /* BigInt64Array type is not correctly defined in closure +/** not-@type {!BigInt64Array} */ HEAP64, /* BigUint64Array type is not correctly defined in closure +/** not-t@type {!BigUint64Array} */ HEAPU64, /** @type {!Float64Array} */ HEAPF64; + +var runtimeInitialized = false; + +/** + * Indicates whether filename is delivered via file protocol (as opposed to http/https) + * @noinline + */ var isFileURI = filename => filename.startsWith("file://"); + +// include: runtime_shared.js +// include: runtime_stack_check.js +// Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. +function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // If the stack ends at address zero we write our cookies 4 bytes into the + // stack. This prevents interference with SAFE_HEAP and ASAN which also + // monitor writes to address zero. + if (max == 0) { + max += 4; + } + // The stack grow downwards towards _emscripten_stack_get_end. + // We write cookies to the final two words in the stack and detect if they are + // ever overwritten. + GROWABLE_HEAP_U32()[((max) >> 2)] = 34821223; + GROWABLE_HEAP_U32()[(((max) + (4)) >> 2)] = 2310721022; + // Also test the global address 0 for integrity. + GROWABLE_HEAP_U32()[((0) >> 2)] = 1668509029; +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = GROWABLE_HEAP_U32()[((max) >> 2)]; + var cookie2 = GROWABLE_HEAP_U32()[(((max) + (4)) >> 2)]; + if (cookie1 != 34821223 || cookie2 != 2310721022) { + abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`); + } + // Also test the global address 0 for integrity. + if (GROWABLE_HEAP_U32()[((0) >> 2)] != 1668509029) { + abort("Runtime error: The application has corrupted its heap memory area (address zero)!"); + } +} + +// end include: runtime_stack_check.js +// include: runtime_exceptions.js +// end include: runtime_exceptions.js +// include: runtime_debug.js +// Endianness check +(() => { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 25459; + if (h8[0] !== 115 || h8[1] !== 99) throw "Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"; +})(); + +if (Module["ENVIRONMENT"]) { + throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)"); +} + +function legacyModuleProp(prop, newName, incoming = true) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get() { + let extra = incoming ? " (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)" : ""; + abort(`\`Module.${prop}\` has been replaced by \`${newName}\`` + extra); + } + }); + } +} + +function consumedModuleProp(prop) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + set() { + abort(`Attempt to set \`Module.${prop}\` after it has already been processed. This can happen, for example, when code is injected via '--post-js' rather than '--pre-js'`); + } + }); + } +} + +function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`); + } +} + +// forcing the filesystem exports a few things by default +function isExportedByForceFilesystem(name) { + return name === "FS_createPath" || name === "FS_createDataFile" || name === "FS_createPreloadedFile" || name === "FS_unlink" || name === "addRunDependency" || // The old FS has some functionality that WasmFS lacks. + name === "FS_createLazyFile" || name === "FS_createDevice" || name === "removeRunDependency"; +} + +/** + * Intercept access to a global symbol. This enables us to give informative + * warnings/errors when folks attempt to use symbols they did not include in + * their build, or no symbols that no longer exist. + */ function hookGlobalSymbolAccess(sym, func) {} + +function missingGlobal(sym, msg) { + hookGlobalSymbolAccess(sym, () => { + warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`); + }); +} + +missingGlobal("buffer", "Please use HEAP8.buffer or wasmMemory.buffer"); + +missingGlobal("asm", "Please use wasmExports instead"); + +function missingLibrarySymbol(sym) { + hookGlobalSymbolAccess(sym, () => { + // Can't `abort()` here because it would break code that does runtime + // checks. e.g. `if (typeof SDL === 'undefined')`. + var msg = `\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`; + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in + // library.js, which means $name for a JS name with no prefix, or name + // for a JS name like _name. + var librarySymbol = sym; + if (!librarySymbol.startsWith("_")) { + librarySymbol = "$" + sym; + } + msg += ` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + warnOnce(msg); + }); + // Any symbol that is not included from the JS library is also (by definition) + // not exported on the Module object. + unexportedRuntimeSymbol(sym); +} + +function unexportedRuntimeSymbol(sym) { + if (ENVIRONMENT_IS_PTHREAD) { + return; + } + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get() { + var msg = `'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`; + if (isExportedByForceFilesystem(sym)) { + msg += ". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"; + } + abort(msg); + } + }); + } +} + +var runtimeDebug = true; + +// Switch to false at runtime to disable logging at the right times +// Used by XXXXX_DEBUG settings to output debug messages. +function dbg(...args) { + if (!runtimeDebug && typeof runtimeDebug != "undefined") return; + // TODO(sbc): Make this configurable somehow. Its not always convenient for + // logging to show up as warnings. + console.warn(...args); +} + +// end include: runtime_debug.js +// include: memoryprofiler.js +// end include: memoryprofiler.js +// include: growableHeap.js +// Support for growable heap + pthreads, where the buffer may change, so JS views +// must be updated. +function GROWABLE_HEAP_I8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP8; +} + +function GROWABLE_HEAP_U8() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU8; +} + +function GROWABLE_HEAP_I16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP16; +} + +function GROWABLE_HEAP_U16() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU16; +} + +function GROWABLE_HEAP_I32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAP32; +} + +function GROWABLE_HEAP_U32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPU32; +} + +function GROWABLE_HEAP_F32() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF32; +} + +function GROWABLE_HEAP_F64() { + if (wasmMemory.buffer != HEAP8.buffer) { + updateMemoryViews(); + } + return HEAPF64; +} + +// end include: growableHeap.js +// include: runtime_pthread.js +// Pthread Web Worker handling code. +// This code runs only on pthread web workers and handles pthread setup +// and communication with the main thread via postMessage. +// Unique ID of the current pthread worker (zero on non-pthread-workers +// including the main thread). +var workerID = 0; + +if (ENVIRONMENT_IS_PTHREAD) { + var wasmModuleReceived; + // Thread-local guard variable for one-time init of the JS state + var initializedJS = false; + function threadPrintErr(...args) { + console.error(...args); + } + if (!Module["printErr"]) err = threadPrintErr; + // Turn unhandled rejected promises into errors so that the main thread will be + // notified about them. + self.onunhandledrejection = e => { + throw e.reason || e; + }; + function handleMessage(e) { + try { + var msgData = e["data"]; + //dbg('msgData: ' + Object.keys(msgData)); + var cmd = msgData.cmd; + if (cmd === "load") { + // Preload command that is called once per worker to parse and load the Emscripten code. + workerID = msgData.workerID; + // Until we initialize the runtime, queue up any further incoming messages. + let messageQueue = []; + self.onmessage = e => messageQueue.push(e); + // And add a callback for when the runtime is initialized. + self.startWorker = instance => { + // Notify the main thread that this thread has loaded. + postMessage({ + cmd: "loaded" + }); + // Process any messages that were queued before the thread was ready. + for (let msg of messageQueue) { + handleMessage(msg); + } + // Restore the real message handler. + self.onmessage = handleMessage; + }; + // Use `const` here to ensure that the variable is scoped only to + // that iteration, allowing safe reference from a closure. + for (const handler of msgData.handlers) { + // The the main module has a handler for a certain even, but no + // handler exists on the pthread worker, then proxy that handler + // back to the main thread. + if (!Module[handler] || Module[handler].proxy) { + Module[handler] = (...args) => { + postMessage({ + cmd: "callHandler", + handler, + args + }); + }; + // Rebind the out / err handlers if needed + if (handler == "print") out = Module[handler]; + if (handler == "printErr") err = Module[handler]; + } + } + wasmMemory = msgData.wasmMemory; + updateMemoryViews(); + wasmModuleReceived(msgData.wasmModule); + } else if (cmd === "run") { + assert(msgData.pthread_ptr); + // Call inside JS module to set up the stack frame for this pthread in JS module scope. + // This needs to be the first thing that we do, as we cannot call to any C/C++ functions + // until the thread stack is initialized. + establishStackSpace(msgData.pthread_ptr); + // Pass the thread address to wasm to store it for fast access. + __emscripten_thread_init(msgData.pthread_ptr, /*is_main=*/ 0, /*is_runtime=*/ 0, /*can_block=*/ 1, 0, 0); + PThread.receiveOffscreenCanvases(msgData); + PThread.threadInitTLS(); + // Await mailbox notifications with `Atomics.waitAsync` so we can start + // using the fast `Atomics.notify` notification path. + __emscripten_thread_mailbox_await(msgData.pthread_ptr); + if (!initializedJS) { + // Embind must initialize itself on all threads, as it generates support JS. + // We only do this once per worker since they get reused + __embind_initialize_bindings(); + initializedJS = true; + } + try { + invokeEntryPoint(msgData.start_routine, msgData.arg); + } catch (ex) { + if (ex != "unwind") { + // The pthread "crashed". Do not call `_emscripten_thread_exit` (which + // would make this thread joinable). Instead, re-throw the exception + // and let the top level handler propagate it back to the main thread. + throw ex; + } + } + } else if (msgData.target === "setimmediate") {} else if (cmd === "checkMailbox") { + if (initializedJS) { + checkMailbox(); + } + } else if (cmd) { + // The received message looks like something that should be handled by this message + // handler, (since there is a cmd field present), but is not one of the + // recognized commands: + err(`worker: received unknown command ${cmd}`); + err(msgData); + } + } catch (ex) { + err(`worker: onmessage() captured an uncaught exception: ${ex}`); + if (ex?.stack) err(ex.stack); + __emscripten_thread_crashed(); + throw ex; + } + } + self.onmessage = handleMessage; +} + +// ENVIRONMENT_IS_PTHREAD +// end include: runtime_pthread.js +function updateMemoryViews() { + var b = wasmMemory.buffer; + Module["HEAP8"] = HEAP8 = new Int8Array(b); + Module["HEAP16"] = HEAP16 = new Int16Array(b); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(b); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(b); + Module["HEAP32"] = HEAP32 = new Int32Array(b); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(b); + Module["HEAPF32"] = HEAPF32 = new Float32Array(b); + Module["HEAPF64"] = HEAPF64 = new Float64Array(b); + Module["HEAP64"] = HEAP64 = new BigInt64Array(b); + Module["HEAPU64"] = HEAPU64 = new BigUint64Array(b); +} + +// end include: runtime_shared.js +assert(!Module["STACK_SIZE"], "STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time"); + +assert(typeof Int32Array != "undefined" && typeof Float64Array !== "undefined" && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, "JS engine does not provide full typed array support"); + +// In non-standalone/normal mode, we create the memory here. +// include: runtime_init_memory.js +// Create the wasm memory. (Note: this only applies if IMPORTED_MEMORY is defined) +// check for full engine support (use string 'subarray' to avoid closure compiler confusion) +if (!ENVIRONMENT_IS_PTHREAD) { + if (Module["wasmMemory"]) { + wasmMemory = Module["wasmMemory"]; + } else { + var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 67108864; + legacyModuleProp("INITIAL_MEMORY", "INITIAL_MEMORY"); + assert(INITIAL_MEMORY >= 16777216, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=" + 16777216 + ")"); + /** @suppress {checkTypes} */ wasmMemory = new WebAssembly.Memory({ + "initial": INITIAL_MEMORY / 65536, + // In theory we should not need to emit the maximum if we want "unlimited" + // or 4GB of memory, but VMs error on that atm, see + // https://github.com/emscripten-core/emscripten/issues/14130 + // And in the pthreads case we definitely need to emit a maximum. So + // always emit one. + "maximum": 32768, + "shared": true + }); + } + updateMemoryViews(); +} + +// end include: runtime_init_memory.js +function preRun() { + assert(!ENVIRONMENT_IS_PTHREAD); + // PThreads reuse the runtime from the main thread. + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [ Module["preRun"] ]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + consumedModuleProp("preRun"); + callRuntimeCallbacks(onPreRuns); +} + +function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + if (ENVIRONMENT_IS_PTHREAD) return startWorker(Module); + checkStackCookie(); + setStackLimits(); + if (!Module["noFSInit"] && !FS.initialized) FS.init(); + TTY.init(); + wasmExports["__wasm_call_ctors"](); + FS.ignorePermissions = false; +} + +function preMain() { + checkStackCookie(); +} + +function postRun() { + checkStackCookie(); + if (ENVIRONMENT_IS_PTHREAD) return; + // PThreads reuse the runtime from the main thread. + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [ Module["postRun"] ]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + consumedModuleProp("postRun"); + callRuntimeCallbacks(onPostRuns); +} + +// A counter of dependencies for calling run(). If we need to +// do asynchronous work before running, increment this and +// decrement it. Incrementing must happen in a place like +// Module.preRun (used by emcc to add file preloading). +// Note that you can add dependencies in preRun, even though +// it happens right before run - run will be postponed until +// the dependencies are met. +var runDependencies = 0; + +var dependenciesFulfilled = null; + +// overridden to take different actions when all run dependencies are fulfilled +var runDependencyTracking = {}; + +var runDependencyWatcher = null; + +function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } +} + +function addRunDependency(id) { + runDependencies++; + Module["monitorRunDependencies"]?.(runDependencies); + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != "undefined") { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err("still waiting on run dependencies:"); + } + err(`dependency: ${dep}`); + } + if (shown) { + err("(end of list)"); + } + }, 1e4); + } + } else { + err("warning: run dependency added without ID"); + } +} + +function removeRunDependency(id) { + runDependencies--; + Module["monitorRunDependencies"]?.(runDependencies); + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err("warning: run dependency removed without ID"); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } +} + +/** @param {string|number=} what */ function abort(what) { + Module["onAbort"]?.(what); + what = "Aborted(" + what + ")"; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + ABORT = true; + if (what.indexOf("RuntimeError: unreachable") >= 0) { + what += '. "unreachable" may be due to ASYNCIFY_STACK_SIZE not being large enough (try increasing it)'; + } + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + // Suppress closure compiler warning here. Closure compiler's builtin extern + // definition for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; +} + +function createExportWrapper(name, nargs) { + return (...args) => { + assert(runtimeInitialized, `native function \`${name}\` called before runtime initialization`); + var f = wasmExports[name]; + assert(f, `exported native function \`${name}\` not found`); + // Only assert for too many arguments. Too few can be valid since the missing arguments will be zero filled. + assert(args.length <= nargs, `native function \`${name}\` called with ${args.length} args but expects ${nargs}`); + return f(...args); + }; +} + +var wasmBinaryFile; + +function findWasmBinary() { + return locateFile("h265web_wasm.wasm"); +} + +function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw "both async and sync fetching of the wasm failed"; +} + +async function getWasmBinary(binaryFile) { + // If we don't have the binary yet, load it asynchronously using readAsync. + if (!wasmBinary) { + // Fetch the binary using readAsync + try { + var response = await readAsync(binaryFile); + return new Uint8Array(response); + } catch {} + } + // Otherwise, getBinarySync should be able to get it synchronously + return getBinarySync(binaryFile); +} + +async function instantiateArrayBuffer(binaryFile, imports) { + try { + var binary = await getWasmBinary(binaryFile); + var instance = await WebAssembly.instantiate(binary, imports); + return instance; + } catch (reason) { + err(`failed to asynchronously prepare wasm: ${reason}`); + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`); + } + abort(reason); + } +} + +async function instantiateAsync(binary, binaryFile, imports) { + if (!binary && typeof WebAssembly.instantiateStreaming == "function") { + try { + var response = fetch(binaryFile, { + credentials: "same-origin" + }); + var instantiationResult = await WebAssembly.instantiateStreaming(response, imports); + return instantiationResult; + } catch (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err(`wasm streaming compile failed: ${reason}`); + err("falling back to ArrayBuffer instantiation"); + } + } + return instantiateArrayBuffer(binaryFile, imports); +} + +function getWasmImports() { + assignWasmImports(); + // instrumenting imports is used in asyncify in two ways: to add assertions + // that check for proper import use, and for ASYNCIFY=2 we use them to set up + // the Promise API on the import side. + // In pthreads builds getWasmImports is called more than once but we only + // and the instrument the imports once. + if (!wasmImports.__instrumented) { + wasmImports.__instrumented = true; + Asyncify.instrumentWasmImports(wasmImports); + } + // prepare imports + return { + "env": wasmImports, + "wasi_snapshot_preview1": wasmImports + }; +} + +// Create the wasm instance. +// Receives the wasm imports, returns the exports. +async function createWasm() { + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ function receiveInstance(instance, module) { + wasmExports = instance.exports; + wasmExports = Asyncify.instrumentWasmExports(wasmExports); + registerTLSInit(wasmExports["_emscripten_tls_init"]); + wasmTable = wasmExports["__indirect_function_table"]; + assert(wasmTable, "table not found in wasm exports"); + // We now have the Wasm module loaded up, keep a reference to the compiled module so we can post it to the workers. + wasmModule = module; + removeRunDependency("wasm-instantiate"); + return wasmExports; + } + // wait for the pthread pool (if any) + addRunDependency("wasm-instantiate"); + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"); + trueModule = null; + return receiveInstance(result["instance"], result["module"]); + } + var info = getWasmImports(); + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module["instantiateWasm"]) { + return new Promise((resolve, reject) => { + try { + Module["instantiateWasm"](info, (mod, inst) => { + receiveInstance(mod, inst); + resolve(mod.exports); + }); + } catch (e) { + err(`Module.instantiateWasm callback failed with error: ${e}`); + reject(e); + } + }); + } + if (ENVIRONMENT_IS_PTHREAD) { + return new Promise(resolve => { + wasmModuleReceived = module => { + // Instantiate from the module posted from the main thread. + // We can just use sync instantiation in the worker. + var instance = new WebAssembly.Instance(module, getWasmImports()); + resolve(receiveInstance(instance, module)); + }; + }); + } + wasmBinaryFile ??= findWasmBinary(); + try { + var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info); + var exports = receiveInstantiationResult(result); + return exports; + } catch (e) { + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + return Promise.reject(e); + } +} + +// end include: preamble.js +// Begin JS library code +class ExitStatus { + name="ExitStatus"; + constructor(status) { + this.message = `Program terminated with exit(${status})`; + this.status = status; + } +} + +var terminateWorker = worker => { + worker.terminate(); + // terminate() can be asynchronous, so in theory the worker can continue + // to run for some amount of time after termination. However from our POV + // the worker now dead and we don't want to hear from it again, so we stub + // out its message handler here. This avoids having to check in each of + // the onmessage handlers if the message was coming from valid worker. + worker.onmessage = e => { + var cmd = e["data"].cmd; + err(`received "${cmd}" command from terminated worker: ${worker.workerID}`); + }; +}; + +var cleanupThread = pthread_ptr => { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! cleanupThread() can only ever be called from main application thread!"); + assert(pthread_ptr, "Internal Error! Null pthread_ptr in cleanupThread!"); + var worker = PThread.pthreads[pthread_ptr]; + assert(worker); + PThread.returnWorkerToPool(worker); +}; + +var callRuntimeCallbacks = callbacks => { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } +}; + +var onPreRuns = []; + +var addOnPreRun = cb => onPreRuns.unshift(cb); + +var spawnThread = threadParams => { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! spawnThread() can only ever be called from main application thread!"); + assert(threadParams.pthread_ptr, "Internal error, no pthread ptr!"); + var worker = PThread.getNewWorker(); + if (!worker) { + // No available workers in the PThread pool. + return 6; + } + assert(!worker.pthread_ptr, "Internal error!"); + PThread.runningWorkers.push(worker); + // Add to pthreads map + PThread.pthreads[threadParams.pthread_ptr] = worker; + worker.pthread_ptr = threadParams.pthread_ptr; + var msg = { + cmd: "run", + start_routine: threadParams.startRoutine, + arg: threadParams.arg, + pthread_ptr: threadParams.pthread_ptr + }; + // Note that we do not need to quote these names because they are only used + // in this file, and not from the external worker.js. + msg.moduleCanvasId = threadParams.moduleCanvasId; + msg.offscreenCanvases = threadParams.offscreenCanvases; + // Ask the worker to start executing its pthread entry point function. + worker.postMessage(msg, threadParams.transferList); + return 0; +}; + +var runtimeKeepaliveCounter = 0; + +var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + +var stackSave = () => _emscripten_stack_get_current(); + +var stackRestore = val => __emscripten_stack_restore(val); + +var stackAlloc = sz => __emscripten_stack_alloc(sz); + +/** @type{function(number, (number|boolean), ...number)} */ var proxyToMainThread = (funcIndex, emAsmAddr, sync, ...callArgs) => { + // EM_ASM proxying is done by passing a pointer to the address of the EM_ASM + // content as `emAsmAddr`. JS library proxying is done by passing an index + // into `proxiedJSCallArgs` as `funcIndex`. If `emAsmAddr` is non-zero then + // `funcIndex` will be ignored. + // Additional arguments are passed after the first three are the actual + // function arguments. + // The serialization buffer contains the number of call params, and then + // all the args here. + // We also pass 'sync' to C separately, since C needs to look at it. + // Allocate a buffer, which will be copied by the C code. + // First passed parameter specifies the number of arguments to the function. + // When BigInt support is enabled, we must handle types in a more complex + // way, detecting at runtime if a value is a BigInt or not (as we have no + // type info here). To do that, add a "prefix" before each value that + // indicates if it is a BigInt, which effectively doubles the number of + // values we serialize for proxying. TODO: pack this? + var serializedNumCallArgs = callArgs.length * 2; + var sp = stackSave(); + var args = stackAlloc(serializedNumCallArgs * 8); + var b = ((args) >> 3); + for (var i = 0; i < callArgs.length; i++) { + var arg = callArgs[i]; + if (typeof arg == "bigint") { + // The prefix is non-zero to indicate a bigint. + HEAP64[b + 2 * i] = 1n; + HEAP64[b + 2 * i + 1] = arg; + } else { + // The prefix is zero to indicate a JS Number. + HEAP64[b + 2 * i] = 0n; + GROWABLE_HEAP_F64()[b + 2 * i + 1] = arg; + } + } + var rtn = __emscripten_run_on_main_thread_js(funcIndex, emAsmAddr, serializedNumCallArgs, args, sync); + stackRestore(sp); + return rtn; +}; + +function _proc_exit(code) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(0, 0, 1, code); + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + PThread.terminateAllThreads(); + Module["onExit"]?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); +} + +var runtimeKeepalivePop = () => { + assert(runtimeKeepaliveCounter > 0); + runtimeKeepaliveCounter -= 1; +}; + +function exitOnMainThread(returnCode) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(1, 0, 0, returnCode); + runtimeKeepalivePop(); + _exit(returnCode); +} + +/** @suppress {duplicate } */ /** @param {boolean|number=} implicit */ var exitJS = (status, implicit) => { + EXITSTATUS = status; + checkUnflushedContent(); + if (ENVIRONMENT_IS_PTHREAD) { + // implicit exit can never happen on a pthread + assert(!implicit); + // When running in a pthread we propagate the exit back to the main thread + // where it can decide if the whole process should be shut down or not. + // The pthread may have decided not to exit its own runtime, for example + // because it runs a main loop, but that doesn't affect the main thread. + exitOnMainThread(status); + throw "unwind"; + } + // if exit() was called explicitly, warn the user if the runtime isn't actually being shut down + if (keepRuntimeAlive() && !implicit) { + var msg = `program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`; + readyPromiseReject(msg); + err(msg); + } + _proc_exit(status); +}; + +var _exit = exitJS; + +var ptrToString = ptr => { + assert(typeof ptr === "number"); + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + ptr >>>= 0; + return "0x" + ptr.toString(16).padStart(8, "0"); +}; + +var PThread = { + unusedWorkers: [], + runningWorkers: [], + tlsInitFunctions: [], + pthreads: {}, + nextWorkerID: 1, + debugInit() { + function pthreadLogPrefix() { + var t = 0; + if (runtimeInitialized && typeof _pthread_self != "undefined") { + t = _pthread_self(); + } + return `w:${workerID},t:${ptrToString(t)}: `; + } + // Prefix all err()/dbg() messages with the calling thread ID. + var origDbg = dbg; + dbg = (...args) => origDbg(pthreadLogPrefix() + args.join(" ")); + }, + init() { + PThread.debugInit(); + if ((!(ENVIRONMENT_IS_PTHREAD))) { + PThread.initMainThread(); + } + }, + initMainThread() { + // MINIMAL_RUNTIME takes care of calling loadWasmModuleToAllWorkers + // in postamble_minimal.js + addOnPreRun(() => { + addRunDependency("loading-workers"); + PThread.loadWasmModuleToAllWorkers(() => removeRunDependency("loading-workers")); + }); + }, + terminateAllThreads: () => { + assert(!ENVIRONMENT_IS_PTHREAD, "Internal Error! terminateAllThreads() can only ever be called from main application thread!"); + // Attempt to kill all workers. Sadly (at least on the web) there is no + // way to terminate a worker synchronously, or to be notified when a + // worker in actually terminated. This means there is some risk that + // pthreads will continue to be executing after `worker.terminate` has + // returned. For this reason, we don't call `returnWorkerToPool` here or + // free the underlying pthread data structures. + for (var worker of PThread.runningWorkers) { + terminateWorker(worker); + } + for (var worker of PThread.unusedWorkers) { + terminateWorker(worker); + } + PThread.unusedWorkers = []; + PThread.runningWorkers = []; + PThread.pthreads = {}; + }, + returnWorkerToPool: worker => { + // We don't want to run main thread queued calls here, since we are doing + // some operations that leave the worker queue in an invalid state until + // we are completely done (it would be bad if free() ends up calling a + // queued pthread_create which looks at the global data structures we are + // modifying). To achieve that, defer the free() til the very end, when + // we are all done. + var pthread_ptr = worker.pthread_ptr; + delete PThread.pthreads[pthread_ptr]; + // Note: worker is intentionally not terminated so the pool can + // dynamically grow. + PThread.unusedWorkers.push(worker); + PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1); + // Not a running Worker anymore + // Detach the worker from the pthread object, and return it to the + // worker pool as an unused worker. + worker.pthread_ptr = 0; + // Finally, free the underlying (and now-unused) pthread structure in + // linear memory. + __emscripten_thread_free_data(pthread_ptr); + }, + receiveOffscreenCanvases(data) { + if (typeof GL != "undefined") { + Object.assign(GL.offscreenCanvases, data.offscreenCanvases); + if (!Module["canvas"] && data.moduleCanvasId && GL.offscreenCanvases[data.moduleCanvasId]) { + Module["canvas"] = GL.offscreenCanvases[data.moduleCanvasId].offscreenCanvas; + Module["canvas"].id = data.moduleCanvasId; + } + } + }, + threadInitTLS() { + // Call thread init functions (these are the _emscripten_tls_init for each + // module loaded. + PThread.tlsInitFunctions.forEach(f => f()); + }, + loadWasmModuleToWorker: worker => new Promise(onFinishedLoading => { + worker.onmessage = e => { + var d = e["data"]; + var cmd = d.cmd; + // If this message is intended to a recipient that is not the main + // thread, forward it to the target thread. + if (d.targetThread && d.targetThread != _pthread_self()) { + var targetWorker = PThread.pthreads[d.targetThread]; + if (targetWorker) { + targetWorker.postMessage(d, d.transferList); + } else { + err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`); + } + return; + } + if (cmd === "checkMailbox") { + checkMailbox(); + } else if (cmd === "spawnThread") { + spawnThread(d); + } else if (cmd === "cleanupThread") { + cleanupThread(d.thread); + } else if (cmd === "loaded") { + worker.loaded = true; + onFinishedLoading(worker); + } else if (d.target === "setimmediate") { + // Worker wants to postMessage() to itself to implement setImmediate() + // emulation. + worker.postMessage(d); + } else if (cmd === "callHandler") { + Module[d.handler](...d.args); + } else if (cmd) { + // The received message looks like something that should be handled by this message + // handler, (since there is a e.data.cmd field present), but is not one of the + // recognized commands: + err(`worker sent an unknown command ${cmd}`); + } + }; + worker.onerror = e => { + var message = "worker sent an error!"; + if (worker.pthread_ptr) { + message = `Pthread ${ptrToString(worker.pthread_ptr)} sent an error!`; + } + err(`${message} ${e.filename}:${e.lineno}: ${e.message}`); + throw e; + }; + assert(wasmMemory instanceof WebAssembly.Memory, "WebAssembly memory should have been loaded by now!"); + assert(wasmModule instanceof WebAssembly.Module, "WebAssembly Module should have been loaded by now!"); + // When running on a pthread, none of the incoming parameters on the module + // object are present. Proxy known handlers back to the main thread if specified. + var handlers = []; + var knownHandlers = [ "onExit", "onAbort", "print", "printErr" ]; + for (var handler of knownHandlers) { + if (Module.propertyIsEnumerable(handler)) { + handlers.push(handler); + } + } + // Ask the new worker to load up the Emscripten-compiled page. This is a heavy operation. + worker.postMessage({ + cmd: "load", + handlers, + wasmMemory, + wasmModule, + "workerID": worker.workerID + }); + }), + loadWasmModuleToAllWorkers(onMaybeReady) { + onMaybeReady(); + }, + allocateUnusedWorker() { + var worker; + var pthreadMainJs = _scriptName; + // We can't use makeModuleReceiveWithVar here since we want to also + // call URL.createObjectURL on the mainScriptUrlOrBlob. + if (Module["mainScriptUrlOrBlob"]) { + pthreadMainJs = Module["mainScriptUrlOrBlob"]; + if (typeof pthreadMainJs != "string") { + pthreadMainJs = URL.createObjectURL(pthreadMainJs); + } + } + worker = new Worker(pthreadMainJs, { + // This is the way that we signal to the Web Worker that it is hosting + // a pthread. + "name": "em-pthread-" + PThread.nextWorkerID + }); + worker.workerID = PThread.nextWorkerID++; + PThread.unusedWorkers.push(worker); + }, + getNewWorker() { + if (PThread.unusedWorkers.length == 0) { + // PTHREAD_POOL_SIZE_STRICT should show a warning and, if set to level `2`, return from the function. + PThread.allocateUnusedWorker(); + PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]); + } + return PThread.unusedWorkers.pop(); + } +}; + +var onPostRuns = []; + +var addOnPostRun = cb => onPostRuns.unshift(cb); + +var establishStackSpace = pthread_ptr => { + // If memory growth is enabled, the memory views may have gotten out of date, + // so resync them before accessing the pthread ptr below. + updateMemoryViews(); + var stackHigh = GROWABLE_HEAP_U32()[(((pthread_ptr) + (52)) >> 2)]; + var stackSize = GROWABLE_HEAP_U32()[(((pthread_ptr) + (56)) >> 2)]; + var stackLow = stackHigh - stackSize; + assert(stackHigh != 0); + assert(stackLow != 0); + assert(stackHigh > stackLow, "stackHigh must be higher then stackLow"); + // Set stack limits used by `emscripten/stack.h` function. These limits are + // cached in wasm-side globals to make checks as fast as possible. + _emscripten_stack_set_limits(stackHigh, stackLow); + setStackLimits(); + // Call inside wasm module to set up the stack frame for this pthread in wasm module scope + stackRestore(stackHigh); + // Write the stack cookie last, after we have set up the proper bounds and + // current position of the stack. + writeStackCookie(); +}; + +/** + * @param {number} ptr + * @param {string} type + */ function getValue(ptr, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + return GROWABLE_HEAP_I8()[ptr]; + + case "i8": + return GROWABLE_HEAP_I8()[ptr]; + + case "i16": + return GROWABLE_HEAP_I16()[((ptr) >> 1)]; + + case "i32": + return GROWABLE_HEAP_I32()[((ptr) >> 2)]; + + case "i64": + return HEAP64[((ptr) >> 3)]; + + case "float": + return GROWABLE_HEAP_F32()[((ptr) >> 2)]; + + case "double": + return GROWABLE_HEAP_F64()[((ptr) >> 3)]; + + case "*": + return GROWABLE_HEAP_U32()[((ptr) >> 2)]; + + default: + abort(`invalid type for getValue: ${type}`); + } +} + +var invokeEntryPoint = (ptr, arg) => { + // An old thread on this worker may have been canceled without returning the + // `runtimeKeepaliveCounter` to zero. Reset it now so the new thread won't + // be affected. + runtimeKeepaliveCounter = 0; + // Same for noExitRuntime. The default for pthreads should always be false + // otherwise pthreads would never complete and attempts to pthread_join to + // them would block forever. + // pthreads can still choose to set `noExitRuntime` explicitly, or + // call emscripten_unwind_to_js_event_loop to extend their lifetime beyond + // their main function. See comment in src/runtime_pthread.js for more. + noExitRuntime = 0; + // pthread entry points are always of signature 'void *ThreadMain(void *arg)' + // Native codebases sometimes spawn threads with other thread entry point + // signatures, such as void ThreadMain(void *arg), void *ThreadMain(), or + // void ThreadMain(). That is not acceptable per C/C++ specification, but + // x86 compiler ABI extensions enable that to work. If you find the + // following line to crash, either change the signature to "proper" void + // *ThreadMain(void *arg) form, or try linking with the Emscripten linker + // flag -sEMULATE_FUNCTION_POINTER_CASTS to add in emulation for this x86 + // ABI extension. + var result = (a1 => dynCall_ii(ptr, a1))(arg); + checkStackCookie(); + function finish(result) { + if (keepRuntimeAlive()) { + EXITSTATUS = result; + } else { + __emscripten_thread_exit(result); + } + } + finish(result); +}; + +var noExitRuntime = Module["noExitRuntime"] || true; + +var registerTLSInit = tlsInitFunc => PThread.tlsInitFunctions.push(tlsInitFunc); + +var runtimeKeepalivePush = () => { + runtimeKeepaliveCounter += 1; +}; + +var setStackLimits = () => { + var stackLow = _emscripten_stack_get_base(); + var stackHigh = _emscripten_stack_get_end(); + ___set_stack_limits(stackLow, stackHigh); +}; + +/** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ function setValue(ptr, value, type = "i8") { + if (type.endsWith("*")) type = "*"; + switch (type) { + case "i1": + GROWABLE_HEAP_I8()[ptr] = value; + break; + + case "i8": + GROWABLE_HEAP_I8()[ptr] = value; + break; + + case "i16": + GROWABLE_HEAP_I16()[((ptr) >> 1)] = value; + break; + + case "i32": + GROWABLE_HEAP_I32()[((ptr) >> 2)] = value; + break; + + case "i64": + HEAP64[((ptr) >> 3)] = BigInt(value); + break; + + case "float": + GROWABLE_HEAP_F32()[((ptr) >> 2)] = value; + break; + + case "double": + GROWABLE_HEAP_F64()[((ptr) >> 3)] = value; + break; + + case "*": + GROWABLE_HEAP_U32()[((ptr) >> 2)] = value; + break; + + default: + abort(`invalid type for setValue: ${type}`); + } +} + +var warnOnce = text => { + warnOnce.shown ||= {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + err(text); + } +}; + +var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder : undefined; + +/** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number=} idx + * @param {number=} maxBytesToRead + * @return {string} + */ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined/NaN means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer ? heapOrArray.subarray(idx, endPtr) : heapOrArray.slice(idx, endPtr)); + } + var str = ""; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue; + } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode(((u0 & 31) << 6) | u1); + continue; + } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 248) != 240) warnOnce("Invalid UTF-8 leading byte " + ptrToString(u0) + " encountered when deserializing a UTF-8 string in wasm memory to a JS string!"); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + if (u0 < 65536) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); + } + } + return str; +}; + +/** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ var UTF8ToString = (ptr, maxBytesToRead) => { + assert(typeof ptr == "number", `UTF8ToString expects a number (got ${typeof ptr})`); + return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : ""; +}; + +var ___assert_fail = (condition, filename, line, func) => abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [ filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function" ]); + +class ExceptionInfo { + // excPtr - Thrown object pointer to wrap. Metadata pointer is calculated from it. + constructor(excPtr) { + this.excPtr = excPtr; + this.ptr = excPtr - 24; + } + set_type(type) { + GROWABLE_HEAP_U32()[(((this.ptr) + (4)) >> 2)] = type; + } + get_type() { + return GROWABLE_HEAP_U32()[(((this.ptr) + (4)) >> 2)]; + } + set_destructor(destructor) { + GROWABLE_HEAP_U32()[(((this.ptr) + (8)) >> 2)] = destructor; + } + get_destructor() { + return GROWABLE_HEAP_U32()[(((this.ptr) + (8)) >> 2)]; + } + set_caught(caught) { + caught = caught ? 1 : 0; + GROWABLE_HEAP_I8()[(this.ptr) + (12)] = caught; + } + get_caught() { + return GROWABLE_HEAP_I8()[(this.ptr) + (12)] != 0; + } + set_rethrown(rethrown) { + rethrown = rethrown ? 1 : 0; + GROWABLE_HEAP_I8()[(this.ptr) + (13)] = rethrown; + } + get_rethrown() { + return GROWABLE_HEAP_I8()[(this.ptr) + (13)] != 0; + } + // Initialize native structure fields. Should be called once after allocated. + init(type, destructor) { + this.set_adjusted_ptr(0); + this.set_type(type); + this.set_destructor(destructor); + } + set_adjusted_ptr(adjustedPtr) { + GROWABLE_HEAP_U32()[(((this.ptr) + (16)) >> 2)] = adjustedPtr; + } + get_adjusted_ptr() { + return GROWABLE_HEAP_U32()[(((this.ptr) + (16)) >> 2)]; + } +} + +var exceptionLast = 0; + +var uncaughtExceptionCount = 0; + +var ___cxa_throw = (ptr, type, destructor) => { + var info = new ExceptionInfo(ptr); + // Initialize ExceptionInfo content after it was allocated in __cxa_allocate_exception. + info.init(type, destructor); + exceptionLast = ptr; + uncaughtExceptionCount++; + assert(false, "Exception thrown, but exception catching is not enabled. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch."); +}; + +var ___handle_stack_overflow = requested => { + var base = _emscripten_stack_get_base(); + var end = _emscripten_stack_get_end(); + abort(`stack overflow (Attempt to set SP to ${ptrToString(requested)}` + `, with stack limits [${ptrToString(end)} - ${ptrToString(base)}` + "]). If you require more stack space build with -sSTACK_SIZE="); +}; + +function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(2, 0, 1, pthread_ptr, attr, startRoutine, arg); + return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg); +} + +var _emscripten_has_threading_support = () => typeof SharedArrayBuffer != "undefined"; + +var ___pthread_create_js = (pthread_ptr, attr, startRoutine, arg) => { + if (!_emscripten_has_threading_support()) { + dbg("pthread_create: environment does not support SharedArrayBuffer, pthreads are not available"); + return 6; + } + // List of JS objects that will transfer ownership to the Worker hosting the thread + var transferList = []; + var error = 0; + // Deduce which WebGL canvases (HTMLCanvasElements or OffscreenCanvases) should be passed over to the + // Worker that hosts the spawned pthread. + // Comma-delimited list of CSS selectors that must identify canvases by IDs: "#canvas1, #canvas2, ..." + var transferredCanvasNames = attr ? GROWABLE_HEAP_U32()[(((attr) + (40)) >> 2)] : 0; + // Proxied canvases string pointer -1/MAX_PTR is used as a special token to + // fetch whatever canvases were passed to build in + // -sOFFSCREENCANVASES_TO_PTHREAD= command line. + if (transferredCanvasNames == 4294967295) { + transferredCanvasNames = "#canvas"; + } else { + transferredCanvasNames = UTF8ToString(transferredCanvasNames).trim(); + } + transferredCanvasNames = transferredCanvasNames ? transferredCanvasNames.split(",") : []; + var offscreenCanvases = {}; + // Dictionary of OffscreenCanvas objects we'll transfer to the created thread to own + var moduleCanvasId = Module["canvas"]?.id || ""; + // Note that transferredCanvasNames might be null (so we cannot do a for-of loop). + for (var name of transferredCanvasNames) { + name = name.trim(); + var offscreenCanvasInfo; + try { + if (name == "#canvas") { + if (!Module["canvas"]) { + err(`pthread_create: could not find canvas with ID "${name}" to transfer to thread!`); + error = 28; + break; + } + name = Module["canvas"].id; + } + assert(typeof GL == "object", "OFFSCREENCANVAS_SUPPORT assumes GL is in use (you can force-include it with '-sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=$GL')"); + if (GL.offscreenCanvases[name]) { + offscreenCanvasInfo = GL.offscreenCanvases[name]; + GL.offscreenCanvases[name] = null; + // This thread no longer owns this canvas. + if (Module["canvas"] instanceof OffscreenCanvas && name === Module["canvas"].id) Module["canvas"] = null; + } else if (!ENVIRONMENT_IS_PTHREAD) { + var canvas = (Module["canvas"] && Module["canvas"].id === name) ? Module["canvas"] : document.querySelector(name); + if (!canvas) { + err(`pthread_create: could not find canvas with ID "${name}" to transfer to thread!`); + error = 28; + break; + } + if (canvas.controlTransferredOffscreen) { + err(`pthread_create: cannot transfer canvas with ID "${name}" to thread, since the current thread does not have control over it!`); + error = 63; + // Operation not permitted, some other thread is accessing the canvas. + break; + } + if (canvas.transferControlToOffscreen) { + // Create a shared information block in heap so that we can control + // the canvas size from any thread. + if (!canvas.canvasSharedPtr) { + canvas.canvasSharedPtr = _malloc(12); + GROWABLE_HEAP_I32()[((canvas.canvasSharedPtr) >> 2)] = canvas.width; + GROWABLE_HEAP_I32()[(((canvas.canvasSharedPtr) + (4)) >> 2)] = canvas.height; + GROWABLE_HEAP_U32()[(((canvas.canvasSharedPtr) + (8)) >> 2)] = 0; + } + offscreenCanvasInfo = { + offscreenCanvas: canvas.transferControlToOffscreen(), + canvasSharedPtr: canvas.canvasSharedPtr, + id: canvas.id + }; + // After calling canvas.transferControlToOffscreen(), it is no + // longer possible to access certain operations on the canvas, such + // as resizing it or obtaining GL contexts via it. + // Use this field to remember that we have permanently converted + // this Canvas to be controlled via an OffscreenCanvas (there is no + // way to undo this in the spec) + canvas.controlTransferredOffscreen = true; + } else { + err(`pthread_create: cannot transfer control of canvas "${name}" to pthread, because current browser does not support OffscreenCanvas!`); + // If building with OFFSCREEN_FRAMEBUFFER=1 mode, we don't need to + // be able to transfer control to offscreen, but WebGL can be + // proxied from worker to main thread. + err("pthread_create: Build with -sOFFSCREEN_FRAMEBUFFER to enable fallback proxying of GL commands from pthread to main thread."); + return 52; + } + } + if (offscreenCanvasInfo) { + transferList.push(offscreenCanvasInfo.offscreenCanvas); + offscreenCanvases[offscreenCanvasInfo.id] = offscreenCanvasInfo; + } + } catch (e) { + err(`pthread_create: failed to transfer control of canvas "${name}" to OffscreenCanvas! Error: ${e}`); + return 28; + } + } + // Synchronously proxy the thread creation to main thread if possible. If we + // need to transfer ownership of objects, then proxy asynchronously via + // postMessage. + if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) { + return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg); + } + // If on the main thread, and accessing Canvas/OffscreenCanvas failed, abort + // with the detected error. + if (error) return error; + // Register for each of the transferred canvases that the new thread now + // owns the OffscreenCanvas. + for (var canvas of Object.values(offscreenCanvases)) { + // pthread ptr to the thread that owns this canvas. + GROWABLE_HEAP_U32()[(((canvas.canvasSharedPtr) + (8)) >> 2)] = pthread_ptr; + } + var threadParams = { + startRoutine, + pthread_ptr, + arg, + moduleCanvasId, + offscreenCanvases, + transferList + }; + if (ENVIRONMENT_IS_PTHREAD) { + // The prepopulated pool of web workers that can host pthreads is stored + // in the main JS thread. Therefore if a pthread is attempting to spawn a + // new thread, the thread creation must be deferred to the main JS thread. + threadParams.cmd = "spawnThread"; + postMessage(threadParams, transferList); + // When we defer thread creation this way, we have no way to detect thread + // creation synchronously today, so we have to assume success and return 0. + return 0; + } + // We are the main thread, so we have the pthread warmup pool in this + // thread and can fire off JS thread creation directly ourselves. + return spawnThread(threadParams); +}; + +/** @suppress {duplicate } */ var syscallGetVarargI = () => { + assert(SYSCALLS.varargs != undefined); + // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. + var ret = GROWABLE_HEAP_I32()[((+SYSCALLS.varargs) >> 2)]; + SYSCALLS.varargs += 4; + return ret; +}; + +var syscallGetVarargP = syscallGetVarargI; + +var PATH = { + isAbs: path => path.charAt(0) === "/", + splitPath: filename => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === ".") { + parts.splice(i, 1); + } else if (last === "..") { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (;up; up--) { + parts.unshift(".."); + } + } + return parts; + }, + normalize: path => { + var isAbsolute = PATH.isAbs(path), trailingSlash = path.slice(-1) === "/"; + // Normalize the path + path = PATH.normalizeArray(path.split("/").filter(p => !!p), !isAbsolute).join("/"); + if (!path && !isAbsolute) { + path = "."; + } + if (path && trailingSlash) { + path += "/"; + } + return (isAbsolute ? "/" : "") + path; + }, + dirname: path => { + var result = PATH.splitPath(path), root = result[0], dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return "."; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.slice(0, -1); + } + return root + dir; + }, + basename: path => path && path.match(/([^\/]+|\/)\/*$/)[1], + join: (...paths) => PATH.normalize(paths.join("/")), + join2: (l, r) => PATH.normalize(l + "/" + r) +}; + +var initRandomFill = () => view => view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))); + +var randomFill = view => { + // Lazily init on the first invocation. + (randomFill = initRandomFill())(view); +}; + +var PATH_FS = { + resolve: (...args) => { + var resolvedPath = "", resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? args[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != "string") { + throw new TypeError("Arguments to path.resolve must be strings"); + } else if (!path) { + return ""; + } + resolvedPath = path + "/" + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter(p => !!p), !resolvedAbsolute).join("/"); + return ((resolvedAbsolute ? "/" : "") + resolvedPath) || "."; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).slice(1); + to = PATH_FS.resolve(to).slice(1); + function trim(arr) { + var start = 0; + for (;start < arr.length; start++) { + if (arr[start] !== "") break; + } + var end = arr.length - 1; + for (;end >= 0; end--) { + if (arr[end] !== "") break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split("/")); + var toParts = trim(to.split("/")); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push(".."); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join("/"); + } +}; + +var FS_stdin_getChar_buffer = []; + +var lengthBytesUTF8 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); + // possibly a lead surrogate + if (c <= 127) { + len++; + } else if (c <= 2047) { + len += 2; + } else if (c >= 55296 && c <= 57343) { + len += 4; + ++i; + } else { + len += 3; + } + } + return len; +}; + +var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + assert(typeof str === "string", `stringToUTF8Array expects a string (got ${typeof str})`); + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); + // possibly a lead surrogate + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | (u1 & 1023); + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | (u >> 6); + heap[outIdx++] = 128 | (u & 63); + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | (u >> 12); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 1114111) warnOnce("Invalid Unicode code point " + ptrToString(u) + " encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."); + heap[outIdx++] = 240 | (u >> 18); + heap[outIdx++] = 128 | ((u >> 12) & 63); + heap[outIdx++] = 128 | ((u >> 6) & 63); + heap[outIdx++] = 128 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; +}; + +/** @type {function(string, boolean=, number=)} */ var intArrayFromString = (stringy, dontAddNull, length) => { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; +}; + +var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (typeof window != "undefined" && typeof window.prompt == "function") { + // Browser. + result = window.prompt("Input: "); + // returns null on cancel + if (result !== null) { + result += "\n"; + } + } else {} + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); +}; + +var TTY = { + ttys: [], + init() {}, + shutdown() {}, + register(dev, ops) { + TTY.ttys[dev] = { + input: [], + output: [], + ops + }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }, + default_tty_ops: { + get_char(tty) { + return FS_stdin_getChar(); + }, + put_char(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + out(UTF8ArrayToString(tty.output)); + tty.output = []; + } + }, + ioctl_tcgets(tty) { + // typical setting + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ 3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] + }; + }, + ioctl_tcsets(tty, optional_actions, data) { + // currently just ignore + return 0; + }, + ioctl_tiocgwinsz(tty) { + return [ 24, 80 ]; + } + }, + default_tty1_ops: { + put_char(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output?.length > 0) { + err(UTF8ArrayToString(tty.output)); + tty.output = []; + } + } + } +}; + +var zeroMemory = (ptr, size) => GROWABLE_HEAP_U8().fill(0, ptr, ptr + size); + +var alignMemory = (size, alignment) => { + assert(alignment, "alignment argument is required"); + return Math.ceil(size / alignment) * alignment; +}; + +var mmapAlloc = size => { + size = alignMemory(size, 65536); + var ptr = _emscripten_builtin_memalign(65536, size); + if (ptr) zeroMemory(ptr, size); + return ptr; +}; + +var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, "/", 16895, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + MEMFS.ops_table ||= { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink + }, + stream: { + llseek: MEMFS.stream_ops.llseek + } + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync + } + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink + }, + stream: {} + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr + }, + stream: FS.chrdev_stream_ops + } + }; + var node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; + // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.atime = node.mtime = node.ctime = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.atime = parent.mtime = parent.ctime = node.atime; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); + // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; + // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); + // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); + // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; + // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); + // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.atime); + attr.mtime = new Date(node.mtime); + attr.ctime = new Date(node.ctime); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + for (const key of [ "mode", "atime", "mtime", "ctime" ]) { + if (attr[key] != null) { + node[key] = attr[key]; + } + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + throw new FS.ErrnoError(44); + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + if (new_node) { + if (FS.isDir(old_node.mode)) { + // if we're overwriting a directory at new_name, make sure it's empty. + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + FS.hashRemoveNode(new_node); + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + new_dir.contents[new_name] = old_node; + old_node.name = new_name; + new_dir.ctime = new_dir.mtime = old_node.parent.ctime = old_node.parent.mtime = Date.now(); + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.ctime = parent.mtime = Date.now(); + }, + readdir(node) { + return [ ".", "..", ...Object.keys(node.contents) ]; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + } + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { + // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === GROWABLE_HEAP_I8().buffer) { + canOwn = false; + } + if (!length) return 0; + var node = stream.node; + node.mtime = node.ctime = Date.now(); + if (buffer.subarray && (!node.contents || node.contents.subarray)) { + // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, "canOwn must imply no weird position inside the file"); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { + // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { + // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents && contents.buffer === GROWABLE_HEAP_I8().buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the + // buffer we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + if (contents) { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + GROWABLE_HEAP_I8().set(contents, ptr); + } + } + return { + ptr, + allocated + }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + } + } +}; + +var asyncLoad = async url => { + var arrayBuffer = await readAsync(url); + assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); + return new Uint8Array(arrayBuffer); +}; + +asyncLoad.isAsync = true; + +var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => { + FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn); +}; + +var preloadPlugins = Module["preloadPlugins"] || []; + +var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => { + // Ensure plugins are ready. + if (typeof Browser != "undefined") Browser.init(); + var handled = false; + preloadPlugins.forEach(plugin => { + if (handled) return; + if (plugin["canHandle"](fullname)) { + plugin["handle"](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; +}; + +var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); + // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + onload?.(); + removeRunDependency(dep); + } + if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { + onerror?.(); + removeRunDependency(dep); + })) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == "string") { + asyncLoad(url).then(processData, onerror); + } else { + processData(url); + } +}; + +var FS_modeStringToFlags = str => { + var flagModes = { + "r": 0, + "r+": 2, + "w": 512 | 64 | 1, + "w+": 512 | 64 | 2, + "a": 1024 | 64 | 1, + "a+": 1024 | 64 | 2 + }; + var flags = flagModes[str]; + if (typeof flags == "undefined") { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; +}; + +var FS_getMode = (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; +}; + +var strError = errno => UTF8ToString(_strerror(errno)); + +var ERRNO_CODES = { + "EPERM": 63, + "ENOENT": 44, + "ESRCH": 71, + "EINTR": 27, + "EIO": 29, + "ENXIO": 60, + "E2BIG": 1, + "ENOEXEC": 45, + "EBADF": 8, + "ECHILD": 12, + "EAGAIN": 6, + "EWOULDBLOCK": 6, + "ENOMEM": 48, + "EACCES": 2, + "EFAULT": 21, + "ENOTBLK": 105, + "EBUSY": 10, + "EEXIST": 20, + "EXDEV": 75, + "ENODEV": 43, + "ENOTDIR": 54, + "EISDIR": 31, + "EINVAL": 28, + "ENFILE": 41, + "EMFILE": 33, + "ENOTTY": 59, + "ETXTBSY": 74, + "EFBIG": 22, + "ENOSPC": 51, + "ESPIPE": 70, + "EROFS": 69, + "EMLINK": 34, + "EPIPE": 64, + "EDOM": 18, + "ERANGE": 68, + "ENOMSG": 49, + "EIDRM": 24, + "ECHRNG": 106, + "EL2NSYNC": 156, + "EL3HLT": 107, + "EL3RST": 108, + "ELNRNG": 109, + "EUNATCH": 110, + "ENOCSI": 111, + "EL2HLT": 112, + "EDEADLK": 16, + "ENOLCK": 46, + "EBADE": 113, + "EBADR": 114, + "EXFULL": 115, + "ENOANO": 104, + "EBADRQC": 103, + "EBADSLT": 102, + "EDEADLOCK": 16, + "EBFONT": 101, + "ENOSTR": 100, + "ENODATA": 116, + "ETIME": 117, + "ENOSR": 118, + "ENONET": 119, + "ENOPKG": 120, + "EREMOTE": 121, + "ENOLINK": 47, + "EADV": 122, + "ESRMNT": 123, + "ECOMM": 124, + "EPROTO": 65, + "EMULTIHOP": 36, + "EDOTDOT": 125, + "EBADMSG": 9, + "ENOTUNIQ": 126, + "EBADFD": 127, + "EREMCHG": 128, + "ELIBACC": 129, + "ELIBBAD": 130, + "ELIBSCN": 131, + "ELIBMAX": 132, + "ELIBEXEC": 133, + "ENOSYS": 52, + "ENOTEMPTY": 55, + "ENAMETOOLONG": 37, + "ELOOP": 32, + "EOPNOTSUPP": 138, + "EPFNOSUPPORT": 139, + "ECONNRESET": 15, + "ENOBUFS": 42, + "EAFNOSUPPORT": 5, + "EPROTOTYPE": 67, + "ENOTSOCK": 57, + "ENOPROTOOPT": 50, + "ESHUTDOWN": 140, + "ECONNREFUSED": 14, + "EADDRINUSE": 3, + "ECONNABORTED": 13, + "ENETUNREACH": 40, + "ENETDOWN": 38, + "ETIMEDOUT": 73, + "EHOSTDOWN": 142, + "EHOSTUNREACH": 23, + "EINPROGRESS": 26, + "EALREADY": 7, + "EDESTADDRREQ": 17, + "EMSGSIZE": 35, + "EPROTONOSUPPORT": 66, + "ESOCKTNOSUPPORT": 137, + "EADDRNOTAVAIL": 4, + "ENETRESET": 39, + "EISCONN": 30, + "ENOTCONN": 53, + "ETOOMANYREFS": 141, + "EUSERS": 136, + "EDQUOT": 19, + "ESTALE": 72, + "ENOTSUP": 138, + "ENOMEDIUM": 148, + "EILSEQ": 25, + "EOVERFLOW": 61, + "ECANCELED": 11, + "ENOTRECOVERABLE": 56, + "EOWNERDEAD": 62, + "ESTRPIPE": 135 +}; + +var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + filesystems: null, + syncFSRequests: 0, + readFiles: {}, + ErrnoError: class extends Error { + name="ErrnoError"; + // We set the `name` property to be able to identify `FS.ErrnoError` + // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. + // - when using PROXYFS, an error can come from an underlying FS + // as different FS objects have their own FS.ErrnoError each, + // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. + // we'll use the reliable test `err.name == "ErrnoError"` instead + constructor(errno) { + super(runtimeInitialized ? strError(errno) : ""); + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + } + }, + FSStream: class { + shared={}; + get object() { + return this.node; + } + set object(val) { + this.node = val; + } + get isRead() { + return (this.flags & 2097155) !== 1; + } + get isWrite() { + return (this.flags & 2097155) !== 0; + } + get isAppend() { + return (this.flags & 1024); + } + get flags() { + return this.shared.flags; + } + set flags(val) { + this.shared.flags = val; + } + get position() { + return this.shared.position; + } + set position(val) { + this.shared.position = val; + } + }, + FSNode: class { + node_ops={}; + stream_ops={}; + readMode=292 | 73; + writeMode=146; + mounted=null; + constructor(parent, name, mode, rdev) { + if (!parent) { + parent = this; + } + this.parent = parent; + this.mount = parent.mount; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.rdev = rdev; + this.atime = this.mtime = this.ctime = Date.now(); + } + get read() { + return (this.mode & this.readMode) === this.readMode; + } + set read(val) { + val ? this.mode |= this.readMode : this.mode &= ~this.readMode; + } + get write() { + return (this.mode & this.writeMode) === this.writeMode; + } + set write(val) { + val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; + } + get isFolder() { + return FS.isDir(this.mode); + } + get isDevice() { + return FS.isChrdev(this.mode); + } + }, + lookupPath(path, opts = {}) { + if (!path) { + throw new FS.ErrnoError(44); + } + opts.follow_mount ??= true; + if (!PATH.isAbs(path)) { + path = FS.cwd() + "/" + path; + } + // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + linkloop: for (var nlinks = 0; nlinks < 40; nlinks++) { + // split the absolute path + var parts = path.split("/").filter(p => !!p); + // start at the root + var current = FS.root; + var current_path = "/"; + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length - 1); + if (islast && opts.parent) { + // stop resolving + break; + } + if (parts[i] === ".") { + continue; + } + if (parts[i] === "..") { + current_path = PATH.dirname(current_path); + current = current.parent; + continue; + } + current_path = PATH.join2(current_path, parts[i]); + try { + current = FS.lookupNode(current, parts[i]); + } catch (e) { + // if noent_okay is true, suppress a ENOENT in the last component + // and return an object with an undefined node. This is needed for + // resolving symlinks in the path when creating a file. + if ((e?.errno === 44) && islast && opts.noent_okay) { + return { + path: current_path + }; + } + throw e; + } + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current) && (!islast || opts.follow_mount)) { + current = current.mounted.root; + } + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (FS.isLink(current.mode) && (!islast || opts.follow)) { + if (!current.node_ops.readlink) { + throw new FS.ErrnoError(52); + } + var link = current.node_ops.readlink(current); + if (!PATH.isAbs(link)) { + link = PATH.dirname(current_path) + "/" + link; + } + path = link + "/" + parts.slice(i + 1).join("/"); + continue linkloop; + } + } + return { + path: current_path, + node: current + }; + } + throw new FS.ErrnoError(32); + }, + getPath(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName(parentid, name) { + var hash = 0; + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode(parent, name, mode, rdev) { + assert(typeof parent == "object"); + var node = new FS.FSNode(parent, name, mode, rdev); + FS.hashAddNode(node); + return node; + }, + destroyNode(node) { + FS.hashRemoveNode(node); + }, + isRoot(node) { + return node === node.parent; + }, + isMountpoint(node) { + return !!node.mounted; + }, + isFile(mode) { + return (mode & 61440) === 32768; + }, + isDir(mode) { + return (mode & 61440) === 16384; + }, + isLink(mode) { + return (mode & 61440) === 40960; + }, + isChrdev(mode) { + return (mode & 61440) === 8192; + }, + isBlkdev(mode) { + return (mode & 61440) === 24576; + }, + isFIFO(mode) { + return (mode & 61440) === 4096; + }, + isSocket(mode) { + return (mode & 49152) === 49152; + }, + flagsToPermissionString(flag) { + var perms = [ "r", "w", "rw" ][flag & 3]; + if ((flag & 512)) { + perms += "w"; + } + return perms; + }, + nodePermissions(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes("r") && !(node.mode & 292)) { + return 2; + } else if (perms.includes("w") && !(node.mode & 146)) { + return 2; + } else if (perms.includes("x") && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup(dir) { + if (!FS.isDir(dir.mode)) return 54; + var errCode = FS.nodePermissions(dir, "x"); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate(dir, name) { + if (!FS.isDir(dir.mode)) { + return 54; + } + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) {} + return FS.nodePermissions(dir, "wx"); + }, + mayDelete(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, "wx"); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== "r" || (flags & (512 | 64))) { + // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + checkOpExists(op, err) { + if (!op) { + throw new FS.ErrnoError(err); + } + return op; + }, + MAX_OPEN_FDS: 4096, + nextfd() { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked(fd) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: fd => FS.streams[fd], + createStream(stream, fd = -1) { + assert(fd >= -1); + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream, stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream(fd) { + FS.streams[fd] = null; + }, + dupStream(origStream, fd = -1) { + var stream = FS.createStream(origStream, fd); + stream.stream_ops?.dup?.(stream); + return stream; + }, + doSetAttr(stream, node, attr) { + var setattr = stream?.stream_ops.setattr; + var arg = setattr ? stream : node; + setattr ??= node.node_ops.setattr; + FS.checkOpExists(setattr, 63); + setattr(arg, attr); + }, + chrdev_stream_ops: { + open(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + stream.stream_ops.open?.(stream); + }, + llseek() { + throw new FS.ErrnoError(70); + } + }, + major: dev => ((dev) >> 8), + minor: dev => ((dev) & 255), + makedev: (ma, mi) => ((ma) << 8 | (mi)), + registerDevice(dev, ops) { + FS.devices[dev] = { + stream_ops: ops + }; + }, + getDevice: dev => FS.devices[dev], + getMounts(mount) { + var mounts = []; + var check = [ mount ]; + while (check.length) { + var m = check.pop(); + mounts.push(m); + check.push(...m.mounts); + } + return mounts; + }, + syncfs(populate, callback) { + if (typeof populate == "function") { + callback = populate; + populate = false; + } + FS.syncFSRequests++; + if (FS.syncFSRequests > 1) { + err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); + } + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + } + // sync all mounts + mounts.forEach(mount => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount(type, opts, mountpoint) { + if (typeof type == "string") { + // The filesystem was not included, and instead we have an error + // message stored in the variable. + throw type; + } + var root = mountpoint === "/"; + var pseudo = !mountpoint; + var node; + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + mountpoint = lookup.path; + // use the absolute path + node = lookup.node; + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + var mount = { + type, + opts, + mountpoint, + mounts: [] + }; + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + return mountRoot; + }, + unmount(mountpoint) { + var lookup = FS.lookupPath(mountpoint, { + follow_mount: false + }); + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + Object.keys(FS.nameTable).forEach(hash => { + var current = FS.nameTable[hash]; + while (current) { + var next = current.name_next; + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + current = next; + } + }); + // no longer a mountpoint + node.mounted = null; + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + }, + lookup(parent, name) { + return parent.node_ops.lookup(parent, name); + }, + mknod(path, mode, dev) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name) { + throw new FS.ErrnoError(28); + } + if (name === "." || name === "..") { + throw new FS.ErrnoError(20); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + statfs(path) { + return FS.statfsNode(FS.lookupPath(path, { + follow: true + }).node); + }, + statfsStream(stream) { + // We keep a separate statfsStream function because noderawfs overrides + // it. In noderawfs, stream.node is sometimes null. Instead, we need to + // look at stream.path. + return FS.statfsNode(stream.node); + }, + statfsNode(node) { + // NOTE: None of the defaults here are true. We're just returning safe and + // sane values. Currently nodefs and rawfs replace these defaults, + // other file systems leave them alone. + var rtn = { + bsize: 4096, + frsize: 4096, + blocks: 1e6, + bfree: 5e5, + bavail: 5e5, + files: FS.nextInode, + ffree: FS.nextInode - 1, + fsid: 42, + flags: 2, + namelen: 255 + }; + if (node.node_ops.statfs) { + Object.assign(rtn, node.node_ops.statfs(node.mount.opts.root)); + } + return rtn; + }, + create(path, mode = 438) { + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir(path, mode = 511) { + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree(path, mode) { + var dirs = path.split("/"); + var d = ""; + for (var dir of dirs) { + if (!dir) continue; + if (d || PATH.isAbs(path)) d += "/"; + d += dir; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev(path, mode, dev) { + if (typeof dev == "undefined") { + dev = mode; + mode = 438; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + // let the errors from non existent directories percolate up + lookup = FS.lookupPath(old_path, { + parent: true + }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { + parent: true + }); + new_dir = lookup.node; + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== ".") { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) {} + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + // update old node (we do this here to avoid each backend + // needing to) + old_node.parent = new_dir; + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var readdir = FS.checkOpExists(node.node_ops.readdir, 54); + return readdir(node); + }, + unlink(path) { + var lookup = FS.lookupPath(path, { + parent: true + }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return link.node_ops.readlink(link); + }, + stat(path, dontFollow) { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + var node = lookup.node; + var getattr = FS.checkOpExists(node.node_ops.getattr, 63); + return getattr(node); + }, + fstat(fd) { + var stream = FS.getStreamChecked(fd); + var node = stream.node; + var getattr = stream.stream_ops.getattr; + var arg = getattr ? stream : node; + getattr ??= node.node_ops.getattr; + FS.checkOpExists(getattr, 63); + return getattr(arg); + }, + lstat(path) { + return FS.stat(path, true); + }, + doChmod(stream, node, mode, dontFollow) { + FS.doSetAttr(stream, node, { + mode: (mode & 4095) | (node.mode & ~4095), + ctime: Date.now(), + dontFollow + }); + }, + chmod(path, mode, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChmod(null, node, mode, dontFollow); + }, + lchmod(path, mode) { + FS.chmod(path, mode, true); + }, + fchmod(fd, mode) { + var stream = FS.getStreamChecked(fd); + FS.doChmod(stream, stream.node, mode, false); + }, + doChown(stream, node, dontFollow) { + FS.doSetAttr(stream, node, { + timestamp: Date.now(), + dontFollow + }); + }, + chown(path, uid, gid, dontFollow) { + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: !dontFollow + }); + node = lookup.node; + } else { + node = path; + } + FS.doChown(null, node, dontFollow); + }, + lchown(path, uid, gid) { + FS.chown(path, uid, gid, true); + }, + fchown(fd, uid, gid) { + var stream = FS.getStreamChecked(fd); + FS.doChown(stream, stream.node, false); + }, + doTruncate(stream, node, len) { + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, "w"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.doSetAttr(stream, node, { + size: len, + timestamp: Date.now() + }); + }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == "string") { + var lookup = FS.lookupPath(path, { + follow: true + }); + node = lookup.node; + } else { + node = path; + } + FS.doTruncate(null, node, len); + }, + ftruncate(fd, len) { + var stream = FS.getStreamChecked(fd); + if (len < 0 || (stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.doTruncate(stream, stream.node, len); + }, + utime(path, atime, mtime) { + var lookup = FS.lookupPath(path, { + follow: true + }); + var node = lookup.node; + var setattr = FS.checkOpExists(node.node_ops.setattr, 63); + setattr(node, { + atime, + mtime + }); + }, + open(path, flags, mode = 438) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + var isDirPath; + if (typeof path == "object") { + node = path; + } else { + isDirPath = path.endsWith("/"); + // noent_okay makes it so that if the final component of the path + // doesn't exist, lookupPath returns `node: undefined`. `path` will be + // updated to point to the target of all symlinks. + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072), + noent_okay: true + }); + node = lookup.node; + path = lookup.path; + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else if (isDirPath) { + throw new FS.ErrnoError(31); + } else { + // node doesn't exist, try to create it + // Ignore the permission bits here to ensure we can `open` this new + // file below. We use chmod below the apply the permissions once the + // file is open. + node = FS.mknod(path, mode | 511, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512) && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + // register the stream with the filesystem + var stream = FS.createStream({ + node, + path: FS.getPath(node), + // we want the absolute path to the node + flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (created) { + FS.chmod(node, mode & 511); + } + if (Module["logReadFiles"] && !(flags & 1)) { + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; + // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed(stream) { + return stream.fd === null; + }, + llseek(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read(stream, buffer, offset, length, position) { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write(stream, buffer, offset, length, position, canOwn) { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != "undefined"; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + mmap(stream, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + if (!length) { + throw new FS.ErrnoError(28); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync(stream, buffer, offset, length, mmapFlags) { + assert(offset >= 0); + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + ioctl(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile(path, opts = {}) { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || "binary"; + if (opts.encoding !== "utf8" && opts.encoding !== "binary") { + throw new Error(`Invalid encoding type "${opts.encoding}"`); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === "utf8") { + ret = UTF8ArrayToString(buf); + } else if (opts.encoding === "binary") { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile(path, data, opts = {}) { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == "string") { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error("Unsupported data type"); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir(path) { + var lookup = FS.lookupPath(path, { + follow: true + }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, "x"); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories() { + FS.mkdir("/tmp"); + FS.mkdir("/home"); + FS.mkdir("/home/web_user"); + }, + createDefaultDevices() { + // create /dev + FS.mkdir("/dev"); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + llseek: () => 0 + }); + FS.mkdev("/dev/null", FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); + FS.mkdev("/dev/tty", FS.makedev(5, 0)); + FS.mkdev("/dev/tty1", FS.makedev(6, 0)); + // setup /dev/[u]random + // use a buffer to avoid overhead of individual crypto calls per byte + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomFill(randomBuffer); + randomLeft = randomBuffer.byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice("/dev", "random", randomByte); + FS.createDevice("/dev", "urandom", randomByte); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir("/dev/shm"); + FS.mkdir("/dev/shm/tmp"); + }, + createSpecialDirectories() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir("/proc"); + var proc_self = FS.mkdir("/proc/self"); + FS.mkdir("/proc/self/fd"); + FS.mount({ + mount() { + var node = FS.createNode(proc_self, "fd", 16895, 73); + node.stream_ops = { + llseek: MEMFS.stream_ops.llseek + }; + node.node_ops = { + lookup(parent, name) { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { + mountpoint: "fake" + }, + node_ops: { + readlink: () => stream.path + }, + id: fd + 1 + }; + ret.parent = ret; + // make it look like a simple root node + return ret; + }, + readdir() { + return Array.from(FS.streams.entries()).filter(([k, v]) => v).map(([k, v]) => k.toString()); + } + }; + return node; + } + }, {}, "/proc/self/fd"); + }, + createStandardStreams(input, output, error) { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (input) { + FS.createDevice("/dev", "stdin", input); + } else { + FS.symlink("/dev/tty", "/dev/stdin"); + } + if (output) { + FS.createDevice("/dev", "stdout", null, output); + } else { + FS.symlink("/dev/tty", "/dev/stdout"); + } + if (error) { + FS.createDevice("/dev", "stderr", null, error); + } else { + FS.symlink("/dev/tty1", "/dev/stderr"); + } + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open("/dev/stdin", 0); + var stdout = FS.open("/dev/stdout", 1); + var stderr = FS.open("/dev/stderr", 1); + assert(stdin.fd === 0, `invalid handle for stdin (${stdin.fd})`); + assert(stdout.fd === 1, `invalid handle for stdout (${stdout.fd})`); + assert(stderr.fd === 2, `invalid handle for stderr (${stderr.fd})`); + }, + staticInit() { + FS.nameTable = new Array(4096); + FS.mount(MEMFS, {}, "/"); + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + FS.filesystems = { + "MEMFS": MEMFS + }; + }, + init(input, output, error) { + assert(!FS.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"); + FS.initialized = true; + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + input ??= Module["stdin"]; + output ??= Module["stdout"]; + error ??= Module["stderr"]; + FS.createStandardStreams(input, output, error); + }, + quit() { + FS.initialized = false; + // force-flush all streams, so we get musl std streams printed out + _fflush(0); + // close all of our streams + for (var stream of FS.streams) { + if (stream) { + FS.close(stream); + } + } + }, + findObject(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + path = lookup.path; + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { + parent: true + }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink + }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === "/"; + } catch (e) { + ret.error = e.errno; + } + return ret; + }, + createPath(parent, path, canRead, canWrite) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + var parts = path.split("/").reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + if (e.errno != 20) throw e; + } + parent = current; + } + return current; + }, + createFile(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile(parent, name, data, canRead, canWrite, canOwn) { + var path = name; + if (parent) { + parent = typeof parent == "string" ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == "string") { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + }, + createDevice(parent, name, input, output) { + var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name); + var mode = FS_getMode(!!input, !!output); + FS.createDevice.major ??= 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open(stream) { + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + if (output?.buffer?.length) { + output(10); + } + }, + read(stream, buffer, offset, length, pos) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.atime = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.mtime = stream.node.ctime = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != "undefined") { + throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); + } else { + // Command-line. + try { + obj.contents = readBinary(obj.url); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } + }, + createLazyFile(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). + // Actual getting is abstracted away for eventual reuse. + class LazyUint8Array { + lengthKnown=false; + chunks=[]; + // Loaded chunks. Index is the chunk number + get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + } + setDataGetter(getter) { + this.getter = getter; + } + cacheLength() { + // Find length + var xhr = new XMLHttpRequest; + xhr.open("HEAD", url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + var chunkSize = 1024 * 1024; + // Chunk size in bytes + if (!hasByteServing) chunkSize = datalength; + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + // Some hints to the browser that we want binary data. + xhr.responseType = "arraybuffer"; + if (xhr.overrideMimeType) { + xhr.overrideMimeType("text/plain; charset=x-user-defined"); + } + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */ (xhr.response || [])); + } + return intArrayFromString(xhr.responseText || "", true); + }; + var lazyArray = this; + lazyArray.setDataGetter(chunkNum => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; + // including this byte + end = Math.min(end, datalength - 1); + // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == "undefined") { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == "undefined") throw new Error("doXHR failed!"); + return lazyArray.chunks[chunkNum]; + }); + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; + // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + get length() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + get chunkSize() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + if (typeof XMLHttpRequest != "undefined") { + if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; + var lazyArray = new LazyUint8Array; + var properties = { + isDevice: false, + contents: lazyArray + }; + } else { + var properties = { + isDevice: false, + url + }; + } + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function() { + return this.contents.length; + } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach(key => { + var fn = node.stream_ops[key]; + stream_ops[key] = (...args) => { + FS.forceLoadFile(node); + return fn(...args); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { + // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { + // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position); + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position); + return { + ptr, + allocated: true + }; + }; + node.stream_ops = stream_ops; + return node; + }, + absolutePath() { + abort("FS.absolutePath has been removed; use PATH_FS.resolve instead"); + }, + createFolder() { + abort("FS.createFolder has been removed; use FS.mkdir instead"); + }, + createLink() { + abort("FS.createLink has been removed; use FS.symlink instead"); + }, + joinPath() { + abort("FS.joinPath has been removed; use PATH.join instead"); + }, + mmapAlloc() { + abort("FS.mmapAlloc has been replaced by the top level function mmapAlloc"); + }, + standardizePath() { + abort("FS.standardizePath has been removed; use PATH.normalize instead"); + } +}; + +var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44); + } + return dir; + } + return dir + "/" + path; + }, + writeStat(buf, stat) { + GROWABLE_HEAP_I32()[((buf) >> 2)] = stat.dev; + GROWABLE_HEAP_I32()[(((buf) + (4)) >> 2)] = stat.mode; + GROWABLE_HEAP_U32()[(((buf) + (8)) >> 2)] = stat.nlink; + GROWABLE_HEAP_I32()[(((buf) + (12)) >> 2)] = stat.uid; + GROWABLE_HEAP_I32()[(((buf) + (16)) >> 2)] = stat.gid; + GROWABLE_HEAP_I32()[(((buf) + (20)) >> 2)] = stat.rdev; + HEAP64[(((buf) + (24)) >> 3)] = BigInt(stat.size); + GROWABLE_HEAP_I32()[(((buf) + (32)) >> 2)] = 4096; + GROWABLE_HEAP_I32()[(((buf) + (36)) >> 2)] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + HEAP64[(((buf) + (40)) >> 3)] = BigInt(Math.floor(atime / 1e3)); + GROWABLE_HEAP_U32()[(((buf) + (48)) >> 2)] = (atime % 1e3) * 1e3 * 1e3; + HEAP64[(((buf) + (56)) >> 3)] = BigInt(Math.floor(mtime / 1e3)); + GROWABLE_HEAP_U32()[(((buf) + (64)) >> 2)] = (mtime % 1e3) * 1e3 * 1e3; + HEAP64[(((buf) + (72)) >> 3)] = BigInt(Math.floor(ctime / 1e3)); + GROWABLE_HEAP_U32()[(((buf) + (80)) >> 2)] = (ctime % 1e3) * 1e3 * 1e3; + HEAP64[(((buf) + (88)) >> 3)] = BigInt(stat.ino); + return 0; + }, + writeStatFs(buf, stats) { + GROWABLE_HEAP_I32()[(((buf) + (4)) >> 2)] = stats.bsize; + GROWABLE_HEAP_I32()[(((buf) + (40)) >> 2)] = stats.bsize; + GROWABLE_HEAP_I32()[(((buf) + (8)) >> 2)] = stats.blocks; + GROWABLE_HEAP_I32()[(((buf) + (12)) >> 2)] = stats.bfree; + GROWABLE_HEAP_I32()[(((buf) + (16)) >> 2)] = stats.bavail; + GROWABLE_HEAP_I32()[(((buf) + (20)) >> 2)] = stats.files; + GROWABLE_HEAP_I32()[(((buf) + (24)) >> 2)] = stats.ffree; + GROWABLE_HEAP_I32()[(((buf) + (28)) >> 2)] = stats.fsid; + GROWABLE_HEAP_I32()[(((buf) + (44)) >> 2)] = stats.flags; + // ST_NOSUID + GROWABLE_HEAP_I32()[(((buf) + (36)) >> 2)] = stats.namelen; + }, + doMsync(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + getStreamFromFD(fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + varargs: undefined, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + } +}; + +function ___syscall_fcntl64(fd, cmd, varargs) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(3, 0, 1, fd, cmd, varargs); + SYSCALLS.varargs = varargs; + try { + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: + { + var arg = syscallGetVarargI(); + if (arg < 0) { + return -28; + } + while (FS.streams[arg]) { + arg++; + } + var newStream; + newStream = FS.dupStream(stream, arg); + return newStream.fd; + } + + case 1: + case 2: + return 0; + + // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + + case 4: + { + var arg = syscallGetVarargI(); + stream.flags |= arg; + return 0; + } + + case 12: + { + var arg = syscallGetVarargP(); + var offset = 0; + // We're always unlocked. + GROWABLE_HEAP_I16()[(((arg) + (offset)) >> 1)] = 2; + return 0; + } + + case 13: + case 14: + // Pretend that the locking is successful. These are process-level locks, + // and Emscripten programs are a single process. If we supported linking a + // filesystem between programs, we'd need to do more here. + // See https://github.com/emscripten-core/emscripten/issues/23697 + return 0; + } + return -28; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_fstat64(fd, buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(4, 0, 1, fd, buf); + try { + return SYSCALLS.writeStat(buf, FS.fstat(fd)); + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function ___syscall_openat(dirfd, path, flags, varargs) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(5, 0, 1, dirfd, path, flags, varargs); + SYSCALLS.varargs = varargs; + try { + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? syscallGetVarargI() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var __abort_js = () => abort("native code called abort()"); + +var embindRepr = v => { + if (v === null) { + return "null"; + } + var t = typeof v; + if (t === "object" || t === "array" || t === "function") { + return v.toString(); + } else { + return "" + v; + } +}; + +var embind_init_charCodes = () => { + var codes = new Array(256); + for (var i = 0; i < 256; ++i) { + codes[i] = String.fromCharCode(i); + } + embind_charCodes = codes; +}; + +var embind_charCodes; + +var readLatin1String = ptr => { + var ret = ""; + var c = ptr; + while (GROWABLE_HEAP_U8()[c]) { + ret += embind_charCodes[GROWABLE_HEAP_U8()[c++]]; + } + return ret; +}; + +var awaitingDependencies = {}; + +var registeredTypes = {}; + +var typeDependencies = {}; + +var BindingError = Module["BindingError"] = class BindingError extends Error { + constructor(message) { + super(message); + this.name = "BindingError"; + } +}; + +var throwBindingError = message => { + throw new BindingError(message); +}; + +/** @param {Object=} options */ function sharedRegisterType(rawType, registeredInstance, options = {}) { + var name = registeredInstance.name; + if (!rawType) { + throwBindingError(`type "${name}" must have a positive integer typeid pointer`); + } + if (registeredTypes.hasOwnProperty(rawType)) { + if (options.ignoreDuplicateRegistrations) { + return; + } else { + throwBindingError(`Cannot register type '${name}' twice`); + } + } + registeredTypes[rawType] = registeredInstance; + delete typeDependencies[rawType]; + if (awaitingDependencies.hasOwnProperty(rawType)) { + var callbacks = awaitingDependencies[rawType]; + delete awaitingDependencies[rawType]; + callbacks.forEach(cb => cb()); + } +} + +/** @param {Object=} options */ function registerType(rawType, registeredInstance, options = {}) { + if (registeredInstance.argPackAdvance === undefined) { + throw new TypeError("registerType registeredInstance requires argPackAdvance"); + } + return sharedRegisterType(rawType, registeredInstance, options); +} + +var integerReadValueFromPointer = (name, width, signed) => { + // integers are quite common, so generate very specialized functions + switch (width) { + case 1: + return signed ? pointer => GROWABLE_HEAP_I8()[pointer] : pointer => GROWABLE_HEAP_U8()[pointer]; + + case 2: + return signed ? pointer => GROWABLE_HEAP_I16()[((pointer) >> 1)] : pointer => GROWABLE_HEAP_U16()[((pointer) >> 1)]; + + case 4: + return signed ? pointer => GROWABLE_HEAP_I32()[((pointer) >> 2)] : pointer => GROWABLE_HEAP_U32()[((pointer) >> 2)]; + + case 8: + return signed ? pointer => HEAP64[((pointer) >> 3)] : pointer => HEAPU64[((pointer) >> 3)]; + + default: + throw new TypeError(`invalid integer width (${width}): ${name}`); + } +}; + +/** @suppress {globalThis} */ var __embind_register_bigint = (primitiveType, name, size, minRange, maxRange) => { + name = readLatin1String(name); + var isUnsignedType = (name.indexOf("u") != -1); + // maxRange comes through as -1 for uint64_t (see issue 13902). Work around that temporarily + if (isUnsignedType) { + maxRange = (1n << 64n) - 1n; + } + registerType(primitiveType, { + name, + "fromWireType": value => value, + "toWireType": function(destructors, value) { + if (typeof value != "bigint" && typeof value != "number") { + throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`); + } + if (typeof value == "number") { + value = BigInt(value); + } + if (value < minRange || value > maxRange) { + throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`); + } + return value; + }, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": integerReadValueFromPointer(name, size, !isUnsignedType), + destructorFunction: null + }); +}; + +var GenericWireTypeSize = 8; + +/** @suppress {globalThis} */ var __embind_register_bool = (rawType, name, trueValue, falseValue) => { + name = readLatin1String(name); + registerType(rawType, { + name, + "fromWireType": function(wt) { + // ambiguous emscripten ABI: sometimes return values are + // true or false, and sometimes integers (0 or 1) + return !!wt; + }, + "toWireType": function(destructors, o) { + return o ? trueValue : falseValue; + }, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": function(pointer) { + return this["fromWireType"](GROWABLE_HEAP_U8()[pointer]); + }, + destructorFunction: null + }); +}; + +var emval_freelist = []; + +var emval_handles = []; + +var __emval_decref = handle => { + if (handle > 9 && 0 === --emval_handles[handle + 1]) { + assert(emval_handles[handle] !== undefined, `Decref for unallocated handle.`); + emval_handles[handle] = undefined; + emval_freelist.push(handle); + } +}; + +var count_emval_handles = () => emval_handles.length / 2 - 5 - emval_freelist.length; + +var init_emval = () => { + // reserve 0 and some special values. These never get de-allocated. + emval_handles.push(0, 1, undefined, 1, null, 1, true, 1, false, 1); + assert(emval_handles.length === 5 * 2); + Module["count_emval_handles"] = count_emval_handles; +}; + +var Emval = { + toValue: handle => { + if (!handle) { + throwBindingError(`Cannot use deleted val. handle = ${handle}`); + } + // handle 2 is supposed to be `undefined`. + assert(handle === 2 || emval_handles[handle] !== undefined && handle % 2 === 0, `invalid handle: ${handle}`); + return emval_handles[handle]; + }, + toHandle: value => { + switch (value) { + case undefined: + return 2; + + case null: + return 4; + + case true: + return 6; + + case false: + return 8; + + default: + { + const handle = emval_freelist.pop() || emval_handles.length; + emval_handles[handle] = value; + emval_handles[handle + 1] = 1; + return handle; + } + } + } +}; + +/** @suppress {globalThis} */ function readPointer(pointer) { + return this["fromWireType"](GROWABLE_HEAP_U32()[((pointer) >> 2)]); +} + +var EmValType = { + name: "emscripten::val", + "fromWireType": handle => { + var rv = Emval.toValue(handle); + __emval_decref(handle); + return rv; + }, + "toWireType": (destructors, value) => Emval.toHandle(value), + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": readPointer, + destructorFunction: null +}; + +var __embind_register_emval = rawType => registerType(rawType, EmValType); + +var floatReadValueFromPointer = (name, width) => { + switch (width) { + case 4: + return function(pointer) { + return this["fromWireType"](GROWABLE_HEAP_F32()[((pointer) >> 2)]); + }; + + case 8: + return function(pointer) { + return this["fromWireType"](GROWABLE_HEAP_F64()[((pointer) >> 3)]); + }; + + default: + throw new TypeError(`invalid float width (${width}): ${name}`); + } +}; + +var __embind_register_float = (rawType, name, size) => { + name = readLatin1String(name); + registerType(rawType, { + name, + "fromWireType": value => value, + "toWireType": (destructors, value) => { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert ${embindRepr(value)} to ${this.name}`); + } + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + }, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": floatReadValueFromPointer(name, size), + destructorFunction: null + }); +}; + +/** @suppress {globalThis} */ var __embind_register_integer = (primitiveType, name, size, minRange, maxRange) => { + name = readLatin1String(name); + // LLVM doesn't have signed and unsigned 32-bit types, so u32 literals come + // out as 'i32 -1'. Always treat those as max u32. + if (maxRange === -1) { + maxRange = 4294967295; + } + var fromWireType = value => value; + if (minRange === 0) { + var bitshift = 32 - 8 * size; + fromWireType = value => (value << bitshift) >>> bitshift; + } + var isUnsignedType = (name.includes("unsigned")); + var checkAssertions = (value, toTypeName) => { + if (typeof value != "number" && typeof value != "boolean") { + throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${toTypeName}`); + } + if (value < minRange || value > maxRange) { + throw new TypeError(`Passing a number "${embindRepr(value)}" from JS side to C/C++ side to an argument of type "${name}", which is outside the valid range [${minRange}, ${maxRange}]!`); + } + }; + var toWireType; + if (isUnsignedType) { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + return value >>> 0; + }; + } else { + toWireType = function(destructors, value) { + checkAssertions(value, this.name); + // The VM will perform JS to Wasm value conversion, according to the spec: + // https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue + return value; + }; + } + registerType(primitiveType, { + name, + "fromWireType": fromWireType, + "toWireType": toWireType, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": integerReadValueFromPointer(name, size, minRange !== 0), + destructorFunction: null + }); +}; + +var __embind_register_memory_view = (rawType, dataTypeIndex, name) => { + var typeMapping = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array ]; + var TA = typeMapping[dataTypeIndex]; + function decodeMemoryView(handle) { + var size = GROWABLE_HEAP_U32()[((handle) >> 2)]; + var data = GROWABLE_HEAP_U32()[(((handle) + (4)) >> 2)]; + return new TA(GROWABLE_HEAP_I8().buffer, data, size); + } + name = readLatin1String(name); + registerType(rawType, { + name, + "fromWireType": decodeMemoryView, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": decodeMemoryView + }, { + ignoreDuplicateRegistrations: true + }); +}; + +var stringToUTF8 = (str, outPtr, maxBytesToWrite) => { + assert(typeof maxBytesToWrite == "number", "stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"); + return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite); +}; + +var __embind_register_std_string = (rawType, name) => { + name = readLatin1String(name); + var stdStringIsUTF8 = true; + registerType(rawType, { + name, + // For some method names we use string keys here since they are part of + // the public/external API and/or used by the runtime-generated code. + "fromWireType"(value) { + var length = GROWABLE_HEAP_U32()[((value) >> 2)]; + var payload = value + 4; + var str; + if (stdStringIsUTF8) { + var decodeStartPtr = payload; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = payload + i; + if (i == length || GROWABLE_HEAP_U8()[currentBytePtr] == 0) { + var maxRead = currentBytePtr - decodeStartPtr; + var stringSegment = UTF8ToString(decodeStartPtr, maxRead); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + 1; + } + } + } else { + var a = new Array(length); + for (var i = 0; i < length; ++i) { + a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i]); + } + str = a.join(""); + } + _free(value); + return str; + }, + "toWireType"(destructors, value) { + if (value instanceof ArrayBuffer) { + value = new Uint8Array(value); + } + var length; + var valueIsOfTypeString = (typeof value == "string"); + // We accept `string` or array views with single byte elements + if (!(valueIsOfTypeString || (ArrayBuffer.isView(value) && value.BYTES_PER_ELEMENT == 1))) { + throwBindingError("Cannot pass non-string to std::string"); + } + if (stdStringIsUTF8 && valueIsOfTypeString) { + length = lengthBytesUTF8(value); + } else { + length = value.length; + } + // assumes POINTER_SIZE alignment + var base = _malloc(4 + length + 1); + var ptr = base + 4; + GROWABLE_HEAP_U32()[((base) >> 2)] = length; + if (valueIsOfTypeString) { + if (stdStringIsUTF8) { + stringToUTF8(value, ptr, length + 1); + } else { + for (var i = 0; i < length; ++i) { + var charCode = value.charCodeAt(i); + if (charCode > 255) { + _free(base); + throwBindingError("String has UTF-16 code units that do not fit in 8 bits"); + } + GROWABLE_HEAP_U8()[ptr + i] = charCode; + } + } + } else { + GROWABLE_HEAP_U8().set(value, ptr); + } + if (destructors !== null) { + destructors.push(_free, base); + } + return base; + }, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : undefined; + +var UTF16ToString = (ptr, maxBytesToRead) => { + assert(ptr % 2 == 0, "Pointer passed to UTF16ToString must be aligned to two bytes!"); + var endPtr = ptr; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. + // Also, use the length info to avoid running tiny strings through + // TextDecoder, since .subarray() allocates garbage. + var idx = endPtr >> 1; + var maxIdx = idx + maxBytesToRead / 2; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx]) ++idx; + endPtr = idx << 1; + if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr)); + // Fallback: decode without UTF16Decoder + var str = ""; + // If maxBytesToRead is not passed explicitly, it will be undefined, and the + // for-loop's condition will always evaluate to true. The loop is then + // terminated on the first null char. + for (var i = 0; !(i >= maxBytesToRead / 2); ++i) { + var codeUnit = GROWABLE_HEAP_I16()[(((ptr) + (i * 2)) >> 1)]; + if (codeUnit == 0) break; + // fromCharCode constructs a character from a UTF-16 code unit, so we can + // pass the UTF16 string right through. + str += String.fromCharCode(codeUnit); + } + return str; +}; + +var stringToUTF16 = (str, outPtr, maxBytesToWrite) => { + assert(outPtr % 2 == 0, "Pointer passed to stringToUTF16 must be aligned to two bytes!"); + assert(typeof maxBytesToWrite == "number", "stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 2) return 0; + maxBytesToWrite -= 2; + // Null terminator. + var startPtr = outPtr; + var numCharsToWrite = (maxBytesToWrite < str.length * 2) ? (maxBytesToWrite / 2) : str.length; + for (var i = 0; i < numCharsToWrite; ++i) { + // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. + var codeUnit = str.charCodeAt(i); + // possibly a lead surrogate + GROWABLE_HEAP_I16()[((outPtr) >> 1)] = codeUnit; + outPtr += 2; + } + // Null-terminate the pointer to the HEAP. + GROWABLE_HEAP_I16()[((outPtr) >> 1)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF16 = str => str.length * 2; + +var UTF32ToString = (ptr, maxBytesToRead) => { + assert(ptr % 4 == 0, "Pointer passed to UTF32ToString must be aligned to four bytes!"); + var i = 0; + var str = ""; + // If maxBytesToRead is not passed explicitly, it will be undefined, and this + // will always evaluate to true. This saves on code size. + while (!(i >= maxBytesToRead / 4)) { + var utf32 = GROWABLE_HEAP_I32()[(((ptr) + (i * 4)) >> 2)]; + if (utf32 == 0) break; + ++i; + // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + if (utf32 >= 65536) { + var ch = utf32 - 65536; + str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); + } else { + str += String.fromCharCode(utf32); + } + } + return str; +}; + +var stringToUTF32 = (str, outPtr, maxBytesToWrite) => { + assert(outPtr % 4 == 0, "Pointer passed to stringToUTF32 must be aligned to four bytes!"); + assert(typeof maxBytesToWrite == "number", "stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"); + // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. + maxBytesToWrite ??= 2147483647; + if (maxBytesToWrite < 4) return 0; + var startPtr = outPtr; + var endPtr = startPtr + maxBytesToWrite - 4; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + // possibly a lead surrogate + if (codeUnit >= 55296 && codeUnit <= 57343) { + var trailSurrogate = str.charCodeAt(++i); + codeUnit = 65536 + ((codeUnit & 1023) << 10) | (trailSurrogate & 1023); + } + GROWABLE_HEAP_I32()[((outPtr) >> 2)] = codeUnit; + outPtr += 4; + if (outPtr + 4 > endPtr) break; + } + // Null-terminate the pointer to the HEAP. + GROWABLE_HEAP_I32()[((outPtr) >> 2)] = 0; + return outPtr - startPtr; +}; + +var lengthBytesUTF32 = str => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var codeUnit = str.charCodeAt(i); + if (codeUnit >= 55296 && codeUnit <= 57343) ++i; + // possibly a lead surrogate, so skip over the tail surrogate. + len += 4; + } + return len; +}; + +var __embind_register_std_wstring = (rawType, charSize, name) => { + name = readLatin1String(name); + var decodeString, encodeString, readCharAt, lengthBytesUTF; + if (charSize === 2) { + decodeString = UTF16ToString; + encodeString = stringToUTF16; + lengthBytesUTF = lengthBytesUTF16; + readCharAt = pointer => GROWABLE_HEAP_U16()[((pointer) >> 1)]; + } else if (charSize === 4) { + decodeString = UTF32ToString; + encodeString = stringToUTF32; + lengthBytesUTF = lengthBytesUTF32; + readCharAt = pointer => GROWABLE_HEAP_U32()[((pointer) >> 2)]; + } + registerType(rawType, { + name, + "fromWireType": value => { + // Code mostly taken from _embind_register_std_string fromWireType + var length = GROWABLE_HEAP_U32()[((value) >> 2)]; + var str; + var decodeStartPtr = value + 4; + // Looping here to support possible embedded '0' bytes + for (var i = 0; i <= length; ++i) { + var currentBytePtr = value + 4 + i * charSize; + if (i == length || readCharAt(currentBytePtr) == 0) { + var maxReadBytes = currentBytePtr - decodeStartPtr; + var stringSegment = decodeString(decodeStartPtr, maxReadBytes); + if (str === undefined) { + str = stringSegment; + } else { + str += String.fromCharCode(0); + str += stringSegment; + } + decodeStartPtr = currentBytePtr + charSize; + } + } + _free(value); + return str; + }, + "toWireType": (destructors, value) => { + if (!(typeof value == "string")) { + throwBindingError(`Cannot pass non-string to C++ string type ${name}`); + } + // assumes POINTER_SIZE alignment + var length = lengthBytesUTF(value); + var ptr = _malloc(4 + length + charSize); + GROWABLE_HEAP_U32()[((ptr) >> 2)] = length / charSize; + encodeString(value, ptr + 4, length + charSize); + if (destructors !== null) { + destructors.push(_free, ptr); + } + return ptr; + }, + argPackAdvance: GenericWireTypeSize, + "readValueFromPointer": readPointer, + destructorFunction(ptr) { + _free(ptr); + } + }); +}; + +var __embind_register_void = (rawType, name) => { + name = readLatin1String(name); + registerType(rawType, { + isVoid: true, + // void return values can be optimized out sometimes + name, + argPackAdvance: 0, + "fromWireType": () => undefined, + // TODO: assert if anything else is given? + "toWireType": (destructors, o) => undefined + }); +}; + +var __emscripten_init_main_thread_js = tb => { + // Pass the thread address to the native code where they stored in wasm + // globals which act as a form of TLS. Global constructors trying + // to access this value will read the wrong value, but that is UB anyway. + __emscripten_thread_init(tb, /*is_main=*/ !ENVIRONMENT_IS_WORKER, /*is_runtime=*/ 1, /*can_block=*/ !ENVIRONMENT_IS_WEB, /*default_stacksize=*/ 16777216, /*start_profiling=*/ false); + PThread.threadInitTLS(); +}; + +var handleException = e => { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == "unwind") { + return EXITSTATUS; + } + checkStackCookie(); + if (e instanceof WebAssembly.RuntimeError) { + if (_emscripten_stack_get_current() <= 0) { + err("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 16777216)"); + } + } + quit_(1, e); +}; + +var maybeExit = () => { + if (!keepRuntimeAlive()) { + try { + if (ENVIRONMENT_IS_PTHREAD) __emscripten_thread_exit(EXITSTATUS); else _exit(EXITSTATUS); + } catch (e) { + handleException(e); + } + } +}; + +var callUserCallback = func => { + if (ABORT) { + err("user callback triggered after runtime exited or application aborted. Ignoring."); + return; + } + try { + func(); + maybeExit(); + } catch (e) { + handleException(e); + } +}; + +var __emscripten_thread_mailbox_await = pthread_ptr => { + if (typeof Atomics.waitAsync === "function") { + // Wait on the pthread's initial self-pointer field because it is easy and + // safe to access from sending threads that need to notify the waiting + // thread. + // TODO: How to make this work with wasm64? + var wait = Atomics.waitAsync(GROWABLE_HEAP_I32(), ((pthread_ptr) >> 2), pthread_ptr); + assert(wait.async); + wait.value.then(checkMailbox); + var waitingAsync = pthread_ptr + 128; + Atomics.store(GROWABLE_HEAP_I32(), ((waitingAsync) >> 2), 1); + } +}; + +var checkMailbox = () => { + // Only check the mailbox if we have a live pthread runtime. We implement + // pthread_self to return 0 if there is no live runtime. + var pthread_ptr = _pthread_self(); + if (pthread_ptr) { + // If we are using Atomics.waitAsync as our notification mechanism, wait + // for a notification before processing the mailbox to avoid missing any + // work that could otherwise arrive after we've finished processing the + // mailbox and before we're ready for the next notification. + __emscripten_thread_mailbox_await(pthread_ptr); + callUserCallback(__emscripten_check_mailbox); + } +}; + +var __emscripten_notify_mailbox_postmessage = (targetThread, currThreadId) => { + if (targetThread == currThreadId) { + setTimeout(checkMailbox); + } else if (ENVIRONMENT_IS_PTHREAD) { + postMessage({ + targetThread, + cmd: "checkMailbox" + }); + } else { + var worker = PThread.pthreads[targetThread]; + if (!worker) { + err(`Cannot send message to thread with ID ${targetThread}, unknown thread ID!`); + return; + } + worker.postMessage({ + cmd: "checkMailbox" + }); + } +}; + +var proxiedJSCallArgs = []; + +var __emscripten_receive_on_main_thread_js = (funcIndex, emAsmAddr, callingThread, numCallArgs, args) => { + // Sometimes we need to backproxy events to the calling thread (e.g. + // HTML5 DOM events handlers such as + // emscripten_set_mousemove_callback()), so keep track in a globally + // accessible variable about the thread that initiated the proxying. + numCallArgs /= 2; + proxiedJSCallArgs.length = numCallArgs; + var b = ((args) >> 3); + for (var i = 0; i < numCallArgs; i++) { + if (HEAP64[b + 2 * i]) { + // It's a BigInt. + proxiedJSCallArgs[i] = HEAP64[b + 2 * i + 1]; + } else { + // It's a Number. + proxiedJSCallArgs[i] = GROWABLE_HEAP_F64()[b + 2 * i + 1]; + } + } + // Proxied JS library funcs use funcIndex and EM_ASM functions use emAsmAddr + var func = emAsmAddr ? ASM_CONSTS[emAsmAddr] : proxiedFunctionTable[funcIndex]; + assert(!(funcIndex && emAsmAddr)); + assert(func.length == numCallArgs, "Call args mismatch in _emscripten_receive_on_main_thread_js"); + PThread.currentProxiedOperationCallerThread = callingThread; + var rtn = func(...proxiedJSCallArgs); + PThread.currentProxiedOperationCallerThread = 0; + // Proxied functions can return any type except bigint. All other types + // cooerce to f64/double (the return type of this function in C) but not + // bigint. + assert(typeof rtn != "bigint"); + return rtn; +}; + +var __emscripten_runtime_keepalive_clear = () => { + noExitRuntime = false; + runtimeKeepaliveCounter = 0; +}; + +var __emscripten_thread_cleanup = thread => { + // Called when a thread needs to be cleaned up so it can be reused. + // A thread is considered reusable when it either returns from its + // entry point, calls pthread_exit, or acts upon a cancellation. + // Detached threads are responsible for calling this themselves, + // otherwise pthread_join is responsible for calling this. + if (!ENVIRONMENT_IS_PTHREAD) cleanupThread(thread); else postMessage({ + cmd: "cleanupThread", + thread + }); +}; + +var __emscripten_thread_set_strongref = thread => {}; + +var __emscripten_throw_longjmp = () => { + throw Infinity; +}; + +var INT53_MAX = 9007199254740992; + +var INT53_MIN = -9007199254740992; + +var bigintToI53Checked = num => (num < INT53_MIN || num > INT53_MAX) ? NaN : Number(num); + +function __gmtime_js(time, tmPtr) { + time = bigintToI53Checked(time); + var date = new Date(time * 1e3); + GROWABLE_HEAP_I32()[((tmPtr) >> 2)] = date.getUTCSeconds(); + GROWABLE_HEAP_I32()[(((tmPtr) + (4)) >> 2)] = date.getUTCMinutes(); + GROWABLE_HEAP_I32()[(((tmPtr) + (8)) >> 2)] = date.getUTCHours(); + GROWABLE_HEAP_I32()[(((tmPtr) + (12)) >> 2)] = date.getUTCDate(); + GROWABLE_HEAP_I32()[(((tmPtr) + (16)) >> 2)] = date.getUTCMonth(); + GROWABLE_HEAP_I32()[(((tmPtr) + (20)) >> 2)] = date.getUTCFullYear() - 1900; + GROWABLE_HEAP_I32()[(((tmPtr) + (24)) >> 2)] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0; + GROWABLE_HEAP_I32()[(((tmPtr) + (28)) >> 2)] = yday; +} + +var isLeapYear = year => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + +var MONTH_DAYS_LEAP_CUMULATIVE = [ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 ]; + +var MONTH_DAYS_REGULAR_CUMULATIVE = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; + +var ydayFromDate = date => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = (leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE); + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; + // -1 since it's days since Jan 1 + return yday; +}; + +function __localtime_js(time, tmPtr) { + time = bigintToI53Checked(time); + var date = new Date(time * 1e3); + GROWABLE_HEAP_I32()[((tmPtr) >> 2)] = date.getSeconds(); + GROWABLE_HEAP_I32()[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + GROWABLE_HEAP_I32()[(((tmPtr) + (8)) >> 2)] = date.getHours(); + GROWABLE_HEAP_I32()[(((tmPtr) + (12)) >> 2)] = date.getDate(); + GROWABLE_HEAP_I32()[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + GROWABLE_HEAP_I32()[(((tmPtr) + (20)) >> 2)] = date.getFullYear() - 1900; + GROWABLE_HEAP_I32()[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + GROWABLE_HEAP_I32()[(((tmPtr) + (28)) >> 2)] = yday; + GROWABLE_HEAP_I32()[(((tmPtr) + (36)) >> 2)] = -(date.getTimezoneOffset() * 60); + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + GROWABLE_HEAP_I32()[(((tmPtr) + (32)) >> 2)] = dst; +} + +var __mktime_js = function(tmPtr) { + var ret = (() => { + var date = new Date(GROWABLE_HEAP_I32()[(((tmPtr) + (20)) >> 2)] + 1900, GROWABLE_HEAP_I32()[(((tmPtr) + (16)) >> 2)], GROWABLE_HEAP_I32()[(((tmPtr) + (12)) >> 2)], GROWABLE_HEAP_I32()[(((tmPtr) + (8)) >> 2)], GROWABLE_HEAP_I32()[(((tmPtr) + (4)) >> 2)], GROWABLE_HEAP_I32()[((tmPtr) >> 2)], 0); + // There's an ambiguous hour when the time goes back; the tm_isdst field is + // used to disambiguate it. Date() basically guesses, so we fix it up if it + // guessed wrong, or fill in tm_isdst with the guess if it's -1. + var dst = GROWABLE_HEAP_I32()[(((tmPtr) + (32)) >> 2)]; + var guessedOffset = date.getTimezoneOffset(); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dstOffset = Math.min(winterOffset, summerOffset); + // DST is in December in South + if (dst < 0) { + // Attention: some regions don't have DST at all. + GROWABLE_HEAP_I32()[(((tmPtr) + (32)) >> 2)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset); + } else if ((dst > 0) != (dstOffset == guessedOffset)) { + var nonDstOffset = Math.max(winterOffset, summerOffset); + var trueOffset = dst > 0 ? dstOffset : nonDstOffset; + // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up. + date.setTime(date.getTime() + (trueOffset - guessedOffset) * 6e4); + } + GROWABLE_HEAP_I32()[(((tmPtr) + (24)) >> 2)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + GROWABLE_HEAP_I32()[(((tmPtr) + (28)) >> 2)] = yday; + // To match expected behavior, update fields from date + GROWABLE_HEAP_I32()[((tmPtr) >> 2)] = date.getSeconds(); + GROWABLE_HEAP_I32()[(((tmPtr) + (4)) >> 2)] = date.getMinutes(); + GROWABLE_HEAP_I32()[(((tmPtr) + (8)) >> 2)] = date.getHours(); + GROWABLE_HEAP_I32()[(((tmPtr) + (12)) >> 2)] = date.getDate(); + GROWABLE_HEAP_I32()[(((tmPtr) + (16)) >> 2)] = date.getMonth(); + GROWABLE_HEAP_I32()[(((tmPtr) + (20)) >> 2)] = date.getYear(); + var timeMs = date.getTime(); + if (isNaN(timeMs)) { + return -1; + } + // Return time in microseconds + return timeMs / 1e3; + })(); + return BigInt(ret); +}; + +function __mmap_js(len, prot, flags, fd, offset, allocated, addr) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(6, 0, 1, len, prot, flags, fd, offset, allocated, addr); + offset = bigintToI53Checked(offset); + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + var res = FS.mmap(stream, len, offset, prot, flags); + var ptr = res.ptr; + GROWABLE_HEAP_I32()[((allocated) >> 2)] = res.allocated; + GROWABLE_HEAP_U32()[((addr) >> 2)] = ptr; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +function __munmap_js(addr, len, prot, flags, fd, offset) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(7, 0, 1, addr, len, prot, flags, fd, offset); + offset = bigintToI53Checked(offset); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + if (prot & 2) { + SYSCALLS.doMsync(addr, stream, len, flags, offset); + } + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return -e.errno; + } +} + +var timers = {}; + +var _emscripten_get_now = () => performance.timeOrigin + performance.now(); + +function __setitimer_js(which, timeout_ms) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(8, 0, 1, which, timeout_ms); + // First, clear any existing timer. + if (timers[which]) { + clearTimeout(timers[which].id); + delete timers[which]; + } + // A timeout of zero simply cancels the current timeout so we have nothing + // more to do. + if (!timeout_ms) return 0; + var id = setTimeout(() => { + assert(which in timers); + delete timers[which]; + callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now())); + }, timeout_ms); + timers[which] = { + id, + timeout_ms + }; + return 0; +} + +var __tzset_js = (timezone, daylight, std_name, dst_name) => { + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = (new Date).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + // Local standard timezone offset. Local standard time is not adjusted for + // daylight savings. This code uses the fact that getTimezoneOffset returns + // a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it + // compares whether the output of the given date the same (Standard) or less + // (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + GROWABLE_HEAP_U32()[((timezone) >> 2)] = stdTimezoneOffset * 60; + GROWABLE_HEAP_I32()[((daylight) >> 2)] = Number(winterOffset != summerOffset); + var extractZone = timezoneOffset => { + // Why inverse sign? + // Read here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset + var sign = timezoneOffset >= 0 ? "-" : "+"; + var absOffset = Math.abs(timezoneOffset); + var hours = String(Math.floor(absOffset / 60)).padStart(2, "0"); + var minutes = String(absOffset % 60).padStart(2, "0"); + return `UTC${sign}${hours}${minutes}`; + }; + var winterName = extractZone(winterOffset); + var summerName = extractZone(summerOffset); + assert(winterName); + assert(summerName); + assert(lengthBytesUTF8(winterName) <= 16, `timezone name truncated to fit in TZNAME_MAX (${winterName})`); + assert(lengthBytesUTF8(summerName) <= 16, `timezone name truncated to fit in TZNAME_MAX (${summerName})`); + if (summerOffset < winterOffset) { + // Northern hemisphere + stringToUTF8(winterName, std_name, 17); + stringToUTF8(summerName, dst_name, 17); + } else { + stringToUTF8(winterName, dst_name, 17); + stringToUTF8(summerName, std_name, 17); + } +}; + +var _emscripten_date_now = () => Date.now(); + +var nowIsMonotonic = 1; + +var checkWasiClock = clock_id => clock_id >= 0 && clock_id <= 3; + +function _clock_time_get(clk_id, ignored_precision, ptime) { + ignored_precision = bigintToI53Checked(ignored_precision); + if (!checkWasiClock(clk_id)) { + return 28; + } + var now; + // all wasi clocks but realtime are monotonic + if (clk_id === 0) { + now = _emscripten_date_now(); + } else if (nowIsMonotonic) { + now = _emscripten_get_now(); + } else { + return 52; + } + // "now" is in ms, and wasi times are in ns. + var nsec = Math.round(now * 1e3 * 1e3); + HEAP64[((ptime) >> 3)] = BigInt(nsec); + return 0; +} + +var readEmAsmArgsArray = []; + +var readEmAsmArgs = (sigPtr, buf) => { + // Nobody should have mutated _readEmAsmArgsArray underneath us to be something else than an array. + assert(Array.isArray(readEmAsmArgsArray)); + // The input buffer is allocated on the stack, so it must be stack-aligned. + assert(buf % 16 == 0); + readEmAsmArgsArray.length = 0; + var ch; + // Most arguments are i32s, so shift the buffer pointer so it is a plain + // index into HEAP32. + while (ch = GROWABLE_HEAP_U8()[sigPtr++]) { + var chr = String.fromCharCode(ch); + var validChars = [ "d", "f", "i", "p" ]; + // In WASM_BIGINT mode we support passing i64 values as bigint. + validChars.push("j"); + assert(validChars.includes(chr), `Invalid character ${ch}("${chr}") in readEmAsmArgs! Use only [${validChars}], and do not specify "v" for void return argument.`); + // Floats are always passed as doubles, so all types except for 'i' + // are 8 bytes and require alignment. + var wide = (ch != 105); + wide &= (ch != 112); + buf += wide && (buf % 8) ? 4 : 0; + readEmAsmArgsArray.push(// Special case for pointers under wasm64 or CAN_ADDRESS_2GB mode. + ch == 112 ? GROWABLE_HEAP_U32()[((buf) >> 2)] : ch == 106 ? HEAP64[((buf) >> 3)] : ch == 105 ? GROWABLE_HEAP_I32()[((buf) >> 2)] : GROWABLE_HEAP_F64()[((buf) >> 3)]); + buf += wide ? 8 : 4; + } + return readEmAsmArgsArray; +}; + +var runEmAsmFunction = (code, sigPtr, argbuf) => { + var args = readEmAsmArgs(sigPtr, argbuf); + assert(ASM_CONSTS.hasOwnProperty(code), `No EM_ASM constant found at address ${code}. The loaded WebAssembly file is likely out of sync with the generated JavaScript.`); + return ASM_CONSTS[code](...args); +}; + +var _emscripten_asm_const_int = (code, sigPtr, argbuf) => runEmAsmFunction(code, sigPtr, argbuf); + +var _emscripten_check_blocking_allowed = () => { + if (ENVIRONMENT_IS_WORKER) return; + // Blocking in a worker/pthread is fine. + warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"); +}; + +var _emscripten_exit_with_live_runtime = () => { + runtimeKeepalivePush(); + throw "unwind"; +}; + +function _emscripten_fetch_free(id) { + if (Fetch.xhrs.has(id)) { + var xhr = Fetch.xhrs.get(id); + Fetch.xhrs.free(id); + // check if fetch is still in progress and should be aborted + if (xhr.readyState > 0 && xhr.readyState < 4) { + xhr.abort(); + } + } +} + +var getHeapMax = () => // Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate +// full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side +// for any code that deals with heap sizes, which would require special +// casing all heap size related code to treat 0 specially. +2147483648; + +var _emscripten_get_heap_max = () => getHeapMax(); + +var _emscripten_num_logical_cores = () => navigator["hardwareConcurrency"]; + +var growMemory = size => { + var b = wasmMemory.buffer; + var pages = ((size - b.byteLength + 65535) / 65536) | 0; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); + // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1; + } catch (e) { + err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); + } +}; + +var _emscripten_resize_heap = requestedSize => { + var oldSize = GROWABLE_HEAP_U8().length; + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + requestedSize >>>= 0; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + if (requestedSize <= oldSize) { + return false; + } + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); + return false; + } + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + .2 / cutDown); + // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536)); + var replacement = growMemory(newSize); + if (replacement) { + return true; + } + } + err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); + return false; +}; + +var _emscripten_runtime_keepalive_check = keepRuntimeAlive; + +var stringToNewUTF8 = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8(str, ret, size); + return ret; +}; + +var setOffscreenCanvasSizeOnTargetThread = (targetThread, targetCanvas, width, height) => { + targetCanvas = targetCanvas ? UTF8ToString(targetCanvas) : ""; + var targetCanvasPtr = 0; + if (targetCanvas) { + targetCanvasPtr = stringToNewUTF8(targetCanvas); + } + __emscripten_set_offscreencanvas_size_on_thread(targetThread, targetCanvasPtr, width, height); +}; + +var GLctx; + +var webgl_enable_ANGLE_instanced_arrays = ctx => { + // Extension available in WebGL 1 from Firefox 26 and Google Chrome 30 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("ANGLE_instanced_arrays"); + // Because this extension is a core function in WebGL 2, assign the extension entry points in place of + // where the core functions will reside in WebGL 2. This way the calling code can call these without + // having to dynamically branch depending if running against WebGL 1 or WebGL 2. + if (ext) { + ctx["vertexAttribDivisor"] = (index, divisor) => ext["vertexAttribDivisorANGLE"](index, divisor); + ctx["drawArraysInstanced"] = (mode, first, count, primcount) => ext["drawArraysInstancedANGLE"](mode, first, count, primcount); + ctx["drawElementsInstanced"] = (mode, count, type, indices, primcount) => ext["drawElementsInstancedANGLE"](mode, count, type, indices, primcount); + return 1; + } +}; + +var webgl_enable_OES_vertex_array_object = ctx => { + // Extension available in WebGL 1 from Firefox 25 and WebKit 536.28/desktop Safari 6.0.3 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("OES_vertex_array_object"); + if (ext) { + ctx["createVertexArray"] = () => ext["createVertexArrayOES"](); + ctx["deleteVertexArray"] = vao => ext["deleteVertexArrayOES"](vao); + ctx["bindVertexArray"] = vao => ext["bindVertexArrayOES"](vao); + ctx["isVertexArray"] = vao => ext["isVertexArrayOES"](vao); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_buffers = ctx => { + // Extension available in WebGL 1 from Firefox 28 onwards. Core feature in WebGL 2. + var ext = ctx.getExtension("WEBGL_draw_buffers"); + if (ext) { + ctx["drawBuffers"] = (n, bufs) => ext["drawBuffersWEBGL"](n, bufs); + return 1; + } +}; + +var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance = ctx => // Closure is expected to be allowed to minify the '.dibvbi' property, so not accessing it quoted. +!!(ctx.dibvbi = ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance = ctx => !!(ctx.mdibvbi = ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance")); + +var webgl_enable_EXT_polygon_offset_clamp = ctx => !!(ctx.extPolygonOffsetClamp = ctx.getExtension("EXT_polygon_offset_clamp")); + +var webgl_enable_EXT_clip_control = ctx => !!(ctx.extClipControl = ctx.getExtension("EXT_clip_control")); + +var webgl_enable_WEBGL_polygon_mode = ctx => !!(ctx.webglPolygonMode = ctx.getExtension("WEBGL_polygon_mode")); + +var webgl_enable_WEBGL_multi_draw = ctx => // Closure is expected to be allowed to minify the '.multiDrawWebgl' property, so not accessing it quoted. +!!(ctx.multiDrawWebgl = ctx.getExtension("WEBGL_multi_draw")); + +var getEmscriptenSupportedExtensions = ctx => { + // Restrict the list of advertised extensions to those that we actually + // support. + var supportedExtensions = [ // WebGL 1 extensions + "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_disjoint_timer_query", "EXT_frag_depth", "EXT_shader_texture_lod", "EXT_sRGB", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_depth_texture", "WEBGL_draw_buffers", // WebGL 2 extensions + "EXT_color_buffer_float", "EXT_conservative_depth", "EXT_disjoint_timer_query_webgl2", "EXT_texture_norm16", "NV_shader_noperspective_interpolation", "WEBGL_clip_cull_distance", // WebGL 1 and WebGL 2 extensions + "EXT_clip_control", "EXT_color_buffer_half_float", "EXT_depth_clamp", "EXT_float_blend", "EXT_polygon_offset_clamp", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "KHR_parallel_shader_compile", "OES_texture_float_linear", "WEBGL_blend_func_extended", "WEBGL_compressed_texture_astc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders", "WEBGL_lose_context", "WEBGL_multi_draw", "WEBGL_polygon_mode" ]; + // .getSupportedExtensions() can return null if context is lost, so coerce to empty array. + return (ctx.getSupportedExtensions() || []).filter(ext => supportedExtensions.includes(ext)); +}; + +var GL = { + counter: 1, + buffers: [], + programs: [], + framebuffers: [], + renderbuffers: [], + textures: [], + shaders: [], + vaos: [], + contexts: {}, + offscreenCanvases: {}, + queries: [], + samplers: [], + transformFeedbacks: [], + syncs: [], + stringCache: {}, + stringiCache: {}, + unpackAlignment: 4, + unpackRowLength: 0, + recordError: errorCode => { + if (!GL.lastError) { + GL.lastError = errorCode; + } + }, + getNewId: table => { + var ret = GL.counter++; + for (var i = table.length; i < ret; i++) { + table[i] = null; + } + return ret; + }, + genObject: (n, buffers, createFunction, objectTable) => { + for (var i = 0; i < n; i++) { + var buffer = GLctx[createFunction](); + var id = buffer && GL.getNewId(objectTable); + if (buffer) { + buffer.name = id; + objectTable[id] = buffer; + } else { + GL.recordError(1282); + } + GROWABLE_HEAP_I32()[(((buffers) + (i * 4)) >> 2)] = id; + } + }, + getSource: (shader, count, string, length) => { + var source = ""; + for (var i = 0; i < count; ++i) { + var len = length ? GROWABLE_HEAP_U32()[(((length) + (i * 4)) >> 2)] : undefined; + source += UTF8ToString(GROWABLE_HEAP_U32()[(((string) + (i * 4)) >> 2)], len); + } + return source; + }, + createContext: (/** @type {HTMLCanvasElement} */ canvas, webGLContextAttributes) => { + // BUG: Workaround Safari WebGL issue: After successfully acquiring WebGL + // context on a canvas, calling .getContext() will always return that + // context independent of which 'webgl' or 'webgl2' + // context version was passed. See: + // https://bugs.webkit.org/show_bug.cgi?id=222758 + // and: + // https://github.com/emscripten-core/emscripten/issues/13295. + // TODO: Once the bug is fixed and shipped in Safari, adjust the Safari + // version field in above check. + if (!canvas.getContextSafariWebGL2Fixed) { + canvas.getContextSafariWebGL2Fixed = canvas.getContext; + /** @type {function(this:HTMLCanvasElement, string, (Object|null)=): (Object|null)} */ function fixedGetContext(ver, attrs) { + var gl = canvas.getContextSafariWebGL2Fixed(ver, attrs); + return ((ver == "webgl") == (gl instanceof WebGLRenderingContext)) ? gl : null; + } + canvas.getContext = fixedGetContext; + } + var ctx = (webGLContextAttributes.majorVersion > 1) ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes); + if (!ctx) return 0; + var handle = GL.registerContext(ctx, webGLContextAttributes); + return handle; + }, + registerContext: (ctx, webGLContextAttributes) => { + // with pthreads a context is a location in memory with some synchronized + // data between threads + var handle = _malloc(8); + GROWABLE_HEAP_U32()[(((handle) + (4)) >> 2)] = _pthread_self(); + // the thread pointer of the thread that owns the control of the context + var context = { + handle, + attributes: webGLContextAttributes, + version: webGLContextAttributes.majorVersion, + GLctx: ctx + }; + // Store the created context object so that we can access the context + // given a canvas without having to pass the parameters again. + if (ctx.canvas) ctx.canvas.GLctxObject = context; + GL.contexts[handle] = context; + if (typeof webGLContextAttributes.enableExtensionsByDefault == "undefined" || webGLContextAttributes.enableExtensionsByDefault) { + GL.initExtensions(context); + } + return handle; + }, + makeContextCurrent: contextHandle => { + // Active Emscripten GL layer context object. + GL.currentContext = GL.contexts[contextHandle]; + // Active WebGL context object. + Module["ctx"] = GLctx = GL.currentContext?.GLctx; + return !(contextHandle && !GLctx); + }, + getContext: contextHandle => GL.contexts[contextHandle], + deleteContext: contextHandle => { + if (GL.currentContext === GL.contexts[contextHandle]) { + GL.currentContext = null; + } + if (typeof JSEvents == "object") { + // Release all JS event handlers on the DOM element that the GL context is + // associated with since the context is now deleted. + JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas); + } + // Make sure the canvas object no longer refers to the context object so + // there are no GC surprises. + if (GL.contexts[contextHandle]?.GLctx.canvas) { + GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined; + } + _free(GL.contexts[contextHandle].handle); + GL.contexts[contextHandle] = null; + }, + initExtensions: context => { + // If this function is called without a specific context object, init the + // extensions of the currently active context. + context ||= GL.currentContext; + if (context.initExtensionsDone) return; + context.initExtensionsDone = true; + var GLctx = context.GLctx; + // Detect the presence of a few extensions manually, ction GL interop + // layer itself will need to know if they exist. + // Extensions that are available in both WebGL 1 and WebGL 2 + webgl_enable_WEBGL_multi_draw(GLctx); + webgl_enable_EXT_polygon_offset_clamp(GLctx); + webgl_enable_EXT_clip_control(GLctx); + webgl_enable_WEBGL_polygon_mode(GLctx); + // Extensions that are only available in WebGL 1 (the calls will be no-ops + // if called on a WebGL 2 context active) + webgl_enable_ANGLE_instanced_arrays(GLctx); + webgl_enable_OES_vertex_array_object(GLctx); + webgl_enable_WEBGL_draw_buffers(GLctx); + // Extensions that are available from WebGL >= 2 (no-op if called on a WebGL 1 context active) + webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); + webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); + // On WebGL 2, EXT_disjoint_timer_query is replaced with an alternative + // that's based on core APIs, and exposes only the queryCounterEXT() + // entrypoint. + if (context.version >= 2) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); + } + // However, Firefox exposes the WebGL 1 version on WebGL 2 as well and + // thus we look for the WebGL 1 version again if the WebGL 2 version + // isn't present. https://bugzilla.mozilla.org/show_bug.cgi?id=1328882 + if (context.version < 2 || !GLctx.disjointTimerQueryExt) { + GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); + } + getEmscriptenSupportedExtensions(GLctx).forEach(ext => { + // WEBGL_lose_context, WEBGL_debug_renderer_info and WEBGL_debug_shaders + // are not enabled by default. + if (!ext.includes("lose_context") && !ext.includes("debug")) { + // Call .getExtension() to enable that extension permanently. + GLctx.getExtension(ext); + } + }); + } +}; + +var maybeCStringToJsString = cString => cString > 2 ? UTF8ToString(cString) : cString; + +var findCanvasEventTarget = target => { + target = maybeCStringToJsString(target); + // When compiling with OffscreenCanvas support and looking up a canvas to target, + // we first look up if the target Canvas has been transferred to OffscreenCanvas use. + // These transfers are represented/tracked by GL.offscreenCanvases object, which contain + // the OffscreenCanvas element for each regular Canvas element that has been transferred. + // Note that each pthread/worker have their own set of GL.offscreenCanvases. That is, + // when an OffscreenCanvas is transferred from a pthread/main thread to another pthread, + // it will move in the GL.offscreenCanvases array between threads. Hence GL.offscreenCanvases + // represents the set of OffscreenCanvases owned by the current calling thread. + // First check out the list of OffscreenCanvases by CSS selector ID ('#myCanvasID') + return GL.offscreenCanvases[target.slice(1)] || (target == "canvas" && Object.keys(GL.offscreenCanvases)[0]) || (typeof document != "undefined" && document.querySelector(target)); +}; + +var setCanvasElementSizeCallingThread = (target, width, height) => { + var canvas = findCanvasEventTarget(target); + if (!canvas) return -4; + if (canvas.canvasSharedPtr) { + // N.B. We hold the canvasSharedPtr info structure as the authoritative source for specifying the size of a canvas + // since the actual canvas size changes are asynchronous if the canvas is owned by an OffscreenCanvas on another thread. + // Therefore when setting the size, eagerly set the size of the canvas on the calling thread here, though this thread + // might not be the one that actually ends up specifying the size, but the actual size change may be dispatched + // as an asynchronous event below. + GROWABLE_HEAP_I32()[((canvas.canvasSharedPtr) >> 2)] = width; + GROWABLE_HEAP_I32()[(((canvas.canvasSharedPtr) + (4)) >> 2)] = height; + } + if (canvas.offscreenCanvas || !canvas.controlTransferredOffscreen) { + if (canvas.offscreenCanvas) canvas = canvas.offscreenCanvas; + var autoResizeViewport = false; + if (canvas.GLctxObject?.GLctx) { + var prevViewport = canvas.GLctxObject.GLctx.getParameter(2978); + // TODO: Perhaps autoResizeViewport should only be true if FBO 0 is currently active? + autoResizeViewport = (prevViewport[0] === 0 && prevViewport[1] === 0 && prevViewport[2] === canvas.width && prevViewport[3] === canvas.height); + } + canvas.width = width; + canvas.height = height; + if (autoResizeViewport) { + // TODO: Add -sCANVAS_RESIZE_SETS_GL_VIEWPORT=0/1 option (default=1). This is commonly done and several graphics engines depend on this, + // but this can be quite disruptive. + canvas.GLctxObject.GLctx.viewport(0, 0, width, height); + } + } else if (canvas.canvasSharedPtr) { + var targetThread = GROWABLE_HEAP_U32()[(((canvas.canvasSharedPtr) + (8)) >> 2)]; + setOffscreenCanvasSizeOnTargetThread(targetThread, target, width, height); + return 1; + } else { + return -4; + } + return 0; +}; + +function setCanvasElementSizeMainThread(target, width, height) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(9, 0, 1, target, width, height); + return setCanvasElementSizeCallingThread(target, width, height); +} + +var _emscripten_set_canvas_element_size = (target, width, height) => { + var canvas = findCanvasEventTarget(target); + if (canvas) { + return setCanvasElementSizeCallingThread(target, width, height); + } + return setCanvasElementSizeMainThread(target, width, height); +}; + +class HandleAllocator { + allocated=[ undefined ]; + freelist=[]; + get(id) { + assert(this.allocated[id] !== undefined, `invalid handle: ${id}`); + return this.allocated[id]; + } + has(id) { + return this.allocated[id] !== undefined; + } + allocate(handle) { + var id = this.freelist.pop() || this.allocated.length; + this.allocated[id] = handle; + return id; + } + free(id) { + assert(this.allocated[id] !== undefined); + // Set the slot to `undefined` rather than using `delete` here since + // apparently arrays with holes in them can be less efficient. + this.allocated[id] = undefined; + this.freelist.push(id); + } +} + +var Fetch = { + openDatabase(dbname, dbversion, onsuccess, onerror) { + try { + var openRequest = indexedDB.open(dbname, dbversion); + } catch (e) { + return onerror(e); + } + openRequest.onupgradeneeded = event => { + var db = /** @type {IDBDatabase} */ (event.target.result); + if (db.objectStoreNames.contains("FILES")) { + db.deleteObjectStore("FILES"); + } + db.createObjectStore("FILES"); + }; + openRequest.onsuccess = event => onsuccess(event.target.result); + openRequest.onerror = onerror; + }, + init() { + Fetch.xhrs = new HandleAllocator; + if (ENVIRONMENT_IS_PTHREAD) return; + var onsuccess = db => { + Fetch.dbInstance = db; + removeRunDependency("library_fetch_init"); + }; + var onerror = () => { + Fetch.dbInstance = false; + removeRunDependency("library_fetch_init"); + }; + addRunDependency("library_fetch_init"); + Fetch.openDatabase("emscripten_filesystem", 1, onsuccess, onerror); + } +}; + +function fetchXHR(fetch, onsuccess, onerror, onprogress, onreadystatechange) { + var url = GROWABLE_HEAP_U32()[(((fetch) + (8)) >> 2)]; + if (!url) { + onerror(fetch, 0, "no url specified!"); + return; + } + var url_ = UTF8ToString(url); + var fetch_attr = fetch + 108; + var requestMethod = UTF8ToString(fetch_attr + 0); + requestMethod ||= "GET"; + var timeoutMsecs = GROWABLE_HEAP_U32()[(((fetch_attr) + (56)) >> 2)]; + var userName = GROWABLE_HEAP_U32()[(((fetch_attr) + (68)) >> 2)]; + var password = GROWABLE_HEAP_U32()[(((fetch_attr) + (72)) >> 2)]; + var requestHeaders = GROWABLE_HEAP_U32()[(((fetch_attr) + (76)) >> 2)]; + var overriddenMimeType = GROWABLE_HEAP_U32()[(((fetch_attr) + (80)) >> 2)]; + var dataPtr = GROWABLE_HEAP_U32()[(((fetch_attr) + (84)) >> 2)]; + var dataLength = GROWABLE_HEAP_U32()[(((fetch_attr) + (88)) >> 2)]; + var fetchAttributes = GROWABLE_HEAP_U32()[(((fetch_attr) + (52)) >> 2)]; + var fetchAttrLoadToMemory = !!(fetchAttributes & 1); + var fetchAttrStreamData = !!(fetchAttributes & 2); + var fetchAttrSynchronous = !!(fetchAttributes & 64); + var userNameStr = userName ? UTF8ToString(userName) : undefined; + var passwordStr = password ? UTF8ToString(password) : undefined; + var xhr = new XMLHttpRequest; + xhr.withCredentials = !!GROWABLE_HEAP_U8()[(fetch_attr) + (60)]; + xhr.open(requestMethod, url_, !fetchAttrSynchronous, userNameStr, passwordStr); + if (!fetchAttrSynchronous) xhr.timeout = timeoutMsecs; + // XHR timeout field is only accessible in async XHRs, and must be set after .open() but before .send(). + xhr.url_ = url_; + // Save the url for debugging purposes (and for comparing to the responseURL that server side advertised) + assert(!fetchAttrStreamData, "streaming uses moz-chunked-arraybuffer which is no longer supported; TODO: rewrite using fetch()"); + xhr.responseType = "arraybuffer"; + if (overriddenMimeType) { + var overriddenMimeTypeStr = UTF8ToString(overriddenMimeType); + xhr.overrideMimeType(overriddenMimeTypeStr); + } + if (requestHeaders) { + for (;;) { + var key = GROWABLE_HEAP_U32()[((requestHeaders) >> 2)]; + if (!key) break; + var value = GROWABLE_HEAP_U32()[(((requestHeaders) + (4)) >> 2)]; + if (!value) break; + requestHeaders += 8; + var keyStr = UTF8ToString(key); + var valueStr = UTF8ToString(value); + xhr.setRequestHeader(keyStr, valueStr); + } + } + var id = Fetch.xhrs.allocate(xhr); + GROWABLE_HEAP_U32()[((fetch) >> 2)] = id; + var data = (dataPtr && dataLength) ? GROWABLE_HEAP_U8().slice(dataPtr, dataPtr + dataLength) : null; + // TODO: Support specifying custom headers to the request. + // Share the code to save the response, as we need to do so both on success + // and on error (despite an error, there may be a response, like a 404 page). + // This receives a condition, which determines whether to save the xhr's + // response, or just 0. + function saveResponseAndStatus() { + var ptr = 0; + var ptrLen = 0; + if (xhr.response && fetchAttrLoadToMemory && GROWABLE_HEAP_U32()[(((fetch) + (12)) >> 2)] === 0) { + ptrLen = xhr.response.byteLength; + } + if (ptrLen > 0) { + // The data pointer malloc()ed here has the same lifetime as the emscripten_fetch_t structure itself has, and is + // freed when emscripten_fetch_close() is called. + ptr = _malloc(ptrLen); + GROWABLE_HEAP_U8().set(new Uint8Array(/** @type{Array} */ (xhr.response)), ptr); + } + GROWABLE_HEAP_U32()[(((fetch) + (12)) >> 2)] = ptr; + writeI53ToI64(fetch + 16, ptrLen); + writeI53ToI64(fetch + 24, 0); + var len = xhr.response ? xhr.response.byteLength : 0; + if (len) { + // If the final XHR.onload handler receives the bytedata to compute total length, report that, + // otherwise don't write anything out here, which will retain the latest byte size reported in + // the most recent XHR.onprogress handler. + writeI53ToI64(fetch + 32, len); + } + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = xhr.readyState; + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = xhr.status; + if (xhr.statusText) stringToUTF8(xhr.statusText, fetch + 44, 64); + } + xhr.onload = e => { + // check if xhr was aborted by user and don't try to call back + if (!Fetch.xhrs.has(id)) { + return; + } + saveResponseAndStatus(); + if (xhr.status >= 200 && xhr.status < 300) { + onsuccess?.(fetch, xhr, e); + } else { + onerror?.(fetch, xhr, e); + } + }; + xhr.onerror = e => { + // check if xhr was aborted by user and don't try to call back + if (!Fetch.xhrs.has(id)) { + return; + } + saveResponseAndStatus(); + onerror?.(fetch, xhr, e); + }; + xhr.ontimeout = e => { + // check if xhr was aborted by user and don't try to call back + if (!Fetch.xhrs.has(id)) { + return; + } + onerror?.(fetch, xhr, e); + }; + xhr.onprogress = e => { + // check if xhr was aborted by user and don't try to call back + if (!Fetch.xhrs.has(id)) { + return; + } + var ptrLen = (fetchAttrLoadToMemory && fetchAttrStreamData && xhr.response) ? xhr.response.byteLength : 0; + var ptr = 0; + if (ptrLen > 0 && fetchAttrLoadToMemory && fetchAttrStreamData) { + assert(onprogress, "When doing a streaming fetch, you should have an onprogress handler registered to receive the chunks!"); + // Allocate byte data in Emscripten heap for the streamed memory block (freed immediately after onprogress call) + ptr = _malloc(ptrLen); + GROWABLE_HEAP_U8().set(new Uint8Array(/** @type{Array} */ (xhr.response)), ptr); + } + GROWABLE_HEAP_U32()[(((fetch) + (12)) >> 2)] = ptr; + writeI53ToI64(fetch + 16, ptrLen); + writeI53ToI64(fetch + 24, e.loaded - ptrLen); + writeI53ToI64(fetch + 32, e.total); + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = xhr.readyState; + // If loading files from a source that does not give HTTP status code, assume success if we get data bytes + if (xhr.readyState >= 3 && xhr.status === 0 && e.loaded > 0) xhr.status = 200; + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = xhr.status; + if (xhr.statusText) stringToUTF8(xhr.statusText, fetch + 44, 64); + onprogress?.(fetch, xhr, e); + if (ptr) { + _free(ptr); + } + }; + xhr.onreadystatechange = e => { + // check if xhr was aborted by user and don't try to call back + if (!Fetch.xhrs.has(id)) { + runtimeKeepalivePop(); + return; + } + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = xhr.readyState; + if (xhr.readyState >= 2) { + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = xhr.status; + } + onreadystatechange?.(fetch, xhr, e); + }; + try { + xhr.send(data); + } catch (e) { + onerror?.(fetch, xhr, e); + } +} + +var readI53FromI64 = ptr => GROWABLE_HEAP_U32()[((ptr) >> 2)] + GROWABLE_HEAP_I32()[(((ptr) + (4)) >> 2)] * 4294967296; + +var readI53FromU64 = ptr => GROWABLE_HEAP_U32()[((ptr) >> 2)] + GROWABLE_HEAP_U32()[(((ptr) + (4)) >> 2)] * 4294967296; + +var writeI53ToI64 = (ptr, num) => { + GROWABLE_HEAP_U32()[((ptr) >> 2)] = num; + var lower = GROWABLE_HEAP_U32()[((ptr) >> 2)]; + GROWABLE_HEAP_U32()[(((ptr) + (4)) >> 2)] = (num - lower) / 4294967296; + var deserialized = (num >= 0) ? readI53FromU64(ptr) : readI53FromI64(ptr); + var offset = ((ptr) >> 2); + if (deserialized != num) warnOnce(`writeI53ToI64() out of range: serialized JS Number ${num} to Wasm heap as bytes lo=${ptrToString(GROWABLE_HEAP_U32()[offset])}, hi=${ptrToString(GROWABLE_HEAP_U32()[offset + 1])}, which deserializes back to ${deserialized} instead!`); +}; + +function fetchCacheData(/** @type {IDBDatabase} */ db, fetch, data, onsuccess, onerror) { + if (!db) { + onerror(fetch, 0, "IndexedDB not available!"); + return; + } + var fetch_attr = fetch + 108; + var destinationPath = GROWABLE_HEAP_U32()[(((fetch_attr) + (64)) >> 2)]; + destinationPath ||= GROWABLE_HEAP_U32()[(((fetch) + (8)) >> 2)]; + var destinationPathStr = UTF8ToString(destinationPath); + try { + var transaction = db.transaction([ "FILES" ], "readwrite"); + var packages = transaction.objectStore("FILES"); + var putRequest = packages.put(data, destinationPathStr); + putRequest.onsuccess = event => { + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 200; + // Mimic XHR HTTP status code 200 "OK" + stringToUTF8("OK", fetch + 44, 64); + onsuccess(fetch, 0, destinationPathStr); + }; + putRequest.onerror = error => { + // Most likely we got an error if IndexedDB is unwilling to store any more data for this page. + // TODO: Can we identify and break down different IndexedDB-provided errors and convert those + // to more HTTP status codes for more information? + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 413; + // Mimic XHR HTTP status code 413 "Payload Too Large" + stringToUTF8("Payload Too Large", fetch + 44, 64); + onerror(fetch, 0, error); + }; + } catch (e) { + onerror(fetch, 0, e); + } +} + +function fetchLoadCachedData(db, fetch, onsuccess, onerror) { + if (!db) { + onerror(fetch, 0, "IndexedDB not available!"); + return; + } + var fetch_attr = fetch + 108; + var path = GROWABLE_HEAP_U32()[(((fetch_attr) + (64)) >> 2)]; + path ||= GROWABLE_HEAP_U32()[(((fetch) + (8)) >> 2)]; + var pathStr = UTF8ToString(path); + try { + var transaction = db.transaction([ "FILES" ], "readonly"); + var packages = transaction.objectStore("FILES"); + var getRequest = packages.get(pathStr); + getRequest.onsuccess = event => { + if (event.target.result) { + var value = event.target.result; + var len = value.byteLength || value.length; + // The data pointer malloc()ed here has the same lifetime as the emscripten_fetch_t structure itself has, and is + // freed when emscripten_fetch_close() is called. + var ptr = _malloc(len); + GROWABLE_HEAP_U8().set(new Uint8Array(value), ptr); + GROWABLE_HEAP_U32()[(((fetch) + (12)) >> 2)] = ptr; + writeI53ToI64(fetch + 16, len); + writeI53ToI64(fetch + 24, 0); + writeI53ToI64(fetch + 32, len); + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 200; + // Mimic XHR HTTP status code 200 "OK" + stringToUTF8("OK", fetch + 44, 64); + onsuccess(fetch, 0, value); + } else { + // Succeeded to load, but the load came back with the value of undefined, treat that as an error since we never store undefined in db. + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 404; + // Mimic XHR HTTP status code 404 "Not Found" + stringToUTF8("Not Found", fetch + 44, 64); + onerror(fetch, 0, "no data"); + } + }; + getRequest.onerror = error => { + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 404; + // Mimic XHR HTTP status code 404 "Not Found" + stringToUTF8("Not Found", fetch + 44, 64); + onerror(fetch, 0, error); + }; + } catch (e) { + onerror(fetch, 0, e); + } +} + +function fetchDeleteCachedData(db, fetch, onsuccess, onerror) { + if (!db) { + onerror(fetch, 0, "IndexedDB not available!"); + return; + } + var fetch_attr = fetch + 108; + var path = GROWABLE_HEAP_U32()[(((fetch_attr) + (64)) >> 2)]; + path ||= GROWABLE_HEAP_U32()[(((fetch) + (8)) >> 2)]; + var pathStr = UTF8ToString(path); + try { + var transaction = db.transaction([ "FILES" ], "readwrite"); + var packages = transaction.objectStore("FILES"); + var request = packages.delete(pathStr); + request.onsuccess = event => { + var value = event.target.result; + GROWABLE_HEAP_U32()[(((fetch) + (12)) >> 2)] = 0; + writeI53ToI64(fetch + 16, 0); + writeI53ToI64(fetch + 24, 0); + writeI53ToI64(fetch + 32, 0); + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR HTTP status code 200 "OK" + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 200; + stringToUTF8("OK", fetch + 44, 64); + onsuccess(fetch, 0, value); + }; + request.onerror = error => { + GROWABLE_HEAP_I16()[(((fetch) + (40)) >> 1)] = 4; + // Mimic XHR readyState 4 === 'DONE: The operation is complete' + GROWABLE_HEAP_I16()[(((fetch) + (42)) >> 1)] = 404; + // Mimic XHR HTTP status code 404 "Not Found" + stringToUTF8("Not Found", fetch + 44, 64); + onerror(fetch, 0, error); + }; + } catch (e) { + onerror(fetch, 0, e); + } +} + +function _emscripten_start_fetch(fetch, successcb, errorcb, progresscb, readystatechangecb) { + // Avoid shutting down the runtime since we want to wait for the async + // response. + runtimeKeepalivePush(); + var fetch_attr = fetch + 108; + var onsuccess = GROWABLE_HEAP_U32()[(((fetch_attr) + (36)) >> 2)]; + var onerror = GROWABLE_HEAP_U32()[(((fetch_attr) + (40)) >> 2)]; + var onprogress = GROWABLE_HEAP_U32()[(((fetch_attr) + (44)) >> 2)]; + var onreadystatechange = GROWABLE_HEAP_U32()[(((fetch_attr) + (48)) >> 2)]; + var fetchAttributes = GROWABLE_HEAP_U32()[(((fetch_attr) + (52)) >> 2)]; + var fetchAttrSynchronous = !!(fetchAttributes & 64); + function doCallback(f) { + if (fetchAttrSynchronous) { + f(); + } else { + callUserCallback(f); + } + } + var reportSuccess = (fetch, xhr, e) => { + runtimeKeepalivePop(); + doCallback(() => { + if (onsuccess) (a1 => dynCall_vi(onsuccess, a1))(fetch); else successcb?.(fetch); + }); + }; + var reportProgress = (fetch, xhr, e) => { + doCallback(() => { + if (onprogress) (a1 => dynCall_vi(onprogress, a1))(fetch); else progresscb?.(fetch); + }); + }; + var reportError = (fetch, xhr, e) => { + runtimeKeepalivePop(); + doCallback(() => { + if (onerror) (a1 => dynCall_vi(onerror, a1))(fetch); else errorcb?.(fetch); + }); + }; + var reportReadyStateChange = (fetch, xhr, e) => { + doCallback(() => { + if (onreadystatechange) (a1 => dynCall_vi(onreadystatechange, a1))(fetch); else readystatechangecb?.(fetch); + }); + }; + var performUncachedXhr = (fetch, xhr, e) => { + fetchXHR(fetch, reportSuccess, reportError, reportProgress, reportReadyStateChange); + }; + var cacheResultAndReportSuccess = (fetch, xhr, e) => { + var storeSuccess = (fetch, xhr, e) => { + runtimeKeepalivePop(); + doCallback(() => { + if (onsuccess) (a1 => dynCall_vi(onsuccess, a1))(fetch); else successcb?.(fetch); + }); + }; + var storeError = (fetch, xhr, e) => { + runtimeKeepalivePop(); + doCallback(() => { + if (onsuccess) (a1 => dynCall_vi(onsuccess, a1))(fetch); else successcb?.(fetch); + }); + }; + fetchCacheData(Fetch.dbInstance, fetch, xhr.response, storeSuccess, storeError); + }; + var performCachedXhr = (fetch, xhr, e) => { + fetchXHR(fetch, cacheResultAndReportSuccess, reportError, reportProgress, reportReadyStateChange); + }; + var requestMethod = UTF8ToString(fetch_attr + 0); + var fetchAttrReplace = !!(fetchAttributes & 16); + var fetchAttrPersistFile = !!(fetchAttributes & 4); + var fetchAttrNoDownload = !!(fetchAttributes & 32); + if (requestMethod === "EM_IDB_STORE") { + // TODO(?): Here we perform a clone of the data, because storing shared typed arrays to IndexedDB does not seem to be allowed. + var ptr = GROWABLE_HEAP_U32()[(((fetch_attr) + (84)) >> 2)]; + var size = GROWABLE_HEAP_U32()[(((fetch_attr) + (88)) >> 2)]; + fetchCacheData(Fetch.dbInstance, fetch, GROWABLE_HEAP_U8().slice(ptr, ptr + size), reportSuccess, reportError); + } else if (requestMethod === "EM_IDB_DELETE") { + fetchDeleteCachedData(Fetch.dbInstance, fetch, reportSuccess, reportError); + } else if (!fetchAttrReplace) { + fetchLoadCachedData(Fetch.dbInstance, fetch, reportSuccess, fetchAttrNoDownload ? reportError : (fetchAttrPersistFile ? performCachedXhr : performUncachedXhr)); + } else if (!fetchAttrNoDownload) { + fetchXHR(fetch, fetchAttrPersistFile ? cacheResultAndReportSuccess : reportSuccess, reportError, reportProgress, reportReadyStateChange); + } else { + return 0; + } + return fetch; +} + +var registerPreMainLoop = f => { + // Does nothing unless $MainLoop is included/used. + typeof MainLoop != "undefined" && MainLoop.preMainLoop.push(f); +}; + +var _emscripten_supports_offscreencanvas = () => // TODO: Add a new build mode, e.g. OFFSCREENCANVAS_SUPPORT=2, which +// necessitates OffscreenCanvas support at build time, and "return 1;" here in that build mode. +typeof OffscreenCanvas != "undefined"; + +var webglPowerPreferences = [ "default", "low-power", "high-performance" ]; + +/** @suppress {duplicate } */ var _emscripten_webgl_do_create_context = (target, attributes) => { + assert(attributes); + var attr32 = ((attributes) >> 2); + var powerPreference = GROWABLE_HEAP_I32()[attr32 + (8 >> 2)]; + var contextAttributes = { + "alpha": !!GROWABLE_HEAP_I8()[attributes + 0], + "depth": !!GROWABLE_HEAP_I8()[attributes + 1], + "stencil": !!GROWABLE_HEAP_I8()[attributes + 2], + "antialias": !!GROWABLE_HEAP_I8()[attributes + 3], + "premultipliedAlpha": !!GROWABLE_HEAP_I8()[attributes + 4], + "preserveDrawingBuffer": !!GROWABLE_HEAP_I8()[attributes + 5], + "powerPreference": webglPowerPreferences[powerPreference], + "failIfMajorPerformanceCaveat": !!GROWABLE_HEAP_I8()[attributes + 12], + // The following are not predefined WebGL context attributes in the WebGL specification, so the property names can be minified by Closure. + majorVersion: GROWABLE_HEAP_I32()[attr32 + (16 >> 2)], + minorVersion: GROWABLE_HEAP_I32()[attr32 + (20 >> 2)], + enableExtensionsByDefault: GROWABLE_HEAP_I8()[attributes + 24], + explicitSwapControl: GROWABLE_HEAP_I8()[attributes + 25], + proxyContextToMainThread: GROWABLE_HEAP_I32()[attr32 + (28 >> 2)], + renderViaOffscreenBackBuffer: GROWABLE_HEAP_I8()[attributes + 32] + }; + // TODO: Make these into hard errors at some point in the future + if (contextAttributes.majorVersion !== 1 && contextAttributes.majorVersion !== 2) { + err(`Invalid WebGL version requested: ${contextAttributes.majorVersion}`); + } + var canvas = findCanvasEventTarget(target); + // If our canvas from findCanvasEventTarget is actually an offscreen canvas record, we should extract the inner canvas. + if (canvas?.canvas) { + canvas = canvas.canvas; + } + if (!canvas) { + return 0; + } + if (canvas.offscreenCanvas) canvas = canvas.offscreenCanvas; + if (contextAttributes.explicitSwapControl) { + var supportsOffscreenCanvas = canvas.transferControlToOffscreen || (_emscripten_supports_offscreencanvas() && canvas instanceof OffscreenCanvas); + if (!supportsOffscreenCanvas) { + return 0; + } + if (canvas.transferControlToOffscreen) { + if (!canvas.controlTransferredOffscreen) { + GL.offscreenCanvases[canvas.id] = { + canvas: canvas.transferControlToOffscreen(), + canvasSharedPtr: _malloc(12), + id: canvas.id + }; + canvas.controlTransferredOffscreen = true; + } else if (!GL.offscreenCanvases[canvas.id]) { + return 0; + } + canvas = GL.offscreenCanvases[canvas.id].canvas; + } + } + var contextHandle = GL.createContext(canvas, contextAttributes); + return contextHandle; +}; + +var _emscripten_webgl_create_context = _emscripten_webgl_do_create_context; + +var _emscripten_webgl_destroy_context_calling_thread = contextHandle => { + if (GL.currentContext == contextHandle) GL.currentContext = 0; + GL.deleteContext(contextHandle); +}; + +var _emscripten_webgl_destroy_context_main_thread = _emscripten_webgl_destroy_context_calling_thread; + +function _emscripten_webgl_destroy_context(p0) { + return GL.contexts[p0] ? _emscripten_webgl_destroy_context_calling_thread(p0) : _emscripten_webgl_destroy_context_main_thread(p0); +} + +var _emscripten_webgl_make_context_current = contextHandle => { + var success = GL.makeContextCurrent(contextHandle); + return success ? 0 : -5; +}; + +var ENV = {}; + +var getExecutableName = () => thisProgram || "./this.program"; + +var getEnvStrings = () => { + if (!getEnvStrings.strings) { + // Default values. + // Browser language detection #8751 + var lang = ((typeof navigator == "object" && navigator.languages && navigator.languages[0]) || "C").replace("-", "_") + ".UTF-8"; + var env = { + "USER": "web_user", + "LOGNAME": "web_user", + "PATH": "/", + "PWD": "/", + "HOME": "/home/web_user", + "LANG": lang, + "_": getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; +}; + +var stringToAscii = (str, buffer) => { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 255)); + GROWABLE_HEAP_I8()[buffer++] = str.charCodeAt(i); + } + // Null-terminate the string + GROWABLE_HEAP_I8()[buffer] = 0; +}; + +var _environ_get = function(__environ, environ_buf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(10, 0, 1, __environ, environ_buf); + var bufSize = 0; + getEnvStrings().forEach((string, i) => { + var ptr = environ_buf + bufSize; + GROWABLE_HEAP_U32()[(((__environ) + (i * 4)) >> 2)] = ptr; + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; +}; + +var _environ_sizes_get = function(penviron_count, penviron_buf_size) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(11, 0, 1, penviron_count, penviron_buf_size); + var strings = getEnvStrings(); + GROWABLE_HEAP_U32()[((penviron_count) >> 2)] = strings.length; + var bufSize = 0; + strings.forEach(string => bufSize += string.length + 1); + GROWABLE_HEAP_U32()[((penviron_buf_size) >> 2)] = bufSize; + return 0; +}; + +function _fd_close(fd) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(12, 0, 1, fd); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _fd_fdstat_get(fd, pbuf) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(13, 0, 1, fd, pbuf); + try { + var rightsBase = 0; + var rightsInheriting = 0; + var flags = 0; + { + var stream = SYSCALLS.getStreamFromFD(fd); + // All character devices are terminals (other things a Linux system would + // assume is a character device, like the mouse, we have special APIs for). + var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4; + } + GROWABLE_HEAP_I8()[pbuf] = type; + GROWABLE_HEAP_I16()[(((pbuf) + (2)) >> 1)] = flags; + HEAP64[(((pbuf) + (8)) >> 3)] = BigInt(rightsBase); + HEAP64[(((pbuf) + (16)) >> 3)] = BigInt(rightsInheriting); + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[((iov) >> 2)]; + var len = GROWABLE_HEAP_U32()[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; + // nothing more to read + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_read(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(14, 0, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +function _fd_seek(fd, offset, whence, newOffset) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(15, 0, 1, fd, offset, whence, newOffset); + offset = bigintToI53Checked(offset); + try { + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + HEAP64[((newOffset) >> 3)] = BigInt(stream.position); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; + // reset readdir state + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +/** @param {number=} offset */ var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = GROWABLE_HEAP_U32()[((iov) >> 2)]; + var len = GROWABLE_HEAP_U32()[(((iov) + (4)) >> 2)]; + iov += 8; + var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) { + // No more space to write. + break; + } + if (typeof offset != "undefined") { + offset += curr; + } + } + return ret; +}; + +function _fd_write(fd, iov, iovcnt, pnum) { + if (ENVIRONMENT_IS_PTHREAD) return proxyToMainThread(16, 0, 1, fd, iov, iovcnt, pnum); + try { + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + GROWABLE_HEAP_U32()[((pnum) >> 2)] = num; + return 0; + } catch (e) { + if (typeof FS == "undefined" || !(e.name === "ErrnoError")) throw e; + return e.errno; + } +} + +var _glActiveTexture = x0 => GLctx.activeTexture(x0); + +var _glAttachShader = (program, shader) => { + GLctx.attachShader(GL.programs[program], GL.shaders[shader]); +}; + +var _glBindBuffer = (target, buffer) => { + if (target == 35051) { + // In WebGL 2 glReadPixels entry point, we need to use a different WebGL 2 + // API function call when a buffer is bound to + // GL_PIXEL_PACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelPackBufferBinding = buffer; + } else if (target == 35052) { + // In WebGL 2 gl(Compressed)Tex(Sub)Image[23]D entry points, we need to + // use a different WebGL 2 API function call when a buffer is bound to + // GL_PIXEL_UNPACK_BUFFER_BINDING point, so must keep track whether that + // binding point is non-null to know what is the proper API function to + // call. + GLctx.currentPixelUnpackBufferBinding = buffer; + } + GLctx.bindBuffer(target, GL.buffers[buffer]); +}; + +var _glBindFramebuffer = (target, framebuffer) => { + GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]); +}; + +var _glBindTexture = (target, texture) => { + GLctx.bindTexture(target, GL.textures[texture]); +}; + +var _glBlendFunc = (x0, x1) => GLctx.blendFunc(x0, x1); + +var _glBufferData = (target, size, data, usage) => { + if (GL.currentContext.version >= 2) { + // If size is zero, WebGL would interpret uploading the whole input + // arraybuffer (starting from given offset), which would not make sense in + // WebAssembly, so avoid uploading if size is zero. However we must still + // call bufferData to establish a backing storage of zero bytes. + if (data && size) { + GLctx.bufferData(target, GROWABLE_HEAP_U8(), usage, data, size); + } else { + GLctx.bufferData(target, size, usage); + } + return; + } + // N.b. here first form specifies a heap subarray, second form an integer + // size, so the ?: code here is polymorphic. It is advised to avoid + // randomly mixing both uses in calling code, to avoid any potential JS + // engine JIT issues. + GLctx.bufferData(target, data ? GROWABLE_HEAP_U8().subarray(data, data + size) : size, usage); +}; + +var _glClear = x0 => GLctx.clear(x0); + +var _glClearColor = (x0, x1, x2, x3) => GLctx.clearColor(x0, x1, x2, x3); + +var _glCompileShader = shader => { + GLctx.compileShader(GL.shaders[shader]); +}; + +var _glCreateProgram = () => { + var id = GL.getNewId(GL.programs); + var program = GLctx.createProgram(); + // Store additional information needed for each shader program: + program.name = id; + // Lazy cache results of + // glGetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH/GL_ACTIVE_ATTRIBUTE_MAX_LENGTH/GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH) + program.maxUniformLength = program.maxAttributeLength = program.maxUniformBlockNameLength = 0; + program.uniformIdCounter = 1; + GL.programs[id] = program; + return id; +}; + +var _glCreateShader = shaderType => { + var id = GL.getNewId(GL.shaders); + GL.shaders[id] = GLctx.createShader(shaderType); + return id; +}; + +var _glDeleteFramebuffers = (n, framebuffers) => { + for (var i = 0; i < n; ++i) { + var id = GROWABLE_HEAP_I32()[(((framebuffers) + (i * 4)) >> 2)]; + var framebuffer = GL.framebuffers[id]; + if (!framebuffer) continue; + // GL spec: "glDeleteFramebuffers silently ignores 0s and names that do not correspond to existing framebuffer objects". + GLctx.deleteFramebuffer(framebuffer); + framebuffer.name = 0; + GL.framebuffers[id] = null; + } +}; + +var _glDeleteProgram = id => { + if (!id) return; + var program = GL.programs[id]; + if (!program) { + // glDeleteProgram actually signals an error when deleting a nonexisting + // object, unlike some other GL delete functions. + GL.recordError(1281); + return; + } + GLctx.deleteProgram(program); + program.name = 0; + GL.programs[id] = null; +}; + +var _glDeleteTextures = (n, textures) => { + for (var i = 0; i < n; i++) { + var id = GROWABLE_HEAP_I32()[(((textures) + (i * 4)) >> 2)]; + var texture = GL.textures[id]; + // GL spec: "glDeleteTextures silently ignores 0s and names that do not + // correspond to existing textures". + if (!texture) continue; + GLctx.deleteTexture(texture); + texture.name = 0; + GL.textures[id] = null; + } +}; + +var _glDepthFunc = x0 => GLctx.depthFunc(x0); + +var _glDisable = x0 => GLctx.disable(x0); + +var _glDrawArrays = (mode, first, count) => { + GLctx.drawArrays(mode, first, count); +}; + +var _glEnable = x0 => GLctx.enable(x0); + +var _glEnableVertexAttribArray = index => { + GLctx.enableVertexAttribArray(index); +}; + +var _glFramebufferTexture2D = (target, attachment, textarget, texture, level) => { + GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level); +}; + +var _glGenBuffers = (n, buffers) => { + GL.genObject(n, buffers, "createBuffer", GL.buffers); +}; + +var _glGenFramebuffers = (n, ids) => { + GL.genObject(n, ids, "createFramebuffer", GL.framebuffers); +}; + +var _glGenTextures = (n, textures) => { + GL.genObject(n, textures, "createTexture", GL.textures); +}; + +var _glGetAttribLocation = (program, name) => GLctx.getAttribLocation(GL.programs[program], UTF8ToString(name)); + +var _glGetError = () => { + var error = GLctx.getError() || GL.lastError; + GL.lastError = 0; + return error; +}; + +var _glGetProgramiv = (program, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (program >= GL.counter) { + GL.recordError(1281); + return; + } + program = GL.programs[program]; + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getProgramInfoLog(program); + if (log === null) log = "(unknown error)"; + GROWABLE_HEAP_I32()[((p) >> 2)] = log.length + 1; + } else if (pname == 35719) { + if (!program.maxUniformLength) { + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (var i = 0; i < numActiveUniforms; ++i) { + program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1); + } + } + GROWABLE_HEAP_I32()[((p) >> 2)] = program.maxUniformLength; + } else if (pname == 35722) { + if (!program.maxAttributeLength) { + var numActiveAttributes = GLctx.getProgramParameter(program, 35721); + for (var i = 0; i < numActiveAttributes; ++i) { + program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1); + } + } + GROWABLE_HEAP_I32()[((p) >> 2)] = program.maxAttributeLength; + } else if (pname == 35381) { + if (!program.maxUniformBlockNameLength) { + var numActiveUniformBlocks = GLctx.getProgramParameter(program, 35382); + for (var i = 0; i < numActiveUniformBlocks; ++i) { + program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1); + } + } + GROWABLE_HEAP_I32()[((p) >> 2)] = program.maxUniformBlockNameLength; + } else { + GROWABLE_HEAP_I32()[((p) >> 2)] = GLctx.getProgramParameter(program, pname); + } +}; + +var _glGetShaderInfoLog = (shader, maxLength, length, infoLog) => { + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + var numBytesWrittenExclNull = (maxLength > 0 && infoLog) ? stringToUTF8(log, infoLog, maxLength) : 0; + if (length) GROWABLE_HEAP_I32()[((length) >> 2)] = numBytesWrittenExclNull; +}; + +var _glGetShaderiv = (shader, pname, p) => { + if (!p) { + // GLES2 specification does not specify how to behave if p is a null + // pointer. Since calling this function does not make sense if p == null, + // issue a GL error to notify user about it. + GL.recordError(1281); + return; + } + if (pname == 35716) { + // GL_INFO_LOG_LENGTH + var log = GLctx.getShaderInfoLog(GL.shaders[shader]); + if (log === null) log = "(unknown error)"; + // The GLES2 specification says that if the shader has an empty info log, + // a value of 0 is returned. Otherwise the log has a null char appended. + // (An empty string is falsey, so we can just check that instead of + // looking at log.length.) + var logLength = log ? log.length + 1 : 0; + GROWABLE_HEAP_I32()[((p) >> 2)] = logLength; + } else if (pname == 35720) { + // GL_SHADER_SOURCE_LENGTH + var source = GLctx.getShaderSource(GL.shaders[shader]); + // source may be a null, or the empty string, both of which are falsey + // values that we report a 0 length for. + var sourceLength = source ? source.length + 1 : 0; + GROWABLE_HEAP_I32()[((p) >> 2)] = sourceLength; + } else { + GROWABLE_HEAP_I32()[((p) >> 2)] = GLctx.getShaderParameter(GL.shaders[shader], pname); + } +}; + +/** @suppress {checkTypes} */ var jstoi_q = str => parseInt(str); + +/** @noinline */ var webglGetLeftBracePos = name => name.slice(-1) == "]" && name.lastIndexOf("["); + +var webglPrepareUniformLocationsBeforeFirstUse = program => { + var uniformLocsById = program.uniformLocsById, // Maps GLuint -> WebGLUniformLocation + uniformSizeAndIdsByName = program.uniformSizeAndIdsByName, // Maps name -> [uniform array length, GLuint] + i, j; + // On the first time invocation of glGetUniformLocation on this shader program: + // initialize cache data structures and discover which uniforms are arrays. + if (!uniformLocsById) { + // maps GLint integer locations to WebGLUniformLocations + program.uniformLocsById = uniformLocsById = {}; + // maps integer locations back to uniform name strings, so that we can lazily fetch uniform array locations + program.uniformArrayNamesById = {}; + var numActiveUniforms = GLctx.getProgramParameter(program, 35718); + for (i = 0; i < numActiveUniforms; ++i) { + var u = GLctx.getActiveUniform(program, i); + var nm = u.name; + var sz = u.size; + var lb = webglGetLeftBracePos(nm); + var arrayName = lb > 0 ? nm.slice(0, lb) : nm; + // Assign a new location. + var id = program.uniformIdCounter; + program.uniformIdCounter += sz; + // Eagerly get the location of the uniformArray[0] base element. + // The remaining indices >0 will be left for lazy evaluation to + // improve performance. Those may never be needed to fetch, if the + // application fills arrays always in full starting from the first + // element of the array. + uniformSizeAndIdsByName[arrayName] = [ sz, id ]; + // Store placeholder integers in place that highlight that these + // >0 index locations are array indices pending population. + for (j = 0; j < sz; ++j) { + uniformLocsById[id] = j; + program.uniformArrayNamesById[id++] = arrayName; + } + } + } +}; + +var _glGetUniformLocation = (program, name) => { + name = UTF8ToString(name); + if (program = GL.programs[program]) { + webglPrepareUniformLocationsBeforeFirstUse(program); + var uniformLocsById = program.uniformLocsById; + // Maps GLuint -> WebGLUniformLocation + var arrayIndex = 0; + var uniformBaseName = name; + // Invariant: when populating integer IDs for uniform locations, we must + // maintain the precondition that arrays reside in contiguous addresses, + // i.e. for a 'vec4 colors[10];', colors[4] must be at location + // colors[0]+4. However, user might call glGetUniformLocation(program, + // "colors") for an array, so we cannot discover based on the user input + // arguments whether the uniform we are dealing with is an array. The only + // way to discover which uniforms are arrays is to enumerate over all the + // active uniforms in the program. + var leftBrace = webglGetLeftBracePos(name); + // If user passed an array accessor "[index]", parse the array index off the accessor. + if (leftBrace > 0) { + arrayIndex = jstoi_q(name.slice(leftBrace + 1)) >>> 0; + // "index]", coerce parseInt(']') with >>>0 to treat "foo[]" as "foo[0]" and foo[-1] as unsigned out-of-bounds. + uniformBaseName = name.slice(0, leftBrace); + } + // Have we cached the location of this uniform before? + // A pair [array length, GLint of the uniform location] + var sizeAndId = program.uniformSizeAndIdsByName[uniformBaseName]; + // If an uniform with this name exists, and if its index is within the + // array limits (if it's even an array), query the WebGLlocation, or + // return an existing cached location. + if (sizeAndId && arrayIndex < sizeAndId[0]) { + arrayIndex += sizeAndId[1]; + // Add the base location of the uniform to the array index offset. + if ((uniformLocsById[arrayIndex] = uniformLocsById[arrayIndex] || GLctx.getUniformLocation(program, name))) { + return arrayIndex; + } + } + } else { + // N.b. we are currently unable to distinguish between GL program IDs that + // never existed vs GL program IDs that have been deleted, so report + // GL_INVALID_VALUE in both cases. + GL.recordError(1281); + } + return -1; +}; + +var _glLinkProgram = program => { + program = GL.programs[program]; + GLctx.linkProgram(program); + // Invalidate earlier computed uniform->ID mappings, those have now become stale + program.uniformLocsById = 0; + // Mark as null-like so that glGetUniformLocation() knows to populate this again. + program.uniformSizeAndIdsByName = {}; +}; + +var _glShaderSource = (shader, count, string, length) => { + var source = GL.getSource(shader, count, string, length); + GLctx.shaderSource(GL.shaders[shader], source); +}; + +var computeUnpackAlignedImageSize = (width, height, sizePerPixel) => { + function roundedToNextMultipleOf(x, y) { + return (x + y - 1) & -y; + } + var plainRowSize = (GL.unpackRowLength || width) * sizePerPixel; + var alignedRowSize = roundedToNextMultipleOf(plainRowSize, GL.unpackAlignment); + return height * alignedRowSize; +}; + +var colorChannelsInGlTextureFormat = format => { + // Micro-optimizations for size: map format to size by subtracting smallest + // enum value (0x1902) from all values first. Also omit the most common + // size value (1) from the list, which is assumed by formats not on the + // list. + var colorChannels = { + // 0x1902 /* GL_DEPTH_COMPONENT */ - 0x1902: 1, + // 0x1906 /* GL_ALPHA */ - 0x1902: 1, + 5: 3, + 6: 4, + // 0x1909 /* GL_LUMINANCE */ - 0x1902: 1, + 8: 2, + 29502: 3, + 29504: 4, + // 0x1903 /* GL_RED */ - 0x1902: 1, + 26917: 2, + 26918: 2, + // 0x8D94 /* GL_RED_INTEGER */ - 0x1902: 1, + 29846: 3, + 29847: 4 + }; + return colorChannels[format - 6402] || 1; +}; + +var heapObjectForWebGLType = type => { + // Micro-optimization for size: Subtract lowest GL enum number (0x1400/* GL_BYTE */) from type to compare + // smaller values for the heap, for shorter generated code size. + // Also the type HEAPU16 is not tested for explicitly, but any unrecognized type will return out HEAPU16. + // (since most types are HEAPU16) + type -= 5120; + if (type == 0) return GROWABLE_HEAP_I8(); + if (type == 1) return GROWABLE_HEAP_U8(); + if (type == 2) return GROWABLE_HEAP_I16(); + if (type == 4) return GROWABLE_HEAP_I32(); + if (type == 6) return GROWABLE_HEAP_F32(); + if (type == 5 || type == 28922 || type == 28520 || type == 30779 || type == 30782) return GROWABLE_HEAP_U32(); + return GROWABLE_HEAP_U16(); +}; + +var toTypedArrayIndex = (pointer, heap) => pointer >>> (31 - Math.clz32(heap.BYTES_PER_ELEMENT)); + +var emscriptenWebGLGetTexPixelData = (type, format, width, height, pixels, internalFormat) => { + var heap = heapObjectForWebGLType(type); + var sizePerPixel = colorChannelsInGlTextureFormat(format) * heap.BYTES_PER_ELEMENT; + var bytes = computeUnpackAlignedImageSize(width, height, sizePerPixel); + return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap)); +}; + +var _glTexImage2D = (target, level, internalFormat, width, height, border, format, type, pixels) => { + if (GL.currentContext.version >= 2) { + if (GLctx.currentPixelUnpackBufferBinding) { + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); + return; + } + if (pixels) { + var heap = heapObjectForWebGLType(type); + var index = toTypedArrayIndex(pixels, heap); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index); + return; + } + } + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null; + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); +}; + +var _glTexParameterf = (x0, x1, x2) => GLctx.texParameterf(x0, x1, x2); + +var _glTexParameteri = (x0, x1, x2) => GLctx.texParameteri(x0, x1, x2); + +var webglGetUniformLocation = location => { + var p = GLctx.currentProgram; + if (p) { + var webglLoc = p.uniformLocsById[location]; + // p.uniformLocsById[location] stores either an integer, or a + // WebGLUniformLocation. + // If an integer, we have not yet bound the location, so do it now. The + // integer value specifies the array index we should bind to. + if (typeof webglLoc == "number") { + p.uniformLocsById[location] = webglLoc = GLctx.getUniformLocation(p, p.uniformArrayNamesById[location] + (webglLoc > 0 ? `[${webglLoc}]` : "")); + } + // Else an already cached WebGLUniformLocation, return it. + return webglLoc; + } else { + GL.recordError(1282); + } +}; + +var _glUniform1i = (location, v0) => { + GLctx.uniform1i(webglGetUniformLocation(location), v0); +}; + +var miniTempWebGLFloatBuffers = []; + +var _glUniformMatrix4fv = (location, count, transpose, value) => { + if (GL.currentContext.version >= 2) { + count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, GROWABLE_HEAP_F32(), ((value) >> 2), count * 16); + return; + } + if (count <= 18) { + // avoid allocation when uploading few enough uniforms + var view = miniTempWebGLFloatBuffers[16 * count]; + // hoist the heap out of the loop for size and for pthreads+growth. + var heap = GROWABLE_HEAP_F32(); + value = ((value) >> 2); + count *= 16; + for (var i = 0; i < count; i += 16) { + var dst = value + i; + view[i] = heap[dst]; + view[i + 1] = heap[dst + 1]; + view[i + 2] = heap[dst + 2]; + view[i + 3] = heap[dst + 3]; + view[i + 4] = heap[dst + 4]; + view[i + 5] = heap[dst + 5]; + view[i + 6] = heap[dst + 6]; + view[i + 7] = heap[dst + 7]; + view[i + 8] = heap[dst + 8]; + view[i + 9] = heap[dst + 9]; + view[i + 10] = heap[dst + 10]; + view[i + 11] = heap[dst + 11]; + view[i + 12] = heap[dst + 12]; + view[i + 13] = heap[dst + 13]; + view[i + 14] = heap[dst + 14]; + view[i + 15] = heap[dst + 15]; + } + } else { + var view = GROWABLE_HEAP_F32().subarray((((value) >> 2)), ((value + count * 64) >> 2)); + } + GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view); +}; + +var _glUseProgram = program => { + program = GL.programs[program]; + GLctx.useProgram(program); + // Record the currently active program so that we can access the uniform + // mapping table of that program. + GLctx.currentProgram = program; +}; + +var _glVertexAttribPointer = (index, size, type, normalized, stride, ptr) => { + GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); +}; + +var _glViewport = (x0, x1, x2, x3) => GLctx.viewport(x0, x1, x2, x3); + +var wasmTableMirror = []; + +/** @type {WebAssembly.Table} */ var wasmTable; + +var getWasmTableEntry = funcPtr => { + var func = wasmTableMirror[funcPtr]; + if (!func) { + /** @suppress {checkTypes} */ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + /** @suppress {checkTypes} */ assert(wasmTable.get(funcPtr) == func, "JavaScript-side Wasm function table mirror is out of date!"); + return func; +}; + +var runAndAbortIfError = func => { + try { + return func(); + } catch (e) { + abort(e); + } +}; + +var sigToWasmTypes = sig => { + var typeNames = { + "i": "i32", + "j": "i64", + "f": "f32", + "d": "f64", + "e": "externref", + "p": "i32" + }; + var type = { + parameters: [], + results: sig[0] == "v" ? [] : [ typeNames[sig[0]] ] + }; + for (var i = 1; i < sig.length; ++i) { + assert(sig[i] in typeNames, "invalid signature char: " + sig[i]); + type.parameters.push(typeNames[sig[i]]); + } + return type; +}; + +var Asyncify = { + instrumentWasmImports(imports) { + var importPattern = /^(invoke_.*|__asyncjs__.*)$/; + for (let [x, original] of Object.entries(imports)) { + if (typeof original == "function") { + let isAsyncifyImport = original.isAsync || importPattern.test(x); + imports[x] = (...args) => { + var originalAsyncifyState = Asyncify.state; + try { + return original(...args); + } finally { + // Only asyncify-declared imports are allowed to change the + // state. + // Changing the state from normal to disabled is allowed (in any + // function) as that is what shutdown does (and we don't have an + // explicit list of shutdown imports). + var changedToDisabled = originalAsyncifyState === Asyncify.State.Normal && Asyncify.state === Asyncify.State.Disabled; + // invoke_* functions are allowed to change the state if we do + // not ignore indirect calls. + var ignoredInvoke = x.startsWith("invoke_") && true; + if (Asyncify.state !== originalAsyncifyState && !isAsyncifyImport && !changedToDisabled && !ignoredInvoke) { + throw new Error(`import ${x} was not in ASYNCIFY_IMPORTS, but changed the state`); + } + } + }; + } + } + }, + instrumentWasmExports(exports) { + var ret = {}; + for (let [x, original] of Object.entries(exports)) { + if (typeof original == "function") { + ret[x] = (...args) => { + Asyncify.exportCallStack.push(x); + try { + return original(...args); + } finally { + if (!ABORT) { + var y = Asyncify.exportCallStack.pop(); + assert(y === x); + Asyncify.maybeStopUnwind(); + } + } + }; + } else { + ret[x] = original; + } + } + return ret; + }, + State: { + Normal: 0, + Unwinding: 1, + Rewinding: 2, + Disabled: 3 + }, + state: 0, + StackSize: 4096, + currData: null, + handleSleepReturnValue: 0, + exportCallStack: [], + callStackNameToId: {}, + callStackIdToName: {}, + callStackId: 0, + asyncPromiseHandlers: null, + sleepCallbacks: [], + getCallStackId(funcName) { + var id = Asyncify.callStackNameToId[funcName]; + if (id === undefined) { + id = Asyncify.callStackId++; + Asyncify.callStackNameToId[funcName] = id; + Asyncify.callStackIdToName[id] = funcName; + } + return id; + }, + maybeStopUnwind() { + if (Asyncify.currData && Asyncify.state === Asyncify.State.Unwinding && Asyncify.exportCallStack.length === 0) { + // We just finished unwinding. + // Be sure to set the state before calling any other functions to avoid + // possible infinite recursion here (For example in debug pthread builds + // the dbg() function itself can call back into WebAssembly to get the + // current pthread_self() pointer). + Asyncify.state = Asyncify.State.Normal; + runtimeKeepalivePush(); + // Keep the runtime alive so that a re-wind can be done later. + runAndAbortIfError(_asyncify_stop_unwind); + if (typeof Fibers != "undefined") { + Fibers.trampoline(); + } + } + }, + whenDone() { + assert(Asyncify.currData, "Tried to wait for an async operation when none is in progress."); + assert(!Asyncify.asyncPromiseHandlers, "Cannot have multiple async operations in flight at once"); + return new Promise((resolve, reject) => { + Asyncify.asyncPromiseHandlers = { + resolve, + reject + }; + }); + }, + allocateData() { + // An asyncify data structure has three fields: + // 0 current stack pos + // 4 max stack pos + // 8 id of function at bottom of the call stack (callStackIdToName[id] == name of js function) + // The Asyncify ABI only interprets the first two fields, the rest is for the runtime. + // We also embed a stack in the same memory region here, right next to the structure. + // This struct is also defined as asyncify_data_t in emscripten/fiber.h + var ptr = _malloc(12 + Asyncify.StackSize); + Asyncify.setDataHeader(ptr, ptr + 12, Asyncify.StackSize); + Asyncify.setDataRewindFunc(ptr); + return ptr; + }, + setDataHeader(ptr, stack, stackSize) { + GROWABLE_HEAP_U32()[((ptr) >> 2)] = stack; + GROWABLE_HEAP_U32()[(((ptr) + (4)) >> 2)] = stack + stackSize; + }, + setDataRewindFunc(ptr) { + var bottomOfCallStack = Asyncify.exportCallStack[0]; + var rewindId = Asyncify.getCallStackId(bottomOfCallStack); + GROWABLE_HEAP_I32()[(((ptr) + (8)) >> 2)] = rewindId; + }, + getDataRewindFuncName(ptr) { + var id = GROWABLE_HEAP_I32()[(((ptr) + (8)) >> 2)]; + var name = Asyncify.callStackIdToName[id]; + return name; + }, + getDataRewindFunc(name) { + var func = wasmExports[name]; + return func; + }, + doRewind(ptr) { + var name = Asyncify.getDataRewindFuncName(ptr); + var func = Asyncify.getDataRewindFunc(name); + // Once we have rewound and the stack we no longer need to artificially + // keep the runtime alive. + runtimeKeepalivePop(); + return func(); + }, + handleSleep(startAsync) { + assert(Asyncify.state !== Asyncify.State.Disabled, "Asyncify cannot be done during or after the runtime exits"); + if (ABORT) return; + if (Asyncify.state === Asyncify.State.Normal) { + // Prepare to sleep. Call startAsync, and see what happens: + // if the code decided to call our callback synchronously, + // then no async operation was in fact begun, and we don't + // need to do anything. + var reachedCallback = false; + var reachedAfterCallback = false; + startAsync((handleSleepReturnValue = 0) => { + assert(!handleSleepReturnValue || typeof handleSleepReturnValue == "number" || typeof handleSleepReturnValue == "boolean"); + // old emterpretify API supported other stuff + if (ABORT) return; + Asyncify.handleSleepReturnValue = handleSleepReturnValue; + reachedCallback = true; + if (!reachedAfterCallback) { + // We are happening synchronously, so no need for async. + return; + } + // This async operation did not happen synchronously, so we did + // unwind. In that case there can be no compiled code on the stack, + // as it might break later operations (we can rewind ok now, but if + // we unwind again, we would unwind through the extra compiled code + // too). + assert(!Asyncify.exportCallStack.length, "Waking up (starting to rewind) must be done from JS, without compiled code on the stack."); + Asyncify.state = Asyncify.State.Rewinding; + runAndAbortIfError(() => _asyncify_start_rewind(Asyncify.currData)); + if (typeof MainLoop != "undefined" && MainLoop.func) { + MainLoop.resume(); + } + var asyncWasmReturnValue, isError = false; + try { + asyncWasmReturnValue = Asyncify.doRewind(Asyncify.currData); + } catch (err) { + asyncWasmReturnValue = err; + isError = true; + } + // Track whether the return value was handled by any promise handlers. + var handled = false; + if (!Asyncify.currData) { + // All asynchronous execution has finished. + // `asyncWasmReturnValue` now contains the final + // return value of the exported async WASM function. + // Note: `asyncWasmReturnValue` is distinct from + // `Asyncify.handleSleepReturnValue`. + // `Asyncify.handleSleepReturnValue` contains the return + // value of the last C function to have executed + // `Asyncify.handleSleep()`, where as `asyncWasmReturnValue` + // contains the return value of the exported WASM function + // that may have called C functions that + // call `Asyncify.handleSleep()`. + var asyncPromiseHandlers = Asyncify.asyncPromiseHandlers; + if (asyncPromiseHandlers) { + Asyncify.asyncPromiseHandlers = null; + (isError ? asyncPromiseHandlers.reject : asyncPromiseHandlers.resolve)(asyncWasmReturnValue); + handled = true; + } + } + if (isError && !handled) { + // If there was an error and it was not handled by now, we have no choice but to + // rethrow that error into the global scope where it can be caught only by + // `onerror` or `onunhandledpromiserejection`. + throw asyncWasmReturnValue; + } + }); + reachedAfterCallback = true; + if (!reachedCallback) { + // A true async operation was begun; start a sleep. + Asyncify.state = Asyncify.State.Unwinding; + // TODO: reuse, don't alloc/free every sleep + Asyncify.currData = Asyncify.allocateData(); + if (typeof MainLoop != "undefined" && MainLoop.func) { + MainLoop.pause(); + } + runAndAbortIfError(() => _asyncify_start_unwind(Asyncify.currData)); + } + } else if (Asyncify.state === Asyncify.State.Rewinding) { + // Stop a resume. + Asyncify.state = Asyncify.State.Normal; + runAndAbortIfError(_asyncify_stop_rewind); + _free(Asyncify.currData); + Asyncify.currData = null; + // Call all sleep callbacks now that the sleep-resume is all done. + Asyncify.sleepCallbacks.forEach(callUserCallback); + } else { + abort(`invalid state: ${Asyncify.state}`); + } + return Asyncify.handleSleepReturnValue; + }, + handleAsync(startAsync) { + return Asyncify.handleSleep(wakeUp => { + // TODO: add error handling as a second param when handleSleep implements it. + startAsync().then(wakeUp); + }); + } +}; + +var getCFunc = ident => { + var func = Module["_" + ident]; + // closure exported function + assert(func, "Cannot call unknown function " + ident + ", make sure it is exported"); + return func; +}; + +var writeArrayToMemory = (array, buffer) => { + assert(array.length >= 0, "writeArrayToMemory array must have a length (should be an array or typed array)"); + GROWABLE_HEAP_I8().set(array, buffer); +}; + +var stringToUTF8OnStack = str => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; +}; + +/** + * @param {string|null=} returnType + * @param {Array=} argTypes + * @param {Arguments|Array=} args + * @param {Object=} opts + */ var ccall = (ident, returnType, argTypes, args, opts) => { + // For fast lookup of conversion functions + var toC = { + "string": str => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + // null string + ret = stringToUTF8OnStack(str); + } + return ret; + }, + "array": arr => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + function convertReturnValue(ret) { + if (returnType === "string") { + return UTF8ToString(ret); + } + if (returnType === "boolean") return Boolean(ret); + return ret; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== "array", 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + // Data for a previous async operation that was in flight before us. + var previousAsync = Asyncify.currData; + var ret = func(...cArgs); + function onDone(ret) { + runtimeKeepalivePop(); + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + var asyncMode = opts?.async; + // Keep the runtime alive through all calls. Note that this call might not be + // async, but for simplicity we push and pop in all calls. + runtimeKeepalivePush(); + if (Asyncify.currData != previousAsync) { + // A change in async operation happened. If there was already an async + // operation in flight before us, that is an error: we should not start + // another async operation while one is active, and we should not stop one + // either. The only valid combination is to have no change in the async + // data (so we either had one in flight and left it alone, or we didn't have + // one), or to have nothing in flight and to start one. + assert(!(previousAsync && Asyncify.currData), "We cannot start an async operation when one is already flight"); + assert(!(previousAsync && !Asyncify.currData), "We cannot stop an async operation in flight"); + // This is a new async operation. The wasm is paused and has unwound its stack. + // We need to return a Promise that resolves the return value + // once the stack is rewound and execution finishes. + assert(asyncMode, "The call to " + ident + " is running asynchronously. If this was intended, add the async option to the ccall/cwrap call."); + return Asyncify.whenDone().then(onDone); + } + ret = onDone(ret); + // If this is an async ccall, ensure we return a promise + if (asyncMode) return Promise.resolve(ret); + return ret; +}; + +/** + * @param {string=} returnType + * @param {Array=} argTypes + * @param {Object=} opts + */ var cwrap = (ident, returnType, argTypes, opts) => (...args) => ccall(ident, returnType, argTypes, args, opts); + +var uleb128Encode = (n, target) => { + assert(n < 16384); + if (n < 128) { + target.push(n); + } else { + target.push((n % 128) | 128, n >> 7); + } +}; + +var generateFuncType = (sig, target) => { + var sigRet = sig.slice(0, 1); + var sigParam = sig.slice(1); + var typeCodes = { + "i": 127, + // i32 + "p": 127, + // i32 + "j": 126, + // i64 + "f": 125, + // f32 + "d": 124, + // f64 + "e": 111 + }; + // Parameters, length + signatures + target.push(96); + uleb128Encode(sigParam.length, target); + for (var paramType of sigParam) { + assert(paramType in typeCodes, `invalid signature char: ${paramType}`); + target.push(typeCodes[paramType]); + } + // Return values, length + signatures + // With no multi-return in MVP, either 0 (void) or 1 (anything else) + if (sigRet == "v") { + target.push(0); + } else { + target.push(1, typeCodes[sigRet]); + } +}; + +var convertJsFunctionToWasm = (func, sig) => { + // If the type reflection proposal is available, use the new + // "WebAssembly.Function" constructor. + // Otherwise, construct a minimal wasm module importing the JS function and + // re-exporting it. + if (typeof WebAssembly.Function == "function") { + return new WebAssembly.Function(sigToWasmTypes(sig), func); + } + // The module is static, with the exception of the type section, which is + // generated based on the signature passed in. + var typeSectionBody = [ 1 ]; + generateFuncType(sig, typeSectionBody); + // Rest of the module is static + var bytes = [ 0, 97, 115, 109, // magic ("\0asm") + 1, 0, 0, 0, // version: 1 + 1 ]; + // Write the overall length of the type section followed by the body + uleb128Encode(typeSectionBody.length, bytes); + bytes.push(...typeSectionBody); + // The rest of the module is static + bytes.push(2, 7, // import section + // (import "e" "f" (func 0 (type 0))) + 1, 1, 101, 1, 102, 0, 0, 7, 5, // export section + // (export "f" (func 0 (type 0))) + 1, 1, 102, 0, 0); + // We can compile this wasm module synchronously because it is very small. + // This accepts an import (at "e.f"), that it reroutes to an export (at "f") + var module = new WebAssembly.Module(new Uint8Array(bytes)); + var instance = new WebAssembly.Instance(module, { + "e": { + "f": func + } + }); + var wrappedFunc = instance.exports["f"]; + return wrappedFunc; +}; + +var updateTableMap = (offset, count) => { + if (functionsInTableMap) { + for (var i = offset; i < offset + count; i++) { + var item = getWasmTableEntry(i); + // Ignore null values. + if (item) { + functionsInTableMap.set(item, i); + } + } + } +}; + +var functionsInTableMap; + +var getFunctionAddress = func => { + // First, create the map if this is the first use. + if (!functionsInTableMap) { + functionsInTableMap = new WeakMap; + updateTableMap(0, wasmTable.length); + } + return functionsInTableMap.get(func) || 0; +}; + +var freeTableIndexes = []; + +var getEmptyTableSlot = () => { + // Reuse a free index if there is one, otherwise grow. + if (freeTableIndexes.length) { + return freeTableIndexes.pop(); + } + // Grow the table + try { + /** @suppress {checkTypes} */ wasmTable.grow(1); + } catch (err) { + if (!(err instanceof RangeError)) { + throw err; + } + throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."; + } + return wasmTable.length - 1; +}; + +var setWasmTableEntry = (idx, func) => { + /** @suppress {checkTypes} */ wasmTable.set(idx, func); + // With ABORT_ON_WASM_EXCEPTIONS wasmTable.get is overridden to return wrapped + // functions so we need to call it here to retrieve the potential wrapper correctly + // instead of just storing 'func' directly into wasmTableMirror + /** @suppress {checkTypes} */ wasmTableMirror[idx] = wasmTable.get(idx); +}; + +/** @param {string=} sig */ var addFunction = (func, sig) => { + assert(typeof func != "undefined"); + // Check if the function is already in the table, to ensure each function + // gets a unique index. + var rtn = getFunctionAddress(func); + if (rtn) { + return rtn; + } + // It's not in the table, add it now. + // Make sure functionsInTableMap is actually up to date, that is, that this + // function is not actually in the wasm Table despite not being tracked in + // functionsInTableMap. + for (var i = 0; i < wasmTable.length; i++) { + assert(getWasmTableEntry(i) != func, "function in Table but not functionsInTableMap"); + } + var ret = getEmptyTableSlot(); + // Set the new value. + try { + // Attempting to call this with JS function will cause of table.set() to fail + setWasmTableEntry(ret, func); + } catch (err) { + if (!(err instanceof TypeError)) { + throw err; + } + assert(typeof sig != "undefined", "Missing signature argument to addFunction: " + func); + var wrapped = convertJsFunctionToWasm(func, sig); + setWasmTableEntry(ret, wrapped); + } + functionsInTableMap.set(func, ret); + return ret; +}; + +var removeFunction = index => { + functionsInTableMap.delete(getWasmTableEntry(index)); + setWasmTableEntry(index, null); + freeTableIndexes.push(index); +}; + +var allocateUTF8 = stringToNewUTF8; + +var FS_createPath = FS.createPath; + +var FS_unlink = path => FS.unlink(path); + +var FS_createLazyFile = FS.createLazyFile; + +var FS_createDevice = FS.createDevice; + +PThread.init(); + +FS.createPreloadedFile = FS_createPreloadedFile; + +FS.staticInit(); + +// Set module methods based on EXPORTED_RUNTIME_METHODS +Module["FS_createPath"] = FS.createPath; + +Module["FS_createDataFile"] = FS.createDataFile; + +Module["FS_createPreloadedFile"] = FS.createPreloadedFile; + +Module["FS_unlink"] = FS.unlink; + +Module["FS_createLazyFile"] = FS.createLazyFile; + +Module["FS_createDevice"] = FS.createDevice; + +embind_init_charCodes(); + +init_emval(); + +Fetch.init(); + +registerPreMainLoop(() => { + // If the current GL context is an OffscreenCanvas, but it was initialized + // with implicit swap mode, perform the swap on behalf of the user. + if (GL.currentContext && !GL.currentContextIsProxied && !GL.currentContext.attributes.explicitSwapControl && GL.currentContext.GLctx.commit) { + GL.currentContext.GLctx.commit(); + } +}); + +var miniTempWebGLFloatBuffersStorage = new Float32Array(288); + +// Create GL_POOL_TEMP_BUFFERS_SIZE+1 temporary buffers, for uploads of size 0 through GL_POOL_TEMP_BUFFERS_SIZE inclusive +for (/**@suppress{duplicate}*/ var i = 0; i <= 288; ++i) { + miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i); +} + +// End JS library code +// proxiedFunctionTable specifies the list of functions that can be called +// either synchronously or asynchronously from other threads in postMessage()d +// or internally queued events. This way a pthread in a Worker can synchronously +// access e.g. the DOM on the main thread. +var proxiedFunctionTable = [ _proc_exit, exitOnMainThread, pthreadCreateProxied, ___syscall_fcntl64, ___syscall_fstat64, ___syscall_openat, __mmap_js, __munmap_js, __setitimer_js, setCanvasElementSizeMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_fdstat_get, _fd_read, _fd_seek, _fd_write ]; + +function checkIncomingModuleAPI() { + ignoredModuleProp("fetchSettings"); +} + +var ASM_CONSTS = { + 414036: () => { + if (typeof window != "undefined") { + console.log("logRequest_downloadSucceeded OK"); + window.dispatchEvent(new CustomEvent("wasmTextDownloadSuccessed")); + } else { + console.log("logRequest_downloadSucceeded failed"); + } + }, + 414251: () => { + self.postMessage({ + type: "restart-load-media" + }); + }, + 414305: () => { + self.postMessage({ + type: "release_done" + }); + }, + 414353: $0 => { + const canvasId = Module.UTF8ToString($0); + Module.webcodec_seek_target_pts = -1; + if (!Module.frameQueueLastQueuedPtsMap) { + Module.frameQueueLastQueuedPtsMap = {}; + } + if (!Module.frameQueueLastRenderedPtsMap) { + Module.frameQueueLastRenderedPtsMap = {}; + } + if (!Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap = {}; + } + if (!Module.outputSerialMap) { + Module.outputSerialMap = {}; + } + Module.frameQueueLastQueuedPtsMap[canvasId] = -1; + Module.frameQueueLastRenderedPtsMap[canvasId] = -1; + Module.frameQueueReplayDiscardBeforePtsMap[canvasId] = -1; + Module.outputSerialMap[canvasId] = Promise.resolve(); + const decoder = Module.decoder; + Module.decoder = null; + if (decoder) { + try { + decoder.close(); + console.log("Closed VideoDecoder"); + } catch (e) { + console.warn("VideoDecoder close error:", e); + } + } + if (Module.frameQueueMap && Module.frameQueueMap[canvasId]) { + Module.frameQueueMap[canvasId].forEach(frame => { + if (frame.texture && Module.gl) { + Module.gl.deleteTexture(frame.texture); + frame.texture = null; + } + frame = null; + }); + Module.frameQueueMap[canvasId] = []; + Module.frameQueueMap = null; + console.log("Cleared frame queue"); + } + if (Module.gopChunk) { + Module.gopChunk.forEach(chunk => { + chunk.data = null; + chunk = null; + }); + Module.gopChunk = []; + console.log("Cleared GOP chunks"); + } + if (Module.shaderProgram && Module.gl) { + Module.gl.deleteProgram(Module.shaderProgram); + Module.shaderProgram = null; + console.log("Deleted shader program"); + } + if (Module.gl) { + Module.gl.getExtension("WEBGL_lose_context").loseContext(); + Module.gl = null; + console.log("Released WebGL context"); + } + }, + 415962: () => { + self.postMessage({ + type: "release_done" + }); + }, + 416010: $0 => { + const canvasId = Module.UTF8ToString($0); + Module.webcodec_seek_target_pts = -1; + if (!Module.frameQueueLastQueuedPtsMap) { + Module.frameQueueLastQueuedPtsMap = {}; + } + if (!Module.frameQueueLastRenderedPtsMap) { + Module.frameQueueLastRenderedPtsMap = {}; + } + if (!Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap = {}; + } + if (!Module.outputSerialMap) { + Module.outputSerialMap = {}; + } + Module.frameQueueLastQueuedPtsMap[canvasId] = -1; + Module.frameQueueLastRenderedPtsMap[canvasId] = -1; + Module.frameQueueReplayDiscardBeforePtsMap[canvasId] = -1; + Module.outputSerialMap[canvasId] = Promise.resolve(); + const decoder = Module.decoder; + if (decoder) { + try { + console.warn("wcodec ctx root: clean_tex_queue decoder flush", Module.decoder); + decoder.flush(); + } catch (e) { + console.warn("VideoDecoder close error:", e); + } + } + if (Module.frameQueueMap && Module.frameQueueMap[canvasId]) { + Module.frameQueueMap[canvasId].forEach(frame => { + if (frame.texture && Module.gl) { + Module.gl.deleteTexture(frame.texture); + frame.texture = null; + } + frame = null; + }); + Module.frameQueueMap[canvasId] = []; + console.log("Cleared frame queue"); + } + if (Module.gopChunk) { + Module.gopChunk.forEach(chunk => { + chunk.data = null; + chunk = null; + }); + Module.gopChunk = []; + console.log("Cleared GOP chunks"); + } + console.warn("wcodec ctx root: clean_tex_queue queue data", Module.frameQueueMap[canvasId]); + }, + 417410: $0 => { + const canvasId = Module.UTF8ToString($0); + if (!Module.frameQueueMap || !Module.frameQueueMap[canvasId] || Module.frameQueueMap[canvasId].length === 0) { + return -1; + } + const frame = Module.frameQueueMap[canvasId][0]; + if (frame && typeof frame.pts !== "undefined") { + return frame.pts; + } + return -1; + }, + 417709: $0 => { + const canvasId = Module.UTF8ToString($0); + if (!Module.frameQueueMap || !Module.frameQueueMap[canvasId] || Module.frameQueueMap[canvasId].length === 0) { + return 0; + } + const frame = Module.frameQueueMap[canvasId].shift(); + if (frame && frame.texture) { + Module.gl.deleteTexture(frame.texture); + frame.texture = null; + } + return Module.frameQueueMap[canvasId].length; + }, + 418072: () => { + const gl = Module.gl; + if (!gl) return -1; + const info = gl.getExtension("WEBGL_debug_renderer_info"); + if (info) { + const vendor = gl.getParameter(info.UNMASKED_VENDOR_WEBGL); + const renderer = gl.getParameter(info.UNMASKED_RENDERER_WEBGL); + console.log(`GPU: ${vendor} ${renderer}`); + } + let count = 0; + const width = 1920; + const height = 1080; + while (true) { + try { + const texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, texture); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); + count++; + console.log(`Created texture ${count}`); + } catch (e) { + break; + } + } + return count; + }, + 418695: $0 => { + Module.gl = null; + Module.shaderProgram = null; + Module.gopChunk = []; + Module.decoder_reconfiguring = false; + const c_id = Module.UTF8ToString($0); + Module.webcodec_seek_target_pts = -1; + function initFrameQueue(canvasId) { + if (!Module.frameQueueMap) { + Module.frameQueueMap = {}; + } + Module.frameQueueMap[c_id] = []; + if (!Module.frameQueueLastQueuedPtsMap) { + Module.frameQueueLastQueuedPtsMap = {}; + } + if (!Module.frameQueueLastRenderedPtsMap) { + Module.frameQueueLastRenderedPtsMap = {}; + } + if (!Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap = {}; + } + if (!Module.outputSerialMap) { + Module.outputSerialMap = {}; + } + Module.frameQueueLastQueuedPtsMap[c_id] = -1; + Module.frameQueueLastRenderedPtsMap[c_id] = -1; + Module.frameQueueReplayDiscardBeforePtsMap[c_id] = -1; + Module.outputSerialMap[c_id] = Promise.resolve(); + } + function initWebGL(canvas) { + Module.gl = canvas.getContext("webgl2", { + antialias: false, + powerPreference: "high-performance" + }); + if (!Module.gl) { + console.error("WebGL 2.0 not supported"); + return; + } + Module.gl.viewport(0, 0, canvas.width, canvas.height); + const vsSource = "#version 300 es\n" + "in vec4 aVertexPosition;\n" + "in vec2 aTextureCoord;\n" + "out vec2 vTextureCoord;\n" + "void main() {\n" + " gl_Position = aVertexPosition;\n" + " vTextureCoord = vec2(aTextureCoord.x, 1.0 - aTextureCoord.y); // 方法1 Y 坐标翻转\n" + "}"; + const fsSource = "#version 300 es\n" + "precision mediump float;\n" + "in vec2 vTextureCoord;\n" + "out vec4 FragColor;\n" + "uniform sampler2D uSampler;\n" + "void main() {\n" + " FragColor = texture(uSampler, vTextureCoord);\n" + " //FragColor = texture(uSampler, vec2(vTextureCoord.x, 1.0 - vTextureCoord.y)); // 方法2 反转 Y 坐标\n" + "}"; + const vertexShader = Module.gl.createShader(Module.gl.VERTEX_SHADER); + Module.gl.shaderSource(vertexShader, vsSource); + Module.gl.compileShader(vertexShader); + if (!Module.gl.getShaderParameter(vertexShader, Module.gl.COMPILE_STATUS)) { + console.error("顶点着色器编译错误:", Module.gl.getShaderInfoLog(vertexShader)); + return; + } + const fragmentShader = Module.gl.createShader(Module.gl.FRAGMENT_SHADER); + Module.gl.shaderSource(fragmentShader, fsSource); + Module.gl.compileShader(fragmentShader); + if (!Module.gl.getShaderParameter(fragmentShader, Module.gl.COMPILE_STATUS)) { + console.error("片段着色器编译错误:", Module.gl.getShaderInfoLog(fragmentShader)); + return; + } + Module.shaderProgram = Module.gl.createProgram(); + Module.gl.attachShader(Module.shaderProgram, vertexShader); + Module.gl.attachShader(Module.shaderProgram, fragmentShader); + Module.gl.linkProgram(Module.shaderProgram); + Module.gl.useProgram(Module.shaderProgram); + if (!Module.gl.getProgramParameter(Module.shaderProgram, Module.gl.LINK_STATUS)) { + console.error("着色器程序链接错误:", Module.gl.getProgramInfoLog(Module.shaderProgram)); + return; + } + const vertices = new Float32Array([ -1, 1, 0, 1, -1, -1, 0, 0, 1, 1, 1, 1, 1, -1, 1, 0 ]); + const vertexBuffer = Module.gl.createBuffer(); + Module.gl.bindBuffer(Module.gl.ARRAY_BUFFER, vertexBuffer); + Module.gl.bufferData(Module.gl.ARRAY_BUFFER, vertices, Module.gl.STATIC_DRAW); + const aVertexPosition = Module.gl.getAttribLocation(Module.shaderProgram, "aVertexPosition"); + Module.gl.vertexAttribPointer(aVertexPosition, 2, Module.gl.FLOAT, false, 16, 0); + Module.gl.enableVertexAttribArray(aVertexPosition); + const aTextureCoord = Module.gl.getAttribLocation(Module.shaderProgram, "aTextureCoord"); + Module.gl.vertexAttribPointer(aTextureCoord, 2, Module.gl.FLOAT, false, 16, 8); + Module.gl.enableVertexAttribArray(aTextureCoord); + } + function initDecoderCall(canvas_id) { + Module.decoderGeneration = (Module.decoderGeneration || 0) + 1; + const decoderGeneration = Module.decoderGeneration; + Module.decoder = new VideoDecoder({ + output: frame => { + const pts = frame.timestamp; + const frame_width = frame.codedWidth; + const frame_height = frame.codedHeight; + const outputChain = Module.outputSerialMap[canvas_id] || Promise.resolve(); + Module.outputSerialMap[canvas_id] = outputChain.then(async () => { + let bitmap = null; + let texture = null; + let frameClosed = false; + try { + if (decoderGeneration !== Module.decoderGeneration) { + console.warn("wcodec drop stale generation output pts=", pts, "generation=", decoderGeneration, "current=", Module.decoderGeneration); + frame.close(); + frameClosed = true; + return; + } + if (Module.webcodec_seek_target_pts >= 0) { + if (pts < Module.webcodec_seek_target_pts) { + frame.close(); + frameClosed = true; + return; + } else { + Module.webcodec_seek_target_pts = -1; + if (Module.frameQueueMap && Module.frameQueueMap[canvas_id]) { + Module.frameQueueMap[canvas_id].forEach(frame => { + if (frame.texture && Module.gl) { + Module.gl.deleteTexture(frame.texture); + frame.texture = null; + } + frame = null; + }); + Module.frameQueueMap[canvas_id] = []; + Module.frameQueueLastQueuedPtsMap[canvas_id] = -1; + Module.frameQueueLastRenderedPtsMap[canvas_id] = -1; + if (Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap[canvas_id] = -1; + } + console.log("Cleared frame queue"); + } + self.postMessage({ + type: "seek_success_target", + payload: { + "width": frame_width, + "height": frame_height, + "pts": pts, + "target_pts": Module.webcodec_seek_target_pts, + "cache_size": Module.frameQueueMap[canvas_id].length + } + }); + } + } + if (!Module.gl) { + console.error("wcodec ctx root:decoder callback : WebGL 2.0 not supported"); + frame.close(); + frameClosed = true; + return; + } + bitmap = await createImageBitmap(frame); + if (decoderGeneration !== Module.decoderGeneration) { + console.warn("wcodec drop stale generation bitmap pts=", pts, "generation=", decoderGeneration, "current=", Module.decoderGeneration); + return; + } + const lastRenderedPts = Module.frameQueueLastRenderedPtsMap[canvas_id] ?? -1; + const lastQueuedPts = Module.frameQueueLastQueuedPtsMap[canvas_id] ?? -1; + const replayDiscardBeforePts = Module.frameQueueReplayDiscardBeforePtsMap ? (Module.frameQueueReplayDiscardBeforePtsMap[canvas_id] ?? -1) : -1; + if (replayDiscardBeforePts >= 0 && pts <= replayDiscardBeforePts) { + console.warn("wcodec drop replay output pts=", pts, "discardBefore=", replayDiscardBeforePts, "lastRendered=", lastRenderedPts); + return; + } + if (replayDiscardBeforePts >= 0 && pts > replayDiscardBeforePts && Module.frameQueueReplayDiscardBeforePtsMap) { + console.warn("wcodec replay resume output pts=", pts, "discardBefore=", replayDiscardBeforePts); + Module.frameQueueReplayDiscardBeforePtsMap[canvas_id] = -1; + } + if (pts <= lastRenderedPts || (lastQueuedPts >= 0 && pts <= lastQueuedPts)) { + console.warn("wcodec drop stale output pts=", pts, "lastRendered=", lastRenderedPts, "lastQueued=", lastQueuedPts); + return; + } + texture = Module.gl.createTexture(); + Module.gl.bindTexture(Module.gl.TEXTURE_2D, texture); + Module.gl.texImage2D(Module.gl.TEXTURE_2D, 0, Module.gl.RGBA, Module.gl.RGBA, Module.gl.UNSIGNED_BYTE, bitmap); + Module.gl.texParameteri(Module.gl.TEXTURE_2D, Module.gl.TEXTURE_WRAP_S, Module.gl.CLAMP_TO_EDGE); + Module.gl.texParameteri(Module.gl.TEXTURE_2D, Module.gl.TEXTURE_WRAP_T, Module.gl.CLAMP_TO_EDGE); + Module.gl.texParameteri(Module.gl.TEXTURE_2D, Module.gl.TEXTURE_MIN_FILTER, Module.gl.LINEAR); + Module.frameQueueMap[canvas_id].push({ + "texture": texture, + "width": frame_width, + "height": frame_height, + "pts": pts + }); + Module.frameQueueLastQueuedPtsMap[canvas_id] = pts; + texture = null; + self.postMessage({ + type: "decode_video_progress", + payload: { + "width": frame_width, + "height": frame_height, + "pts": pts, + "cache_size": Module.frameQueueMap[canvas_id].length + } + }); + } catch (e) { + console.error("Frame processing error:", e); + if (texture && Module.gl) { + Module.gl.deleteTexture(texture); + } + } finally { + if (bitmap) { + bitmap.close(); + } + if (!frameClosed) { + frame.close(); + } + } + }).catch(e => { + console.error("Frame output chain error:", e); + try { + frame.close(); + } catch (closeErr) {} + }); + }, + error: e => { + if (Module.decoder_reconfiguring) { + return; + } + Module.decoder_reconfiguring = true; + Module.decoder_error_wait = true; + const currentQueueLength = Module.frameQueueMap && Module.frameQueueMap[canvas_id] ? Module.frameQueueMap[canvas_id].length : 0; + const currentLastRenderedPts = Module.frameQueueLastRenderedPtsMap ? (Module.frameQueueLastRenderedPtsMap[canvas_id] ?? -1) : -1; + const currentLastQueuedPts = Module.frameQueueLastQueuedPtsMap ? (Module.frameQueueLastQueuedPtsMap[canvas_id] ?? -1) : -1; + const summarizeChunks = chunks => { + if (!chunks || chunks.length <= 0) { + return "len=0"; + } + const first = chunks[0]; + const last = chunks[chunks.length - 1]; + let keyCount = 0; + for (const chunk of chunks) { + if (chunk && chunk.type === "key") { + keyCount += 1; + } + } + const head = chunks.slice(0, Math.min(chunks.length, 4)).map(chunk => `${chunk.type}@${chunk.timestamp}`).join("|"); + const tail = chunks.length > 4 ? chunks.slice(Math.max(4, chunks.length - 2)).map(chunk => `${chunk.type}@${chunk.timestamp}`).join("|") : ""; + return `len=${chunks.length} key_count=${keyCount} first=${first.type}@${first.timestamp} last=${last.type}@${last.timestamp} head=${head}${tail ? ` tail=${tail}` : ""}`; + }; + const gopSnapshotBeforeReplay = Module.gopChunk ? Module.gopChunk.slice() : []; + console.error("wcodec decoder error, replay current gop", "generation=", decoderGeneration, "queue_len=", currentQueueLength, "last_rendered_pts=", currentLastRenderedPts, "last_queued_pts=", currentLastQueuedPts, "gop_summary=", summarizeChunks(gopSnapshotBeforeReplay), "name=", e && e.name, "message=", e && e.message, "code=", e && e.code); + (async () => { + try { + if (Module.decoder) { + try { + Module.decoder.close(); + } catch (closeErr) {} + } + Module.ccall("wcodec_reset_decoder_status", "", [ "number" ], [ Module.decoder_ctx_ptr ]); + if (Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap[canvas_id] = currentLastQueuedPts; + } + if (Module.outputSerialMap) { + Module.outputSerialMap[canvas_id] = Promise.resolve(); + } + console.warn("wcodec preserve decoded queue during replay", "queue_len=", currentQueueLength, "last_rendered_pts=", currentLastRenderedPts, "last_queued_pts=", currentLastQueuedPts); + initDecoderCall(canvas_id); + Module.decoder.configure(Module.decoder_conf); + const replayChunks = gopSnapshotBeforeReplay; + const replayArmsKeyframeGate = replayChunks.length > 0 && replayChunks[0] && replayChunks[0].type === "key"; + if (replayArmsKeyframeGate) { + Module.ccall("wcodec_mark_keyframe_started", "", [ "number" ], [ Module.decoder_ctx_ptr ]); + console.warn("wcodec replay arm keyframe gate from replay buffer", "summary=", summarizeChunks(replayChunks)); + } else { + console.warn("wcodec replay keeps keyframe gate closed", "summary=", summarizeChunks(replayChunks)); + } + Module.gopChunk = replayChunks.slice(); + console.warn("wcodec replay reseed live gop buffer before decode", "summary=", summarizeChunks(Module.gopChunk)); + for (const chunk of replayChunks) { + Module.decoder.decode(new EncodedVideoChunk(chunk)); + } + } catch (err) { + console.error("reset decoder failed:", err); + } finally { + Module.decoder_error_wait = false; + Module.decoder_reconfiguring = false; + } + })(); + } + }); + } + initWebGL(Module.canvas); + initFrameQueue(c_id); + initDecoderCall(c_id); + }, + 429858: $0 => { + const c_id = Module.UTF8ToString($0); + if (!Module.frameQueueMap || !Module.frameQueueMap[c_id]) { + return 0; + } + return Module.frameQueueMap[c_id].length; + }, + 430014: $0 => { + if (Module.webcodec_seek_target_pts >= 0) { + return -1; + } + const canvasId = UTF8ToString($0); + if (!Module.frameQueueMap || !Module.frameQueueMap[canvasId] || !Module.frameQueueMap[canvasId].length) { + return -1; + } + const frameData = Module.frameQueueMap[canvasId].shift(); + if (!frameData) { + return 0; + } + Module.gl.activeTexture(Module.gl.TEXTURE0); + Module.gl.bindTexture(Module.gl.TEXTURE_2D, frameData["texture"]); + Module.gl.uniform1i(Module.gl.getUniformLocation(Module.shaderProgram, "uSampler"), 0); + Module.gl.drawArrays(Module.gl.TRIANGLE_STRIP, 0, 4); + Module.gl.deleteTexture(frameData["texture"]); + Module.av_align_video_play_ms = frameData["pts"]; + if (!Module.frameQueueLastRenderedPtsMap) { + Module.frameQueueLastRenderedPtsMap = {}; + } + Module.frameQueueLastRenderedPtsMap[canvasId] = Module.av_align_video_play_ms; + self.postMessage({ + type: "render_progress", + payload: { + "width": frameData["width"], + "height": frameData["height"], + "pts": Module.av_align_video_play_ms + } + }); + return 1; + }, + 431003: ($0, $1, $2, $3, $4, $5) => { + const canvasId = Module.UTF8ToString($4); + const data = new Uint8Array(Module.HEAPU8.subarray($0, $0 + $1)); + if ($3 > 0) { + const oldGopLen = Module.gopChunk ? Module.gopChunk.length : 0; + const oldGopLastTs = oldGopLen > 0 ? Module.gopChunk[oldGopLen - 1].timestamp : -1; + console.warn("core feed start new gop on key", "ts=", Number($2), "old_gop_len=", oldGopLen, "old_gop_last_ts=", oldGopLastTs); + Module.gopChunk = []; + } + if ($5 > 0 && Module.webcodec_seek_target_pts >= 0) { + if (Module.frameQueueMap && Module.frameQueueMap[canvasId]) { + Module.frameQueueMap[canvasId].forEach(frame => { + if (frame.texture && Module.gl) { + Module.gl.deleteTexture(frame.texture); + frame.texture = null; + } + frame = null; + }); + Module.frameQueueMap[canvasId] = []; + if (Module.frameQueueLastQueuedPtsMap) { + Module.frameQueueLastQueuedPtsMap[canvasId] = -1; + } + if (Module.frameQueueLastRenderedPtsMap) { + Module.frameQueueLastRenderedPtsMap[canvasId] = -1; + } + if (Module.frameQueueReplayDiscardBeforePtsMap) { + Module.frameQueueReplayDiscardBeforePtsMap[canvasId] = -1; + } + console.log("Cleared frame queue"); + } + } + const key_type = $3 > 0 ? "key" : "delta"; + const timestamp = Number($2); + Module.gopChunk.push({ + "type": key_type, + "timestamp": timestamp, + "data": data + }); + const chunk = new EncodedVideoChunk({ + type: key_type, + timestamp, + data + }); + Module.decoder.decode(chunk); + } +}; + +function js_alert_demuxer(msg) { + console.log(UTF8ToString(msg)); + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "alert_page", + payload: UTF8ToString(msg) + }); + self.close(); + } else { + alert(UTF8ToString(msg)); + } +} + +function js_reload_page_demuxer() { + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "reload_page" + }); + self.close(); + } else { + location.reload(); + } +} + +function js_alert_wdec(msg) { + console.log(UTF8ToString(msg)); + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "alert_page", + payload: UTF8ToString(msg) + }); + self.close(); + } else { + alert(UTF8ToString(msg)); + } +} + +function js_reload_page_wdec() { + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "reload_page" + }); + self.close(); + } else { + location.reload(); + } +} + +function js_alert_ffdec(msg) { + console.log(UTF8ToString(msg)); + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "alert_page", + payload: UTF8ToString(msg) + }); + self.close(); + } else { + alert(UTF8ToString(msg)); + } +} + +function js_reload_page_ffdec() { + if (typeof self !== "undefined" && self.constructor?.name === "DedicatedWorkerGlobalScope") { + postMessage({ + type: "reload_page" + }); + self.close(); + } else { + location.reload(); + } +} + +var wasmImports; + +function assignWasmImports() { + wasmImports = { + /** @export */ __assert_fail: ___assert_fail, + /** @export */ __cxa_throw: ___cxa_throw, + /** @export */ __handle_stack_overflow: ___handle_stack_overflow, + /** @export */ __pthread_create_js: ___pthread_create_js, + /** @export */ __syscall_fcntl64: ___syscall_fcntl64, + /** @export */ __syscall_fstat64: ___syscall_fstat64, + /** @export */ __syscall_openat: ___syscall_openat, + /** @export */ _abort_js: __abort_js, + /** @export */ _embind_register_bigint: __embind_register_bigint, + /** @export */ _embind_register_bool: __embind_register_bool, + /** @export */ _embind_register_emval: __embind_register_emval, + /** @export */ _embind_register_float: __embind_register_float, + /** @export */ _embind_register_integer: __embind_register_integer, + /** @export */ _embind_register_memory_view: __embind_register_memory_view, + /** @export */ _embind_register_std_string: __embind_register_std_string, + /** @export */ _embind_register_std_wstring: __embind_register_std_wstring, + /** @export */ _embind_register_void: __embind_register_void, + /** @export */ _emscripten_init_main_thread_js: __emscripten_init_main_thread_js, + /** @export */ _emscripten_notify_mailbox_postmessage: __emscripten_notify_mailbox_postmessage, + /** @export */ _emscripten_receive_on_main_thread_js: __emscripten_receive_on_main_thread_js, + /** @export */ _emscripten_runtime_keepalive_clear: __emscripten_runtime_keepalive_clear, + /** @export */ _emscripten_thread_cleanup: __emscripten_thread_cleanup, + /** @export */ _emscripten_thread_mailbox_await: __emscripten_thread_mailbox_await, + /** @export */ _emscripten_thread_set_strongref: __emscripten_thread_set_strongref, + /** @export */ _emscripten_throw_longjmp: __emscripten_throw_longjmp, + /** @export */ _gmtime_js: __gmtime_js, + /** @export */ _localtime_js: __localtime_js, + /** @export */ _mktime_js: __mktime_js, + /** @export */ _mmap_js: __mmap_js, + /** @export */ _munmap_js: __munmap_js, + /** @export */ _setitimer_js: __setitimer_js, + /** @export */ _tzset_js: __tzset_js, + /** @export */ clock_time_get: _clock_time_get, + /** @export */ emscripten_asm_const_int: _emscripten_asm_const_int, + /** @export */ emscripten_check_blocking_allowed: _emscripten_check_blocking_allowed, + /** @export */ emscripten_date_now: _emscripten_date_now, + /** @export */ emscripten_exit_with_live_runtime: _emscripten_exit_with_live_runtime, + /** @export */ emscripten_fetch_free: _emscripten_fetch_free, + /** @export */ emscripten_get_heap_max: _emscripten_get_heap_max, + /** @export */ emscripten_get_now: _emscripten_get_now, + /** @export */ emscripten_num_logical_cores: _emscripten_num_logical_cores, + /** @export */ emscripten_resize_heap: _emscripten_resize_heap, + /** @export */ emscripten_runtime_keepalive_check: _emscripten_runtime_keepalive_check, + /** @export */ emscripten_set_canvas_element_size: _emscripten_set_canvas_element_size, + /** @export */ emscripten_start_fetch: _emscripten_start_fetch, + /** @export */ emscripten_webgl_create_context: _emscripten_webgl_create_context, + /** @export */ emscripten_webgl_destroy_context: _emscripten_webgl_destroy_context, + /** @export */ emscripten_webgl_make_context_current: _emscripten_webgl_make_context_current, + /** @export */ environ_get: _environ_get, + /** @export */ environ_sizes_get: _environ_sizes_get, + /** @export */ exit: _exit, + /** @export */ fd_close: _fd_close, + /** @export */ fd_fdstat_get: _fd_fdstat_get, + /** @export */ fd_read: _fd_read, + /** @export */ fd_seek: _fd_seek, + /** @export */ fd_write: _fd_write, + /** @export */ glActiveTexture: _glActiveTexture, + /** @export */ glAttachShader: _glAttachShader, + /** @export */ glBindBuffer: _glBindBuffer, + /** @export */ glBindFramebuffer: _glBindFramebuffer, + /** @export */ glBindTexture: _glBindTexture, + /** @export */ glBlendFunc: _glBlendFunc, + /** @export */ glBufferData: _glBufferData, + /** @export */ glClear: _glClear, + /** @export */ glClearColor: _glClearColor, + /** @export */ glCompileShader: _glCompileShader, + /** @export */ glCreateProgram: _glCreateProgram, + /** @export */ glCreateShader: _glCreateShader, + /** @export */ glDeleteFramebuffers: _glDeleteFramebuffers, + /** @export */ glDeleteProgram: _glDeleteProgram, + /** @export */ glDeleteTextures: _glDeleteTextures, + /** @export */ glDepthFunc: _glDepthFunc, + /** @export */ glDisable: _glDisable, + /** @export */ glDrawArrays: _glDrawArrays, + /** @export */ glEnable: _glEnable, + /** @export */ glEnableVertexAttribArray: _glEnableVertexAttribArray, + /** @export */ glFramebufferTexture2D: _glFramebufferTexture2D, + /** @export */ glGenBuffers: _glGenBuffers, + /** @export */ glGenFramebuffers: _glGenFramebuffers, + /** @export */ glGenTextures: _glGenTextures, + /** @export */ glGetAttribLocation: _glGetAttribLocation, + /** @export */ glGetError: _glGetError, + /** @export */ glGetProgramiv: _glGetProgramiv, + /** @export */ glGetShaderInfoLog: _glGetShaderInfoLog, + /** @export */ glGetShaderiv: _glGetShaderiv, + /** @export */ glGetUniformLocation: _glGetUniformLocation, + /** @export */ glLinkProgram: _glLinkProgram, + /** @export */ glShaderSource: _glShaderSource, + /** @export */ glTexImage2D: _glTexImage2D, + /** @export */ glTexParameterf: _glTexParameterf, + /** @export */ glTexParameteri: _glTexParameteri, + /** @export */ glUniform1i: _glUniform1i, + /** @export */ glUniformMatrix4fv: _glUniformMatrix4fv, + /** @export */ glUseProgram: _glUseProgram, + /** @export */ glVertexAttribPointer: _glVertexAttribPointer, + /** @export */ glViewport: _glViewport, + /** @export */ invoke_iii, + /** @export */ invoke_iiii, + /** @export */ invoke_iiiii, + /** @export */ memory: wasmMemory, + /** @export */ proc_exit: _proc_exit + }; +} + +var wasmExports = await createWasm(); + +var ___wasm_call_ctors = createExportWrapper("__wasm_call_ctors", 0); + +var _malloc = Module["_malloc"] = createExportWrapper("malloc", 1); + +var _free = Module["_free"] = createExportWrapper("free", 1); + +var _bind_demuxer_callback = Module["_bind_demuxer_callback"] = createExportWrapper("bind_demuxer_callback", 10); + +var _init_demuxer_ctx = Module["_init_demuxer_ctx"] = createExportWrapper("init_demuxer_ctx", 0); + +var _release_demuxer_ctx = Module["_release_demuxer_ctx"] = createExportWrapper("release_demuxer_ctx", 1); + +var _push_buffer = Module["_push_buffer"] = createExportWrapper("push_buffer", 4); + +var _push_probe = Module["_push_probe"] = createExportWrapper("push_probe", 2); + +var _fetch_done_buffer = Module["_fetch_done_buffer"] = createExportWrapper("fetch_done_buffer", 1); + +var _demuxer_video_pkt = Module["_demuxer_video_pkt"] = createExportWrapper("demuxer_video_pkt", 3); + +var _ffdemuxer_set_read_frame_multiple_times = Module["_ffdemuxer_set_read_frame_multiple_times"] = createExportWrapper("ffdemuxer_set_read_frame_multiple_times", 2); + +var _ffdemuxer_set_mode_live = Module["_ffdemuxer_set_mode_live"] = createExportWrapper("ffdemuxer_set_mode_live", 1); + +var _ffdemuxer_set_format_hint = Module["_ffdemuxer_set_format_hint"] = createExportWrapper("ffdemuxer_set_format_hint", 2); + +var _test_call = Module["_test_call"] = createExportWrapper("test_call", 1); + +var _init_webcodec_ctx = Module["_init_webcodec_ctx"] = createExportWrapper("init_webcodec_ctx", 0); + +var _release_webcodec_ctx = Module["_release_webcodec_ctx"] = createExportWrapper("release_webcodec_ctx", 1); + +var _wcodec_gpu_memory_info = Module["_wcodec_gpu_memory_info"] = createExportWrapper("wcodec_gpu_memory_info", 1); + +var _wcodec_init_gl_cb = Module["_wcodec_init_gl_cb"] = createExportWrapper("wcodec_init_gl_cb", 2); + +var _wcodec_create_data_buffer = Module["_wcodec_create_data_buffer"] = createExportWrapper("wcodec_create_data_buffer", 2); + +var _wcodec_feed_data = Module["_wcodec_feed_data"] = createExportWrapper("wcodec_feed_data", 5); + +var _wcodec_reset_decoder_status = Module["_wcodec_reset_decoder_status"] = createExportWrapper("wcodec_reset_decoder_status", 1); + +var _wcodec_mark_keyframe_started = Module["_wcodec_mark_keyframe_started"] = createExportWrapper("wcodec_mark_keyframe_started", 1); + +var _free_buffer = Module["_free_buffer"] = createExportWrapper("free_buffer", 2); + +var _wcodec_get_frame_queue_length = Module["_wcodec_get_frame_queue_length"] = createExportWrapper("wcodec_get_frame_queue_length", 1); + +var _wcodec_render_frame_from_queue = Module["_wcodec_render_frame_from_queue"] = createExportWrapper("wcodec_render_frame_from_queue", 1); + +var _wcodec_first_cache_pts_ms = Module["_wcodec_first_cache_pts_ms"] = createExportWrapper("wcodec_first_cache_pts_ms", 1); + +var _wcodec_pop_cache = Module["_wcodec_pop_cache"] = createExportWrapper("wcodec_pop_cache", 1); + +var _wcodec_clean_tex_queue = Module["_wcodec_clean_tex_queue"] = createExportWrapper("wcodec_clean_tex_queue", 1); + +var _init_ffdecoder_ctx = Module["_init_ffdecoder_ctx"] = createExportWrapper("init_ffdecoder_ctx", 0); + +var _release_ffdecoder_ctx = Module["_release_ffdecoder_ctx"] = createExportWrapper("release_ffdecoder_ctx", 1); + +var _ffdecoder_set_video_decoder = Module["_ffdecoder_set_video_decoder"] = createExportWrapper("ffdecoder_set_video_decoder", 4); + +var _ffdecoder_set_video_decoder_with_extra = Module["_ffdecoder_set_video_decoder_with_extra"] = createExportWrapper("ffdecoder_set_video_decoder_with_extra", 6); + +var _ffdecoder_set_audio_decoder = Module["_ffdecoder_set_audio_decoder"] = createExportWrapper("ffdecoder_set_audio_decoder", 2); + +var _ffdecoder_decode_video_frame = Module["_ffdecoder_decode_video_frame"] = createExportWrapper("ffdecoder_decode_video_frame", 6); + +var _ffdecoder_decode_audio_frame = Module["_ffdecoder_decode_audio_frame"] = createExportWrapper("ffdecoder_decode_audio_frame", 6); + +var _ffdecoder_bind_callback = Module["_ffdecoder_bind_callback"] = createExportWrapper("ffdecoder_bind_callback", 3); + +var _ffdecoder_seek_set = Module["_ffdecoder_seek_set"] = createExportWrapper("ffdecoder_seek_set", 2); + +var _init_cylopengl_ctx = Module["_init_cylopengl_ctx"] = createExportWrapper("init_cylopengl_ctx", 0); + +var _cylopengl_create_context = Module["_cylopengl_create_context"] = createExportWrapper("cylopengl_create_context", 5); + +var _cylopengl_create_shader_algorithm = Module["_cylopengl_create_shader_algorithm"] = createExportWrapper("cylopengl_create_shader_algorithm", 4); + +var _cylopengl_release_renderer_source = Module["_cylopengl_release_renderer_source"] = createExportWrapper("cylopengl_release_renderer_source", 0); + +var _cylopengl_change_viewport = Module["_cylopengl_change_viewport"] = createExportWrapper("cylopengl_change_viewport", 2); + +var _cylopengl_is_init = Module["_cylopengl_is_init"] = createExportWrapper("cylopengl_is_init", 0); + +var _cylopengl_install_text_object = Module["_cylopengl_install_text_object"] = createExportWrapper("cylopengl_install_text_object", 1); + +var _cylopengl_render_text = Module["_cylopengl_render_text"] = createExportWrapper("cylopengl_render_text", 2); + +var _cylopengl_request_font_text_style_file = Module["_cylopengl_request_font_text_style_file"] = createExportWrapper("cylopengl_request_font_text_style_file", 1); + +var _cylopengl_append_cache_texture = Module["_cylopengl_append_cache_texture"] = createExportWrapper("cylopengl_append_cache_texture", 3); + +var _cylopengl_get_cache_length = Module["_cylopengl_get_cache_length"] = createExportWrapper("cylopengl_get_cache_length", 0); + +var _cylopengl_clean_cache_queue = Module["_cylopengl_clean_cache_queue"] = createExportWrapper("cylopengl_clean_cache_queue", 0); + +var _cylopengl_render_cache_texture = Module["_cylopengl_render_cache_texture"] = createExportWrapper("cylopengl_render_cache_texture", 0); + +var _cylopengl_render_test_rgba = Module["_cylopengl_render_test_rgba"] = createExportWrapper("cylopengl_render_test_rgba", 4); + +var _cylopengl_append_cache_yuv420p = Module["_cylopengl_append_cache_yuv420p"] = createExportWrapper("cylopengl_append_cache_yuv420p", 9); + +var _cylopengl_get_cache_yuv_length = Module["_cylopengl_get_cache_yuv_length"] = createExportWrapper("cylopengl_get_cache_yuv_length", 0); + +var _cylopengl_render_cache_yuv420p = Module["_cylopengl_render_cache_yuv420p"] = createExportWrapper("cylopengl_render_cache_yuv420p", 0); + +var _cylopengl_first_cache_pts_ms = Module["_cylopengl_first_cache_pts_ms"] = createExportWrapper("cylopengl_first_cache_pts_ms", 0); + +var _cylopengl_pop_cache_yuv420p = Module["_cylopengl_pop_cache_yuv420p"] = createExportWrapper("cylopengl_pop_cache_yuv420p", 0); + +var _cylopengl_render_test_yuv420p = Module["_cylopengl_render_test_yuv420p"] = createExportWrapper("cylopengl_render_test_yuv420p", 8); + +var _main = Module["_main"] = createExportWrapper("main", 2); + +var ___getTypeName = createExportWrapper("__getTypeName", 1); + +var __embind_initialize_bindings = createExportWrapper("_embind_initialize_bindings", 0); + +var __emscripten_tls_init = createExportWrapper("_emscripten_tls_init", 0); + +var _pthread_self = () => (_pthread_self = wasmExports["pthread_self"])(); + +var _emscripten_builtin_memalign = createExportWrapper("emscripten_builtin_memalign", 2); + +var __emscripten_proxy_main = Module["__emscripten_proxy_main"] = createExportWrapper("_emscripten_proxy_main", 2); + +var _emscripten_stack_get_base = () => (_emscripten_stack_get_base = wasmExports["emscripten_stack_get_base"])(); + +var _emscripten_stack_get_end = () => (_emscripten_stack_get_end = wasmExports["emscripten_stack_get_end"])(); + +var __emscripten_set_offscreencanvas_size_on_thread = createExportWrapper("_emscripten_set_offscreencanvas_size_on_thread", 4); + +var __emscripten_thread_init = createExportWrapper("_emscripten_thread_init", 6); + +var __emscripten_thread_crashed = createExportWrapper("_emscripten_thread_crashed", 0); + +var _fflush = createExportWrapper("fflush", 1); + +var __emscripten_run_on_main_thread_js = createExportWrapper("_emscripten_run_on_main_thread_js", 5); + +var __emscripten_thread_free_data = createExportWrapper("_emscripten_thread_free_data", 1); + +var __emscripten_thread_exit = createExportWrapper("_emscripten_thread_exit", 1); + +var __emscripten_timeout = createExportWrapper("_emscripten_timeout", 2); + +var _strerror = createExportWrapper("strerror", 1); + +var __emscripten_check_mailbox = createExportWrapper("_emscripten_check_mailbox", 0); + +var _setThrew = createExportWrapper("setThrew", 2); + +var _emscripten_stack_init = () => (_emscripten_stack_init = wasmExports["emscripten_stack_init"])(); + +var _emscripten_stack_set_limits = (a0, a1) => (_emscripten_stack_set_limits = wasmExports["emscripten_stack_set_limits"])(a0, a1); + +var _emscripten_stack_get_free = () => (_emscripten_stack_get_free = wasmExports["emscripten_stack_get_free"])(); + +var __emscripten_stack_restore = a0 => (__emscripten_stack_restore = wasmExports["_emscripten_stack_restore"])(a0); + +var __emscripten_stack_alloc = a0 => (__emscripten_stack_alloc = wasmExports["_emscripten_stack_alloc"])(a0); + +var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports["emscripten_stack_get_current"])(); + +var ___cxa_increment_exception_refcount = createExportWrapper("__cxa_increment_exception_refcount", 1); + +var ___set_stack_limits = Module["___set_stack_limits"] = createExportWrapper("__set_stack_limits", 2); + +var dynCall_ii = Module["dynCall_ii"] = createExportWrapper("dynCall_ii", 2); + +var dynCall_iii = Module["dynCall_iii"] = createExportWrapper("dynCall_iii", 3); + +var dynCall_iiii = Module["dynCall_iiii"] = createExportWrapper("dynCall_iiii", 4); + +var dynCall_jiji = Module["dynCall_jiji"] = createExportWrapper("dynCall_jiji", 4); + +var dynCall_jiiji = Module["dynCall_jiiji"] = createExportWrapper("dynCall_jiiji", 5); + +var dynCall_iiiji = Module["dynCall_iiiji"] = createExportWrapper("dynCall_iiiji", 5); + +var dynCall_v = Module["dynCall_v"] = createExportWrapper("dynCall_v", 1); + +var dynCall_viiiiii = Module["dynCall_viiiiii"] = createExportWrapper("dynCall_viiiiii", 7); + +var dynCall_vi = Module["dynCall_vi"] = createExportWrapper("dynCall_vi", 2); + +var dynCall_iiiii = Module["dynCall_iiiii"] = createExportWrapper("dynCall_iiiii", 5); + +var dynCall_jiiij = Module["dynCall_jiiij"] = createExportWrapper("dynCall_jiiij", 5); + +var dynCall_viii = Module["dynCall_viii"] = createExportWrapper("dynCall_viii", 4); + +var dynCall_iiiiij = Module["dynCall_iiiiij"] = createExportWrapper("dynCall_iiiiij", 6); + +var dynCall_vii = Module["dynCall_vii"] = createExportWrapper("dynCall_vii", 3); + +var dynCall_iiiiii = Module["dynCall_iiiiii"] = createExportWrapper("dynCall_iiiiii", 6); + +var dynCall_viiiii = Module["dynCall_viiiii"] = createExportWrapper("dynCall_viiiii", 6); + +var dynCall_viiiiiifi = Module["dynCall_viiiiiifi"] = createExportWrapper("dynCall_viiiiiifi", 9); + +var dynCall_viiii = Module["dynCall_viiii"] = createExportWrapper("dynCall_viiii", 5); + +var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = createExportWrapper("dynCall_iiiiiii", 7); + +var dynCall_viiiiiiiiiiiiii = Module["dynCall_viiiiiiiiiiiiii"] = createExportWrapper("dynCall_viiiiiiiiiiiiii", 15); + +var dynCall_viiiiiiiii = Module["dynCall_viiiiiiiii"] = createExportWrapper("dynCall_viiiiiiiii", 10); + +var dynCall_viiiiiiiiiii = Module["dynCall_viiiiiiiiiii"] = createExportWrapper("dynCall_viiiiiiiiiii", 12); + +var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = createExportWrapper("dynCall_viiiiiiii", 9); + +var dynCall_viiiiiii = Module["dynCall_viiiiiii"] = createExportWrapper("dynCall_viiiiiii", 8); + +var dynCall_viiiiiiiiiiii = Module["dynCall_viiiiiiiiiiii"] = createExportWrapper("dynCall_viiiiiiiiiiii", 13); + +var dynCall_viiiifii = Module["dynCall_viiiifii"] = createExportWrapper("dynCall_viiiifii", 8); + +var dynCall_fii = Module["dynCall_fii"] = createExportWrapper("dynCall_fii", 3); + +var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = createExportWrapper("dynCall_viiiiiiiiii", 11); + +var dynCall_viiijj = Module["dynCall_viiijj"] = createExportWrapper("dynCall_viiijj", 6); + +var dynCall_iiiiiiidiiddii = Module["dynCall_iiiiiiidiiddii"] = createExportWrapper("dynCall_iiiiiiidiiddii", 14); + +var dynCall_jij = Module["dynCall_jij"] = createExportWrapper("dynCall_jij", 3); + +var dynCall_jii = Module["dynCall_jii"] = createExportWrapper("dynCall_jii", 3); + +var dynCall_viifi = Module["dynCall_viifi"] = createExportWrapper("dynCall_viifi", 5); + +var dynCall_fiii = Module["dynCall_fiii"] = createExportWrapper("dynCall_fiii", 4); + +var dynCall_viidi = Module["dynCall_viidi"] = createExportWrapper("dynCall_viidi", 5); + +var dynCall_dd = Module["dynCall_dd"] = createExportWrapper("dynCall_dd", 2); + +var dynCall_iiiiiiiii = Module["dynCall_iiiiiiiii"] = createExportWrapper("dynCall_iiiiiiiii", 9); + +var dynCall_iidiiii = Module["dynCall_iidiiii"] = createExportWrapper("dynCall_iidiiii", 7); + +var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = createExportWrapper("dynCall_iiiiiiiiii", 10); + +var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = createExportWrapper("dynCall_iiiiiiii", 8); + +var dynCall_viijii = Module["dynCall_viijii"] = createExportWrapper("dynCall_viijii", 6); + +var dynCall_iiiiid = Module["dynCall_iiiiid"] = createExportWrapper("dynCall_iiiiid", 6); + +var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = createExportWrapper("dynCall_iiiiijj", 7); + +var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = createExportWrapper("dynCall_iiiiiijj", 8); + +var _asyncify_start_unwind = createExportWrapper("asyncify_start_unwind", 1); + +var _asyncify_stop_unwind = createExportWrapper("asyncify_stop_unwind", 0); + +var _asyncify_start_rewind = createExportWrapper("asyncify_start_rewind", 1); + +var _asyncify_stop_rewind = createExportWrapper("asyncify_stop_rewind", 0); + +var _ff_h264_cabac_tables = Module["_ff_h264_cabac_tables"] = 192984; + +function invoke_iii(index, a1, a2) { + var sp = stackSave(); + try { + return dynCall_iii(index, a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iiiii(index, a1, a2, a3, a4) { + var sp = stackSave(); + try { + return dynCall_iiiii(index, a1, a2, a3, a4); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +function invoke_iiii(index, a1, a2, a3) { + var sp = stackSave(); + try { + return dynCall_iiii(index, a1, a2, a3); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } +} + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === +Module["addRunDependency"] = addRunDependency; + +Module["removeRunDependency"] = removeRunDependency; + +Module["ccall"] = ccall; + +Module["cwrap"] = cwrap; + +Module["addFunction"] = addFunction; + +Module["removeFunction"] = removeFunction; + +Module["UTF8ToString"] = UTF8ToString; + +Module["stringToUTF8"] = stringToUTF8; + +Module["FS_createPreloadedFile"] = FS_createPreloadedFile; + +Module["FS_unlink"] = FS_unlink; + +Module["FS_createPath"] = FS_createPath; + +Module["FS_createDevice"] = FS_createDevice; + +Module["FS"] = FS; + +Module["FS_createDataFile"] = FS_createDataFile; + +Module["FS_createLazyFile"] = FS_createLazyFile; + +Module["allocateUTF8"] = allocateUTF8; + +var missingLibrarySymbols = [ "writeI53ToI64Clamped", "writeI53ToI64Signaling", "writeI53ToU64Clamped", "writeI53ToU64Signaling", "convertI32PairToI53", "convertI32PairToI53Checked", "convertU32PairToI53", "getTempRet0", "setTempRet0", "inetPton4", "inetNtop4", "inetPton6", "inetNtop6", "readSockaddr", "writeSockaddr", "emscriptenLog", "runMainThreadEmAsm", "listenOnce", "autoResumeAudioContext", "dynCallLegacy", "getDynCaller", "dynCall", "asmjsMangle", "getNativeTypeSize", "addOnInit", "addOnPostCtor", "addOnPreMain", "addOnExit", "STACK_SIZE", "STACK_ALIGN", "POINTER_SIZE", "ASSERTIONS", "reallyNegative", "unSign", "strLen", "reSign", "formatString", "intArrayToString", "AsciiToString", "registerKeyEventCallback", "findEventTarget", "getBoundingClientRect", "fillMouseEventData", "registerMouseEventCallback", "registerWheelEventCallback", "registerUiEventCallback", "registerFocusEventCallback", "fillDeviceOrientationEventData", "registerDeviceOrientationEventCallback", "fillDeviceMotionEventData", "registerDeviceMotionEventCallback", "screenOrientation", "fillOrientationChangeEventData", "registerOrientationChangeEventCallback", "fillFullscreenChangeEventData", "registerFullscreenChangeEventCallback", "JSEvents_requestFullscreen", "JSEvents_resizeCanvasForFullscreen", "registerRestoreOldStyle", "hideEverythingExceptGivenElement", "restoreHiddenElements", "setLetterbox", "softFullscreenResizeWebGLRenderTarget", "doRequestFullscreen", "fillPointerlockChangeEventData", "registerPointerlockChangeEventCallback", "registerPointerlockErrorEventCallback", "requestPointerLock", "fillVisibilityChangeEventData", "registerVisibilityChangeEventCallback", "registerTouchEventCallback", "fillGamepadEventData", "registerGamepadEventCallback", "registerBeforeUnloadEventCallback", "fillBatteryEventData", "battery", "registerBatteryEventCallback", "setCanvasElementSize", "getCanvasSizeCallingThread", "getCanvasSizeMainThread", "getCanvasElementSize", "jsStackTrace", "getCallstack", "convertPCtoSourceLocation", "wasiRightsToMuslOFlags", "wasiOFlagsToMuslOFlags", "safeSetTimeout", "setImmediateWrapped", "safeRequestAnimationFrame", "clearImmediateWrapped", "registerPostMainLoop", "getPromise", "makePromise", "idsToPromises", "makePromiseCallback", "findMatchingCatch", "Browser_asyncPrepareDataCounter", "arraySum", "addDays", "getSocketFromFD", "getSocketAddress", "FS_mkdirTree", "_setNetworkCallback", "emscriptenWebGLGet", "emscriptenWebGLGetUniform", "emscriptenWebGLGetVertexAttrib", "__glGetActiveAttribOrUniform", "writeGLArray", "emscripten_webgl_destroy_context_before_on_calling_thread", "registerWebGlEventCallback", "GLFW_Window", "emscriptenWebGLGetIndexed", "ALLOC_NORMAL", "ALLOC_STACK", "allocate", "writeStringToMemory", "writeAsciiToMemory", "demangle", "stackTrace", "throwInternalError", "whenDependentTypesAreResolved", "getTypeName", "getFunctionName", "getFunctionArgsName", "heap32VectorToArray", "requireRegisteredType", "usesDestructorStack", "createJsInvokerSignature", "checkArgCount", "getRequiredArgCount", "createJsInvoker", "UnboundTypeError", "PureVirtualError", "throwUnboundTypeError", "ensureOverloadTable", "exposePublicSymbol", "replacePublicSymbol", "createNamedFunction", "getBasestPointer", "registerInheritedInstance", "unregisterInheritedInstance", "getInheritedInstance", "getInheritedInstanceCount", "getLiveInheritedInstances", "enumReadValueFromPointer", "runDestructors", "craftInvokerFunction", "embind__requireFunction", "genericPointerToWireType", "constNoSmartPtrRawPointerToWireType", "nonConstNoSmartPtrRawPointerToWireType", "init_RegisteredPointer", "RegisteredPointer", "RegisteredPointer_fromWireType", "runDestructor", "releaseClassHandle", "detachFinalizer", "attachFinalizer", "makeClassHandle", "init_ClassHandle", "ClassHandle", "throwInstanceAlreadyDeleted", "flushPendingDeletes", "setDelayFunction", "RegisteredClass", "shallowCopyInternalPointer", "downcastPointer", "upcastPointer", "validateThis", "char_0", "char_9", "makeLegalFunctionName", "getStringOrSymbol", "emval_get_global", "emval_returnValue", "emval_lookupTypes", "emval_addMethodCaller" ]; + +missingLibrarySymbols.forEach(missingLibrarySymbol); + +var unexportedSymbols = [ "run", "out", "err", "callMain", "abort", "wasmMemory", "wasmExports", "GROWABLE_HEAP_I8", "GROWABLE_HEAP_U8", "GROWABLE_HEAP_I16", "GROWABLE_HEAP_U16", "GROWABLE_HEAP_I32", "GROWABLE_HEAP_U32", "GROWABLE_HEAP_F32", "GROWABLE_HEAP_F64", "writeStackCookie", "checkStackCookie", "writeI53ToI64", "readI53FromI64", "readI53FromU64", "INT53_MAX", "INT53_MIN", "bigintToI53Checked", "stackSave", "stackRestore", "stackAlloc", "ptrToString", "zeroMemory", "exitJS", "getHeapMax", "growMemory", "ENV", "setStackLimits", "ERRNO_CODES", "strError", "DNS", "Protocols", "Sockets", "timers", "warnOnce", "readEmAsmArgsArray", "readEmAsmArgs", "runEmAsmFunction", "jstoi_q", "jstoi_s", "getExecutableName", "handleException", "keepRuntimeAlive", "runtimeKeepalivePush", "runtimeKeepalivePop", "callUserCallback", "maybeExit", "asyncLoad", "alignMemory", "mmapAlloc", "HandleAllocator", "wasmTable", "noExitRuntime", "addOnPreRun", "addOnPostRun", "getCFunc", "uleb128Encode", "sigToWasmTypes", "generateFuncType", "convertJsFunctionToWasm", "freeTableIndexes", "functionsInTableMap", "getEmptyTableSlot", "updateTableMap", "getFunctionAddress", "setValue", "getValue", "PATH", "PATH_FS", "UTF8Decoder", "UTF8ArrayToString", "stringToUTF8Array", "lengthBytesUTF8", "intArrayFromString", "stringToAscii", "UTF16Decoder", "UTF16ToString", "stringToUTF16", "lengthBytesUTF16", "UTF32ToString", "stringToUTF32", "lengthBytesUTF32", "stringToNewUTF8", "stringToUTF8OnStack", "writeArrayToMemory", "JSEvents", "specialHTMLTargets", "maybeCStringToJsString", "findCanvasEventTarget", "currentFullscreenStrategy", "restoreOldWindowedStyle", "setCanvasElementSizeCallingThread", "setOffscreenCanvasSizeOnTargetThread", "setCanvasElementSizeMainThread", "UNWIND_CACHE", "ExitStatus", "getEnvStrings", "checkWasiClock", "doReadv", "doWritev", "initRandomFill", "randomFill", "emSetImmediate", "emClearImmediate_deps", "emClearImmediate", "registerPreMainLoop", "promiseMap", "uncaughtExceptionCount", "exceptionLast", "exceptionCaught", "ExceptionInfo", "Browser", "getPreloadedImageData__data", "wget", "MONTH_DAYS_REGULAR", "MONTH_DAYS_LEAP", "MONTH_DAYS_REGULAR_CUMULATIVE", "MONTH_DAYS_LEAP_CUMULATIVE", "isLeapYear", "ydayFromDate", "SYSCALLS", "preloadPlugins", "FS_modeStringToFlags", "FS_getMode", "FS_stdin_getChar_buffer", "FS_stdin_getChar", "FS_readFile", "MEMFS", "TTY", "PIPEFS", "SOCKFS", "tempFixedLengthArray", "miniTempWebGLFloatBuffers", "miniTempWebGLIntBuffers", "heapObjectForWebGLType", "toTypedArrayIndex", "webgl_enable_ANGLE_instanced_arrays", "webgl_enable_OES_vertex_array_object", "webgl_enable_WEBGL_draw_buffers", "webgl_enable_WEBGL_multi_draw", "webgl_enable_EXT_polygon_offset_clamp", "webgl_enable_EXT_clip_control", "webgl_enable_WEBGL_polygon_mode", "GL", "computeUnpackAlignedImageSize", "colorChannelsInGlTextureFormat", "emscriptenWebGLGetTexPixelData", "webglGetUniformLocation", "webglPrepareUniformLocationsBeforeFirstUse", "webglGetLeftBracePos", "AL", "GLUT", "EGL", "GLEW", "IDBStore", "runAndAbortIfError", "Asyncify", "Fibers", "SDL", "SDL_gfx", "GLFW", "webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance", "webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance", "allocateUTF8OnStack", "print", "printErr", "PThread", "terminateWorker", "cleanupThread", "registerTLSInit", "spawnThread", "exitOnMainThread", "proxyToMainThread", "proxiedJSCallArgs", "invokeEntryPoint", "checkMailbox", "InternalError", "BindingError", "throwBindingError", "registeredTypes", "awaitingDependencies", "typeDependencies", "tupleRegistrations", "structRegistrations", "sharedRegisterType", "embind_charCodes", "embind_init_charCodes", "readLatin1String", "GenericWireTypeSize", "EmValType", "EmValOptionalType", "embindRepr", "registeredInstances", "registeredPointers", "registerType", "integerReadValueFromPointer", "floatReadValueFromPointer", "readPointer", "finalizationRegistry", "detachFinalizer_deps", "deletionQueue", "delayFunction", "emval_freelist", "emval_handles", "emval_symbols", "init_emval", "count_emval_handles", "Emval", "emval_methodCallers", "reflectConstruct", "Fetch", "fetchDeleteCachedData", "fetchLoadCachedData", "fetchCacheData", "fetchXHR" ]; + +unexportedSymbols.forEach(unexportedRuntimeSymbol); + +var calledRun; + +function callMain() { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); + assert(typeof onPreRuns === "undefined" || onPreRuns.length == 0, "cannot call main when preRun functions remain to be called"); + var entryFunction = __emscripten_proxy_main; + // With PROXY_TO_PTHREAD make sure we keep the runtime alive until the + // proxied main calls exit (see exitOnMainThread() for where Pop is called). + runtimeKeepalivePush(); + var argc = 0; + var argv = 0; + try { + var ret = entryFunction(argc, argv); + // if we're not running an evented main loop, it's time to exit + exitJS(ret, /* implicit = */ true); + return ret; + } catch (e) { + return handleException(e); + } +} + +function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + // See $establishStackSpace for the equivalent code that runs on a thread + assert(!ENVIRONMENT_IS_PTHREAD); + _emscripten_stack_init(); + // TODO(sbc): Move writeStackCookie to native to to avoid this. + writeStackCookie(); +} + +function run() { + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + if ((ENVIRONMENT_IS_PTHREAD)) { + readyPromiseResolve(Module); + initRuntime(); + return; + } + stackCheckInit(); + preRun(); + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + dependenciesFulfilled = run; + return; + } + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + assert(!calledRun); + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + preMain(); + readyPromiseResolve(Module); + Module["onRuntimeInitialized"]?.(); + consumedModuleProp("onRuntimeInitialized"); + var noInitialRun = Module["noInitialRun"]; + legacyModuleProp("noInitialRun", "noInitialRun"); + if (!noInitialRun) callMain(); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(() => { + setTimeout(() => Module["setStatus"](""), 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); +} + +function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = x => { + has = true; + }; + try { + // it doesn't matter if it fails + _fflush(0); + // also flush in the JS FS layer + [ "stdout", "stderr" ].forEach(name => { + var info = FS.analyzePath("/dev/" + name); + if (!info) return; + var stream = info.object; + var rdev = stream.rdev; + var tty = TTY.ttys[rdev]; + if (tty?.output?.length) { + has = true; + } + }); + } catch (e) {} + out = oldOut; + err = oldErr; + if (has) { + warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc."); + } +} + +if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [ Module["preInit"] ]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } +} + +consumedModuleProp("preInit"); + +run(); + +// end include: postamble.js +// include: postamble_modularize.js +// In MODULARIZE mode we wrap the generated code in a factory function +// and return either the Module itself, or a promise of the module. +// We assign to the `moduleRtn` global here and configure closure to see +// this as and extern so it won't get minified. +moduleRtn = readyPromise; + +// Assertion for attempting to access module properties on the incoming +// moduleArg. In the past we used this object as the prototype of the module +// and assigned properties to it, but now we return a distinct object. This +// keeps the instance private until it is ready (i.e the promise has been +// resolved). +for (const prop of Object.keys(Module)) { + if (!(prop in moduleArg)) { + Object.defineProperty(moduleArg, prop, { + configurable: true, + get() { + abort(`Access to module property ('${prop}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`); + } + }); + } +} + + + return moduleRtn; +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') { + module.exports = WasmModule; + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = WasmModule; +} else if (typeof define === 'function' && define['amd']) + define([], () => WasmModule); +var isPthread = globalThis.self?.name?.startsWith('em-pthread'); +// When running as a pthread, construct a new instance on startup +isPthread && WasmModule(); diff --git a/web/public/static/js/h265web2/h265web_wasm.wasm b/web/public/static/js/h265web2/h265web_wasm.wasm new file mode 100644 index 000000000..af7c7d63a --- /dev/null +++ b/web/public/static/js/h265web2/h265web_wasm.wasm @@ -0,0 +1,17 @@ + + + + + + 503 Backend.max_conn reached + + +

Error 503 Backend.max_conn reached

+

Backend.max_conn reached

+

Error 54113

+

Details: cache-hkg17932-HKG 1774949144 1743864036

+
+

Varnish cache server

+ + diff --git a/web/src/views/common/h265web.vue b/web/src/views/common/h265web.vue index cf7be7f8d..c3461c846 100644 --- a/web/src/views/common/h265web.vue +++ b/web/src/views/common/h265web.vue @@ -135,20 +135,36 @@ export default { create(url) { this.playerLoading = true const options = {} - h265webPlayer[this._uid] = new window.new265webjs(url, Object.assign( - { - player: 'glplayer', // 播放器容器id - width: this.playerWidth, - height: this.playerHeight, - token: token, - extInfo: { - coreProbePart: 0.4, - probeSize: 8192, - ignoreAudio: this.hasAudio === null ? 0 : (this.hasAudio ? 0 : 1) - } - }, - options - )) + h265webPlayer[this._uid] = H265webjsPlayer() + h265webPlayer[this._uid].build({ + player_id: 'glplayer', + base_url: './output/', + wasm_js_uri: 'h265web_wasm.js', + wasm_wasm_uri: 'h265web_wasm.wasm', + ext_src_js_uri: 'extjs.js', + ext_wasm_js_uri: 'extwasm.js', + width: this.playerWidth, + height: this.playerHeight, + auto_play: true, + ignore_audio: false + }) + h265webPlayer[this._uid].load_media('./resource/demo.mp4'); + + + // h265webPlayer[this._uid] = new window.H265webjsPlayer(url, Object.assign( + // { + // player: 'glplayer', // 播放器容器id + // width: this.playerWidth, + // height: this.playerHeight, + // token: token, + // extInfo: { + // coreProbePart: 0.4, + // probeSize: 8192, + // ignoreAudio: this.hasAudio === null ? 0 : (this.hasAudio ? 0 : 1) + // } + // }, + // options + // )) const h265web = h265webPlayer[this._uid] h265web.onOpenFullScreen = () => { this.fullscreen = true