@zappar/zappar-cv 0.4.0-beta.1 → 0.4.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +79 -34
  2. package/README.md +2 -2
  3. package/lib/additional.d.ts +2 -1
  4. package/lib/camera-source-map.d.ts +10 -0
  5. package/lib/camera-source-map.js +40 -0
  6. package/lib/camera-source.d.ts +2 -5
  7. package/lib/camera-source.js +3 -13
  8. package/lib/compatibility.js +1 -1
  9. package/lib/drawcamera.js +2 -1
  10. package/lib/gen/zappar-client.js +6 -16
  11. package/lib/gen/zappar-cwrap.js +37 -28
  12. package/lib/gen/zappar-native.d.ts +11 -1
  13. package/lib/gen/zappar-native.js +13 -1
  14. package/lib/gen/zappar-server.js +1 -5
  15. package/lib/gen/zappar.d.ts +12 -0
  16. package/lib/gen/zappar.js +5 -3
  17. package/lib/gfx.d.ts +1 -0
  18. package/lib/gfx.js +4 -0
  19. package/lib/gl-state-manager.d.ts +9 -0
  20. package/lib/gl-state-manager.js +35 -0
  21. package/lib/html-element-source.d.ts +3 -20
  22. package/lib/html-element-source.js +19 -263
  23. package/lib/image-process-gl.d.ts +37 -0
  24. package/lib/image-process-gl.js +298 -0
  25. package/lib/imagebitmap-camera-source.d.ts +36 -0
  26. package/lib/imagebitmap-camera-source.js +277 -0
  27. package/lib/imagetracker.d.ts +28 -0
  28. package/lib/imagetracker.js +119 -0
  29. package/lib/index.d.ts +1 -1
  30. package/lib/mstp-camera-source.d.ts +29 -0
  31. package/lib/mstp-camera-source.js +230 -0
  32. package/lib/native.js +119 -8
  33. package/lib/pipeline.d.ts +13 -3
  34. package/lib/pipeline.js +95 -26
  35. package/lib/profile.d.ts +2 -0
  36. package/lib/profile.js +55 -44
  37. package/lib/riff-reader.d.ts +18 -0
  38. package/lib/riff-reader.js +56 -0
  39. package/lib/sequencerecorder.d.ts +1 -0
  40. package/lib/sequencerecorder.js +11 -0
  41. package/lib/sequencesource.d.ts +7 -1
  42. package/lib/sequencesource.js +89 -47
  43. package/lib/source.d.ts +6 -4
  44. package/lib/version.d.ts +1 -1
  45. package/lib/version.js +1 -1
  46. package/lib/worker-client.js +0 -5
  47. package/lib/worker-imagebitmap.d.ts +5 -0
  48. package/lib/worker-imagebitmap.js +63 -0
  49. package/lib/worker-server.d.ts +0 -5
  50. package/lib/worker-server.js +120 -30
  51. package/lib/workerinterface.d.ts +47 -1
  52. package/lib/zcv.js +117 -135
  53. package/lib/zcv.wasm +0 -0
  54. package/package.json +34 -31
  55. package/umd/e9486c1cdadb21608a4f7e2fa3be9517.wasm +0 -0
  56. package/umd/zappar-cv.js +1 -9
  57. package/umd/zappar-cv.worker.js +1 -1
  58. package/lib/bundleworker-mainthread.d.ts +0 -2
  59. package/lib/bundleworker-mainthread.js +0 -36
  60. package/lib/bundleworker-worker.d.ts +0 -3
  61. package/lib/bundleworker-worker.js +0 -47
  62. package/umd/5dd5cacd27e6e7da828f.bundleworker.js +0 -1
  63. package/umd/a20150d17b0290cadaa6cb9911ab9500.wasm +0 -0
package/umd/zappar-cv.js CHANGED
@@ -1,9 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ZCV=t():e.ZCV=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=16)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zcwarn=t.zcerr=t.zcout=t.setLogLevel=void 0;const n=r(10);let a=n.log_level_t.LOG_LEVEL_ERROR;t.setLogLevel=function(e){a=e},t.zcout=function(...e){a>=n.log_level_t.LOG_LEVEL_VERBOSE&&console.log("[Zappar] INFO",...e)},t.zcerr=function(...e){a>=n.log_level_t.LOG_LEVEL_ERROR&&console.error("[Zappar] ERROR",...e)},t.zcwarn=function(...e){a>=n.log_level_t.LOG_LEVEL_VERBOSE&&console.log("[Zappar] WARN",...e)}},function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"EPSILON",(function(){return d})),r.d(n,"ARRAY_TYPE",(function(){return h})),r.d(n,"RANDOM",(function(){return p})),r.d(n,"setMatrixArrayType",(function(){return m})),r.d(n,"toRadian",(function(){return g})),r.d(n,"equals",(function(){return w}));var a={};r.r(a),r.d(a,"create",(function(){return v})),r.d(a,"clone",(function(){return y})),r.d(a,"copy",(function(){return M})),r.d(a,"identity",(function(){return x})),r.d(a,"fromValues",(function(){return E})),r.d(a,"set",(function(){return A})),r.d(a,"transpose",(function(){return k})),r.d(a,"invert",(function(){return T})),r.d(a,"adjoint",(function(){return z})),r.d(a,"determinant",(function(){return R})),r.d(a,"multiply",(function(){return F})),r.d(a,"rotate",(function(){return S})),r.d(a,"scale",(function(){return O})),r.d(a,"fromRotation",(function(){return P})),r.d(a,"fromScaling",(function(){return L})),r.d(a,"str",(function(){return D})),r.d(a,"frob",(function(){return U})),r.d(a,"LDU",(function(){return C})),r.d(a,"add",(function(){return B})),r.d(a,"subtract",(function(){return I})),r.d(a,"exactEquals",(function(){return V})),r.d(a,"equals",(function(){return j})),r.d(a,"multiplyScalar",(function(){return q})),r.d(a,"multiplyScalarAndAdd",(function(){return N})),r.d(a,"mul",(function(){return W})),r.d(a,"sub",(function(){return G}));var i={};r.r(i),r.d(i,"create",(function(){return H})),r.d(i,"clone",(function(){return Y})),r.d(i,"copy",(function(){return X})),r.d(i,"identity",(function(){return Z})),r.d(i,"fromValues",(function(){return J})),r.d(i,"set",(function(){return K})),r.d(i,"invert",(function(){return Q})),r.d(i,"determinant",(function(){return $})),r.d(i,"multiply",(function(){return ee})),r.d(i,"rotate",(function(){return te})),r.d(i,"scale",(function(){return re})),r.d(i,"translate",(function(){return ne})),r.d(i,"fromRotation",(function(){return ae})),r.d(i,"fromScaling",(function(){return ie})),r.d(i,"fromTranslation",(function(){return se})),r.d(i,"str",(function(){return oe})),r.d(i,"frob",(function(){return ce})),r.d(i,"add",(function(){return ue})),r.d(i,"subtract",(function(){return _e})),r.d(i,"multiplyScalar",(function(){return fe})),r.d(i,"multiplyScalarAndAdd",(function(){return le})),r.d(i,"exactEquals",(function(){return de})),r.d(i,"equals",(function(){return he})),r.d(i,"mul",(function(){return pe})),r.d(i,"sub",(function(){return me}));var s={};r.r(s),r.d(s,"create",(function(){return be})),r.d(s,"fromMat4",(function(){return ge})),r.d(s,"clone",(function(){return we})),r.d(s,"copy",(function(){return ve})),r.d(s,"fromValues",(function(){return ye})),r.d(s,"set",(function(){return Me})),r.d(s,"identity",(function(){return xe})),r.d(s,"transpose",(function(){return Ee})),r.d(s,"invert",(function(){return Ae})),r.d(s,"adjoint",(function(){return ke})),r.d(s,"determinant",(function(){return Te})),r.d(s,"multiply",(function(){return ze})),r.d(s,"translate",(function(){return Re})),r.d(s,"rotate",(function(){return Fe})),r.d(s,"scale",(function(){return Se})),r.d(s,"fromTranslation",(function(){return Oe})),r.d(s,"fromRotation",(function(){return Pe})),r.d(s,"fromScaling",(function(){return Le})),r.d(s,"fromMat2d",(function(){return De})),r.d(s,"fromQuat",(function(){return Ue})),r.d(s,"normalFromMat4",(function(){return Ce})),r.d(s,"projection",(function(){return Be})),r.d(s,"str",(function(){return Ie})),r.d(s,"frob",(function(){return Ve})),r.d(s,"add",(function(){return je})),r.d(s,"subtract",(function(){return qe})),r.d(s,"multiplyScalar",(function(){return Ne})),r.d(s,"multiplyScalarAndAdd",(function(){return We})),r.d(s,"exactEquals",(function(){return Ge})),r.d(s,"equals",(function(){return He})),r.d(s,"mul",(function(){return Ye})),r.d(s,"sub",(function(){return Xe}));var o={};r.r(o),r.d(o,"create",(function(){return Ze})),r.d(o,"clone",(function(){return Je})),r.d(o,"copy",(function(){return Ke})),r.d(o,"fromValues",(function(){return Qe})),r.d(o,"set",(function(){return $e})),r.d(o,"identity",(function(){return et})),r.d(o,"transpose",(function(){return tt})),r.d(o,"invert",(function(){return rt})),r.d(o,"adjoint",(function(){return nt})),r.d(o,"determinant",(function(){return at})),r.d(o,"multiply",(function(){return it})),r.d(o,"translate",(function(){return st})),r.d(o,"scale",(function(){return ot})),r.d(o,"rotate",(function(){return ct})),r.d(o,"rotateX",(function(){return ut})),r.d(o,"rotateY",(function(){return _t})),r.d(o,"rotateZ",(function(){return ft})),r.d(o,"fromTranslation",(function(){return lt})),r.d(o,"fromScaling",(function(){return dt})),r.d(o,"fromRotation",(function(){return ht})),r.d(o,"fromXRotation",(function(){return pt})),r.d(o,"fromYRotation",(function(){return mt})),r.d(o,"fromZRotation",(function(){return bt})),r.d(o,"fromRotationTranslation",(function(){return gt})),r.d(o,"fromQuat2",(function(){return wt})),r.d(o,"getTranslation",(function(){return vt})),r.d(o,"getScaling",(function(){return yt})),r.d(o,"getRotation",(function(){return Mt})),r.d(o,"fromRotationTranslationScale",(function(){return xt})),r.d(o,"fromRotationTranslationScaleOrigin",(function(){return Et})),r.d(o,"fromQuat",(function(){return At})),r.d(o,"frustum",(function(){return kt})),r.d(o,"perspective",(function(){return Tt})),r.d(o,"perspectiveFromFieldOfView",(function(){return zt})),r.d(o,"ortho",(function(){return Rt})),r.d(o,"lookAt",(function(){return Ft})),r.d(o,"targetTo",(function(){return St})),r.d(o,"str",(function(){return Ot})),r.d(o,"frob",(function(){return Pt})),r.d(o,"add",(function(){return Lt})),r.d(o,"subtract",(function(){return Dt})),r.d(o,"multiplyScalar",(function(){return Ut})),r.d(o,"multiplyScalarAndAdd",(function(){return Ct})),r.d(o,"exactEquals",(function(){return Bt})),r.d(o,"equals",(function(){return It})),r.d(o,"mul",(function(){return Vt})),r.d(o,"sub",(function(){return jt}));var c={};r.r(c),r.d(c,"create",(function(){return qt})),r.d(c,"clone",(function(){return Nt})),r.d(c,"length",(function(){return Wt})),r.d(c,"fromValues",(function(){return Gt})),r.d(c,"copy",(function(){return Ht})),r.d(c,"set",(function(){return Yt})),r.d(c,"add",(function(){return Xt})),r.d(c,"subtract",(function(){return Zt})),r.d(c,"multiply",(function(){return Jt})),r.d(c,"divide",(function(){return Kt})),r.d(c,"ceil",(function(){return Qt})),r.d(c,"floor",(function(){return $t})),r.d(c,"min",(function(){return er})),r.d(c,"max",(function(){return tr})),r.d(c,"round",(function(){return rr})),r.d(c,"scale",(function(){return nr})),r.d(c,"scaleAndAdd",(function(){return ar})),r.d(c,"distance",(function(){return ir})),r.d(c,"squaredDistance",(function(){return sr})),r.d(c,"squaredLength",(function(){return or})),r.d(c,"negate",(function(){return cr})),r.d(c,"inverse",(function(){return ur})),r.d(c,"normalize",(function(){return _r})),r.d(c,"dot",(function(){return fr})),r.d(c,"cross",(function(){return lr})),r.d(c,"lerp",(function(){return dr})),r.d(c,"hermite",(function(){return hr})),r.d(c,"bezier",(function(){return pr})),r.d(c,"random",(function(){return mr})),r.d(c,"transformMat4",(function(){return br})),r.d(c,"transformMat3",(function(){return gr})),r.d(c,"transformQuat",(function(){return wr})),r.d(c,"rotateX",(function(){return vr})),r.d(c,"rotateY",(function(){return yr})),r.d(c,"rotateZ",(function(){return Mr})),r.d(c,"angle",(function(){return xr})),r.d(c,"zero",(function(){return Er})),r.d(c,"str",(function(){return Ar})),r.d(c,"exactEquals",(function(){return kr})),r.d(c,"equals",(function(){return Tr})),r.d(c,"sub",(function(){return Rr})),r.d(c,"mul",(function(){return Fr})),r.d(c,"div",(function(){return Sr})),r.d(c,"dist",(function(){return Or})),r.d(c,"sqrDist",(function(){return Pr})),r.d(c,"len",(function(){return Lr})),r.d(c,"sqrLen",(function(){return Dr})),r.d(c,"forEach",(function(){return Ur}));var u={};r.r(u),r.d(u,"create",(function(){return Cr})),r.d(u,"clone",(function(){return Br})),r.d(u,"fromValues",(function(){return Ir})),r.d(u,"copy",(function(){return Vr})),r.d(u,"set",(function(){return jr})),r.d(u,"add",(function(){return qr})),r.d(u,"subtract",(function(){return Nr})),r.d(u,"multiply",(function(){return Wr})),r.d(u,"divide",(function(){return Gr})),r.d(u,"ceil",(function(){return Hr})),r.d(u,"floor",(function(){return Yr})),r.d(u,"min",(function(){return Xr})),r.d(u,"max",(function(){return Zr})),r.d(u,"round",(function(){return Jr})),r.d(u,"scale",(function(){return Kr})),r.d(u,"scaleAndAdd",(function(){return Qr})),r.d(u,"distance",(function(){return $r})),r.d(u,"squaredDistance",(function(){return en})),r.d(u,"length",(function(){return tn})),r.d(u,"squaredLength",(function(){return rn})),r.d(u,"negate",(function(){return nn})),r.d(u,"inverse",(function(){return an})),r.d(u,"normalize",(function(){return sn})),r.d(u,"dot",(function(){return on})),r.d(u,"cross",(function(){return cn})),r.d(u,"lerp",(function(){return un})),r.d(u,"random",(function(){return _n})),r.d(u,"transformMat4",(function(){return fn})),r.d(u,"transformQuat",(function(){return ln})),r.d(u,"zero",(function(){return dn})),r.d(u,"str",(function(){return hn})),r.d(u,"exactEquals",(function(){return pn})),r.d(u,"equals",(function(){return mn})),r.d(u,"sub",(function(){return bn})),r.d(u,"mul",(function(){return gn})),r.d(u,"div",(function(){return wn})),r.d(u,"dist",(function(){return vn})),r.d(u,"sqrDist",(function(){return yn})),r.d(u,"len",(function(){return Mn})),r.d(u,"sqrLen",(function(){return xn})),r.d(u,"forEach",(function(){return En}));var _={};r.r(_),r.d(_,"create",(function(){return An})),r.d(_,"identity",(function(){return kn})),r.d(_,"setAxisAngle",(function(){return Tn})),r.d(_,"getAxisAngle",(function(){return zn})),r.d(_,"getAngle",(function(){return Rn})),r.d(_,"multiply",(function(){return Fn})),r.d(_,"rotateX",(function(){return Sn})),r.d(_,"rotateY",(function(){return On})),r.d(_,"rotateZ",(function(){return Pn})),r.d(_,"calculateW",(function(){return Ln})),r.d(_,"exp",(function(){return Dn})),r.d(_,"ln",(function(){return Un})),r.d(_,"pow",(function(){return Cn})),r.d(_,"slerp",(function(){return Bn})),r.d(_,"random",(function(){return In})),r.d(_,"invert",(function(){return Vn})),r.d(_,"conjugate",(function(){return jn})),r.d(_,"fromMat3",(function(){return qn})),r.d(_,"fromEuler",(function(){return Nn})),r.d(_,"str",(function(){return Wn})),r.d(_,"clone",(function(){return Kn})),r.d(_,"fromValues",(function(){return Qn})),r.d(_,"copy",(function(){return $n})),r.d(_,"set",(function(){return ea})),r.d(_,"add",(function(){return ta})),r.d(_,"mul",(function(){return ra})),r.d(_,"scale",(function(){return na})),r.d(_,"dot",(function(){return aa})),r.d(_,"lerp",(function(){return ia})),r.d(_,"length",(function(){return sa})),r.d(_,"len",(function(){return oa})),r.d(_,"squaredLength",(function(){return ca})),r.d(_,"sqrLen",(function(){return ua})),r.d(_,"normalize",(function(){return _a})),r.d(_,"exactEquals",(function(){return fa})),r.d(_,"equals",(function(){return la})),r.d(_,"rotationTo",(function(){return da})),r.d(_,"sqlerp",(function(){return ha})),r.d(_,"setAxes",(function(){return pa}));var f={};r.r(f),r.d(f,"create",(function(){return ma})),r.d(f,"clone",(function(){return ba})),r.d(f,"fromValues",(function(){return ga})),r.d(f,"fromRotationTranslationValues",(function(){return wa})),r.d(f,"fromRotationTranslation",(function(){return va})),r.d(f,"fromTranslation",(function(){return ya})),r.d(f,"fromRotation",(function(){return Ma})),r.d(f,"fromMat4",(function(){return xa})),r.d(f,"copy",(function(){return Ea})),r.d(f,"identity",(function(){return Aa})),r.d(f,"set",(function(){return ka})),r.d(f,"getReal",(function(){return Ta})),r.d(f,"getDual",(function(){return za})),r.d(f,"setReal",(function(){return Ra})),r.d(f,"setDual",(function(){return Fa})),r.d(f,"getTranslation",(function(){return Sa})),r.d(f,"translate",(function(){return Oa})),r.d(f,"rotateX",(function(){return Pa})),r.d(f,"rotateY",(function(){return La})),r.d(f,"rotateZ",(function(){return Da})),r.d(f,"rotateByQuatAppend",(function(){return Ua})),r.d(f,"rotateByQuatPrepend",(function(){return Ca})),r.d(f,"rotateAroundAxis",(function(){return Ba})),r.d(f,"add",(function(){return Ia})),r.d(f,"multiply",(function(){return Va})),r.d(f,"mul",(function(){return ja})),r.d(f,"scale",(function(){return qa})),r.d(f,"dot",(function(){return Na})),r.d(f,"lerp",(function(){return Wa})),r.d(f,"invert",(function(){return Ga})),r.d(f,"conjugate",(function(){return Ha})),r.d(f,"length",(function(){return Ya})),r.d(f,"len",(function(){return Xa})),r.d(f,"squaredLength",(function(){return Za})),r.d(f,"sqrLen",(function(){return Ja})),r.d(f,"normalize",(function(){return Ka})),r.d(f,"str",(function(){return Qa})),r.d(f,"exactEquals",(function(){return $a})),r.d(f,"equals",(function(){return ei}));var l={};r.r(l),r.d(l,"create",(function(){return ti})),r.d(l,"clone",(function(){return ri})),r.d(l,"fromValues",(function(){return ni})),r.d(l,"copy",(function(){return ai})),r.d(l,"set",(function(){return ii})),r.d(l,"add",(function(){return si})),r.d(l,"subtract",(function(){return oi})),r.d(l,"multiply",(function(){return ci})),r.d(l,"divide",(function(){return ui})),r.d(l,"ceil",(function(){return _i})),r.d(l,"floor",(function(){return fi})),r.d(l,"min",(function(){return li})),r.d(l,"max",(function(){return di})),r.d(l,"round",(function(){return hi})),r.d(l,"scale",(function(){return pi})),r.d(l,"scaleAndAdd",(function(){return mi})),r.d(l,"distance",(function(){return bi})),r.d(l,"squaredDistance",(function(){return gi})),r.d(l,"length",(function(){return wi})),r.d(l,"squaredLength",(function(){return vi})),r.d(l,"negate",(function(){return yi})),r.d(l,"inverse",(function(){return Mi})),r.d(l,"normalize",(function(){return xi})),r.d(l,"dot",(function(){return Ei})),r.d(l,"cross",(function(){return Ai})),r.d(l,"lerp",(function(){return ki})),r.d(l,"random",(function(){return Ti})),r.d(l,"transformMat2",(function(){return zi})),r.d(l,"transformMat2d",(function(){return Ri})),r.d(l,"transformMat3",(function(){return Fi})),r.d(l,"transformMat4",(function(){return Si})),r.d(l,"rotate",(function(){return Oi})),r.d(l,"angle",(function(){return Pi})),r.d(l,"zero",(function(){return Li})),r.d(l,"str",(function(){return Di})),r.d(l,"exactEquals",(function(){return Ui})),r.d(l,"equals",(function(){return Ci})),r.d(l,"len",(function(){return Bi})),r.d(l,"sub",(function(){return Ii})),r.d(l,"mul",(function(){return Vi})),r.d(l,"div",(function(){return ji})),r.d(l,"dist",(function(){return qi})),r.d(l,"sqrDist",(function(){return Ni})),r.d(l,"sqrLen",(function(){return Wi})),r.d(l,"forEach",(function(){return Gi}));var d=1e-6,h="undefined"!=typeof Float32Array?Float32Array:Array,p=Math.random;function m(e){h=e}var b=Math.PI/180;function g(e){return e*b}function w(e,t){return Math.abs(e-t)<=d*Math.max(1,Math.abs(e),Math.abs(t))}function v(){var e=new h(4);return h!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function y(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function M(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function x(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function E(e,t,r,n){var a=new h(4);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a}function A(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function k(e,t){if(e===t){var r=t[1];e[1]=t[2],e[2]=r}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function T(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=r*i-a*n;return s?(s=1/s,e[0]=i*s,e[1]=-n*s,e[2]=-a*s,e[3]=r*s,e):null}function z(e,t){var r=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=r,e}function R(e){return e[0]*e[3]-e[2]*e[1]}function F(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=r[0],c=r[1],u=r[2],_=r[3];return e[0]=n*o+i*c,e[1]=a*o+s*c,e[2]=n*u+i*_,e[3]=a*u+s*_,e}function S(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=Math.sin(r),c=Math.cos(r);return e[0]=n*c+i*o,e[1]=a*c+s*o,e[2]=n*-o+i*c,e[3]=a*-o+s*c,e}function O(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=r[0],c=r[1];return e[0]=n*o,e[1]=a*o,e[2]=i*c,e[3]=s*c,e}function P(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e}function L(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function D(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function U(e){return Math.hypot(e[0],e[1],e[2],e[3])}function C(e,t,r,n){return e[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-e[2]*r[1],[e,t,r]}function B(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function I(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function V(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function j(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=t[0],o=t[1],c=t[2],u=t[3];return Math.abs(r-s)<=d*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=d*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(a-c)<=d*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(i-u)<=d*Math.max(1,Math.abs(i),Math.abs(u))}function q(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function N(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var W=F,G=I;function H(){var e=new h(6);return h!=Float32Array&&(e[1]=0,e[2]=0,e[4]=0,e[5]=0),e[0]=1,e[3]=1,e}function Y(e){var t=new h(6);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function X(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Z(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function J(e,t,r,n,a,i){var s=new h(6);return s[0]=e,s[1]=t,s[2]=r,s[3]=n,s[4]=a,s[5]=i,s}function K(e,t,r,n,a,i,s){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=s,e}function Q(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=r*i-n*a;return c?(c=1/c,e[0]=i*c,e[1]=-n*c,e[2]=-a*c,e[3]=r*c,e[4]=(a*o-i*s)*c,e[5]=(n*s-r*o)*c,e):null}function $(e){return e[0]*e[3]-e[1]*e[2]}function ee(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=r[0],_=r[1],f=r[2],l=r[3],d=r[4],h=r[5];return e[0]=n*u+i*_,e[1]=a*u+s*_,e[2]=n*f+i*l,e[3]=a*f+s*l,e[4]=n*d+i*h+o,e[5]=a*d+s*h+c,e}function te(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=Math.sin(r),_=Math.cos(r);return e[0]=n*_+i*u,e[1]=a*_+s*u,e[2]=n*-u+i*_,e[3]=a*-u+s*_,e[4]=o,e[5]=c,e}function re(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=r[0],_=r[1];return e[0]=n*u,e[1]=a*u,e[2]=i*_,e[3]=s*_,e[4]=o,e[5]=c,e}function ne(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=r[0],_=r[1];return e[0]=n,e[1]=a,e[2]=i,e[3]=s,e[4]=n*u+i*_+o,e[5]=a*u+s*_+c,e}function ae(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e[4]=0,e[5]=0,e}function ie(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e[4]=0,e[5]=0,e}function se(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}function oe(e){return"mat2d("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+")"}function ce(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],1)}function ue(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e}function _e(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e}function fe(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e}function le(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e}function de(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function he(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=e[4],o=e[5],c=t[0],u=t[1],_=t[2],f=t[3],l=t[4],h=t[5];return Math.abs(r-c)<=d*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(n-u)<=d*Math.max(1,Math.abs(n),Math.abs(u))&&Math.abs(a-_)<=d*Math.max(1,Math.abs(a),Math.abs(_))&&Math.abs(i-f)<=d*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(s-l)<=d*Math.max(1,Math.abs(s),Math.abs(l))&&Math.abs(o-h)<=d*Math.max(1,Math.abs(o),Math.abs(h))}var pe=ee,me=_e;function be(){var e=new h(9);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function ge(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function we(e){var t=new h(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function ve(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ye(e,t,r,n,a,i,s,o,c){var u=new h(9);return u[0]=e,u[1]=t,u[2]=r,u[3]=n,u[4]=a,u[5]=i,u[6]=s,u[7]=o,u[8]=c,u}function Me(e,t,r,n,a,i,s,o,c,u){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=s,e[6]=o,e[7]=c,e[8]=u,e}function xe(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ee(e,t){if(e===t){var r=t[1],n=t[2],a=t[5];e[1]=t[3],e[2]=t[6],e[3]=r,e[5]=t[7],e[6]=n,e[7]=a}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function Ae(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=t[6],u=t[7],_=t[8],f=_*s-o*u,l=-_*i+o*c,d=u*i-s*c,h=r*f+n*l+a*d;return h?(h=1/h,e[0]=f*h,e[1]=(-_*n+a*u)*h,e[2]=(o*n-a*s)*h,e[3]=l*h,e[4]=(_*r-a*c)*h,e[5]=(-o*r+a*i)*h,e[6]=d*h,e[7]=(-u*r+n*c)*h,e[8]=(s*r-n*i)*h,e):null}function ke(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=t[6],u=t[7],_=t[8];return e[0]=s*_-o*u,e[1]=a*u-n*_,e[2]=n*o-a*s,e[3]=o*c-i*_,e[4]=r*_-a*c,e[5]=a*i-r*o,e[6]=i*u-s*c,e[7]=n*c-r*u,e[8]=r*s-n*i,e}function Te(e){var t=e[0],r=e[1],n=e[2],a=e[3],i=e[4],s=e[5],o=e[6],c=e[7],u=e[8];return t*(u*i-s*c)+r*(-u*a+s*o)+n*(c*a-i*o)}function ze(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=t[8],l=r[0],d=r[1],h=r[2],p=r[3],m=r[4],b=r[5],g=r[6],w=r[7],v=r[8];return e[0]=l*n+d*s+h*u,e[1]=l*a+d*o+h*_,e[2]=l*i+d*c+h*f,e[3]=p*n+m*s+b*u,e[4]=p*a+m*o+b*_,e[5]=p*i+m*c+b*f,e[6]=g*n+w*s+v*u,e[7]=g*a+w*o+v*_,e[8]=g*i+w*c+v*f,e}function Re(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=t[8],l=r[0],d=r[1];return e[0]=n,e[1]=a,e[2]=i,e[3]=s,e[4]=o,e[5]=c,e[6]=l*n+d*s+u,e[7]=l*a+d*o+_,e[8]=l*i+d*c+f,e}function Fe(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=t[8],l=Math.sin(r),d=Math.cos(r);return e[0]=d*n+l*s,e[1]=d*a+l*o,e[2]=d*i+l*c,e[3]=d*s-l*n,e[4]=d*o-l*a,e[5]=d*c-l*i,e[6]=u,e[7]=_,e[8]=f,e}function Se(e,t,r){var n=r[0],a=r[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=a*t[3],e[4]=a*t[4],e[5]=a*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Oe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Pe(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=-r,e[4]=n,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Le(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function De(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function Ue(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=r+r,o=n+n,c=a+a,u=r*s,_=n*s,f=n*o,l=a*s,d=a*o,h=a*c,p=i*s,m=i*o,b=i*c;return e[0]=1-f-h,e[3]=_-b,e[6]=l+m,e[1]=_+b,e[4]=1-u-h,e[7]=d-p,e[2]=l-m,e[5]=d+p,e[8]=1-u-f,e}function Ce(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=t[6],u=t[7],_=t[8],f=t[9],l=t[10],d=t[11],h=t[12],p=t[13],m=t[14],b=t[15],g=r*o-n*s,w=r*c-a*s,v=r*u-i*s,y=n*c-a*o,M=n*u-i*o,x=a*u-i*c,E=_*p-f*h,A=_*m-l*h,k=_*b-d*h,T=f*m-l*p,z=f*b-d*p,R=l*b-d*m,F=g*R-w*z+v*T+y*k-M*A+x*E;return F?(F=1/F,e[0]=(o*R-c*z+u*T)*F,e[1]=(c*k-s*R-u*A)*F,e[2]=(s*z-o*k+u*E)*F,e[3]=(a*z-n*R-i*T)*F,e[4]=(r*R-a*k+i*A)*F,e[5]=(n*k-r*z-i*E)*F,e[6]=(p*x-m*M+b*y)*F,e[7]=(m*v-h*x-b*w)*F,e[8]=(h*M-p*v+b*g)*F,e):null}function Be(e,t,r){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/r,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Ie(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function Ve(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function je(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e}function qe(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e}function Ne(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e}function We(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e}function Ge(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function He(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=e[4],o=e[5],c=e[6],u=e[7],_=e[8],f=t[0],l=t[1],h=t[2],p=t[3],m=t[4],b=t[5],g=t[6],w=t[7],v=t[8];return Math.abs(r-f)<=d*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(n-l)<=d*Math.max(1,Math.abs(n),Math.abs(l))&&Math.abs(a-h)<=d*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(i-p)<=d*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(s-m)<=d*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-b)<=d*Math.max(1,Math.abs(o),Math.abs(b))&&Math.abs(c-g)<=d*Math.max(1,Math.abs(c),Math.abs(g))&&Math.abs(u-w)<=d*Math.max(1,Math.abs(u),Math.abs(w))&&Math.abs(_-v)<=d*Math.max(1,Math.abs(_),Math.abs(v))}var Ye=ze,Xe=qe;function Ze(){var e=new h(16);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Je(e){var t=new h(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ke(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Qe(e,t,r,n,a,i,s,o,c,u,_,f,l,d,p,m){var b=new h(16);return b[0]=e,b[1]=t,b[2]=r,b[3]=n,b[4]=a,b[5]=i,b[6]=s,b[7]=o,b[8]=c,b[9]=u,b[10]=_,b[11]=f,b[12]=l,b[13]=d,b[14]=p,b[15]=m,b}function $e(e,t,r,n,a,i,s,o,c,u,_,f,l,d,h,p,m){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=s,e[6]=o,e[7]=c,e[8]=u,e[9]=_,e[10]=f,e[11]=l,e[12]=d,e[13]=h,e[14]=p,e[15]=m,e}function et(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function tt(e,t){if(e===t){var r=t[1],n=t[2],a=t[3],i=t[6],s=t[7],o=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=a,e[13]=s,e[14]=o}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function rt(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=t[6],u=t[7],_=t[8],f=t[9],l=t[10],d=t[11],h=t[12],p=t[13],m=t[14],b=t[15],g=r*o-n*s,w=r*c-a*s,v=r*u-i*s,y=n*c-a*o,M=n*u-i*o,x=a*u-i*c,E=_*p-f*h,A=_*m-l*h,k=_*b-d*h,T=f*m-l*p,z=f*b-d*p,R=l*b-d*m,F=g*R-w*z+v*T+y*k-M*A+x*E;return F?(F=1/F,e[0]=(o*R-c*z+u*T)*F,e[1]=(a*z-n*R-i*T)*F,e[2]=(p*x-m*M+b*y)*F,e[3]=(l*M-f*x-d*y)*F,e[4]=(c*k-s*R-u*A)*F,e[5]=(r*R-a*k+i*A)*F,e[6]=(m*v-h*x-b*w)*F,e[7]=(_*x-l*v+d*w)*F,e[8]=(s*z-o*k+u*E)*F,e[9]=(n*k-r*z-i*E)*F,e[10]=(h*M-p*v+b*g)*F,e[11]=(f*v-_*M-d*g)*F,e[12]=(o*A-s*T-c*E)*F,e[13]=(r*T-n*A+a*E)*F,e[14]=(p*w-h*y-m*g)*F,e[15]=(_*y-f*w+l*g)*F,e):null}function nt(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=t[4],o=t[5],c=t[6],u=t[7],_=t[8],f=t[9],l=t[10],d=t[11],h=t[12],p=t[13],m=t[14],b=t[15];return e[0]=o*(l*b-d*m)-f*(c*b-u*m)+p*(c*d-u*l),e[1]=-(n*(l*b-d*m)-f*(a*b-i*m)+p*(a*d-i*l)),e[2]=n*(c*b-u*m)-o*(a*b-i*m)+p*(a*u-i*c),e[3]=-(n*(c*d-u*l)-o*(a*d-i*l)+f*(a*u-i*c)),e[4]=-(s*(l*b-d*m)-_*(c*b-u*m)+h*(c*d-u*l)),e[5]=r*(l*b-d*m)-_*(a*b-i*m)+h*(a*d-i*l),e[6]=-(r*(c*b-u*m)-s*(a*b-i*m)+h*(a*u-i*c)),e[7]=r*(c*d-u*l)-s*(a*d-i*l)+_*(a*u-i*c),e[8]=s*(f*b-d*p)-_*(o*b-u*p)+h*(o*d-u*f),e[9]=-(r*(f*b-d*p)-_*(n*b-i*p)+h*(n*d-i*f)),e[10]=r*(o*b-u*p)-s*(n*b-i*p)+h*(n*u-i*o),e[11]=-(r*(o*d-u*f)-s*(n*d-i*f)+_*(n*u-i*o)),e[12]=-(s*(f*m-l*p)-_*(o*m-c*p)+h*(o*l-c*f)),e[13]=r*(f*m-l*p)-_*(n*m-a*p)+h*(n*l-a*f),e[14]=-(r*(o*m-c*p)-s*(n*m-a*p)+h*(n*c-a*o)),e[15]=r*(o*l-c*f)-s*(n*l-a*f)+_*(n*c-a*o),e}function at(e){var t=e[0],r=e[1],n=e[2],a=e[3],i=e[4],s=e[5],o=e[6],c=e[7],u=e[8],_=e[9],f=e[10],l=e[11],d=e[12],h=e[13],p=e[14],m=e[15];return(t*s-r*i)*(f*m-l*p)-(t*o-n*i)*(_*m-l*h)+(t*c-a*i)*(_*p-f*h)+(r*o-n*s)*(u*m-l*d)-(r*c-a*s)*(u*p-f*d)+(n*c-a*o)*(u*h-_*d)}function it(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=t[8],l=t[9],d=t[10],h=t[11],p=t[12],m=t[13],b=t[14],g=t[15],w=r[0],v=r[1],y=r[2],M=r[3];return e[0]=w*n+v*o+y*f+M*p,e[1]=w*a+v*c+y*l+M*m,e[2]=w*i+v*u+y*d+M*b,e[3]=w*s+v*_+y*h+M*g,w=r[4],v=r[5],y=r[6],M=r[7],e[4]=w*n+v*o+y*f+M*p,e[5]=w*a+v*c+y*l+M*m,e[6]=w*i+v*u+y*d+M*b,e[7]=w*s+v*_+y*h+M*g,w=r[8],v=r[9],y=r[10],M=r[11],e[8]=w*n+v*o+y*f+M*p,e[9]=w*a+v*c+y*l+M*m,e[10]=w*i+v*u+y*d+M*b,e[11]=w*s+v*_+y*h+M*g,w=r[12],v=r[13],y=r[14],M=r[15],e[12]=w*n+v*o+y*f+M*p,e[13]=w*a+v*c+y*l+M*m,e[14]=w*i+v*u+y*d+M*b,e[15]=w*s+v*_+y*h+M*g,e}function st(e,t,r){var n,a,i,s,o,c,u,_,f,l,d,h,p=r[0],m=r[1],b=r[2];return t===e?(e[12]=t[0]*p+t[4]*m+t[8]*b+t[12],e[13]=t[1]*p+t[5]*m+t[9]*b+t[13],e[14]=t[2]*p+t[6]*m+t[10]*b+t[14],e[15]=t[3]*p+t[7]*m+t[11]*b+t[15]):(n=t[0],a=t[1],i=t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=t[8],l=t[9],d=t[10],h=t[11],e[0]=n,e[1]=a,e[2]=i,e[3]=s,e[4]=o,e[5]=c,e[6]=u,e[7]=_,e[8]=f,e[9]=l,e[10]=d,e[11]=h,e[12]=n*p+o*m+f*b+t[12],e[13]=a*p+c*m+l*b+t[13],e[14]=i*p+u*m+d*b+t[14],e[15]=s*p+_*m+h*b+t[15]),e}function ot(e,t,r){var n=r[0],a=r[1],i=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function ct(e,t,r,n){var a,i,s,o,c,u,_,f,l,h,p,m,b,g,w,v,y,M,x,E,A,k,T,z,R=n[0],F=n[1],S=n[2],O=Math.hypot(R,F,S);return O<d?null:(R*=O=1/O,F*=O,S*=O,a=Math.sin(r),s=1-(i=Math.cos(r)),o=t[0],c=t[1],u=t[2],_=t[3],f=t[4],l=t[5],h=t[6],p=t[7],m=t[8],b=t[9],g=t[10],w=t[11],v=R*R*s+i,y=F*R*s+S*a,M=S*R*s-F*a,x=R*F*s-S*a,E=F*F*s+i,A=S*F*s+R*a,k=R*S*s+F*a,T=F*S*s-R*a,z=S*S*s+i,e[0]=o*v+f*y+m*M,e[1]=c*v+l*y+b*M,e[2]=u*v+h*y+g*M,e[3]=_*v+p*y+w*M,e[4]=o*x+f*E+m*A,e[5]=c*x+l*E+b*A,e[6]=u*x+h*E+g*A,e[7]=_*x+p*E+w*A,e[8]=o*k+f*T+m*z,e[9]=c*k+l*T+b*z,e[10]=u*k+h*T+g*z,e[11]=_*k+p*T+w*z,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function ut(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[4],s=t[5],o=t[6],c=t[7],u=t[8],_=t[9],f=t[10],l=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*a+u*n,e[5]=s*a+_*n,e[6]=o*a+f*n,e[7]=c*a+l*n,e[8]=u*a-i*n,e[9]=_*a-s*n,e[10]=f*a-o*n,e[11]=l*a-c*n,e}function _t(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],s=t[1],o=t[2],c=t[3],u=t[8],_=t[9],f=t[10],l=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a-u*n,e[1]=s*a-_*n,e[2]=o*a-f*n,e[3]=c*a-l*n,e[8]=i*n+u*a,e[9]=s*n+_*a,e[10]=o*n+f*a,e[11]=c*n+l*a,e}function ft(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],s=t[1],o=t[2],c=t[3],u=t[4],_=t[5],f=t[6],l=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a+u*n,e[1]=s*a+_*n,e[2]=o*a+f*n,e[3]=c*a+l*n,e[4]=u*a-i*n,e[5]=_*a-s*n,e[6]=f*a-o*n,e[7]=l*a-c*n,e}function lt(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function dt(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ht(e,t,r){var n,a,i,s=r[0],o=r[1],c=r[2],u=Math.hypot(s,o,c);return u<d?null:(s*=u=1/u,o*=u,c*=u,n=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=s*s*i+a,e[1]=o*s*i+c*n,e[2]=c*s*i-o*n,e[3]=0,e[4]=s*o*i-c*n,e[5]=o*o*i+a,e[6]=c*o*i+s*n,e[7]=0,e[8]=s*c*i+o*n,e[9]=o*c*i-s*n,e[10]=c*c*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function pt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function mt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function bt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function gt(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=n+n,c=a+a,u=i+i,_=n*o,f=n*c,l=n*u,d=a*c,h=a*u,p=i*u,m=s*o,b=s*c,g=s*u;return e[0]=1-(d+p),e[1]=f+g,e[2]=l-b,e[3]=0,e[4]=f-g,e[5]=1-(_+p),e[6]=h+m,e[7]=0,e[8]=l+b,e[9]=h-m,e[10]=1-(_+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function wt(e,t){var r=new h(3),n=-t[0],a=-t[1],i=-t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=n*n+a*a+i*i+s*s;return f>0?(r[0]=2*(o*s+_*n+c*i-u*a)/f,r[1]=2*(c*s+_*a+u*n-o*i)/f,r[2]=2*(u*s+_*i+o*a-c*n)/f):(r[0]=2*(o*s+_*n+c*i-u*a),r[1]=2*(c*s+_*a+u*n-o*i),r[2]=2*(u*s+_*i+o*a-c*n)),gt(e,t,r),e}function vt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function yt(e,t){var r=t[0],n=t[1],a=t[2],i=t[4],s=t[5],o=t[6],c=t[8],u=t[9],_=t[10];return e[0]=Math.hypot(r,n,a),e[1]=Math.hypot(i,s,o),e[2]=Math.hypot(c,u,_),e}function Mt(e,t){var r=new h(3);yt(r,t);var n=1/r[0],a=1/r[1],i=1/r[2],s=t[0]*n,o=t[1]*a,c=t[2]*i,u=t[4]*n,_=t[5]*a,f=t[6]*i,l=t[8]*n,d=t[9]*a,p=t[10]*i,m=s+_+p,b=0;return m>0?(b=2*Math.sqrt(m+1),e[3]=.25*b,e[0]=(f-d)/b,e[1]=(l-c)/b,e[2]=(o-u)/b):s>_&&s>p?(b=2*Math.sqrt(1+s-_-p),e[3]=(f-d)/b,e[0]=.25*b,e[1]=(o+u)/b,e[2]=(l+c)/b):_>p?(b=2*Math.sqrt(1+_-s-p),e[3]=(l-c)/b,e[0]=(o+u)/b,e[1]=.25*b,e[2]=(f+d)/b):(b=2*Math.sqrt(1+p-s-_),e[3]=(o-u)/b,e[0]=(l+c)/b,e[1]=(f+d)/b,e[2]=.25*b),e}function xt(e,t,r,n){var a=t[0],i=t[1],s=t[2],o=t[3],c=a+a,u=i+i,_=s+s,f=a*c,l=a*u,d=a*_,h=i*u,p=i*_,m=s*_,b=o*c,g=o*u,w=o*_,v=n[0],y=n[1],M=n[2];return e[0]=(1-(h+m))*v,e[1]=(l+w)*v,e[2]=(d-g)*v,e[3]=0,e[4]=(l-w)*y,e[5]=(1-(f+m))*y,e[6]=(p+b)*y,e[7]=0,e[8]=(d+g)*M,e[9]=(p-b)*M,e[10]=(1-(f+h))*M,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function Et(e,t,r,n,a){var i=t[0],s=t[1],o=t[2],c=t[3],u=i+i,_=s+s,f=o+o,l=i*u,d=i*_,h=i*f,p=s*_,m=s*f,b=o*f,g=c*u,w=c*_,v=c*f,y=n[0],M=n[1],x=n[2],E=a[0],A=a[1],k=a[2],T=(1-(p+b))*y,z=(d+v)*y,R=(h-w)*y,F=(d-v)*M,S=(1-(l+b))*M,O=(m+g)*M,P=(h+w)*x,L=(m-g)*x,D=(1-(l+p))*x;return e[0]=T,e[1]=z,e[2]=R,e[3]=0,e[4]=F,e[5]=S,e[6]=O,e[7]=0,e[8]=P,e[9]=L,e[10]=D,e[11]=0,e[12]=r[0]+E-(T*E+F*A+P*k),e[13]=r[1]+A-(z*E+S*A+L*k),e[14]=r[2]+k-(R*E+O*A+D*k),e[15]=1,e}function At(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=r+r,o=n+n,c=a+a,u=r*s,_=n*s,f=n*o,l=a*s,d=a*o,h=a*c,p=i*s,m=i*o,b=i*c;return e[0]=1-f-h,e[1]=_+b,e[2]=l-m,e[3]=0,e[4]=_-b,e[5]=1-u-h,e[6]=d+p,e[7]=0,e[8]=l+m,e[9]=d-p,e[10]=1-u-f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function kt(e,t,r,n,a,i,s){var o=1/(r-t),c=1/(a-n),u=1/(i-s);return e[0]=2*i*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*c,e[6]=0,e[7]=0,e[8]=(r+t)*o,e[9]=(a+n)*c,e[10]=(s+i)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=s*i*2*u,e[15]=0,e}function Tt(e,t,r,n,a){var i,s=1/Math.tan(t/2);return e[0]=s/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(i=1/(n-a),e[10]=(a+n)*i,e[14]=2*a*n*i):(e[10]=-1,e[14]=-2*n),e}function zt(e,t,r,n){var a=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),s=Math.tan(t.leftDegrees*Math.PI/180),o=Math.tan(t.rightDegrees*Math.PI/180),c=2/(s+o),u=2/(a+i);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-(s-o)*c*.5,e[9]=(a-i)*u*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function Rt(e,t,r,n,a,i,s){var o=1/(t-r),c=1/(n-a),u=1/(i-s);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+r)*o,e[13]=(a+n)*c,e[14]=(s+i)*u,e[15]=1,e}function Ft(e,t,r,n){var a,i,s,o,c,u,_,f,l,h,p=t[0],m=t[1],b=t[2],g=n[0],w=n[1],v=n[2],y=r[0],M=r[1],x=r[2];return Math.abs(p-y)<d&&Math.abs(m-M)<d&&Math.abs(b-x)<d?et(e):(_=p-y,f=m-M,l=b-x,a=w*(l*=h=1/Math.hypot(_,f,l))-v*(f*=h),i=v*(_*=h)-g*l,s=g*f-w*_,(h=Math.hypot(a,i,s))?(a*=h=1/h,i*=h,s*=h):(a=0,i=0,s=0),o=f*s-l*i,c=l*a-_*s,u=_*i-f*a,(h=Math.hypot(o,c,u))?(o*=h=1/h,c*=h,u*=h):(o=0,c=0,u=0),e[0]=a,e[1]=o,e[2]=_,e[3]=0,e[4]=i,e[5]=c,e[6]=f,e[7]=0,e[8]=s,e[9]=u,e[10]=l,e[11]=0,e[12]=-(a*p+i*m+s*b),e[13]=-(o*p+c*m+u*b),e[14]=-(_*p+f*m+l*b),e[15]=1,e)}function St(e,t,r,n){var a=t[0],i=t[1],s=t[2],o=n[0],c=n[1],u=n[2],_=a-r[0],f=i-r[1],l=s-r[2],d=_*_+f*f+l*l;d>0&&(_*=d=1/Math.sqrt(d),f*=d,l*=d);var h=c*l-u*f,p=u*_-o*l,m=o*f-c*_;return(d=h*h+p*p+m*m)>0&&(h*=d=1/Math.sqrt(d),p*=d,m*=d),e[0]=h,e[1]=p,e[2]=m,e[3]=0,e[4]=f*m-l*p,e[5]=l*h-_*m,e[6]=_*p-f*h,e[7]=0,e[8]=_,e[9]=f,e[10]=l,e[11]=0,e[12]=a,e[13]=i,e[14]=s,e[15]=1,e}function Ot(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Pt(e){return Math.hypot(e[0],e[1],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Lt(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function Dt(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function Ut(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function Ct(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function Bt(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function It(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=e[4],o=e[5],c=e[6],u=e[7],_=e[8],f=e[9],l=e[10],h=e[11],p=e[12],m=e[13],b=e[14],g=e[15],w=t[0],v=t[1],y=t[2],M=t[3],x=t[4],E=t[5],A=t[6],k=t[7],T=t[8],z=t[9],R=t[10],F=t[11],S=t[12],O=t[13],P=t[14],L=t[15];return Math.abs(r-w)<=d*Math.max(1,Math.abs(r),Math.abs(w))&&Math.abs(n-v)<=d*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(a-y)<=d*Math.max(1,Math.abs(a),Math.abs(y))&&Math.abs(i-M)<=d*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(s-x)<=d*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(o-E)<=d*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(c-A)<=d*Math.max(1,Math.abs(c),Math.abs(A))&&Math.abs(u-k)<=d*Math.max(1,Math.abs(u),Math.abs(k))&&Math.abs(_-T)<=d*Math.max(1,Math.abs(_),Math.abs(T))&&Math.abs(f-z)<=d*Math.max(1,Math.abs(f),Math.abs(z))&&Math.abs(l-R)<=d*Math.max(1,Math.abs(l),Math.abs(R))&&Math.abs(h-F)<=d*Math.max(1,Math.abs(h),Math.abs(F))&&Math.abs(p-S)<=d*Math.max(1,Math.abs(p),Math.abs(S))&&Math.abs(m-O)<=d*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(b-P)<=d*Math.max(1,Math.abs(b),Math.abs(P))&&Math.abs(g-L)<=d*Math.max(1,Math.abs(g),Math.abs(L))}var Vt=it,jt=Dt;function qt(){var e=new h(3);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Nt(e){var t=new h(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Wt(e){var t=e[0],r=e[1],n=e[2];return Math.hypot(t,r,n)}function Gt(e,t,r){var n=new h(3);return n[0]=e,n[1]=t,n[2]=r,n}function Ht(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Yt(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Xt(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Zt(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function Jt(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Kt(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Qt(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function $t(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function er(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function tr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function rr(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function nr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ar(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function ir(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2];return Math.hypot(r,n,a)}function sr(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2];return r*r+n*n+a*a}function or(e){var t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function cr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function ur(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function _r(e,t){var r=t[0],n=t[1],a=t[2],i=r*r+n*n+a*a;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function fr(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function lr(e,t,r){var n=t[0],a=t[1],i=t[2],s=r[0],o=r[1],c=r[2];return e[0]=a*c-i*o,e[1]=i*s-n*c,e[2]=n*o-a*s,e}function dr(e,t,r,n){var a=t[0],i=t[1],s=t[2];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e[2]=s+n*(r[2]-s),e}function hr(e,t,r,n,a,i){var s=i*i,o=s*(2*i-3)+1,c=s*(i-2)+i,u=s*(i-1),_=s*(3-2*i);return e[0]=t[0]*o+r[0]*c+n[0]*u+a[0]*_,e[1]=t[1]*o+r[1]*c+n[1]*u+a[1]*_,e[2]=t[2]*o+r[2]*c+n[2]*u+a[2]*_,e}function pr(e,t,r,n,a,i){var s=1-i,o=s*s,c=i*i,u=o*s,_=3*i*o,f=3*c*s,l=c*i;return e[0]=t[0]*u+r[0]*_+n[0]*f+a[0]*l,e[1]=t[1]*u+r[1]*_+n[1]*f+a[1]*l,e[2]=t[2]*u+r[2]*_+n[2]*f+a[2]*l,e}function mr(e,t){t=t||1;var r=2*p()*Math.PI,n=2*p()-1,a=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*a,e[1]=Math.sin(r)*a,e[2]=n*t,e}function br(e,t,r){var n=t[0],a=t[1],i=t[2],s=r[3]*n+r[7]*a+r[11]*i+r[15];return s=s||1,e[0]=(r[0]*n+r[4]*a+r[8]*i+r[12])/s,e[1]=(r[1]*n+r[5]*a+r[9]*i+r[13])/s,e[2]=(r[2]*n+r[6]*a+r[10]*i+r[14])/s,e}function gr(e,t,r){var n=t[0],a=t[1],i=t[2];return e[0]=n*r[0]+a*r[3]+i*r[6],e[1]=n*r[1]+a*r[4]+i*r[7],e[2]=n*r[2]+a*r[5]+i*r[8],e}function wr(e,t,r){var n=r[0],a=r[1],i=r[2],s=r[3],o=t[0],c=t[1],u=t[2],_=a*u-i*c,f=i*o-n*u,l=n*c-a*o,d=a*l-i*f,h=i*_-n*l,p=n*f-a*_,m=2*s;return _*=m,f*=m,l*=m,d*=2,h*=2,p*=2,e[0]=o+_+d,e[1]=c+f+h,e[2]=u+l+p,e}function vr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[0],i[1]=a[1]*Math.cos(n)-a[2]*Math.sin(n),i[2]=a[1]*Math.sin(n)+a[2]*Math.cos(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function yr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[2]*Math.sin(n)+a[0]*Math.cos(n),i[1]=a[1],i[2]=a[2]*Math.cos(n)-a[0]*Math.sin(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function Mr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[0]*Math.cos(n)-a[1]*Math.sin(n),i[1]=a[0]*Math.sin(n)+a[1]*Math.cos(n),i[2]=a[2],e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function xr(e,t){var r=Gt(e[0],e[1],e[2]),n=Gt(t[0],t[1],t[2]);_r(r,r),_r(n,n);var a=fr(r,n);return a>1?0:a<-1?Math.PI:Math.acos(a)}function Er(e){return e[0]=0,e[1]=0,e[2]=0,e}function Ar(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function kr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Tr(e,t){var r=e[0],n=e[1],a=e[2],i=t[0],s=t[1],o=t[2];return Math.abs(r-i)<=d*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-s)<=d*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(a-o)<=d*Math.max(1,Math.abs(a),Math.abs(o))}var zr,Rr=Zt,Fr=Jt,Sr=Kt,Or=ir,Pr=sr,Lr=Wt,Dr=or,Ur=(zr=qt(),function(e,t,r,n,a,i){var s,o;for(t||(t=3),r||(r=0),o=n?Math.min(n*t+r,e.length):e.length,s=r;s<o;s+=t)zr[0]=e[s],zr[1]=e[s+1],zr[2]=e[s+2],a(zr,zr,i),e[s]=zr[0],e[s+1]=zr[1],e[s+2]=zr[2];return e});function Cr(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Br(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Ir(e,t,r,n){var a=new h(4);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a}function Vr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function jr(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function qr(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function Nr(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function Wr(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e}function Gr(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e}function Hr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function Yr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function Xr(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e}function Zr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e}function Jr(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e[3]=Math.round(t[3]),e}function Kr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function Qr(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}function $r(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],i=t[3]-e[3];return Math.hypot(r,n,a,i)}function en(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],i=t[3]-e[3];return r*r+n*n+a*a+i*i}function tn(e){var t=e[0],r=e[1],n=e[2],a=e[3];return Math.hypot(t,r,n,a)}function rn(e){var t=e[0],r=e[1],n=e[2],a=e[3];return t*t+r*r+n*n+a*a}function nn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function an(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function sn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=r*r+n*n+a*a+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=r*s,e[1]=n*s,e[2]=a*s,e[3]=i*s,e}function on(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function cn(e,t,r,n){var a=r[0]*n[1]-r[1]*n[0],i=r[0]*n[2]-r[2]*n[0],s=r[0]*n[3]-r[3]*n[0],o=r[1]*n[2]-r[2]*n[1],c=r[1]*n[3]-r[3]*n[1],u=r[2]*n[3]-r[3]*n[2],_=t[0],f=t[1],l=t[2],d=t[3];return e[0]=f*u-l*c+d*o,e[1]=-_*u+l*s-d*i,e[2]=_*c-f*s+d*a,e[3]=-_*o+f*i-l*a,e}function un(e,t,r,n){var a=t[0],i=t[1],s=t[2],o=t[3];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e[2]=s+n*(r[2]-s),e[3]=o+n*(r[3]-o),e}function _n(e,t){var r,n,a,i,s,o;t=t||1;do{s=(r=2*p()-1)*r+(n=2*p()-1)*n}while(s>=1);do{o=(a=2*p()-1)*a+(i=2*p()-1)*i}while(o>=1);var c=Math.sqrt((1-s)/o);return e[0]=t*r,e[1]=t*n,e[2]=t*a*c,e[3]=t*i*c,e}function fn(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3];return e[0]=r[0]*n+r[4]*a+r[8]*i+r[12]*s,e[1]=r[1]*n+r[5]*a+r[9]*i+r[13]*s,e[2]=r[2]*n+r[6]*a+r[10]*i+r[14]*s,e[3]=r[3]*n+r[7]*a+r[11]*i+r[15]*s,e}function ln(e,t,r){var n=t[0],a=t[1],i=t[2],s=r[0],o=r[1],c=r[2],u=r[3],_=u*n+o*i-c*a,f=u*a+c*n-s*i,l=u*i+s*a-o*n,d=-s*n-o*a-c*i;return e[0]=_*u+d*-s+f*-c-l*-o,e[1]=f*u+d*-o+l*-s-_*-c,e[2]=l*u+d*-c+_*-o-f*-s,e[3]=t[3],e}function dn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function hn(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function pn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function mn(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=t[0],o=t[1],c=t[2],u=t[3];return Math.abs(r-s)<=d*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=d*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(a-c)<=d*Math.max(1,Math.abs(a),Math.abs(c))&&Math.abs(i-u)<=d*Math.max(1,Math.abs(i),Math.abs(u))}var bn=Nr,gn=Wr,wn=Gr,vn=$r,yn=en,Mn=tn,xn=rn,En=function(){var e=Cr();return function(t,r,n,a,i,s){var o,c;for(r||(r=4),n||(n=0),c=a?Math.min(a*r+n,t.length):t.length,o=n;o<c;o+=r)e[0]=t[o],e[1]=t[o+1],e[2]=t[o+2],e[3]=t[o+3],i(e,e,s),t[o]=e[0],t[o+1]=e[1],t[o+2]=e[2],t[o+3]=e[3];return t}}();function An(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function kn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Tn(e,t,r){r*=.5;var n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e}function zn(e,t){var r=2*Math.acos(t[3]),n=Math.sin(r/2);return n>d?(e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n):(e[0]=1,e[1]=0,e[2]=0),r}function Rn(e,t){var r=aa(e,t);return Math.acos(2*r*r-1)}function Fn(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=r[0],c=r[1],u=r[2],_=r[3];return e[0]=n*_+s*o+a*u-i*c,e[1]=a*_+s*c+i*o-n*u,e[2]=i*_+s*u+n*c-a*o,e[3]=s*_-n*o-a*c-i*u,e}function Sn(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],s=t[3],o=Math.sin(r),c=Math.cos(r);return e[0]=n*c+s*o,e[1]=a*c+i*o,e[2]=i*c-a*o,e[3]=s*c-n*o,e}function On(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],s=t[3],o=Math.sin(r),c=Math.cos(r);return e[0]=n*c-i*o,e[1]=a*c+s*o,e[2]=i*c+n*o,e[3]=s*c-a*o,e}function Pn(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],s=t[3],o=Math.sin(r),c=Math.cos(r);return e[0]=n*c+a*o,e[1]=a*c-n*o,e[2]=i*c+s*o,e[3]=s*c-i*o,e}function Ln(e,t){var r=t[0],n=t[1],a=t[2];return e[0]=r,e[1]=n,e[2]=a,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-a*a)),e}function Dn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=Math.sqrt(r*r+n*n+a*a),o=Math.exp(i),c=s>0?o*Math.sin(s)/s:0;return e[0]=r*c,e[1]=n*c,e[2]=a*c,e[3]=o*Math.cos(s),e}function Un(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=Math.sqrt(r*r+n*n+a*a),o=s>0?Math.atan2(s,i)/s:0;return e[0]=r*o,e[1]=n*o,e[2]=a*o,e[3]=.5*Math.log(r*r+n*n+a*a+i*i),e}function Cn(e,t,r){return Un(e,t),na(e,e,r),Dn(e,e),e}function Bn(e,t,r,n){var a,i,s,o,c,u=t[0],_=t[1],f=t[2],l=t[3],h=r[0],p=r[1],m=r[2],b=r[3];return(i=u*h+_*p+f*m+l*b)<0&&(i=-i,h=-h,p=-p,m=-m,b=-b),1-i>d?(a=Math.acos(i),s=Math.sin(a),o=Math.sin((1-n)*a)/s,c=Math.sin(n*a)/s):(o=1-n,c=n),e[0]=o*u+c*h,e[1]=o*_+c*p,e[2]=o*f+c*m,e[3]=o*l+c*b,e}function In(e){var t=p(),r=p(),n=p(),a=Math.sqrt(1-t),i=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*r),e[1]=a*Math.cos(2*Math.PI*r),e[2]=i*Math.sin(2*Math.PI*n),e[3]=i*Math.cos(2*Math.PI*n),e}function Vn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],s=r*r+n*n+a*a+i*i,o=s?1/s:0;return e[0]=-r*o,e[1]=-n*o,e[2]=-a*o,e[3]=i*o,e}function jn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function qn(e,t){var r,n=t[0]+t[4]+t[8];if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var i=(a+1)%3,s=(a+2)%3;r=Math.sqrt(t[3*a+a]-t[3*i+i]-t[3*s+s]+1),e[a]=.5*r,r=.5/r,e[3]=(t[3*i+s]-t[3*s+i])*r,e[i]=(t[3*i+a]+t[3*a+i])*r,e[s]=(t[3*s+a]+t[3*a+s])*r}return e}function Nn(e,t,r,n){var a=.5*Math.PI/180;t*=a,r*=a,n*=a;var i=Math.sin(t),s=Math.cos(t),o=Math.sin(r),c=Math.cos(r),u=Math.sin(n),_=Math.cos(n);return e[0]=i*c*_-s*o*u,e[1]=s*o*_+i*c*u,e[2]=s*c*u-i*o*_,e[3]=s*c*_+i*o*u,e}function Wn(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Gn,Hn,Yn,Xn,Zn,Jn,Kn=Br,Qn=Ir,$n=Vr,ea=jr,ta=qr,ra=Fn,na=Kr,aa=on,ia=un,sa=tn,oa=sa,ca=rn,ua=ca,_a=sn,fa=pn,la=mn,da=(Gn=qt(),Hn=Gt(1,0,0),Yn=Gt(0,1,0),function(e,t,r){var n=fr(t,r);return n<-.999999?(lr(Gn,Hn,t),Lr(Gn)<1e-6&&lr(Gn,Yn,t),_r(Gn,Gn),Tn(e,Gn,Math.PI),e):n>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(lr(Gn,t,r),e[0]=Gn[0],e[1]=Gn[1],e[2]=Gn[2],e[3]=1+n,_a(e,e))}),ha=(Xn=An(),Zn=An(),function(e,t,r,n,a,i){return Bn(Xn,t,a,i),Bn(Zn,r,n,i),Bn(e,Xn,Zn,2*i*(1-i)),e}),pa=(Jn=be(),function(e,t,r,n){return Jn[0]=r[0],Jn[3]=r[1],Jn[6]=r[2],Jn[1]=n[0],Jn[4]=n[1],Jn[7]=n[2],Jn[2]=-t[0],Jn[5]=-t[1],Jn[8]=-t[2],_a(e,qn(e,Jn))});function ma(){var e=new h(8);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0),e[3]=1,e}function ba(e){var t=new h(8);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function ga(e,t,r,n,a,i,s,o){var c=new h(8);return c[0]=e,c[1]=t,c[2]=r,c[3]=n,c[4]=a,c[5]=i,c[6]=s,c[7]=o,c}function wa(e,t,r,n,a,i,s){var o=new h(8);o[0]=e,o[1]=t,o[2]=r,o[3]=n;var c=.5*a,u=.5*i,_=.5*s;return o[4]=c*n+u*r-_*t,o[5]=u*n+_*e-c*r,o[6]=_*n+c*t-u*e,o[7]=-c*e-u*t-_*r,o}function va(e,t,r){var n=.5*r[0],a=.5*r[1],i=.5*r[2],s=t[0],o=t[1],c=t[2],u=t[3];return e[0]=s,e[1]=o,e[2]=c,e[3]=u,e[4]=n*u+a*c-i*o,e[5]=a*u+i*s-n*c,e[6]=i*u+n*o-a*s,e[7]=-n*s-a*o-i*c,e}function ya(e,t){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=.5*t[0],e[5]=.5*t[1],e[6]=.5*t[2],e[7]=0,e}function Ma(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function xa(e,t){var r=An();Mt(r,t);var n=new h(3);return vt(n,t),va(e,r,n),e}function Ea(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e}function Aa(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function ka(e,t,r,n,a,i,s,o,c){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=s,e[6]=o,e[7]=c,e}var Ta=$n;function za(e,t){return e[0]=t[4],e[1]=t[5],e[2]=t[6],e[3]=t[7],e}var Ra=$n;function Fa(e,t){return e[4]=t[0],e[5]=t[1],e[6]=t[2],e[7]=t[3],e}function Sa(e,t){var r=t[4],n=t[5],a=t[6],i=t[7],s=-t[0],o=-t[1],c=-t[2],u=t[3];return e[0]=2*(r*u+i*s+n*c-a*o),e[1]=2*(n*u+i*o+a*s-r*c),e[2]=2*(a*u+i*c+r*o-n*s),e}function Oa(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=.5*r[0],c=.5*r[1],u=.5*r[2],_=t[4],f=t[5],l=t[6],d=t[7];return e[0]=n,e[1]=a,e[2]=i,e[3]=s,e[4]=s*o+a*u-i*c+_,e[5]=s*c+i*o-n*u+f,e[6]=s*u+n*c-a*o+l,e[7]=-n*o-a*c-i*u+d,e}function Pa(e,t,r){var n=-t[0],a=-t[1],i=-t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=o*s+_*n+c*i-u*a,l=c*s+_*a+u*n-o*i,d=u*s+_*i+o*a-c*n,h=_*s-o*n-c*a-u*i;return Sn(e,t,r),n=e[0],a=e[1],i=e[2],s=e[3],e[4]=f*s+h*n+l*i-d*a,e[5]=l*s+h*a+d*n-f*i,e[6]=d*s+h*i+f*a-l*n,e[7]=h*s-f*n-l*a-d*i,e}function La(e,t,r){var n=-t[0],a=-t[1],i=-t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=o*s+_*n+c*i-u*a,l=c*s+_*a+u*n-o*i,d=u*s+_*i+o*a-c*n,h=_*s-o*n-c*a-u*i;return On(e,t,r),n=e[0],a=e[1],i=e[2],s=e[3],e[4]=f*s+h*n+l*i-d*a,e[5]=l*s+h*a+d*n-f*i,e[6]=d*s+h*i+f*a-l*n,e[7]=h*s-f*n-l*a-d*i,e}function Da(e,t,r){var n=-t[0],a=-t[1],i=-t[2],s=t[3],o=t[4],c=t[5],u=t[6],_=t[7],f=o*s+_*n+c*i-u*a,l=c*s+_*a+u*n-o*i,d=u*s+_*i+o*a-c*n,h=_*s-o*n-c*a-u*i;return Pn(e,t,r),n=e[0],a=e[1],i=e[2],s=e[3],e[4]=f*s+h*n+l*i-d*a,e[5]=l*s+h*a+d*n-f*i,e[6]=d*s+h*i+f*a-l*n,e[7]=h*s-f*n-l*a-d*i,e}function Ua(e,t,r){var n=r[0],a=r[1],i=r[2],s=r[3],o=t[0],c=t[1],u=t[2],_=t[3];return e[0]=o*s+_*n+c*i-u*a,e[1]=c*s+_*a+u*n-o*i,e[2]=u*s+_*i+o*a-c*n,e[3]=_*s-o*n-c*a-u*i,o=t[4],c=t[5],u=t[6],_=t[7],e[4]=o*s+_*n+c*i-u*a,e[5]=c*s+_*a+u*n-o*i,e[6]=u*s+_*i+o*a-c*n,e[7]=_*s-o*n-c*a-u*i,e}function Ca(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=r[0],c=r[1],u=r[2],_=r[3];return e[0]=n*_+s*o+a*u-i*c,e[1]=a*_+s*c+i*o-n*u,e[2]=i*_+s*u+n*c-a*o,e[3]=s*_-n*o-a*c-i*u,o=r[4],c=r[5],u=r[6],_=r[7],e[4]=n*_+s*o+a*u-i*c,e[5]=a*_+s*c+i*o-n*u,e[6]=i*_+s*u+n*c-a*o,e[7]=s*_-n*o-a*c-i*u,e}function Ba(e,t,r,n){if(Math.abs(n)<d)return Ea(e,t);var a=Math.hypot(r[0],r[1],r[2]);n*=.5;var i=Math.sin(n),s=i*r[0]/a,o=i*r[1]/a,c=i*r[2]/a,u=Math.cos(n),_=t[0],f=t[1],l=t[2],h=t[3];e[0]=_*u+h*s+f*c-l*o,e[1]=f*u+h*o+l*s-_*c,e[2]=l*u+h*c+_*o-f*s,e[3]=h*u-_*s-f*o-l*c;var p=t[4],m=t[5],b=t[6],g=t[7];return e[4]=p*u+g*s+m*c-b*o,e[5]=m*u+g*o+b*s-p*c,e[6]=b*u+g*c+p*o-m*s,e[7]=g*u-p*s-m*o-b*c,e}function Ia(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e}function Va(e,t,r){var n=t[0],a=t[1],i=t[2],s=t[3],o=r[4],c=r[5],u=r[6],_=r[7],f=t[4],l=t[5],d=t[6],h=t[7],p=r[0],m=r[1],b=r[2],g=r[3];return e[0]=n*g+s*p+a*b-i*m,e[1]=a*g+s*m+i*p-n*b,e[2]=i*g+s*b+n*m-a*p,e[3]=s*g-n*p-a*m-i*b,e[4]=n*_+s*o+a*u-i*c+f*g+h*p+l*b-d*m,e[5]=a*_+s*c+i*o-n*u+l*g+h*m+d*p-f*b,e[6]=i*_+s*u+n*c-a*o+d*g+h*b+f*m-l*p,e[7]=s*_-n*o-a*c-i*u+h*g-f*p-l*m-d*b,e}var ja=Va;function qa(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e}var Na=aa;function Wa(e,t,r,n){var a=1-n;return Na(t,r)<0&&(n=-n),e[0]=t[0]*a+r[0]*n,e[1]=t[1]*a+r[1]*n,e[2]=t[2]*a+r[2]*n,e[3]=t[3]*a+r[3]*n,e[4]=t[4]*a+r[4]*n,e[5]=t[5]*a+r[5]*n,e[6]=t[6]*a+r[6]*n,e[7]=t[7]*a+r[7]*n,e}function Ga(e,t){var r=Za(t);return e[0]=-t[0]/r,e[1]=-t[1]/r,e[2]=-t[2]/r,e[3]=t[3]/r,e[4]=-t[4]/r,e[5]=-t[5]/r,e[6]=-t[6]/r,e[7]=t[7]/r,e}function Ha(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=t[7],e}var Ya=sa,Xa=Ya,Za=ca,Ja=Za;function Ka(e,t){var r=Za(t);if(r>0){r=Math.sqrt(r);var n=t[0]/r,a=t[1]/r,i=t[2]/r,s=t[3]/r,o=t[4],c=t[5],u=t[6],_=t[7],f=n*o+a*c+i*u+s*_;e[0]=n,e[1]=a,e[2]=i,e[3]=s,e[4]=(o-n*f)/r,e[5]=(c-a*f)/r,e[6]=(u-i*f)/r,e[7]=(_-s*f)/r}return e}function Qa(e){return"quat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+")"}function $a(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]}function ei(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],s=e[4],o=e[5],c=e[6],u=e[7],_=t[0],f=t[1],l=t[2],h=t[3],p=t[4],m=t[5],b=t[6],g=t[7];return Math.abs(r-_)<=d*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-f)<=d*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(a-l)<=d*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(i-h)<=d*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(s-p)<=d*Math.max(1,Math.abs(s),Math.abs(p))&&Math.abs(o-m)<=d*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(c-b)<=d*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(u-g)<=d*Math.max(1,Math.abs(u),Math.abs(g))}function ti(){var e=new h(2);return h!=Float32Array&&(e[0]=0,e[1]=0),e}function ri(e){var t=new h(2);return t[0]=e[0],t[1]=e[1],t}function ni(e,t){var r=new h(2);return r[0]=e,r[1]=t,r}function ai(e,t){return e[0]=t[0],e[1]=t[1],e}function ii(e,t,r){return e[0]=t,e[1]=r,e}function si(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function oi(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function ci(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function ui(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function _i(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function fi(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function li(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function di(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}function hi(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function pi(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function mi(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function bi(e,t){var r=t[0]-e[0],n=t[1]-e[1];return Math.hypot(r,n)}function gi(e,t){var r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function wi(e){var t=e[0],r=e[1];return Math.hypot(t,r)}function vi(e){var t=e[0],r=e[1];return t*t+r*r}function yi(e,t){return e[0]=-t[0],e[1]=-t[1],e}function Mi(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function xi(e,t){var r=t[0],n=t[1],a=r*r+n*n;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e}function Ei(e,t){return e[0]*t[0]+e[1]*t[1]}function Ai(e,t,r){var n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e}function ki(e,t,r,n){var a=t[0],i=t[1];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e}function Ti(e,t){t=t||1;var r=2*p()*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e}function zi(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[2]*a,e[1]=r[1]*n+r[3]*a,e}function Ri(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[2]*a+r[4],e[1]=r[1]*n+r[3]*a+r[5],e}function Fi(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[3]*a+r[6],e[1]=r[1]*n+r[4]*a+r[7],e}function Si(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[4]*a+r[12],e[1]=r[1]*n+r[5]*a+r[13],e}function Oi(e,t,r,n){var a=t[0]-r[0],i=t[1]-r[1],s=Math.sin(n),o=Math.cos(n);return e[0]=a*o-i*s+r[0],e[1]=a*s+i*o+r[1],e}function Pi(e,t){var r=e[0],n=e[1],a=t[0],i=t[1],s=r*r+n*n;s>0&&(s=1/Math.sqrt(s));var o=a*a+i*i;o>0&&(o=1/Math.sqrt(o));var c=(r*a+n*i)*s*o;return c>1?0:c<-1?Math.PI:Math.acos(c)}function Li(e){return e[0]=0,e[1]=0,e}function Di(e){return"vec2("+e[0]+", "+e[1]+")"}function Ui(e,t){return e[0]===t[0]&&e[1]===t[1]}function Ci(e,t){var r=e[0],n=e[1],a=t[0],i=t[1];return Math.abs(r-a)<=d*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-i)<=d*Math.max(1,Math.abs(n),Math.abs(i))}var Bi=wi,Ii=oi,Vi=ci,ji=ui,qi=bi,Ni=gi,Wi=vi,Gi=function(){var e=ti();return function(t,r,n,a,i,s){var o,c;for(r||(r=2),n||(n=0),c=a?Math.min(a*r+n,t.length):t.length,o=n;o<c;o+=r)e[0]=t[o],e[1]=t[o+1],i(e,e,s),t[o]=e[0],t[o+1]=e[1];return t}}();r.d(t,"glMatrix",(function(){return n})),r.d(t,"mat2",(function(){return a})),r.d(t,"mat2d",(function(){return i})),r.d(t,"mat3",(function(){return s})),r.d(t,"mat4",(function(){return o})),r.d(t,"quat",(function(){return _})),r.d(t,"quat2",(function(){return f})),r.d(t,"vec2",(function(){return l})),r.d(t,"vec3",(function(){return c})),r.d(t,"vec4",(function(){return u}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.linkProgram=t.compileShader=void 0,t.compileShader=function(e,t,r){let n=e.createShader(t);if(!n)throw new Error("Unable to create shader");e.shaderSource(n,r),e.compileShader(n);let a=e.getShaderInfoLog(n);if(a&&a.trim().length>0)throw new Error("Shader compile error: "+a);return n},t.linkProgram=function(e,t){e.linkProgram(t);let r=e.getProgramInfoLog(t);if(r&&r.trim().length>0)throw new Error("Unable to link: "+r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=void 0,function(e){e[e.UNKNOWN=131072]="UNKNOWN",e[e.AZTEC=1]="AZTEC",e[e.CODABAR=2]="CODABAR",e[e.CODE_39=4]="CODE_39",e[e.CODE_93=8]="CODE_93",e[e.CODE_128=16]="CODE_128",e[e.DATA_MATRIX=32]="DATA_MATRIX",e[e.EAN_8=64]="EAN_8",e[e.EAN_13=128]="EAN_13",e[e.ITF=256]="ITF",e[e.MAXICODE=512]="MAXICODE",e[e.PDF_417=1024]="PDF_417",e[e.QR_CODE=2048]="QR_CODE",e[e.RSS_14=4096]="RSS_14",e[e.RSS_EXPANDED=8192]="RSS_EXPANDED",e[e.UPC_A=16384]="UPC_A",e[e.UPC_E=32768]="UPC_E",e[e.UPC_EAN_EXTENSION=65536]="UPC_EAN_EXTENSION",e[e.ALL=131071]="ALL"}(t.barcode_format_t||(t.barcode_format_t={})),function(e){e[e.EYE_LEFT=0]="EYE_LEFT",e[e.EYE_RIGHT=1]="EYE_RIGHT",e[e.EAR_LEFT=2]="EAR_LEFT",e[e.EAR_RIGHT=3]="EAR_RIGHT",e[e.NOSE_BRIDGE=4]="NOSE_BRIDGE",e[e.NOSE_TIP=5]="NOSE_TIP",e[e.NOSE_BASE=6]="NOSE_BASE",e[e.LIP_TOP=7]="LIP_TOP",e[e.LIP_BOTTOM=8]="LIP_BOTTOM",e[e.MOUTH_CENTER=9]="MOUTH_CENTER",e[e.CHIN=10]="CHIN",e[e.EYEBROW_LEFT=11]="EYEBROW_LEFT",e[e.EYEBROW_RIGHT=12]="EYEBROW_RIGHT"}(t.face_landmark_name_t||(t.face_landmark_name_t={})),function(e){e[e.WORLD=3]="WORLD",e[e.MINUS_Z_AWAY_FROM_USER=4]="MINUS_Z_AWAY_FROM_USER",e[e.MINUS_Z_HEADING=5]="MINUS_Z_HEADING",e[e.UNCHANGED=6]="UNCHANGED"}(t.instant_world_tracker_transform_orientation_t||(t.instant_world_tracker_transform_orientation_t={})),function(e){e[e.LOG_LEVEL_NONE=0]="LOG_LEVEL_NONE",e[e.LOG_LEVEL_ERROR=1]="LOG_LEVEL_ERROR",e[e.LOG_LEVEL_WARNING=2]="LOG_LEVEL_WARNING",e[e.LOG_LEVEL_VERBOSE=3]="LOG_LEVEL_VERBOSE"}(t.log_level_t||(t.log_level_t={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyScreenCounterRotation=t.Pipeline=void 0;const n=r(29),a=r(1),i=r(6),s=r(30),o=r(31),c=r(7),u=r(8),_=r(0),f=r(11);let l=new Map;class d{constructor(e,t,r){this._client=e,this._impl=t,this._mgr=r,this.pendingMessages=[],this.cameraTokens=new Map,this.nextCameraToken=1,this.tokensInFlight=0,this.videoTextures=[],this.cameraPixelArrays=[],this._sequenceRecordDeviceAttitudeMatrices=!0,this.onGLContextReset=new u.Event}static create(e,t){let r=e.pipeline_create();return l.set(r,new d(e,r,t)),r}static get(e){return l.get(e)}frameUpdate(e){for(let t of this.pendingMessages)e.processMessages(t),this._mgr.postOutgoingMessage({t:"buf",p:this._impl,d:t},[t]);this.pendingMessages=[];let t=this._client.pipeline_camera_frame_user_data(this._impl);if(t)for(let e of this.cameraTokens)e[0]<t&&(e[1].texture&&this.videoTextures.push(e[1].texture),this.cameraTokens.delete(e[0]))}cameraTokenReturn(e){if(this._sequenceRecorder&&this._sequenceRecordDeviceAttitudeMatrices){let t=this.cameraTokens.get(e.token);t&&(e.att&&this._sequenceRecorder.appendAttitudeMatrix(e.att),t.data=e.d,this._sequenceRecorder.appendCameraFrame(t))}this.cameraPixelArrays.push(e.d),this.tokensInFlight--}sequenceRecordStart(e){this._sequenceRecorder||(this._sequenceRecorder=new f.SequenceRecorder(e)),this._sequenceRecorder.start()}sequenceRecordStop(){var e;null===(e=this._sequenceRecorder)||void 0===e||e.stop()}sequenceRecordData(){var e;return(null===(e=this._sequenceRecorder)||void 0===e?void 0:e.data())||new Uint8Array(0)}sequenceRecordClear(){delete this._sequenceRecorder}sequenceRecordDeviceAttitudeMatrices(e){this._sequenceRecordDeviceAttitudeMatrices=e}getVideoTexture(){return this.videoTextures.pop()}destroy(){this._client.pipeline_destroy(this._impl),l.delete(this._impl)}getCurrentCameraInfo(){let e=this._client.pipeline_camera_frame_user_data(this._impl);if(e)return this.cameraTokens.get(e)}cameraFrameDrawGL(e,t,r){if(!this.glContext)return;let a=this.getCurrentCameraInfo();a&&(this._cameraDraw||(this._cameraDraw=new n.CameraDraw(this.glContext)),this._cameraDraw.drawCameraFrame(e,t,a,!0===r))}glContextLost(){this._cameraDraw&&this._cameraDraw.dispose(),this._faceDraw&&this._faceDraw.dispose(),this._faceProjectDraw&&this._faceProjectDraw.dispose(),delete this._cameraDraw,delete this._faceDraw,delete this._faceProjectDraw,c.disposeDrawPlane(),this.onGLContextReset.emit();for(let e of this.videoTextures)this.glContext&&this.glContext.deleteTexture(e);this.videoTextures=[];for(let e of this.cameraTokens)this.glContext&&e[1].texture&&this.glContext.deleteTexture(e[1].texture),e[1].texture=void 0;this.glContext=void 0}glContextSet(e,t){this.glContextLost(),this.glContext=e,t=t||[];for(let r=0;r<4;r++){let n=t[r]||e.createTexture();n&&(e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),this.videoTextures.push(n))}e.bindTexture(e.TEXTURE_2D,null)}drawFace(e,t,r,n){if(!this.glContext)return;this._faceDraw||(this._faceDraw=new s.FaceDraw(this.glContext));let i=a.mat4.create();a.mat4.multiply(i,e,t),a.mat4.multiply(i,i,r),this._faceDraw.drawFace(i,n)}drawFaceProject(e,t,r,n,a,i){this.glContext&&(this._faceProjectDraw||(this._faceProjectDraw=new o.FaceDrawProject(this.glContext)),this._faceProjectDraw.drawFace(e,t,r,n,a,i))}cameraFrameTexture(){var e;return null===(e=this.getCurrentCameraInfo())||void 0===e?void 0:e.texture}cameraFrameTextureMatrix(e,t,r){let i=this.getCurrentCameraInfo();return i?n.cameraFrameTextureMatrix(i.dataWidth,i.dataHeight,e,t,i.uvTransform,r):a.mat4.create()}cameraFrameUserFacing(){var e;return(null===(e=this.getCurrentCameraInfo())||void 0===e?void 0:e.userFacing)||!1}cameraPoseWithAttitude(e){let t=h(this.getCurrentCameraInfo(),this._client.pipeline_camera_frame_camera_attitude(this._impl));if(e){let e=a.mat4.create();a.mat4.fromScaling(e,[-1,1,1]),a.mat4.multiply(t,e,t),a.mat4.multiply(t,t,e)}return a.mat4.invert(t,t),t}processGL(){var e;if(!this.glContext)return void _.zcerr("no GL context for camera frames - please call pipeline_gl_context_set");if(!this.currentCameraSource)return;if(this.tokensInFlight>0)return void this.currentCameraSource.getFrame(!0);let t=this.currentCameraSource.getFrame(!1);if(!t)return;let r=this.nextCameraToken++;this.cameraTokens.set(r,t);let n={d:t.data,p:this._impl,width:t.dataWidth,height:t.dataHeight,token:r,userFacing:t.userFacing,c2d:t.cameraToDevice,cm:t.cameraModel,t:"cameraFrameC2S"};this._sequenceRecordDeviceAttitudeMatrices||null===(e=this._sequenceRecorder)||void 0===e||e.appendCameraFrame(t),this.tokensInFlight++,this._mgr.postOutgoingMessage(n,[t.data])}motionAccelerometerSubmit(e,t,r,n){var a;this._sequenceRecordDeviceAttitudeMatrices||null===(a=this._sequenceRecorder)||void 0===a||a.appendAccelerometer(e,t,r,n),this._client.pipeline_motion_accelerometer_submit(this._impl,e,t,r,n)}motionRotationRateSubmit(e,t,r,n){var a;this._sequenceRecordDeviceAttitudeMatrices||null===(a=this._sequenceRecorder)||void 0===a||a.appendRotationRate(e,t,r,n),this._client.pipeline_motion_rotation_rate_submit(this._impl,e,t,r,n)}motionAttitudeSubmit(e,t,r,n){var a;this._sequenceRecordDeviceAttitudeMatrices||null===(a=this._sequenceRecorder)||void 0===a||a.appendAttitude(e,t,r,n),this._client.pipeline_motion_attitude_submit(this._impl,e,t,r,n)}motionAttitudeMatrix(e){this._client.pipeline_motion_attitude_matrix_submit(this._impl,e)}uploadGL(){let e=this.getCurrentCameraInfo();null==e||e.cameraSource.uploadGL(e)}}function h(e,t){let r=!1;r=!!e&&e.userFacing;let n=a.mat4.create();return a.mat4.fromRotation(n,i.cameraRotationForScreenOrientation(r)*Math.PI/180,[0,0,1]),a.mat4.multiply(n,n,t),n}t.Pipeline=d,t.applyScreenCounterRotation=h},function(e,t,r){"use strict";e.exports=function(e,t,r,n){try{try{var a;try{a=new window.Blob([e])}catch(t){(a=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(e),a=a.getBlob()}var i=window.URL||window.webkitURL,s=i.createObjectURL(a),o=new window[t](s,r);return i.revokeObjectURL(s),o}catch(n){return new window[t]("data:application/javascript,".concat(encodeURIComponent(e)),r)}}catch(e){if(!n)throw Error("Inline worker is not supported");return new window[t](n,r)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cameraRotationForScreenOrientation=t.projectionMatrix=void 0;const n=r(1);function a(e){if(window.screen.orientation)switch(window.screen.orientation.type){case"portrait-primary":return e?90:270;case"landscape-secondary":return 180;case"portrait-secondary":return e?270:90;default:return 0}else if(void 0!==window.orientation)switch(window.orientation){case 0:return e?90:270;case 90:return 0;case 180:return e?270:90;case-90:return 180}return 0}t.projectionMatrix=function(e,t,r,i=.01,s=100){let o=2*e[2],c=2*e[3],u=n.mat4.create();n.mat4.frustum(u,i*(-.5-e[2])/e[0],i*(o-.5-e[2])/e[0],i*(c-.5-e[3])/e[1],i*(-.5-e[3])/e[1],i,s),u[4]*=-1,u[5]*=-1,u[6]*=-1,u[7]*=-1;let _=n.mat4.create();n.mat4.fromScaling(_,[.5*o,.5*c,1]),n.mat4.multiply(u,_,u),n.mat4.fromRotation(_,a(!1)*Math.PI/180,[0,0,1]),n.mat4.multiply(u,_,u);let f=n.vec3.create();f[0]=o,f[1]=c,f[2]=0,n.vec3.transformMat4(f,f,_);let l=Math.abs(f[0]),d=Math.abs(f[1]),h=1;return h=l/t>d/r?r/d:t/l,n.mat4.fromScaling(_,[h,h,1]),n.mat4.multiply(u,_,u),n.mat4.fromScaling(_,[2/t,2/r,1]),n.mat4.multiply(u,_,u),n.mat4.fromRotation(_,a(!1)*Math.PI/-180,[0,0,1]),n.mat4.multiply(u,u,_),u},t.cameraRotationForScreenOrientation=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawPlane=t.disposeDrawPlane=void 0;const n=r(2);let a,i,s,o={};function c(e){if(s)return s;if(s=e.createBuffer(),!s)throw new Error("Unable to create buffer object");return e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,1,1,0]),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),s}t.disposeDrawPlane=function(){a=void 0,i=void 0,s=void 0,o={}},t.drawPlane=function(e,t,r,n,a){let s=u(e),_=function(e){if(i)return i;if(i=e.createBuffer(),!i)throw new Error("Unable to create buffer object");return e.bindBuffer(e.ARRAY_BUFFER,i),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-.5,.125,0,-.5,-.125,0,.5,.125,0,.5,-.125,0]),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),i}(e),f=c(e);e.disable(e.DEPTH_TEST),e.useProgram(s.prog),e.uniformMatrix4fv(s.unif_proj,!1,t),e.uniformMatrix4fv(s.unif_camera,!1,r),e.uniformMatrix4fv(s.unif_matrix,!1,n),e.bindBuffer(e.ARRAY_BUFFER,_),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,function(e,t){if(o[t])return o[t];let r=e.createTexture();if(!r)throw new Error("Unable to create texture");o[t]=r,e.bindTexture(e.TEXTURE_2D,r);const n=e.RGBA,a=e.RGBA,i=e.UNSIGNED_BYTE,s=new Uint8Array([0,0,255,255]);e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,n,1,1,0,a,i,s);const c=new Image;return c.onload=function(){e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,n,a,i,c),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR)},c.src=t,r}(e,a)),e.uniform1i(s.unif_skinSampler,0),e.vertexAttribPointer(s.attr_position,3,e.FLOAT,!1,12,0),e.enableVertexAttribArray(s.attr_position),e.bindBuffer(e.ARRAY_BUFFER,f),e.vertexAttribPointer(s.attr_textureCoord,2,e.FLOAT,!1,8,0),e.enableVertexAttribArray(s.attr_textureCoord),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.disableVertexAttribArray(s.attr_position),e.bindBuffer(e.ARRAY_BUFFER,null)};function u(e){if(a)return a;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,"\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 projMatrix;\nuniform mat4 cameraMatrix;\nuniform mat4 modelViewMatrix;\nattribute vec4 position;\nattribute vec2 textureCoord;\n\nvarying highp vec2 vTextureCoord;\n\nvoid main()\n{\n gl_Position = projMatrix * cameraMatrix * modelViewMatrix * position;\n vTextureCoord = textureCoord;\n}"),i=n.compileShader(e,e.FRAGMENT_SHADER,"\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying highp vec2 vTextureCoord;\nuniform sampler2D skinSampler;\n\nvoid main()\n{\n gl_FragColor = texture2D(skinSampler, vTextureCoord);\n}");e.attachShader(t,r),e.attachShader(t,i),n.linkProgram(e,t);let s=e.getUniformLocation(t,"projMatrix");if(!s)throw new Error("Unable to get uniform location projMatrix");let o=e.getUniformLocation(t,"modelViewMatrix");if(!o)throw new Error("Unable to get uniform location modelViewMatrix");let c=e.getUniformLocation(t,"cameraMatrix");if(!c)throw new Error("Unable to get uniform location cameraMatrix");let u=e.getUniformLocation(t,"skinSampler");if(!u)throw new Error("Unable to get uniform location skinSampler");return a={prog:t,unif_matrix:o,unif_proj:s,unif_camera:c,unif_skinSampler:u,attr_position:e.getAttribLocation(t,"position"),attr_textureCoord:e.getAttribLocation(t,"textureCoord")},a}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Event5=t.Event3=t.Event2=t.Event1=t.Event=void 0;t.Event=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(){for(var e=0,t=this._funcs.length;e<t;e++)this._funcs[e]()}};t.Event1=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e){for(var t=0,r=this._funcs.length;t<r;t++)this._funcs[t](e)}};t.Event2=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t){for(var r=0,n=this._funcs.length;r<n;r++)this._funcs[r](e,t)}};t.Event3=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r){for(var n=0,a=this._funcs.length;n<a;n++)this._funcs[n](e,t,r)}};t.Event5=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r,n,a){for(var i=0,s=this._funcs.length;i<s;i++)this._funcs[i](e,t,r,n,a)}}},function(e,t,r){var n;
2
- /*!@license
3
- * UAParser.js v0.7.28
4
- * Lightweight JavaScript-based User-Agent string parser
5
- * https://github.com/faisalman/ua-parser-js
6
- *
7
- * Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
8
- * Licensed under MIT License
9
- */!function(a,i){"use strict";var s="model",o="name",c="type",u="vendor",_="version",f="mobile",l="tablet",d="smarttv",h={extend:function(e,t){var r={};for(var n in e)t[n]&&t[n].length%2==0?r[n]=t[n].concat(e[n]):r[n]=e[n];return r},has:function(e,t){return"string"==typeof e&&-1!==t.toLowerCase().indexOf(e.toLowerCase())},lowerize:function(e){return e.toLowerCase()},major:function(e){return"string"==typeof e?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0},trim:function(e,t){return e=e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),void 0===t?e:e.substring(0,255)}},p={rgx:function(e,t){for(var r,n,a,i,s,o,c=0;c<t.length&&!s;){var u=t[c],_=t[c+1];for(r=n=0;r<u.length&&!s;)if(s=u[r++].exec(e))for(a=0;a<_.length;a++)o=s[++n],"object"==typeof(i=_[a])&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,o):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i[0]]=o?o.replace(i[1],i[2]):void 0:this[i[0]]=o?i[1].call(this,o,i[2]):void 0:4==i.length&&(this[i[0]]=o?i[3].call(this,o.replace(i[1],i[2])):void 0):this[i]=o||void 0;c+=2}},str:function(e,t){for(var r in t)if("object"==typeof t[r]&&t[r].length>0){for(var n=0;n<t[r].length;n++)if(h.has(t[r][n],e))return"?"===r?void 0:r}else if(h.has(t[r],e))return"?"===r?void 0:r;return e}},m={browser:{oldSafari:{version:{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}},oldEdge:{version:{.1:"12.",21:"13.",31:"14.",39:"15.",41:"16.",42:"17.",44:"18."}}},os:{windows:{version:{ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"}}}},b={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[_,[o,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[_,[o,"Edge"]],[/(opera\smini)\/([\w\.-]+)/i,/(opera\s[mobiletab]{3,6})\b.+version\/([\w\.-]+)/i,/(opera)(?:.+version\/|[\/\s]+)([\w\.]+)/i],[o,_],[/opios[\/\s]+([\w\.]+)/i],[_,[o,"Opera Mini"]],[/\sopr\/([\w\.]+)/i],[_,[o,"Opera"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i,/(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i,/(ba?idubrowser)[\/\s]?([\w\.]+)/i,/(?:ms|\()(ie)\s([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i,/(rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([\w\.]+)/i,/(weibo)__([\d\.]+)/i],[o,_],[/(?:[\s\/]uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i],[_,[o,"UCBrowser"]],[/(?:windowswechat)?\sqbcore\/([\w\.]+)\b.*(?:windowswechat)?/i],[_,[o,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[_,[o,"WeChat"]],[/konqueror\/([\w\.]+)/i],[_,[o,"Konqueror"]],[/trident.+rv[:\s]([\w\.]{1,9})\b.+like\sgecko/i],[_,[o,"IE"]],[/yabrowser\/([\w\.]+)/i],[_,[o,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[o,/(.+)/,"$1 Secure Browser"],_],[/focus\/([\w\.]+)/i],[_,[o,"Firefox Focus"]],[/opt\/([\w\.]+)/i],[_,[o,"Opera Touch"]],[/coc_coc_browser\/([\w\.]+)/i],[_,[o,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[_,[o,"Dolphin"]],[/coast\/([\w\.]+)/i],[_,[o,"Opera Coast"]],[/xiaomi\/miuibrowser\/([\w\.]+)/i],[_,[o,"MIUI Browser"]],[/fxios\/([\w\.-]+)/i],[_,[o,"Firefox"]],[/(qihu|qhbrowser|qihoobrowser|360browser)/i],[[o,"360 Browser"]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[o,/(.+)/,"$1 Browser"],_],[/(comodo_dragon)\/([\w\.]+)/i],[[o,/_/g," "],_],[/\s(electron)\/([\w\.]+)\ssafari/i,/(tesla)(?:\sqtcarbrowser|\/(20[12]\d\.[\w\.-]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/\s]?([\w\.]+)/i],[o,_],[/(MetaSr)[\/\s]?([\w\.]+)/i,/(LBBROWSER)/i],[o],[/;fbav\/([\w\.]+);/i],[_,[o,"Facebook"]],[/FBAN\/FBIOS|FB_IAB\/FB4A/i],[[o,"Facebook"]],[/safari\s(line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/\s]([\w\.-]+)/i],[o,_],[/\bgsa\/([\w\.]+)\s.*safari\//i],[_,[o,"GSA"]],[/headlesschrome(?:\/([\w\.]+)|\s)/i],[_,[o,"Chrome Headless"]],[/\swv\).+(chrome)\/([\w\.]+)/i],[[o,"Chrome WebView"],_],[/droid.+\sversion\/([\w\.]+)\b.+(?:mobile\ssafari|safari)/i],[_,[o,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i],[o,_],[/version\/([\w\.]+)\s.*mobile\/\w+\s(safari)/i],[_,[o,"Mobile Safari"]],[/version\/([\w\.]+)\s.*(mobile\s?safari|safari)/i],[_,o],[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[o,[_,p.str,m.browser.oldSafari.version]],[/(webkit|khtml)\/([\w\.]+)/i],[o,_],[/(navigator|netscape)\/([\w\.-]+)/i],[[o,"Netscape"],_],[/ile\svr;\srv:([\w\.]+)\).+firefox/i],[_,[o,"Firefox Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i,/(firefox)\/([\w\.]+)\s[\w\s\-]+\/[\w\.]+$/i,/(mozilla)\/([\w\.]+)\s.+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,/(links)\s\(([\w\.]+)/i,/(gobrowser)\/?([\w\.]*)/i,/(ice\s?browser)\/v?([\w\._]+)/i,/(mosaic)[\/\s]([\w\.]+)/i],[o,_]],cpu:[[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],[["architecture","amd64"]],[/(ia32(?=;))/i],[["architecture",h.lowerize]],[/((?:i[346]|x)86)[;\)]/i],[["architecture","ia32"]],[/\b(aarch64|armv?8e?l?)\b/i],[["architecture","arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[["architecture","armhf"]],[/windows\s(ce|mobile);\sppc;/i],[["architecture","arm"]],[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],[["architecture",/ower/,"",h.lowerize]],[/(sun4\w)[;\)]/i],[["architecture","sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?:64|(?=v(?:[1-7]|[5-7]1)l?|;|eabi))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[["architecture",h.lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus\s10)/i],[s,[u,"Samsung"],[c,l]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy\snexus)/i,/\ssamsung[\s-]([\w-]+)/i,/sec-(sgh\w+)/i],[s,[u,"Samsung"],[c,f]],[/\((ip(?:hone|od)[\s\w]*);/i],[s,[u,"Apple"],[c,f]],[/\((ipad);[\w\s\),;-]+apple/i,/applecoremedia\/[\w\.]+\s\((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[s,[u,"Apple"],[c,l]],[/\b((?:agr|ags[23]|bah2?|sht?)-a?[lw]\d{2})/i],[s,[u,"Huawei"],[c,l]],[/d\/huawei([\w\s-]+)[;\)]/i,/\b(nexus\s6p|vog-[at]?l\d\d|ane-[at]?l[x\d]\d|eml-a?l\d\da?|lya-[at]?l\d[\dc]|clt-a?l\d\di?|ele-l\d\d)/i,/\b(\w{2,4}-[atu][ln][01259][019])[;\)\s]/i],[s,[u,"Huawei"],[c,f]],[/\b(poco[\s\w]+)(?:\sbuild|\))/i,/\b;\s(\w+)\sbuild\/hm\1/i,/\b(hm[\s\-_]?note?[\s_]?(?:\d\w)?)\sbuild/i,/\b(redmi[\s\-_]?(?:note|k)?[\w\s_]+)(?:\sbuild|\))/i,/\b(mi[\s\-_]?(?:a\d|one|one[\s_]plus|note lte)?[\s_]?(?:\d?\w?)[\s_]?(?:plus)?)\sbuild/i],[[s,/_/g," "],[u,"Xiaomi"],[c,f]],[/\b(mi[\s\-_]?(?:pad)(?:[\w\s_]+))(?:\sbuild|\))/i],[[s,/_/g," "],[u,"Xiaomi"],[c,l]],[/;\s(\w+)\sbuild.+\soppo/i,/\s(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007)\b/i],[s,[u,"OPPO"],[c,f]],[/\svivo\s(\w+)(?:\sbuild|\))/i,/\s(v[12]\d{3}\w?[at])(?:\sbuild|;)/i],[s,[u,"Vivo"],[c,f]],[/\s(rmx[12]\d{3})(?:\sbuild|;)/i],[s,[u,"Realme"],[c,f]],[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)\b[\w\s]+build\//i,/\smot(?:orola)?[\s-](\w*)/i,/((?:moto[\s\w\(\)]+|xt\d{3,4}|nexus\s6)(?=\sbuild|\)))/i],[s,[u,"Motorola"],[c,f]],[/\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],[s,[u,"Motorola"],[c,l]],[/((?=lg)?[vl]k\-?\d{3})\sbuild|\s3\.[\s\w;-]{10}lg?-([06cv9]{3,4})/i],[s,[u,"LG"],[c,l]],[/(lm-?f100[nv]?|nexus\s[45])/i,/lg[e;\s\/-]+((?!browser|netcast)\w+)/i,/\blg(\-?[\d\w]+)\sbuild/i],[s,[u,"LG"],[c,f]],[/(ideatab[\w\-\s]+)/i,/lenovo\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+)|yt[\d\w-]{6}|tb[\d\w-]{6})/i],[s,[u,"Lenovo"],[c,l]],[/(?:maemo|nokia).*(n900|lumia\s\d+)/i,/nokia[\s_-]?([\w\.-]*)/i],[[s,/_/g," "],[u,"Nokia"],[c,f]],[/droid.+;\s(pixel\sc)[\s)]/i],[s,[u,"Google"],[c,l]],[/droid.+;\s(pixel[\s\daxl]{0,6})(?:\sbuild|\))/i],[s,[u,"Google"],[c,f]],[/droid.+\s([c-g]\d{4}|so[-l]\w+|xq-a\w[4-7][12])(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[s,[u,"Sony"],[c,f]],[/sony\stablet\s[ps]\sbuild\//i,/(?:sony)?sgp\w+(?:\sbuild\/|\))/i],[[s,"Xperia Tablet"],[u,"Sony"],[c,l]],[/\s(kb2005|in20[12]5|be20[12][59])\b/i,/\ba000(1)\sbuild/i,/\boneplus\s(a\d{4})[\s)]/i],[s,[u,"OnePlus"],[c,f]],[/(alexa)webm/i,/(kf[a-z]{2}wi)(\sbuild\/|\))/i,/(kf[a-z]+)(\sbuild\/|\)).+silk\//i],[s,[u,"Amazon"],[c,l]],[/(sd|kf)[0349hijorstuw]+(\sbuild\/|\)).+silk\//i],[[s,"Fire Phone"],[u,"Amazon"],[c,f]],[/\((playbook);[\w\s\),;-]+(rim)/i],[s,u,[c,l]],[/((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10;\s(\w+)/i],[s,[u,"BlackBerry"],[c,f]],[/(?:\b|asus_)(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus\s7|padfone|p00[cj])/i],[s,[u,"ASUS"],[c,l]],[/\s(z[es]6[027][01][km][ls]|zenfone\s\d\w?)\b/i],[s,[u,"ASUS"],[c,f]],[/(nexus\s9)/i],[s,[u,"HTC"],[c,l]],[/(htc)[;_\s-]{1,2}([\w\s]+(?=\)|\sbuild)|\w+)/i,/(zte)-(\w*)/i,/(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i],[u,[s,/_/g," "],[c,f]],[/droid[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i],[s,[u,"Acer"],[c,l]],[/droid.+;\s(m[1-5]\snote)\sbuild/i,/\bmz-([\w-]{2,})/i],[s,[u,"Meizu"],[c,f]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i,/(hp)\s([\w\s]+\w)/i,/(asus)-?(\w+)/i,/(microsoft);\s(lumia[\s\w]+)/i,/(lenovo)[_\s-]?([\w-]+)/i,/linux;.+(jolla);/i,/droid.+;\s(oppo)\s?([\w\s]+)\sbuild/i],[u,s,[c,f]],[/(archos)\s(gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/\s(nook)[\w\s]+build\/(\w+)/i,/(dell)\s(strea[kpr\s\d]*[\dko])/i,/[;\/]\s?(le[\s\-]+pan)[\s\-]+(\w{1,9})\sbuild/i,/[;\/]\s?(trinity)[\-\s]*(t\d{3})\sbuild/i,/\b(gigaset)[\s\-]+(q\w{1,9})\sbuild/i,/\b(vodafone)\s([\w\s]+)(?:\)|\sbuild)/i],[u,s,[c,l]],[/\s(surface\sduo)\s/i],[s,[u,"Microsoft"],[c,l]],[/droid\s[\d\.]+;\s(fp\du?)\sbuild/i],[s,[u,"Fairphone"],[c,f]],[/\s(u304aa)\sbuild/i],[s,[u,"AT&T"],[c,f]],[/sie-(\w*)/i],[s,[u,"Siemens"],[c,f]],[/[;\/]\s?(rct\w+)\sbuild/i],[s,[u,"RCA"],[c,l]],[/[;\/\s](venue[\d\s]{2,7})\sbuild/i],[s,[u,"Dell"],[c,l]],[/[;\/]\s?(q(?:mv|ta)\w+)\sbuild/i],[s,[u,"Verizon"],[c,l]],[/[;\/]\s(?:barnes[&\s]+noble\s|bn[rt])([\w\s\+]*)\sbuild/i],[s,[u,"Barnes & Noble"],[c,l]],[/[;\/]\s(tm\d{3}\w+)\sbuild/i],[s,[u,"NuVision"],[c,l]],[/;\s(k88)\sbuild/i],[s,[u,"ZTE"],[c,l]],[/;\s(nx\d{3}j)\sbuild/i],[s,[u,"ZTE"],[c,f]],[/[;\/]\s?(gen\d{3})\sbuild.*49h/i],[s,[u,"Swiss"],[c,f]],[/[;\/]\s?(zur\d{3})\sbuild/i],[s,[u,"Swiss"],[c,l]],[/[;\/]\s?((zeki)?tb.*\b)\sbuild/i],[s,[u,"Zeki"],[c,l]],[/[;\/]\s([yr]\d{2})\sbuild/i,/[;\/]\s(dragon[\-\s]+touch\s|dt)(\w{5})\sbuild/i],[[u,"Dragon Touch"],s,[c,l]],[/[;\/]\s?(ns-?\w{0,9})\sbuild/i],[s,[u,"Insignia"],[c,l]],[/[;\/]\s?((nxa|Next)-?\w{0,9})\sbuild/i],[s,[u,"NextBook"],[c,l]],[/[;\/]\s?(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05]))\sbuild/i],[[u,"Voice"],s,[c,f]],[/[;\/]\s?(lvtel\-)?(v1[12])\sbuild/i],[[u,"LvTel"],s,[c,f]],[/;\s(ph-1)\s/i],[s,[u,"Essential"],[c,f]],[/[;\/]\s?(v(100md|700na|7011|917g).*\b)\sbuild/i],[s,[u,"Envizen"],[c,l]],[/[;\/]\s?(trio[\s\w\-\.]+)\sbuild/i],[s,[u,"MachSpeed"],[c,l]],[/[;\/]\s?tu_(1491)\sbuild/i],[s,[u,"Rotor"],[c,l]],[/(shield[\w\s]+)\sbuild/i],[s,[u,"Nvidia"],[c,l]],[/(sprint)\s(\w+)/i],[u,s,[c,f]],[/(kin\.[onetw]{3})/i],[[s,/\./g," "],[u,"Microsoft"],[c,f]],[/droid\s[\d\.]+;\s(cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[s,[u,"Zebra"],[c,l]],[/droid\s[\d\.]+;\s(ec30|ps20|tc[2-8]\d[kx])\)/i],[s,[u,"Zebra"],[c,f]],[/\s(ouya)\s/i,/(nintendo)\s([wids3utch]+)/i],[u,s,[c,"console"]],[/droid.+;\s(shield)\sbuild/i],[s,[u,"Nvidia"],[c,"console"]],[/(playstation\s[345portablevi]+)/i],[s,[u,"Sony"],[c,"console"]],[/[\s\(;](xbox(?:\sone)?(?!;\sxbox))[\s\);]/i],[s,[u,"Microsoft"],[c,"console"]],[/smart-tv.+(samsung)/i],[u,[c,d]],[/hbbtv.+maple;(\d+)/i],[[s,/^/,"SmartTV"],[u,"Samsung"],[c,d]],[/(?:linux;\snetcast.+smarttv|lg\snetcast\.tv-201\d)/i],[[u,"LG"],[c,d]],[/(apple)\s?tv/i],[u,[s,"Apple TV"],[c,d]],[/crkey/i],[[s,"Chromecast"],[u,"Google"],[c,d]],[/droid.+aft([\w])(\sbuild\/|\))/i],[s,[u,"Amazon"],[c,d]],[/\(dtv[\);].+(aquos)/i],[s,[u,"Sharp"],[c,d]],[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i],[[u,h.trim],[s,h.trim],[c,d]],[/[\s\/\(](android\s|smart[-\s]?|opera\s)tv[;\)\s]/i],[[c,d]],[/((pebble))app\/[\d\.]+\s/i],[u,s,[c,"wearable"]],[/droid.+;\s(glass)\s\d/i],[s,[u,"Google"],[c,"wearable"]],[/droid\s[\d\.]+;\s(wt63?0{2,3})\)/i],[s,[u,"Zebra"],[c,"wearable"]],[/(tesla)(?:\sqtcarbrowser|\/20[12]\d\.[\w\.-]+)/i],[u,[c,"embedded"]],[/droid .+?; ([^;]+?)(?: build|\) applewebkit).+? mobile safari/i],[s,[c,f]],[/droid .+?;\s([^;]+?)(?: build|\) applewebkit).+?(?! mobile) safari/i],[s,[c,l]],[/\s(tablet|tab)[;\/]/i,/\s(mobile)(?:[;\/]|\ssafari)/i],[[c,h.lowerize]],[/(android[\w\.\s\-]{0,9});.+build/i],[s,[u,"Generic"]],[/(phone)/i],[[c,f]]],engine:[[/windows.+\sedge\/([\w\.]+)/i],[_,[o,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[_,[o,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,/(icab)[\/\s]([23]\.[\d\.]+)/i],[o,_],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[_,o]],os:[[/microsoft\s(windows)\s(vista|xp)/i],[o,_],[/(windows)\snt\s6\.2;\s(arm)/i,/(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i,/(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)(?!.+xbox)/i],[o,[_,p.str,m.os.windows.version]],[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],[[o,"Windows"],[_,p.str,m.os.windows.version]],[/ip[honead]{2,4}\b(?:.*os\s([\w]+)\slike\smac|;\sopera)/i,/cfnetwork\/.+darwin/i],[[_,/_/g,"."],[o,"iOS"]],[/(mac\sos\sx)\s?([\w\s\.]*)/i,/(macintosh|mac(?=_powerpc)\s)(?!.+haiku)/i],[[o,"Mac OS"],[_,/_/g,"."]],[/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/\s]([\w\.]+)/i,/\((series40);/i],[o,_],[/\(bb(10);/i],[_,[o,"BlackBerry"]],[/(?:symbian\s?os|symbos|s60(?=;)|series60)[\/\s-]?([\w\.]*)/i],[_,[o,"Symbian"]],[/mozilla.+\(mobile;.+gecko.+firefox/i],[[o,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[_,[o,"webOS"]],[/crkey\/([\d\.]+)/i],[_,[o,"Chromecast"]],[/(cros)\s[\w]+\s([\w\.]+\w)/i],[[o,"Chromium OS"],_],[/(nintendo|playstation)\s([wids345portablevuch]+)/i,/(xbox);\s+xbox\s([^\);]+)/i,/(mint)[\/\s\(\)]?(\w*)/i,/(mageia|vectorlinux)[;\s]/i,/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?=\slinux)|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus|raspbian)(?:\sgnu\/linux)?(?:\slinux)?[\/\s-]?(?!chrom|package)([\w\.-]*)/i,/(hurd|linux)\s?([\w\.]*)/i,/(gnu)\s?([\w\.]*)/i,/\s([frentopc-]{0,4}bsd|dragonfly)\s?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku)\s(\w+)/i],[o,_],[/(sunos)\s?([\w\.\d]*)/i],[[o,"Solaris"],_],[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i,/(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i,/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i,/(unix)\s?([\w\.]*)/i],[o,_]]},g=function(e,t){if("object"==typeof e&&(t=e,e=void 0),!(this instanceof g))return new g(e,t).getResult();var r=e||(void 0!==a&&a.navigator&&a.navigator.userAgent?a.navigator.userAgent:""),n=t?h.extend(b,t):b;return this.getBrowser=function(){var e={name:void 0,version:void 0};return p.rgx.call(e,r,n.browser),e.major=h.major(e.version),e},this.getCPU=function(){var e={architecture:void 0};return p.rgx.call(e,r,n.cpu),e},this.getDevice=function(){var e={vendor:void 0,model:void 0,type:void 0};return p.rgx.call(e,r,n.device),e},this.getEngine=function(){var e={name:void 0,version:void 0};return p.rgx.call(e,r,n.engine),e},this.getOS=function(){var e={name:void 0,version:void 0};return p.rgx.call(e,r,n.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r="string"==typeof e&&e.length>255?h.trim(e,255):e,this},this.setUA(r),this};g.VERSION="0.7.28",g.BROWSER={NAME:o,MAJOR:"major",VERSION:_},g.CPU={ARCHITECTURE:"architecture"},g.DEVICE={MODEL:s,VENDOR:u,TYPE:c,CONSOLE:"console",MOBILE:f,SMARTTV:d,TABLET:l,WEARABLE:"wearable",EMBEDDED:"embedded"},g.ENGINE={NAME:o,VERSION:_},g.OS={NAME:o,VERSION:_},void 0!==t?(void 0!==e&&e.exports&&(t=e.exports=g),t.UAParser=g):void 0===(n=function(){return g}.call(t,r,t,e))||(e.exports=n);var w=void 0!==a&&(a.jQuery||a.Zepto);if(w&&!w.ua){var v=new g;w.ua=v.getResult(),w.ua.get=function(){return v.getUA()},w.ua.set=function(e){v.setUA(e);var t=v.getResult();for(var r in t)w.ua[r]=t[r]}}}("object"==typeof window?window:this)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=void 0;var n=r(3);Object.defineProperty(t,"barcode_format_t",{enumerable:!0,get:function(){return n.barcode_format_t}});var a=r(3);Object.defineProperty(t,"face_landmark_name_t",{enumerable:!0,get:function(){return a.face_landmark_name_t}});var i=r(3);Object.defineProperty(t,"instant_world_tracker_transform_orientation_t",{enumerable:!0,get:function(){return i.instant_world_tracker_transform_orientation_t}});var s=r(3);Object.defineProperty(t,"log_level_t",{enumerable:!0,get:function(){return s.log_level_t}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceDecoder=t.SequenceRecorder=t.SequenceRecorderPacketType=void 0;const n=r(0);var a;!function(e){e[e.CAMERA_FRAME=0]="CAMERA_FRAME",e[e.ACCELEROMETER=1]="ACCELEROMETER",e[e.ROTATION_RATE=2]="ROTATION_RATE",e[e.ATTITUDE=3]="ATTITUDE",e[e.ATTITUDE_MATRIX=4]="ATTITUDE_MATRIX"}(a=t.SequenceRecorderPacketType||(t.SequenceRecorderPacketType={}));class i{constructor(e){this._insertionByte=0,this._numberPackets=0,this._started=!1,this._data=new ArrayBuffer(this._estimatedSize(e,320,240)),this._dataView=new DataView(this._data),this._dataUint8=new Uint8Array(this._data),this._dataFloat32=new Float32Array(this._data)}_estimatedSize(e,t,r){return i.headerSizeBytes+(i.psbPacketType+i.cameraPacketSizeBytes+t*r)*e}start(){this._started=!0,this._insertionByte=0,this._numberPackets=0,this._growArrayBuffer(i.headerSizeBytes);let e=(new TextEncoder).encode("UAR1");this._dataUint8.set(e),this._dataView.setUint32(4,0,!0),this._insertionByte+=8}stop(){this._started=!1;let e=this._data.slice(0,this._insertionByte);this._data=e}data(){return this._dataUint8}appendCameraFrame(e){if(!this._started)return;if(e.data.byteLength!==e.dataWidth*e.dataHeight)return void n.zcerr("Unable to record frame to sequence: greyscale array doesn't match dimensions");let t=i.psbPacketType+i.cameraPacketSizeBytes+e.dataWidth*e.dataHeight;this._growArrayBuffer(t),this._dataView.setUint32(this._insertionByte,a.CAMERA_FRAME,!0),this._insertionByte+=i.psbPacketType,this._dataView.setUint32(this._insertionByte,e.dataWidth,!0),this._insertionByte+=i.psbCameraFrameWidth,this._dataView.setUint32(this._insertionByte,e.dataHeight,!0),this._insertionByte+=i.psbCameraFrameHeight,this._dataFloat32.set(e.cameraToDevice,this._insertionByte/4),this._insertionByte+=i.psbCameraToDeviceTransform,this._dataFloat32.set(e.cameraModel,this._insertionByte/4),this._insertionByte+=i.psbCameraModel,this._dataView.setUint32(this._insertionByte,e.userFacing?1:0,!0),this._insertionByte+=i.psbFlags,this._dataUint8.set(new Uint8Array(e.data),this._insertionByte),this._insertionByte+=e.data.byteLength,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}appendAccelerometer(e,t,r,n){this._appendTimestampedVec3(a.ACCELEROMETER,e,t,r,n)}appendRotationRate(e,t,r,n){this._appendTimestampedVec3(a.ROTATION_RATE,e,t,r,n)}appendAttitude(e,t,r,n){this._appendTimestampedVec3(a.ATTITUDE,e,t,r,n)}_appendTimestampedVec3(e,t,r,n,a){if(!this._started)return;let s=i.psbPacketType+i.accelerometerPacketSizeBytes;this._growArrayBuffer(s),this._dataView.setUint32(this._insertionByte,e,!0),this._insertionByte+=i.psbPacketType,this._dataView.setUint32(this._insertionByte,t,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,r,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,n,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,a,!0),this._insertionByte+=4,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}appendAttitudeMatrix(e){if(!this._started)return;let t=i.psbPacketType+i.attitudeMatrixPacketSizeBytes;this._growArrayBuffer(t),this._dataView.setUint32(this._insertionByte,a.ATTITUDE_MATRIX,!0),this._insertionByte+=i.psbPacketType,this._dataFloat32.set(e,this._insertionByte/4),this._insertionByte+=i.attitudeMatrixPacketSizeBytes,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}_growArrayBuffer(e){for(;this._insertionByte+e>this._data.byteLength;){let e=Math.max(2*this._data.byteLength,this._estimatedSize(50,320,240)),t=new ArrayBuffer(e),r=new Uint8Array(t);r.set(this._dataUint8),this._data=t,this._dataUint8=r,this._dataFloat32=new Float32Array(this._data),this._dataView=new DataView(this._data)}}}t.SequenceRecorder=i,i.headerSizeBytes=8,i.psbPacketType=4,i.psbCameraFrameWidth=4,i.psbCameraFrameHeight=4,i.psbFlags=4,i.psbCameraToDeviceTransform=64,i.psbCameraModel=24,i.cameraPacketSizeBytes=i.psbCameraFrameWidth+i.psbCameraFrameHeight+i.psbCameraToDeviceTransform+i.psbCameraModel+i.psbFlags,i.accelerometerPacketSizeBytes=16,i.rotationRatePacketSizeBytes=16,i.attitudePacketSizeBytes=16,i.attitudeMatrixPacketSizeBytes=64;t.SequenceDecoder=class{constructor(e){this._data=e,this.dataByPacket=new Map,this.dataByCameraFrame=new Map,this.numberPackets=0,this.numberCameraFrames=0,this.numberAccelerometerPackets=0,this.numberRotationRatePackets=0,this.numberAttitudePackets=0,this.numberAttitudeMatrixPackets=0;let t=new TextDecoder,r="";try{r=t.decode(this._data.slice(0,4))}catch(e){throw new Error("Unable to decode header - perhaps this isn't a sequence file?")}if("UAR1"!==r)throw new Error("Invalid - perhaps this isn't a sequence file: "+r);let n=0,s=new DataView(this._data);this.numberPackets=s.getUint32(4,!0),n+=i.headerSizeBytes;for(let e=0;e<this.numberPackets;e++){let t=s.getUint32(n,!0);switch(n+=i.psbPacketType,t){case a.CAMERA_FRAME:{let t=s.getUint32(n,!0);n+=i.psbCameraFrameWidth;let r=s.getUint32(n,!0);n+=i.psbCameraFrameHeight;let o=new Float32Array(this._data,n,i.psbCameraToDeviceTransform/4);n+=i.psbCameraToDeviceTransform;let c=new Float32Array(this._data,n,i.psbCameraModel/4);n+=i.psbCameraModel;let u=s.getUint32(n,!0);n+=i.psbFlags;let _=1===u,f=new Uint8Array(this._data,n,t*r);n+=t*r;let l={type:a.CAMERA_FRAME,width:t,height:r,cameraToDevice:o,cameraModel:c,userFacing:_,greyscale:f};this.dataByPacket.set(e,l),this.dataByCameraFrame.set(this.numberCameraFrames,l),this.numberCameraFrames++;break}case a.ACCELEROMETER:{let t=s.getUint32(n,!0);n+=4;let r=s.getFloat32(n,!0);n+=4;let i=s.getFloat32(n,!0);n+=4;let o=s.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:a.ACCELEROMETER,t:t,x:r,y:i,z:o}),this.numberAccelerometerPackets++;break}case a.ROTATION_RATE:{let t=s.getUint32(n,!0);n+=4;let r=s.getFloat32(n,!0);n+=4;let i=s.getFloat32(n,!0);n+=4;let o=s.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:a.ROTATION_RATE,t:t,x:r,y:i,z:o}),this.numberRotationRatePackets++;break}case a.ATTITUDE:{let t=s.getUint32(n,!0);n+=4;let r=s.getFloat32(n,!0);n+=4;let i=s.getFloat32(n,!0);n+=4;let o=s.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:a.ATTITUDE,t:t,x:r,y:i,z:o}),this.numberAttitudePackets++;break}case a.ATTITUDE_MATRIX:{let t=new Float32Array(this._data,n,i.attitudeMatrixPacketSizeBytes/4);n+=i.attitudeMatrixPacketSizeBytes,this.dataByPacket.set(e,{type:a.ATTITUDE_MATRIX,attitude:t}),this.numberAttitudeMatrixPackets++;break}}}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTMLElementSource=void 0;const n=r(4),a=r(13),i=r(14),s=r(2),o=r(1),c=r(0);let u=1,_=new Map;class f extends a.Source{constructor(e,t){super(),this._video=e,this._pipeline=t,this._isPaused=!0,this._hadFrames=!1,this._isUserFacing=!1,this._cameraToScreenRotation=0,this._isUploadFrame=!0,this._computedTransformRotation=-1,this._computedFrontCameraRotation=!1,this._cameraUvTransform=o.mat4.create(),this._cameraToDeviceTransform=o.mat4.create(),this._cameraToDeviceTransformUserFacing=o.mat4.create(),this._cameraModel=new Float32Array([300,300,160,120,0,0]),this._framebufferWidth=0,this._framebufferHeight=0,this._framebufferId=null,this._renderTexture=null,o.mat4.fromScaling(this._cameraToDeviceTransformUserFacing,[-1,1,-1]);let r=this._video;this._video instanceof HTMLVideoElement?r.addEventListener("loadedmetadata",()=>{this._hadFrames=!0}):this._hadFrames=!0,this._resetGLContext=this._resetGLContext.bind(this);let a=n.Pipeline.get(this._pipeline);a&&a.onGLContextReset.bind(this._resetGLContext)}static createVideoElementSource(e,t){let r=u++;return _.set(r,new f(t,e)),c.zcout("html_element_source_t initialized"),r}static getVideoElementSource(e){return _.get(e)}_resetGLContext(){this._currentVideoTexture=void 0,this._framebufferId=null,this._renderTexture=null,this._vertexBuffer=void 0,this._indexBuffer=void 0,this._greyscaleShader=void 0}destroy(){let e=n.Pipeline.get(this._pipeline);e&&e.onGLContextReset.unbind(this._resetGLContext),this.pause(),this._resetGLContext()}pause(){this._isPaused=!0;let e=n.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0)}start(){var e;this._isPaused&&(this._isUploadFrame=!0,this._video instanceof HTMLVideoElement&&(this._hadFrames=!1)),this._isPaused=!1;let t=n.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this)}getFrame(e){let t=n.Pipeline.get(this._pipeline);if(!t)return;let r=t.glContext;if(r&&!this._isPaused&&this._hadFrames)try{return this._processFrame(r,this._cameraToScreenRotation,e)}catch(e){console.log("Unable to process frame")}}_processFrame(e,t,r){let a=n.Pipeline.get(this._pipeline);if(a){if(this._isUploadFrame)return this._currentVideoTexture||(this._currentVideoTexture=a.getVideoTexture()),this._uploadFrame(t,this._isUserFacing),void(this._isUploadFrame=!this._isUploadFrame);if(!r)return this._isUploadFrame=!this._isUploadFrame,this._readFrame(a,e)}}_uploadFrame(e,t){if(!this._currentVideoTexture)return;let r=n.Pipeline.get(this._pipeline);if(!r)return;let a=r.glContext;if(!a)return;a.disable(a.SCISSOR_TEST),a.disable(a.DEPTH_TEST),a.disable(a.BLEND),a.disable(a.CULL_FACE),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._currentVideoTexture);const s=a.RGBA,o=a.RGBA,c=a.UNSIGNED_BYTE;a.texImage2D(a.TEXTURE_2D,0,s,o,c,this._video);let u=0,_=0;this._video instanceof HTMLVideoElement?(u=this._video.videoWidth,_=this._video.videoHeight):(u=this._video.width,_=this._video.height),_>u&&(_=[u,u=_][0]),this._updateTransforms(e,t);let f=this._getFramebuffer(a,i.profile.dataWidth/4,i.profile.dataHeight),l=this._getVertexBuffer(a),d=this._getIndexBuffer(a),h=this._getGreyscaleShader(a);a.bindFramebuffer(a.FRAMEBUFFER,f),a.viewport(0,0,this._framebufferWidth,this._framebufferHeight),a.clearColor(0,0,0,1),a.clear(a.COLOR_BUFFER_BIT),a.bindBuffer(a.ARRAY_BUFFER,l),a.vertexAttribPointer(h.aVertexPositionLoc,2,a.FLOAT,!1,16,0),a.enableVertexAttribArray(h.aVertexPositionLoc),a.vertexAttribPointer(h.aTextureCoordLoc,2,a.FLOAT,!1,16,8),a.enableVertexAttribArray(h.aTextureCoordLoc),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,d),a.useProgram(h.program),a.uniform1f(h.uTexWidthLoc,i.profile.dataWidth),a.uniformMatrix4fv(h.uUvTransformLoc,!1,this._cameraUvTransform),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._currentVideoTexture),a.uniform1i(h.uSamplerLoc,0),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0),a.disableVertexAttribArray(h.aVertexPositionLoc),a.disableVertexAttribArray(h.aTextureCoordLoc),a.bindFramebuffer(a.FRAMEBUFFER,null),a.bindBuffer(a.ARRAY_BUFFER,null),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,null),a.useProgram(null),a.bindTexture(a.TEXTURE_2D,null)}_readFrame(e,t){if(!this._currentVideoTexture)throw new Error("No video texture");let r=this._currentVideoTexture;this._currentVideoTexture=void 0;let n=i.profile.dataWidth*i.profile.dataHeight,a=e.cameraPixelArrays.pop();for(;a&&a.byteLength!==n;)a=e.cameraPixelArrays.pop();a||(a=new ArrayBuffer(n));let s=new Uint8Array(a),o=this._getFramebuffer(t,i.profile.dataWidth/4,i.profile.dataHeight);t.bindFramebuffer(t.FRAMEBUFFER,o),t.readPixels(0,0,this._framebufferWidth,this._framebufferHeight,t.RGBA,t.UNSIGNED_BYTE,s),t.bindFramebuffer(t.FRAMEBUFFER,null);let c=300*i.profile.dataWidth/320;return this._cameraModel[0]=c,this._cameraModel[1]=c,this._cameraModel[2]=.5*i.profile.dataWidth,this._cameraModel[3]=.5*i.profile.dataHeight,{uvTransform:this._cameraUvTransform,data:a,texture:r,cameraModel:this._cameraModel,dataWidth:i.profile.dataWidth,dataHeight:i.profile.dataHeight,userFacing:this._computedFrontCameraRotation,cameraToDevice:this._computedFrontCameraRotation?this._cameraToDeviceTransformUserFacing:this._cameraToDeviceTransform,cameraSource:this}}_updateTransforms(e,t){e==this._computedTransformRotation&&t==this._computedFrontCameraRotation||(this._computedTransformRotation=e,this._computedFrontCameraRotation=t,this._cameraUvTransform=this._getCameraUvTransform())}_getCameraUvTransform(){switch(this._computedTransformRotation){case 270:return new Float32Array([0,1,0,0,-1,0,0,0,0,0,1,0,1,0,0,1]);case 180:return new Float32Array([-1,0,0,0,0,-1,0,0,0,0,1,0,1,1,0,1]);case 90:return new Float32Array([0,-1,0,0,1,0,0,0,0,0,1,0,0,1,0,1])}return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}_getFramebuffer(e,t,r){if(this._framebufferWidth===t&&this._framebufferHeight===r&&this._framebufferId)return this._framebufferId;if(this._framebufferId&&(e.deleteFramebuffer(this._framebufferId),this._framebufferId=null),this._renderTexture&&(e.deleteTexture(this._renderTexture),this._renderTexture=null),this._framebufferId=e.createFramebuffer(),!this._framebufferId)throw new Error("Unable to create framebuffer");if(e.bindFramebuffer(e.FRAMEBUFFER,this._framebufferId),this._renderTexture=e.createTexture(),!this._renderTexture)throw new Error("Unable to create render texture");e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._renderTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,r,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameterf(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this._renderTexture,0);let n=e.checkFramebufferStatus(e.FRAMEBUFFER);if(n!==e.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer not complete: "+n.toString());return this._framebufferWidth=t,this._framebufferHeight=r,e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this._framebufferId}_getVertexBuffer(e){if(this._vertexBuffer)return this._vertexBuffer;if(this._vertexBuffer=e.createBuffer(),!this._vertexBuffer)throw new Error("Unable to create vertex buffer");e.bindBuffer(e.ARRAY_BUFFER,this._vertexBuffer);let t=new Float32Array([-1,-1,0,0,-1,1,0,1,1,1,1,1,1,-1,1,0]);return e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW),this._vertexBuffer}_getIndexBuffer(e){if(this._indexBuffer)return this._indexBuffer;if(this._indexBuffer=e.createBuffer(),!this._indexBuffer)throw new Error("Unable to create index buffer");e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._indexBuffer);let t=new Uint16Array([0,1,2,0,2,3]);return e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW),this._indexBuffer}_getGreyscaleShader(e){if(this._greyscaleShader)return this._greyscaleShader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=s.compileShader(e,e.VERTEX_SHADER,l),n=s.compileShader(e,e.FRAGMENT_SHADER,d);e.attachShader(t,r),e.attachShader(t,n),s.linkProgram(e,t);let a=e.getUniformLocation(t,"uTexWidth");if(!a)throw new Error("Unable to get uniform location uTexWidth");let i=e.getUniformLocation(t,"uUvTransform");if(!i)throw new Error("Unable to get uniform location uUvTransform");let o=e.getUniformLocation(t,"uSampler");if(!o)throw new Error("Unable to get uniform location uSampler");return this._greyscaleShader={program:t,aVertexPositionLoc:e.getAttribLocation(t,"aVertexPosition"),aTextureCoordLoc:e.getAttribLocation(t,"aTextureCoord"),uTexWidthLoc:a,uUvTransformLoc:i,uSamplerLoc:o},this._greyscaleShader}uploadGL(){}}t.HTMLElementSource=f;let l="\n attribute vec4 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n varying highp vec2 vTextureCoord1;\n varying highp vec2 vTextureCoord2;\n varying highp vec2 vTextureCoord3;\n varying highp vec2 vTextureCoord4;\n\n uniform float uTexWidth;\n\tuniform mat4 uUvTransform;\n\n void main(void) {\n highp vec2 offset1 = vec2(1.5 / uTexWidth, 0);\n highp vec2 offset2 = vec2(0.5 / uTexWidth, 0);\n\n gl_Position = aVertexPosition;\n vTextureCoord1 = (uUvTransform * vec4(aTextureCoord - offset1, 0, 1)).xy;\n vTextureCoord2 = (uUvTransform * vec4(aTextureCoord - offset2, 0, 1)).xy;\n vTextureCoord3 = (uUvTransform * vec4(aTextureCoord + offset2, 0, 1)).xy;\n vTextureCoord4 = (uUvTransform * vec4(aTextureCoord + offset1, 0, 1)).xy;\n }\n",d="\n varying highp vec2 vTextureCoord1;\n varying highp vec2 vTextureCoord2;\n varying highp vec2 vTextureCoord3;\n varying highp vec2 vTextureCoord4;\n\n uniform sampler2D uSampler;\n\n const lowp vec3 colorWeights = vec3(77.0 / 256.0, 150.0 / 256.0, 29.0 / 256.0);\n\n void main(void) {\n lowp vec4 outpx;\n\n outpx.r = dot(colorWeights, texture2D(uSampler, vTextureCoord1).xyz);\n outpx.g = dot(colorWeights, texture2D(uSampler, vTextureCoord2).xyz);\n outpx.b = dot(colorWeights, texture2D(uSampler, vTextureCoord3).xyz);\n outpx.a = dot(colorWeights, texture2D(uSampler, vTextureCoord4).xyz);\n\n gl_FragColor = outpx;\n }\n"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Source=void 0;t.Source=class{}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.profile=t.EmbeddedVideoImplementation=void 0;const n=r(9);!function(e){e[e.OBJECT_URL=0]="OBJECT_URL",e[e.SRC_OBJECT=1]="SRC_OBJECT"}(t.EmbeddedVideoImplementation||(t.EmbeddedVideoImplementation={})),t.profile={deviceMotionMutliplier:-1,blacklisted:!1,showGyroPermissionsWarningIfNecessary:!1,showSafariPermissionsResetIfNecessary:!1,requestHighFrameRate:!1,videoWidth:640,videoHeight:480,dataWidth:320,dataHeight:240,videoElementInDOM:!1},window.zeeProfile=t.profile;let a=new n.UAParser;switch(a.getBrowser().name){case"Safari":if(t.profile.deviceMotionMutliplier=1,void 0===window.orientation)break;t.profile.videoElementInDOM=!0,t.profile.showSafariPermissionsResetIfNecessary=!0;break;case"Chrome":let e=a.getEngine();if(!e||"WebKit"!==e.name)break;case"Mobile Safari":t.profile.deviceMotionMutliplier=1;let r=a.getOS().version;if(r){let e=r.split(".");if(e.length>=2){const r=parseInt(e[0]),n=parseInt(e[1]);(r<11||11===r&&n<3)&&(t.profile.blacklisted=!0),(r<12||12===r&&n<2)&&(t.profile.videoElementInDOM=!0),(12===r&&n>=2||r>=13)&&(t.profile.showGyroPermissionsWarningIfNecessary=!0),r>=13&&(t.profile.showSafariPermissionsResetIfNecessary=!0),(r>=12&&n>1||r>=13)&&navigator.mediaDevices&&navigator.mediaDevices.getSupportedConstraints&&navigator.mediaDevices.getSupportedConstraints().frameRate&&(t.profile.requestHighFrameRate=!0,t.profile.videoHeight=360,t.profile.dataHeight=180)}}}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"b4f46e148a3b3b5aef90717d8d60e3fc.zbin"},function(e,t,r){"use strict";if(Object.defineProperty(t,"__esModule",{value:!0}),t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=t.initialize=void 0,document.currentScript){const e=new URL(document.currentScript.src);let t=e.toString();if(e.pathname){let e=t.split("/");e.pop(),t=e.join("/")+"/"}r.p=t}const n=r(17),a=r(39);t.initialize=function(){return console.log("Zappar CV v"+a.VERSION),n.initialize()};var i=r(10);Object.defineProperty(t,"barcode_format_t",{enumerable:!0,get:function(){return i.barcode_format_t}}),Object.defineProperty(t,"face_landmark_name_t",{enumerable:!0,get:function(){return i.face_landmark_name_t}}),Object.defineProperty(t,"instant_world_tracker_transform_orientation_t",{enumerable:!0,get:function(){return i.instant_world_tracker_transform_orientation_t}}),Object.defineProperty(t,"log_level_t",{enumerable:!0,get:function(){return i.log_level_t}})},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function o(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.initialize=void 0;const a=r(18),i=r(7),s=r(6),o=r(1),c=r(21),u=r(27),_=r(28),f=r(4),l=r(32),d=r(12),h=r(33),p=r(35),m=r(0),b=r(36);let g;t.initialize=function(){if(g)return g;c.launchWorker();let e=new a.zappar_client(e=>{c.messageManager.postOutgoingMessage({t:"zappar",d:e},[e])});if(window.location.hostname.toLowerCase().indexOf(".zappar.io")>0){let t=window.location.pathname.split("/");t.length>1&&t[1].length>0&&e.impl.analytics_project_id_set(".wiz"+t[1])}return c.messageManager.onIncomingMessage.bind(t=>{var r,n;switch(t.t){case"zappar":null===(r=f.Pipeline.get(t.p))||void 0===r||r.pendingMessages.push(t.d);break;case"buf":e.serializer.bufferReturn(t.d);break;case"cameraFrameRecycleS2C":let a=t;null===(n=f.Pipeline.get(a.p))||void 0===n||n.cameraTokenReturn(a);break;case"licerr":{let e=document.createElement("div");e.innerHTML="Visit <a href='https://docs.zap.works/universal-ar/licensing/' style='color: white;'>our licensing page</a> to find out about hosting on your own domain.",e.style.position="absolute",e.style.bottom="20px",e.style.width="80%",e.style.backgroundColor="black",e.style.color="white",e.style.borderRadius="10px",e.style.padding="10px",e.style.fontFamily="sans-serif",e.style.textAlign="center",e.style.left="10%",e.style.zIndex=Number.MAX_SAFE_INTEGER.toString();let t=document.createElement("span");t.innerText=" (30)",e.append(t);let r=30;setInterval((function(){r--,r>=0&&(t.innerText=" ("+r.toString()+")")}),1e3),document.body.append(e)}}}),g=Object.assign(Object.assign({},e.impl),{camera_default_device_id:e=>e?l.CameraSource.USER_DEFAULT_DEVICE_ID:l.CameraSource.DEFAULT_DEVICE_ID,camera_source_create:(e,t)=>l.CameraSource.create(e,t),camera_source_destroy:e=>{var t;return null===(t=l.CameraSource.get(e))||void 0===t?void 0:t.destroy()},camera_source_pause:e=>{var t;return null===(t=l.CameraSource.get(e))||void 0===t?void 0:t.pause()},camera_source_start:e=>{var t;return null===(t=l.CameraSource.get(e))||void 0===t?void 0:t.start()},pipeline_create:()=>f.Pipeline.create(e.impl,c.messageManager),pipeline_frame_update:t=>{var r;return null===(r=f.Pipeline.get(t))||void 0===r?void 0:r.frameUpdate(e)},pipeline_camera_frame_draw_gl:(e,t,r,n)=>{var a;null===(a=f.Pipeline.get(e))||void 0===a||a.cameraFrameDrawGL(t,r,n)},draw_plane:(e,t,r,n,a)=>{i.drawPlane(e,t,r,n,a)},pipeline_draw_face:(e,t,r,n,a)=>{var i;let s=_.getFaceMesh(a);if(!s)return m.zcwarn("attempting to call draw_face on a destroyed zappar_face_mesh_t"),new Uint16Array;null===(i=f.Pipeline.get(e))||void 0===i||i.drawFace(t,r,n,s)},pipeline_draw_face_project:(e,t,r,n,a,i,s)=>{var o;null===(o=f.Pipeline.get(e))||void 0===o||o.drawFaceProject(t,r,n,a,i,s)},projection_matrix_from_camera_model:s.projectionMatrix,projection_matrix_from_camera_model_ext:s.projectionMatrix,pipeline_process_gl:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.processGL()},pipeline_gl_context_set:(e,t,r)=>{var n;return null===(n=f.Pipeline.get(e))||void 0===n?void 0:n.glContextSet(t,r)},pipeline_gl_context_lost:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.glContextLost()},pipeline_camera_frame_upload_gl:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.uploadGL()},pipeline_camera_frame_texture_gl:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.cameraFrameTexture()},pipeline_camera_frame_texture_matrix:(e,t,r,n)=>{var a;return(null===(a=f.Pipeline.get(e))||void 0===a?void 0:a.cameraFrameTextureMatrix(t,r,n))||o.mat4.create()},pipeline_camera_frame_user_facing:e=>{var t;return(null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.cameraFrameUserFacing())||!1},pipeline_camera_pose_default:()=>o.mat4.create(),pipeline_camera_pose_with_attitude:(e,t)=>{var r;return(null===(r=f.Pipeline.get(e))||void 0===r?void 0:r.cameraPoseWithAttitude(t))||o.mat4.create()},pipeline_camera_pose_with_origin:(e,t)=>{let r=o.mat4.create();return o.mat4.invert(r,t),r},pipeline_sequence_record_clear:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordClear()},pipeline_sequence_record_start:(e,t)=>{var r;return null===(r=f.Pipeline.get(e))||void 0===r?void 0:r.sequenceRecordStart(t)},pipeline_sequence_record_stop:e=>{var t;return null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordStop()},pipeline_sequence_record_device_attitude_matrices_set:(e,t)=>{var r;return null===(r=f.Pipeline.get(e))||void 0===r?void 0:r.sequenceRecordDeviceAttitudeMatrices(t)},pipeline_sequence_record_data:e=>{var t;return(null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordData())||new Uint8Array(0)},pipeline_sequence_record_data_size:e=>{var t;return(null===(t=f.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordData().byteLength)||0},instant_world_tracker_anchor_pose_camera_relative:(t,r)=>{let n=f.applyScreenCounterRotation(void 0,e.impl.instant_world_tracker_anchor_pose_raw(t));if(r){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(n,e,n),o.mat4.multiply(n,n,e)}return n},instant_world_tracker_anchor_pose:(t,r,n)=>{let a=f.applyScreenCounterRotation(void 0,e.impl.instant_world_tracker_anchor_pose_raw(t));if(n){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(a,e,a),o.mat4.multiply(a,a,e)}return o.mat4.multiply(a,r,a),a},instant_world_tracker_anchor_pose_set_from_camera_offset:(t,r,n,a,i)=>{let c=s.cameraRotationForScreenOrientation(!1)*Math.PI/180,u=o.mat4.create();o.mat4.fromRotation(u,-c,[0,0,1]);let _=o.vec3.create();o.vec3.transformMat4(_,[r,n,a],u),e.impl.instant_world_tracker_anchor_pose_set_from_camera_offset_raw(t,_[0],_[1],_[2],i)},image_tracker_anchor_pose_camera_relative:(t,r,n)=>{let a=f.applyScreenCounterRotation(void 0,e.impl.image_tracker_anchor_pose_raw(t,r));if(n){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(a,e,a),o.mat4.multiply(a,a,e)}return a},image_tracker_anchor_pose:(t,r,n,a)=>{let i=f.applyScreenCounterRotation(void 0,e.impl.image_tracker_anchor_pose_raw(t,r));if(a){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(i,e,i),o.mat4.multiply(i,i,e)}return o.mat4.multiply(i,n,i),i},face_tracker_anchor_pose_camera_relative:(t,r,n)=>{let a=f.applyScreenCounterRotation(void 0,e.impl.face_tracker_anchor_pose_raw(t,r));if(n){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(a,e,a),o.mat4.multiply(a,a,e)}return a},face_tracker_anchor_pose:(t,r,n,a)=>{let i=f.applyScreenCounterRotation(void 0,e.impl.face_tracker_anchor_pose_raw(t,r));if(a){let e=o.mat4.create();o.mat4.fromScaling(e,[-1,1,1]),o.mat4.multiply(i,e,i),o.mat4.multiply(i,i,e)}return o.mat4.multiply(i,n,i),i},face_tracker_model_load_default:e=>n(this,void 0,void 0,(function*(){yield function(e){return n(this,void 0,void 0,(function*(){let t=r(38);void 0!==t.default&&(t=t.default);let n=yield fetch(t),a=yield n.arrayBuffer();null==g||g.face_tracker_model_load_from_memory(e,a)}))}(e)})),face_mesh_create:()=>_.createFaceMesh(),face_mesh_destroy:e=>{_.destroyFaceMesh(e)},face_mesh_indices:e=>{let t=_.getFaceMesh(e);return t?t.getIndices():(m.zcwarn("attempting to call face_mesh_indices on a destroyed zappar_face_mesh_t"),new Uint16Array)},face_mesh_indices_size:e=>{let t=_.getFaceMesh(e);return t?t.getIndices().length:(m.zcwarn("attempting to call face_mesh_indices_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_uvs:e=>{let t=_.getFaceMesh(e);return t?t.getUVs():(m.zcwarn("attempting to call face_mesh_uvs on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_uvs_size:e=>{let t=_.getFaceMesh(e);return t?t.getUVs().length:(m.zcwarn("attempting to call face_mesh_uvs_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_vertices:e=>{let t=_.getFaceMesh(e);return t?t.getVertices():(m.zcwarn("attempting to call face_mesh_vertices on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_vertices_size:e=>{let t=_.getFaceMesh(e);return t?t.getVertices().length:(m.zcwarn("attempting to call face_mesh_vertices_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_normals:e=>{let t=_.getFaceMesh(e);return t?t.getNormals():(m.zcwarn("attempting to call face_mesh_normals on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_normals_size:e=>{let t=_.getFaceMesh(e);return t?t.getNormals().length:(m.zcwarn("attempting to call face_mesh_normals_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_load_from_memory:(e,t,r,n,a,i)=>{let s=_.getFaceMesh(e);s?s.loadFromMemory(t,r,n,a,i):m.zcwarn("attempting to call face_mesh_load_from_memory on a destroyed zappar_face_mesh_t")},face_mesh_update:(e,t,r,n)=>{let a=_.getFaceMesh(e);a?a.update(t,r,n):m.zcwarn("attempting to call face_mesh_update on a destroyed zappar_face_mesh_t")},face_mesh_load_default:e=>n(this,void 0,void 0,(function*(){let t=_.getFaceMesh(e);if(!t)return void m.zcwarn("attempting to call face_mesh_load_default on a destroyed zappar_face_mesh_t");let n=r(15);void 0!==n.default&&(n=n.default);let a=yield fetch(n);t.loadFromMemory(yield a.arrayBuffer(),!1,!1,!1,!1)})),face_mesh_load_default_face:(e,t,a,i)=>n(this,void 0,void 0,(function*(){let n=_.getFaceMesh(e);if(!n)return void m.zcwarn("attempting to call face_mesh_load_default_face on a destroyed zappar_face_mesh_t");let s=r(15);void 0!==s.default&&(s=s.default);let o=yield fetch(s);n.loadFromMemory(yield o.arrayBuffer(),t,a,i,!1)})),face_mesh_load_default_full_head_simplified:(e,t,a,i,s)=>n(this,void 0,void 0,(function*(){let n=_.getFaceMesh(e);if(!n)return void m.zcwarn("attempting to call face_mesh_load_default_full_head_simplified on a destroyed zappar_face_mesh_t");let o=r(37);void 0!==o.default&&(o=o.default);let c=yield fetch(o);n.loadFromMemory(yield c.arrayBuffer(),t,a,i,s)})),face_mesh_loaded_version:e=>{let t=_.getFaceMesh(e);return t?t.getModelVersion():(m.zcwarn("attempting to call face_mesh_load_default on a destroyed zappar_face_mesh_t"),-1)},face_landmark_create:e=>h.createFaceLandmark(e),face_landmark_destroy:e=>{h.destroyFaceLandmark(e)},face_landmark_update:(e,t,r,n)=>{let a=h.getFaceLandmark(e);a?a.update(t,r,n):m.zcwarn("attempting to call face_landmark_update on a destroyed zappar_face_landmark_t")},face_landmark_anchor_pose:e=>{let t=h.getFaceLandmark(e);return t?t.anchor_pose:(m.zcwarn("attempting to call face_landmark_anchor_pose on a destroyed zappar_face_landmark_t"),o.mat4.create())},html_element_source_create:(e,t)=>d.HTMLElementSource.createVideoElementSource(e,t),html_element_source_start:e=>{var t;return null===(t=d.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.start()},html_element_source_pause:e=>{var t;return null===(t=d.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.pause()},html_element_source_destroy:e=>{var t;return null===(t=d.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.destroy()},sequence_source_create:e=>b.SequenceSource.create(e),sequence_source_load_from_memory:(e,t)=>{var r;return null===(r=b.SequenceSource.get(e))||void 0===r?void 0:r.loadFromMemory(t)},sequence_source_pause:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.pause()},sequence_source_start:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.start()},sequence_source_destroy:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.destroy()},permission_granted_all:u.permissionGrantedAll,permission_granted_camera:u.permissionGrantedCamera,permission_granted_motion:u.permissionGrantedMotion,permission_denied_any:u.permissionDeniedAny,permission_denied_camera:u.permissionDeniedCamera,permission_denied_motion:u.permissionDeniedMotion,permission_request_motion:u.permissionRequestMotion,permission_request_camera:u.permissionRequestCamera,permission_request_all:u.permissionRequestAll,permission_request_ui:u.permissionRequestUI,permission_request_ui_promise:u.permissionRequestUI,permission_denied_ui:u.permissionDeniedUI,browser_incompatible:p.default.incompatible,browser_incompatible_ui:p.default.incompatible_ui,log_level_set:t=>{m.setLogLevel(t),e.impl.log_level_set(t)}}),g}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zappar_client=void 0;const n=r(19),a=r(20);t.zappar_client=class{constructor(e){this._messageSender=e,this._globalState={log_level:1},this.serializer=new n.MessageSerializer(e=>{this._messageSender(e)}),this.deserializer=new a.MessageDeserializer,this._latestId=1,this._pipeline_state_by_instance=new Map,this._camera_source_state_by_instance=new Map,this._sequence_source_state_by_instance=new Map,this._image_tracker_state_by_instance=new Map,this._face_tracker_state_by_instance=new Map,this._face_mesh_state_by_instance=new Map,this._face_landmark_state_by_instance=new Map,this._barcode_finder_state_by_instance=new Map,this._instant_world_tracker_state_by_instance=new Map,this.impl={log_level:()=>this._globalState.log_level,log_level_set:e=>{this.serializer.sendMessage(34,t=>{t.logLevel(e)})},analytics_project_id_set:e=>{this.serializer.sendMessage(31,t=>{t.string(e)})},pipeline_create:()=>{let e=this._latestId++,t={current_frame_user_data:0,camera_model:new Float32Array([300,300,160,120,0,0]),camera_pose:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),camera_frame_camera_attitude:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),camera_frame_device_attitude:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),frame_number:0};return this._pipeline_state_by_instance.set(e,t),this.serializer.sendMessage(27,t=>{t.type(e)}),e},pipeline_destroy:e=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this._pipeline_state_by_instance.delete(e),this.serializer.sendMessage(28,t=>{t.type(e)})},pipeline_frame_update:e=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(9,t=>{t.type(e)})},pipeline_frame_number:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.frame_number},pipeline_camera_model:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_model},pipeline_camera_frame_user_data:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.current_frame_user_data},pipeline_camera_frame_submit:(e,t,r,n,a,i,s,o)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(8,c=>{c.type(e),c.dataWithLength(t),c.int(r),c.int(n),c.int(a),c.matrix4x4(i),c.matrix4x4(s),c.bool(o)})},pipeline_camera_frame_camera_attitude:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_frame_camera_attitude},pipeline_camera_frame_device_attitude:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_frame_device_attitude},pipeline_motion_accelerometer_submit:(e,t,r,n,a)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(10,i=>{i.type(e),i.timestamp(t),i.float(r),i.float(n),i.float(a)})},pipeline_motion_rotation_rate_submit:(e,t,r,n,a)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(11,i=>{i.type(e),i.timestamp(t),i.float(r),i.float(n),i.float(a)})},pipeline_motion_attitude_submit:(e,t,r,n,a)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(12,i=>{i.type(e),i.timestamp(t),i.float(r),i.float(n),i.float(a)})},pipeline_motion_attitude_matrix_submit:(e,t)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(13,r=>{r.type(e),r.matrix4x4(t)})},camera_source_create:(e,t)=>{let r=this._latestId++;return this._camera_source_state_by_instance.set(r,{}),this.serializer.sendMessage(29,n=>{n.type(r),n.type(e),n.string(t)}),r},camera_source_destroy:e=>{if(!this._camera_source_state_by_instance.get(e))throw new Error("This object has been destroyed");this._camera_source_state_by_instance.delete(e),this.serializer.sendMessage(30,t=>{t.type(e)})},sequence_source_create:e=>{let t=this._latestId++;return this._sequence_source_state_by_instance.set(t,{}),this.serializer.sendMessage(35,r=>{r.type(t),r.type(e)}),t},sequence_source_destroy:e=>{if(!this._sequence_source_state_by_instance.get(e))throw new Error("This object has been destroyed");this._sequence_source_state_by_instance.delete(e),this.serializer.sendMessage(36,t=>{t.type(e)})},image_tracker_create:e=>{let t=this._latestId++;return this._image_tracker_state_by_instance.set(t,{enabled:!0,target_loaded_version:-1,target_count:0,anchor_count:0,anchor_id:[],anchor_pose:[]}),this.serializer.sendMessage(2,r=>{r.type(t),r.type(e)}),t},image_tracker_destroy:e=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._image_tracker_state_by_instance.delete(e),this.serializer.sendMessage(14,t=>{t.type(e)})},image_tracker_target_load_from_memory:(e,t)=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(4,r=>{r.type(e),r.dataWithLength(t)})},image_tracker_target_loaded_version:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.target_loaded_version},image_tracker_target_count:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.target_count},image_tracker_enabled:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},image_tracker_enabled_set:(e,t)=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(3,r=>{r.type(e),r.bool(t)})},image_tracker_anchor_count:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.anchor_count},image_tracker_anchor_id:(e,t)=>{let r=this._image_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_id[t]},image_tracker_anchor_pose_raw:(e,t)=>{let r=this._image_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_pose[t]},face_tracker_create:e=>{let t=this._latestId++;return this._face_tracker_state_by_instance.set(t,{enabled:!0,model_loaded:-1,max_faces:1,anchor_count:0,anchor_id:[],anchor_pose:[],anchor_identity_coefficients:[],anchor_expression_coefficients:[]}),this.serializer.sendMessage(20,r=>{r.type(t),r.type(e)}),t},face_tracker_destroy:e=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_tracker_state_by_instance.delete(e),this.serializer.sendMessage(21,t=>{t.type(e)})},face_tracker_model_load_from_memory:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(22,r=>{r.type(e),r.dataWithLength(t)})},face_tracker_model_loaded_version:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.model_loaded},face_tracker_enabled_set:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(23,r=>{r.type(e),r.bool(t)})},face_tracker_enabled:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},face_tracker_max_faces_set:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(24,r=>{r.type(e),r.int(t)})},face_tracker_max_faces:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.max_faces},face_tracker_anchor_count:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.anchor_count},face_tracker_anchor_id:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_id[t]},face_tracker_anchor_pose_raw:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_pose[t]},face_tracker_anchor_identity_coefficients:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_identity_coefficients[t]},face_tracker_anchor_expression_coefficients:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_expression_coefficients[t]},face_mesh_create:()=>{let e=this._latestId++;return this._face_mesh_state_by_instance.set(e,{}),this.serializer.sendMessage(25,t=>{t.type(e)}),e},face_mesh_destroy:e=>{if(!this._face_mesh_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_mesh_state_by_instance.delete(e),this.serializer.sendMessage(26,t=>{t.type(e)})},face_landmark_create:e=>{let t=this._latestId++;return this._face_landmark_state_by_instance.set(t,{}),this.serializer.sendMessage(32,r=>{r.type(t),r.faceLandmarkName(e)}),t},face_landmark_destroy:e=>{if(!this._face_landmark_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_landmark_state_by_instance.delete(e),this.serializer.sendMessage(33,t=>{t.type(e)})},barcode_finder_create:e=>{let t=this._latestId++;return this._barcode_finder_state_by_instance.set(t,{enabled:!0,number_found:0,found_text:[],found_format:[],formats:131071}),this.serializer.sendMessage(16,r=>{r.type(t),r.type(e)}),t},barcode_finder_destroy:e=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this._barcode_finder_state_by_instance.delete(e),this.serializer.sendMessage(17,t=>{t.type(e)})},barcode_finder_enabled_set:(e,t)=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(18,r=>{r.type(e),r.bool(t)})},barcode_finder_enabled:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},barcode_finder_found_number:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.number_found},barcode_finder_found_text:(e,t)=>{let r=this._barcode_finder_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.found_text[t]},barcode_finder_found_format:(e,t)=>{let r=this._barcode_finder_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.found_format[t]},barcode_finder_formats:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.formats},barcode_finder_formats_set:(e,t)=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(19,r=>{r.type(e),r.barcodeFormat(t)})},instant_world_tracker_create:e=>{let t=this._latestId++,r={enabled:!0,pose:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};return this._instant_world_tracker_state_by_instance.set(t,r),this.serializer.sendMessage(5,r=>{r.type(t),r.type(e)}),t},instant_world_tracker_destroy:e=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._instant_world_tracker_state_by_instance.delete(e),this.serializer.sendMessage(15,t=>{t.type(e)})},instant_world_tracker_enabled_set:(e,t)=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(6,r=>{r.type(e),r.bool(t)})},instant_world_tracker_enabled:e=>{let t=this._instant_world_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},instant_world_tracker_anchor_pose_raw:e=>{let t=this._instant_world_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.pose},instant_world_tracker_anchor_pose_set_from_camera_offset_raw:(e,t,r,n,a)=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(7,i=>{i.type(e),i.float(t),i.float(r),i.float(n),i.instantTrackerTransformOrientation(a)})}}}processMessages(e){this.deserializer.setData(e),this.deserializer.forMessages((e,t)=>{switch(e){case 7:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.frame_number=t.int();break}case 6:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_model=t.cameraModel();break}case 5:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.current_frame_user_data=t.int();break}case 11:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_frame_camera_attitude=t.matrix4x4();break}case 12:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_frame_device_attitude=t.matrix4x4();break}case 19:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;r.target_loaded_version=t.int();break}case 21:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;r.target_count=t.int();break}case 1:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;r.anchor_count=t.int();break}case 2:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_id[n]=t.string();break}case 3:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_pose[n]=t.matrix4x4();break}case 18:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;r.model_loaded=t.int();break}case 13:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;r.anchor_count=t.int();break}case 14:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_id[n]=t.string();break}case 15:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_pose[n]=t.matrix4x4();break}case 16:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_identity_coefficients[n]=t.identityCoefficients();break}case 17:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_expression_coefficients[n]=t.expressionCoefficients();break}case 8:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;r.number_found=t.int();break}case 9:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;let n=t.int();r.found_text[n]=t.string();break}case 10:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;let n=t.int();r.found_format[n]=t.barcodeFormat();break}case 4:{let e=t.type(),r=this._instant_world_tracker_state_by_instance.get(e);if(!r)return;r.pose=t.matrix4x4();break}}})}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageSerializer=void 0;t.MessageSerializer=class{constructor(e){this._messageSender=e,this._freeBufferPool=[],this._buffer=new ArrayBuffer(16),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1,this._timeoutSet=!1,this._appender={int:e=>this.int(e),bool:e=>this.int(e?1:0),float:e=>this.float(e),string:e=>this.string(e),dataWithLength:e=>this.arrayBuffer(e),type:e=>this.int(e),matrix4x4:e=>this.float32ArrayBuffer(e),matrix3x3:e=>this.float32ArrayBuffer(e),identityCoefficients:e=>this.float32ArrayBuffer(e),expressionCoefficients:e=>this.float32ArrayBuffer(e),cameraModel:e=>this.float32ArrayBuffer(e),timestamp:e=>this.double(e),barcodeFormat:e=>this.int(e),faceLandmarkName:e=>this.int(e),instantTrackerTransformOrientation:e=>this.int(e),logLevel:e=>this.int(e)},this._freeBufferPool.push(new ArrayBuffer(16)),this._freeBufferPool.push(new ArrayBuffer(16))}bufferReturn(e){this._freeBufferPool.push(e)}_ensureArrayBuffer(e){let t=4*(this._offset+e+8);if(this._buffer&&this._buffer.byteLength>=t)return;let r=void 0;if(!r){let e=t;e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,r=new ArrayBuffer(e)}let n=this._buffer?this._i32View:void 0;this._buffer=r,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),n&&this._i32View.set(n.subarray(0,this._offset))}sendMessage(e,t){this._ensureArrayBuffer(4),this._startOffset=this._offset,this._i32View[this._offset+1]=e,this._offset+=2,t(this._appender),this._i32View[this._startOffset]=this._offset-this._startOffset,this._startOffset=-1,this._sendOneTime()}_sendOneTime(){!1===this._timeoutSet&&(this._timeoutSet=!0,setTimeout(()=>{this._timeoutSet=!1,this._send()},0))}_send(){0!==this._freeBufferPool.length?(this._i32View[0]=this._offset,this._messageSender(this._buffer),this._buffer=void 0,this._buffer=this._freeBufferPool.pop(),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1):this._sendOneTime()}int(e){this._ensureArrayBuffer(1),this._i32View[this._offset]=e,this._offset++}double(e){this._ensureArrayBuffer(2),this._offset%2==1&&this._offset++,this._f64View[this._offset/2]=e,this._offset+=2}float(e){this._ensureArrayBuffer(1),this._f32View[this._offset]=e,this._offset++}int32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t];this._offset+=e.length}float32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._f32View[this._offset+t]=e[t];this._offset+=e.length}booleanArray(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t]?1:0;this._offset+=e.length}uint8ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8View.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}arrayBuffer(e){let t=new Uint8Array(e);this.uint8ArrayBuffer(t)}uint8ClampedArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8cView.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}float32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._f32View.set(e,this._offset),this._offset+=e.length}uint16ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++;let t=2*this._offset;this._u16View.set(e,t),this._offset+=e.length>>1,0!=(1&e.length)&&this._offset++}int32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._i32View.set(e,this._offset),this._offset+=e.length}uint32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._u32View.set(e,this._offset),this._offset+=e.length}string(e){let t=(new TextEncoder).encode(e);this._ensureArrayBuffer(t.byteLength/4),this._i32View[this._offset]=t.byteLength,this._offset++,this._u8View.set(t,4*this._offset),this._offset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._offset++}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageDeserializer=void 0;t.MessageDeserializer=class{constructor(){this._buffer=new ArrayBuffer(0),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,this._startOffset=-1,this._processor={int:()=>this._i32View[this._startOffset++],bool:()=>1===this._i32View[this._startOffset++],type:()=>this._i32View[this._startOffset++],float:()=>this._f32View[this._startOffset++],timestamp:()=>{this._startOffset%2==1&&this._startOffset++;let e=this._f64View[this._startOffset/2];return this._startOffset+=2,e},string:()=>{let e=this._i32View[this._startOffset++],t=(new TextDecoder).decode(new Uint8Array(this._buffer,4*this._startOffset,e));return this._startOffset+=e>>2,0!=(3&e)&&this._startOffset++,t},dataWithLength:()=>{let e=this._i32View[this._startOffset++],t=new Uint8Array(e);return t.set(this._u8View.subarray(4*this._startOffset,4*this._startOffset+e)),this._startOffset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._startOffset++,t.buffer},matrix4x4:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+16)),this._startOffset+=e,t},matrix3x3:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+9)),this._startOffset+=e,t},identityCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+50)),this._startOffset+=e,t},expressionCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+29)),this._startOffset+=e,t},cameraModel:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+6)),this._startOffset+=e,t},barcodeFormat:()=>this._i32View[this._startOffset++],faceLandmarkName:()=>this._i32View[this._startOffset++],instantTrackerTransformOrientation:()=>this._i32View[this._startOffset++],logLevel:()=>this._i32View[this._startOffset++]}}setData(e){this._buffer=e,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,e.byteLength>=4&&(this._offset=1,this._length=this._i32View[0]),this._startOffset=-1}hasMessage(){return this._offset+1<this._length}forMessages(e){for(;this.hasMessage();){let t=this._i32View[this._offset],r=this._i32View[this._offset+1];this._startOffset=this._offset+2,this._offset+=t,e(r,this._processor)}}}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function o(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.launchWorker=t.messageManager=void 0;const a=r(22),i=r(24);let s;t.messageManager=new i.MsgManager,s=r(25),s.default&&(s=s.default),t.launchWorker=function(){return n(this,void 0,void 0,(function*(){let e=new s;var n;function i(){let r=t.messageManager.getOutgoingMessages();for(let t of r)e.postMessage(t.msg,t.transferables)}e.postMessage({t:"wasm",url:r(26).default}),e.postMessage({t:"port",port:a.bundleWorkerMessageChannel.port1},[a.bundleWorkerMessageChannel.port1]),yield(n=e,new Promise(e=>{let t=r=>{"loaded"===r.data&&(n.removeEventListener("message",t),e())};n.addEventListener("message",t)})),t.messageManager.onOutgoingMessage.bind(i),i(),e.addEventListener("message",e=>{t.messageManager.postIncomingMessage(e.data)})}))}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function o(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};let a;Object.defineProperty(t,"__esModule",{value:!0}),t.launchBundleWorker=t.bundleWorkerMessageChannel=void 0,t.bundleWorkerMessageChannel=new MessageChannel,a=r(23),a.default&&(a=a.default),t.launchBundleWorker=function(){return n(this,void 0,void 0,(function*(){}))}},function(e,t,r){"use strict";r.r(t);var n=r(5),a=r.n(n);t.default=function(){return a()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";let n,o;self.addEventListener("message",e=>{e&&e.data&&"port"===e.data.t&&(console.log("Got zcv worker port in bundle worker",e.data.port),n=e.data.port,n.onmessage=function(e){var t=e.data.buf,r=o._malloc(t.byteLength);o.HEAPU8.set(new Uint8Array(t),r),o._BA_WORKER_CALL(r,e.data.buf.byteLength),o._free(r)}),e&&e.data&&e.data.t})}]);',"Worker",void 0,r.p+"5dd5cacd27e6e7da828f.bundleworker.js")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgManager=void 0;const n=r(8);t.MsgManager=class{constructor(){this.onOutgoingMessage=new n.Event,this.onIncomingMessage=new n.Event1,this._outgoingMessages=[]}postIncomingMessage(e){this.onIncomingMessage.emit(e)}postOutgoingMessage(e,t){this._outgoingMessages.push({msg:e,transferables:t}),this.onOutgoingMessage.emit()}getOutgoingMessages(){let e=this._outgoingMessages;return this._outgoingMessages=[],e}}},function(e,t,r){"use strict";r.r(t);var n=r(5),a=r.n(n);t.default=function(){return a()('!function(e){var t={};function r(a){if(t[a])return t[a].exports;var n=t[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=t,r.d=function(e,t,a){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)r.d(a,n,function(t){return e[t]}.bind(null,n));return a},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a=r(2),n=self;a.messageManager.onOutgoingMessage.bind(()=>{let e=a.messageManager.getOutgoingMessages();for(let t of e)n.postMessage(t.msg,t.transferables)});let i=e=>{if(e&&e.data&&"wasm"===e.data.t){let t=location.href.startsWith("blob")?e.data.url:r(13);t.default&&(t=t.default),a.launchWorkerServer(t),n.removeEventListener("message",i)}};n.addEventListener("message",i),n.addEventListener("message",e=>{a.messageManager.postIncomingMessage(e.data)})},function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){return new(r||(r=Promise))((function(n,i){function s(e){try{o(a.next(e))}catch(e){i(e)}}function _(e){try{o(a.throw(e))}catch(e){i(e)}}function o(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,_)}o((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.launchWorkerServer=t.messageManager=void 0;const n=r(3),i=r(7),s=r(8),_=r(11);t.messageManager=new _.MsgManager,self.addEventListener("message",e=>{e&&e.data&&e.data.t}),self.send_ba_request=function(e){var t=new ArrayBuffer(e.byteLength);new Uint8Array(t).set(new Uint8Array(e))},t.launchWorkerServer=function(e){return a(this,void 0,void 0,(function*(){let r=n.default({locateFile:(t,r)=>t.endsWith("zcv.wasm")?e:r+t,onRuntimeInitialized:()=>{let e=i.getRuntimeObject(r),a=new s.zappar_server(e,(e,r)=>{t.messageManager.postOutgoingMessage({p:e,t:"zappar",d:r},[r])});t.messageManager.postOutgoingMessage("loaded",[]),t.messageManager.onIncomingMessage.bind(r=>{var n;switch(r.t){case"zappar":a.processBuffer(r.d),t.messageManager.postOutgoingMessage({t:"buf",d:r.d},[r.d]);break;case"buf":null===(n=a.serializersByPipelineId.get(r.p))||void 0===n||n.bufferReturn(r.d);break;case"cameraFrameC2S":let i,s=r,_=a._pipeline_by_instance.get(s.p);_&&(e.pipeline_camera_frame_submit(_,s.d,s.width,s.height,s.token,s.c2d,s.cm,s.userFacing),e.pipeline_frame_update(_),i=e.pipeline_camera_frame_device_attitude(_),a.exploreState());let o={token:s.token,d:s.d,p:s.p,t:"cameraFrameRecycleS2C",att:i};t.messageManager.postOutgoingMessage(o,[s.d])}})}})}))}},function(e,t,r){"use strict";r.r(t),function(e){var r,a=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t){var a,n,i;t=t||{},a||(a=void 0!==t?t:{}),a.ready=new Promise((function(e,t){n=e,i=t}));var s,_={};for(s in a)a.hasOwnProperty(s)&&(_[s]=a[s]);var o="./this.program";function c(e,t){throw t}var u,f="";f=self.location.href,r&&(f=r),f=0!==f.indexOf("blob:")?f.substr(0,f.lastIndexOf("/")+1):"",u=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)};var p,l,d,m=a.print||console.log.bind(console),h=a.printErr||console.warn.bind(console);for(s in _)_.hasOwnProperty(s)&&(a[s]=_[s]);_=null,a.thisProgram&&(o=a.thisProgram),a.quit&&(c=a.quit),a.wasmBinary&&(l=a.wasmBinary),a.noExitRuntime&&(d=a.noExitRuntime),"object"!=typeof WebAssembly&&J("no native wasm support detected");var b,g=!1;function y(e,t){e||J("Assertion failed: "+t)}function w(e){var t=a["_"+e];return y(t,"Cannot call unknown function "+e+", make sure it is exported"),t}function v(e,t,r,a){var n,i={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);t=wr(r),D(e,M,t,r)}return t},array:function(e){var t=wr(e.length);return k.set(e,t),t}},s=w(e),_=[];if(e=0,a)for(var o=0;o<a.length;o++){var c=i[r[o]];c?(0===e&&(e=gr()),_[o]=c(a[o])):_[o]=a[o]}return r=s.apply(null,_),n=r,r="string"===t?T(n):"boolean"===t?!!n:n,0!==e&&yr(e),r}var z,k,M,A,x,O,E,P,L,F="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(e,t,r){var a=t+r;for(r=t;e[r]&&!(r>=a);)++r;if(16<r-t&&e.subarray&&F)return F.decode(e.subarray(t,r));for(a="";t<r;){var n=e[t++];if(128&n){var i=63&e[t++];if(192==(224&n))a+=String.fromCharCode((31&n)<<6|i);else{var s=63&e[t++];65536>(n=224==(240&n)?(15&n)<<12|i<<6|s:(7&n)<<18|i<<12|s<<6|63&e[t++])?a+=String.fromCharCode(n):(n-=65536,a+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else a+=String.fromCharCode(n)}return a}function T(e,t){return e?S(M,e,t):""}function D(e,t,r,a){if(!(0<a))return 0;var n=r;a=r+a-1;for(var i=0;i<e.length;++i){var s=e.charCodeAt(i);if(55296<=s&&57343>=s&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i)),127>=s){if(r>=a)break;t[r++]=s}else{if(2047>=s){if(r+1>=a)break;t[r++]=192|s>>6}else{if(65535>=s){if(r+2>=a)break;t[r++]=224|s>>12}else{if(r+3>=a)break;t[r++]=240|s>>18,t[r++]=128|s>>12&63}t[r++]=128|s>>6&63}t[r++]=128|63&s}}return t[r]=0,r-n}function I(e){for(var t=0,r=0;r<e.length;++r){var a=e.charCodeAt(r);55296<=a&&57343>=a&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++r)),127>=a?++t:t=2047>=a?t+2:65535>=a?t+3:t+4}return t}function V(e){var t=I(e)+1,r=pr(t);return r&&D(e,k,r,t),r}function j(e,t){for(var r=0;r<e.length;++r)k[t++>>0]=e.charCodeAt(r);k[t>>0]=0}function B(){var e=b.buffer;z=e,a.HEAP8=k=new Int8Array(e),a.HEAP16=A=new Int16Array(e),a.HEAP32=O=new Int32Array(e),a.HEAPU8=M=new Uint8Array(e),a.HEAPU16=x=new Uint16Array(e),a.HEAPU32=E=new Uint32Array(e),a.HEAPF32=P=new Float32Array(e),a.HEAPF64=L=new Float64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var R,C=[],U=[],q=[],Z=[];function H(){var e=a.preRun.shift();C.unshift(e)}var W=0,N=null,Y=null;function K(){W++,a.monitorRunDependencies&&a.monitorRunDependencies(W)}function G(){if(W--,a.monitorRunDependencies&&a.monitorRunDependencies(W),0==W&&(null!==N&&(clearInterval(N),N=null),Y)){var e=Y;Y=null,e()}}function J(e){throw a.onAbort&&a.onAbort(e),h(e),g=!0,e=new WebAssembly.RuntimeError("abort("+e+"). Build with -s ASSERTIONS=1 for more info."),i(e),e}a.preloadedImages={},a.preloadedAudios={};var X="zcv.wasm";if(String.prototype.startsWith?!X.startsWith("data:application/octet-stream;base64,"):0!==X.indexOf("data:application/octet-stream;base64,")){var $=X;X=a.locateFile?a.locateFile($,f):f+$}var Q,ee,te,re={26527:function(){if(self.crypto&&self.crypto.getRandomValues){var e=new Uint32Array(1);return self.crypto.getRandomValues(e),e[0]}return 9007199254740991*Math.random()}};function ae(e){for(;0<e.length;){var t=e.shift();if("function"==typeof t)t(a);else{var r=t.da;"number"==typeof r?void 0===t.L?R.get(r)():R.get(r)(t.L):r(void 0===t.L?null:t.L)}}}function ne(e,t){if(0===e)e=Date.now();else{if(1!==e&&4!==e)return O[lr()>>2]=28,-1;e=te()}return O[t>>2]=e/1e3|0,O[t+4>>2]=e%1e3*1e6|0,0}function ie(e){this.D=e-16,this.Ia=function(e){O[this.D+8>>2]=e},this.Fa=function(e){O[this.D+0>>2]=e},this.Ga=function(){O[this.D+4>>2]=0},this.Ea=function(){k[this.D+12>>0]=0},this.Ha=function(){k[this.D+13>>0]=0},this.ua=function(e,t){this.Ia(e),this.Fa(t),this.Ga(),this.Ea(),this.Ha()}}function se(e,t){for(var r=0,a=e.length-1;0<=a;a--){var n=e[a];"."===n?e.splice(a,1):".."===n?(e.splice(a,1),r++):r&&(e.splice(a,1),r--)}if(t)for(;r;r--)e.unshift("..");return e}function _e(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=se(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function oe(e){var t=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],e||t?(t&&(t=t.substr(0,t.length-1)),e+t):"."}function ce(e){if("/"===e)return"/";var t=(e=(e=_e(e)).replace(/\\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)}function ue(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){if("string"!=typeof(t=0<=r?arguments[r]:"/"))throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,t="/"===t.charAt(0)}return(t?"/":"")+(e=se(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."}te=function(){return performance.now()};var fe=[];function pe(e,t){fe[e]={input:[],j:[],C:t},Be(e,le)}var le={open:function(e){var t=fe[e.node.I];if(!t)throw new Me(43);e.h=t,e.seekable=!1},close:function(e){e.h.C.flush(e.h)},flush:function(e){e.h.C.flush(e.h)},read:function(e,t,r,a){if(!e.h||!e.h.C.ea)throw new Me(60);for(var n=0,i=0;i<a;i++){try{var s=e.h.C.ea(e.h)}catch(e){throw new Me(29)}if(void 0===s&&0===n)throw new Me(6);if(null==s)break;n++,t[r+i]=s}return n&&(e.node.timestamp=Date.now()),n},write:function(e,t,r,a){if(!e.h||!e.h.C.Y)throw new Me(60);try{for(var n=0;n<a;n++)e.h.C.Y(e.h,t[r+n])}catch(e){throw new Me(29)}return a&&(e.node.timestamp=Date.now()),n}},de={ea:function(e){if(!e.input.length){var t=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\\n"),!t)return null;e.input=_r(t,!0)}return e.input.shift()},Y:function(e,t){null===t||10===t?(m(S(e.j,0)),e.j=[]):0!=t&&e.j.push(t)},flush:function(e){e.j&&0<e.j.length&&(m(S(e.j,0)),e.j=[])}},me={Y:function(e,t){null===t||10===t?(h(S(e.j,0)),e.j=[]):0!=t&&e.j.push(t)},flush:function(e){e.j&&0<e.j.length&&(h(S(e.j,0)),e.j=[])}},he={o:null,u:function(){return he.createNode(null,"/",16895,0)},createNode:function(e,t,r,a){if(24576==(61440&r)||4096==(61440&r))throw new Me(63);return he.o||(he.o={dir:{node:{m:he.c.m,s:he.c.s,G:he.c.G,M:he.c.M,ka:he.c.ka,S:he.c.S,la:he.c.la,ja:he.c.ja,N:he.c.N},stream:{A:he.f.A}},file:{node:{m:he.c.m,s:he.c.s},stream:{A:he.f.A,read:he.f.read,write:he.f.write,$:he.f.$,fa:he.f.fa,ha:he.f.ha}},link:{node:{m:he.c.m,s:he.c.s,J:he.c.J},stream:{}},aa:{node:{m:he.c.m,s:he.c.s},stream:je}}),16384==(61440&(r=Le(e,t,r,a)).mode)?(r.c=he.o.dir.node,r.f=he.o.dir.stream,r.b={}):32768==(61440&r.mode)?(r.c=he.o.file.node,r.f=he.o.file.stream,r.g=0,r.b=null):40960==(61440&r.mode)?(r.c=he.o.link.node,r.f=he.o.link.stream):8192==(61440&r.mode)&&(r.c=he.o.aa.node,r.f=he.o.aa.stream),r.timestamp=Date.now(),e&&(e.b[t]=r),r},Va:function(e){if(e.b&&e.b.subarray){for(var t=[],r=0;r<e.g;++r)t.push(e.b[r]);return t}return e.b},Wa:function(e){return e.b?e.b.subarray?e.b.subarray(0,e.g):new Uint8Array(e.b):new Uint8Array(0)},ba:function(e,t){var r=e.b?e.b.length:0;r>=t||(t=Math.max(t,r*(1048576>r?2:1.125)>>>0),0!=r&&(t=Math.max(t,256)),r=e.b,e.b=new Uint8Array(t),0<e.g&&e.b.set(r.subarray(0,e.g),0))},Ca:function(e,t){if(e.g!=t)if(0==t)e.b=null,e.g=0;else{if(!e.b||e.b.subarray){var r=e.b;e.b=new Uint8Array(t),r&&e.b.set(r.subarray(0,Math.min(t,e.g)))}else if(e.b||(e.b=[]),e.b.length>t)e.b.length=t;else for(;e.b.length<t;)e.b.push(0);e.g=t}},c:{m:function(e){var t={};return t.qa=8192==(61440&e.mode)?e.id:1,t.X=e.id,t.mode=e.mode,t.Aa=1,t.uid=0,t.sa=0,t.I=e.I,16384==(61440&e.mode)?t.size=4096:32768==(61440&e.mode)?t.size=e.g:40960==(61440&e.mode)?t.size=e.link.length:t.size=0,t.ma=new Date(e.timestamp),t.za=new Date(e.timestamp),t.pa=new Date(e.timestamp),t.na=4096,t.oa=Math.ceil(t.size/t.na),t},s:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&he.Ca(e,t.size)},G:function(){throw Ae[44]},M:function(e,t,r,a){return he.createNode(e,t,r,a)},ka:function(e,t,r){if(16384==(61440&e.mode)){try{var a=Pe(t,r)}catch(e){}if(a)for(var n in a.b)throw new Me(55)}delete e.parent.b[e.name],e.name=r,t.b[r]=e,e.parent=t},S:function(e,t){delete e.b[t]},la:function(e,t){var r,a=Pe(e,t);for(r in a.b)throw new Me(55);delete e.b[t]},ja:function(e){var t,r=[".",".."];for(t in e.b)e.b.hasOwnProperty(t)&&r.push(t);return r},N:function(e,t,r){return(e=he.createNode(e,t,41471,0)).link=r,e},J:function(e){if(40960!=(61440&e.mode))throw new Me(28);return e.link}},f:{read:function(e,t,r,a,n){var i=e.node.b;if(n>=e.node.g)return 0;if(8<(e=Math.min(e.node.g-n,a))&&i.subarray)t.set(i.subarray(n,n+e),r);else for(a=0;a<e;a++)t[r+a]=i[n+a];return e},write:function(e,t,r,a,n,i){if(t.buffer===k.buffer&&(i=!1),!a)return 0;if((e=e.node).timestamp=Date.now(),t.subarray&&(!e.b||e.b.subarray)){if(i)return e.b=t.subarray(r,r+a),e.g=a;if(0===e.g&&0===n)return e.b=t.slice(r,r+a),e.g=a;if(n+a<=e.g)return e.b.set(t.subarray(r,r+a),n),a}if(he.ba(e,n+a),e.b.subarray&&t.subarray)e.b.set(t.subarray(r,r+a),n);else for(i=0;i<a;i++)e.b[n+i]=t[r+i];return e.g=Math.max(e.g,n+a),a},A:function(e,t,r){if(1===r?t+=e.position:2===r&&32768==(61440&e.node.mode)&&(t+=e.node.g),0>t)throw new Me(28);return t},$:function(e,t,r){he.ba(e.node,t+r),e.node.g=Math.max(e.node.g,t+r)},fa:function(e,t,r,a,n,i){if(y(0===t),32768!=(61440&e.node.mode))throw new Me(43);if(e=e.node.b,2&i||e.buffer!==z){for((0<a||a+r<e.length)&&(e=e.subarray?e.subarray(a,a+r):Array.prototype.slice.call(e,a,a+r)),a=!0,i=16384*Math.ceil(r/16384),t=pr(i);r<i;)k[t+r++]=0;if(!(r=t))throw new Me(48);k.set(e,r)}else a=!1,r=e.byteOffset;return{D:r,Qa:a}},ha:function(e,t,r,a,n){if(32768!=(61440&e.node.mode))throw new Me(43);return 2&n||he.f.write(e,t,0,a,r,!1),0}}},be=null,ge={},ye=[],we=1,ve=null,ze=!0,ke={},Me=null,Ae={};function xe(e,t){if(t=t||{},!(e=ue("/",e)))return{path:"",node:null};var r,a={ca:!0,Z:0};for(r in a)void 0===t[r]&&(t[r]=a[r]);if(8<t.Z)throw new Me(32);e=se(e.split("/").filter((function(e){return!!e})),!1);var n=be;for(a="/",r=0;r<e.length;r++){var i=r===e.length-1;if(i&&t.parent)break;if(n=Pe(n,e[r]),a=_e(a+"/"+e[r]),n.H&&(!i||i&&t.ca)&&(n=n.H.root),!i||t.V)for(i=0;40960==(61440&n.mode);)if(n=He(a),n=xe(a=ue(oe(a),n),{Z:t.Z}).node,40<i++)throw new Me(32)}return{path:a,node:n}}function Oe(e){for(var t;;){if(e===e.parent)return e=e.u.ga,t?"/"!==e[e.length-1]?e+"/"+t:e+t:e;t=t?e.name+"/"+t:e.name,e=e.parent}}function Ee(e,t){for(var r=0,a=0;a<t.length;a++)r=(r<<5)-r+t.charCodeAt(a)|0;return(e+r>>>0)%ve.length}function Pe(e,t){var r;if(r=(r=Te(e,"x"))?r:e.c.G?0:2)throw new Me(r,e);for(r=ve[Ee(e.id,t)];r;r=r.B){var a=r.name;if(r.parent.id===e.id&&a===t)return r}return e.c.G(e,t)}function Le(e,t,r,a){return t=Ee((e=new sr(e,t,r,a)).parent.id,e.name),e.B=ve[t],ve[t]=e}var Fe={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090};function Se(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t}function Te(e,t){return ze||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2}function De(e,t){try{return Pe(e,t),20}catch(e){}return Te(e,"wx")}function Ie(e,t){$e||(($e=function(){}).prototype={});var r,a=new $e;for(r in e)a[r]=e[r];return e=a,t=function(e){for(e=e||0;e<=4096;e++)if(!ye[e])return e;throw new Me(33)}(t),e.v=t,ye[t]=e}var Ve,je={open:function(e){e.f=ge[e.node.I].f,e.f.open&&e.f.open(e)},A:function(){throw new Me(70)}};function Be(e,t){ge[e]={f:t}}function Re(e,t){var r="/"===t,a=!t;if(r&&be)throw new Me(10);if(!r&&!a){var n=xe(t,{ca:!1});if(t=n.path,(n=n.node).H)throw new Me(10);if(16384!=(61440&n.mode))throw new Me(54)}t={type:e,$a:{},ga:t,ya:[]},(e=e.u(t)).u=t,t.root=e,r?be=e:n&&(n.H=t,n.u&&n.u.ya.push(t))}function Ce(e,t,r){var a=xe(e,{parent:!0}).node;if(!(e=ce(e))||"."===e||".."===e)throw new Me(28);var n=De(a,e);if(n)throw new Me(n);if(!a.c.M)throw new Me(63);return a.c.M(a,e,t,r)}function Ue(e){Ce(e,16895,0)}function qe(e,t,r){void 0===r&&(r=t,t=438),Ce(e,8192|t,r)}function Ze(e,t){if(!ue(e))throw new Me(44);var r=xe(t,{parent:!0}).node;if(!r)throw new Me(44);var a=De(r,t=ce(t));if(a)throw new Me(a);if(!r.c.N)throw new Me(63);r.c.N(r,t,e)}function He(e){if(!(e=xe(e).node))throw new Me(44);if(!e.c.J)throw new Me(28);return ue(Oe(e.parent),e.c.J(e))}function We(e,t){if(!(e=xe(e,{V:!t}).node))throw new Me(44);if(!e.c.m)throw new Me(63);return e.c.m(e)}function Ne(e){return We(e,!0)}function Ye(e,t,r,n){if(""===e)throw new Me(44);if("string"==typeof t){var i=Fe[t];if(void 0===i)throw Error("Unknown file open mode: "+t);t=i}if(r=64&t?4095&(void 0===r?438:r)|32768:0,"object"==typeof e)var s=e;else{e=_e(e);try{s=xe(e,{V:!(131072&t)}).node}catch(e){}}if(i=!1,64&t)if(s){if(128&t)throw new Me(20)}else s=Ce(e,r,0),i=!0;if(!s)throw new Me(44);if(8192==(61440&s.mode)&&(t&=-513),65536&t&&16384!=(61440&s.mode))throw new Me(54);if(!i&&(r=s?40960==(61440&s.mode)?32:16384==(61440&s.mode)&&("r"!==Se(t)||512&t)?31:Te(s,Se(t)):44))throw new Me(r);if(512&t){var _;if(!(_="string"==typeof(r=s)?xe(r,{V:!0}).node:r).c.s)throw new Me(63);if(16384==(61440&_.mode))throw new Me(31);if(32768!=(61440&_.mode))throw new Me(28);if(r=Te(_,"w"))throw new Me(r);_.c.s(_,{size:0,timestamp:Date.now()})}t&=-131713,(n=Ie({node:s,path:Oe(s),flags:t,seekable:!0,position:0,f:s.f,Na:[],error:!1},n)).f.open&&n.f.open(n),!a.logReadFiles||1&t||(Qe||(Qe={}),e in Qe||(Qe[e]=1,h("FS.trackingDelegate error on read file: "+e)));try{ke.onOpenFile&&(s=0,1!=(2097155&t)&&(s|=1),0!=(2097155&t)&&(s|=2),ke.onOpenFile(e,s))}catch(t){h("FS.trackingDelegate[\'onOpenFile\'](\'"+e+"\', flags) threw an exception: "+t.message)}return n}function Ke(e,t,r){if(null===e.v)throw new Me(8);if(!e.seekable||!e.f.A)throw new Me(70);if(0!=r&&1!=r&&2!=r)throw new Me(28);e.position=e.f.A(e,t,r),e.Na=[]}function Ge(){Me||((Me=function(e,t){this.node=t,this.Da=function(e){this.i=e},this.Da(e),this.message="FS error"}).prototype=Error(),Me.prototype.constructor=Me,[44].forEach((function(e){Ae[e]=new Me(e),Ae[e].stack="<generic error, no stack>"})))}function Je(e,t,r){e=_e("/dev/"+e);var a=function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r}(!!t,!!r);Xe||(Xe=64);var n=Xe++<<8|0;Be(n,{open:function(e){e.seekable=!1},close:function(){r&&r.buffer&&r.buffer.length&&r(10)},read:function(e,r,a,n){for(var i=0,s=0;s<n;s++){try{var _=t()}catch(e){throw new Me(29)}if(void 0===_&&0===i)throw new Me(6);if(null==_)break;i++,r[a+s]=_}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,a,n){for(var i=0;i<n;i++)try{r(t[a+i])}catch(e){throw new Me(29)}return n&&(e.node.timestamp=Date.now()),i}}),qe(e,a,n)}var Xe,$e,Qe,et={};function tt(e,t,r){try{var a=e(t)}catch(e){if(e&&e.node&&_e(t)!==_e(Oe(e.node)))return-54;throw e}return O[r>>2]=a.qa,O[r+4>>2]=0,O[r+8>>2]=a.X,O[r+12>>2]=a.mode,O[r+16>>2]=a.Aa,O[r+20>>2]=a.uid,O[r+24>>2]=a.sa,O[r+28>>2]=a.I,O[r+32>>2]=0,ee=[a.size>>>0,(Q=a.size,1<=+Math.abs(Q)?0<Q?(0|Math.min(+Math.floor(Q/4294967296),4294967295))>>>0:~~+Math.ceil((Q-+(~~Q>>>0))/4294967296)>>>0:0)],O[r+40>>2]=ee[0],O[r+44>>2]=ee[1],O[r+48>>2]=4096,O[r+52>>2]=a.oa,O[r+56>>2]=a.ma.getTime()/1e3|0,O[r+60>>2]=0,O[r+64>>2]=a.za.getTime()/1e3|0,O[r+68>>2]=0,O[r+72>>2]=a.pa.getTime()/1e3|0,O[r+76>>2]=0,ee=[a.X>>>0,(Q=a.X,1<=+Math.abs(Q)?0<Q?(0|Math.min(+Math.floor(Q/4294967296),4294967295))>>>0:~~+Math.ceil((Q-+(~~Q>>>0))/4294967296)>>>0:0)],O[r+80>>2]=ee[0],O[r+84>>2]=ee[1],0}var rt=void 0;function at(){return O[(rt+=4)-4>>2]}function nt(e){if(!(e=ye[e]))throw new Me(8);return e}var it,st,_t,ot=null,ct=0,ut=null,ft=0,pt=0,lt=0,dt=[],mt={},ht=!1,bt=!1,gt=[];function yt(){function e(){bt=document.pointerLockElement===a.canvas||document.mozPointerLockElement===a.canvas||document.webkitPointerLockElement===a.canvas||document.msPointerLockElement===a.canvas}if(a.preloadPlugins||(a.preloadPlugins=[]),!Pt){Pt=!0;try{Lt=!0}catch(e){Lt=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Ft="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Lt?null:console.log("warning: no BlobBuilder"),St="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,a.ia||void 0!==St||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),a.ia=!0),a.preloadPlugins.push({canHandle:function(e){return!a.ia&&/\\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,n){var i=null;if(Lt)try{(i=new Blob([e],{type:Et(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Et(t)}))}catch(e){!function(e){p||(p={}),p[e]||(p[e]=1,h(e))}("Blob constructor present but fails: "+e+"; falling back to blob builder")}i||((i=new Ft).append(new Uint8Array(e).buffer),i=i.getBlob());var s=St.createObjectURL(i),_=new Image;_.onload=function(){y(_.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=_.width,n.height=_.height,n.getContext("2d").drawImage(_,0,0),a.preloadedImages[t]=n,St.revokeObjectURL(s),r&&r(e)},_.onerror=function(){console.log("Image "+s+" could not be decoded"),n&&n()},_.src=s}}),a.preloadPlugins.push({canHandle:function(e){return!a.Za&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){function i(n){_||(_=!0,a.preloadedAudios[t]=n,r&&r(e))}function s(){_||(_=!0,a.preloadedAudios[t]=new Audio,n&&n())}var _=!1;if(!Lt)return s();try{var o=new Blob([e],{type:Et(t)})}catch(e){return s()}o=St.createObjectURL(o);var c=new Audio;c.addEventListener("canplaythrough",(function(){i(c)}),!1),c.onerror=function(){if(!_){console.log("warning: browser could not fully decode audio "+t+", trying slower base64 approach");for(var r="",a=0,n=0,s=0;s<e.length;s++)for(a=a<<8|e[s],n+=8;6<=n;){var o=a>>n-6&63;n-=6,r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[o]}2==n?(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&a)<<4],r+="=="):4==n&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&a)<<2],r+="="),c.src="data:audio/x-"+t.substr(-3)+";base64,"+r,i(c)}},c.src=o,Ot((function(){i(c)}),1e4)}});var t=a.canvas;t&&(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock||t.msRequestPointerLock||function(){},t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),a.elementPointerLock&&t.addEventListener("click",(function(e){!bt&&a.canvas.requestPointerLock&&(a.canvas.requestPointerLock(),e.preventDefault())}),!1))}}function wt(e,t,r,n){if(t&&a.U&&e==a.canvas)return a.U;var i;if(t){var s={antialias:!1,alpha:!1,xa:1};if(n)for(var _ in n)s[_]=n[_];if(void 0!==$t&&(i=function(e,t){if(e=e.getContext("webgl",t)){var r=Kt(Yt),a={Xa:r,attributes:t,version:t.xa,T:e};e.canvas&&(e.canvas.Pa=a),Yt[r]=a,(void 0===t.ra||t.ra)&&function(e){if(e||(e=Jt),!e.va){e.va=!0;var t=e.T;!function(e){var t=e.getExtension("ANGLE_instanced_arrays");t&&(e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,a,n){t.drawArraysInstancedANGLE(e,r,a,n)},e.drawElementsInstanced=function(e,r,a,n,i){t.drawElementsInstancedANGLE(e,r,a,n,i)})}(t),function(e){var t=e.getExtension("OES_vertex_array_object");t&&(e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)})}(t),function(e){var t=e.getExtension("WEBGL_draw_buffers");t&&(e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)})}(t),t.Ta=t.getExtension("EXT_disjoint_timer_query"),t.Ya=t.getExtension("WEBGL_multi_draw"),(t.getSupportedExtensions()||[]).forEach((function(e){0>e.indexOf("lose_context")&&0>e.indexOf("debug")&&t.getExtension(e)}))}}(a),t=r}else t=0;return t}(e,s)))var o=Yt[i].T}else o=e.getContext("2d");return o?(r&&(t||y(void 0===nr,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),a.U=o,t&&(Jt=Yt[i],a.U=nr=Jt&&Jt.T),a.bb=t,gt.forEach((function(e){e()})),yt()),o):null}var vt=!1,zt=void 0,kt=void 0;function Mt(){return!!ht&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)}var At=0;function xt(e){if("function"==typeof requestAnimationFrame)requestAnimationFrame(e);else{var t=Date.now();if(0===At)At=t+1e3/60;else for(;t+2>=At;)At+=1e3/60;setTimeout(e,Math.max(At-t,0))}}function Ot(e,t){d=!0,setTimeout((function(){g||e()}),t)}function Et(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]}var Pt,Lt,Ft,St,Tt=[];function Dt(){var e=a.canvas;Tt.forEach((function(t){t(e.width,e.height)}))}function It(e,t,r){t&&r?(e.Oa=t,e.ta=r):(t=e.Oa,r=e.ta);var n=t,i=r;if(a.forcedAspectRatio&&0<a.forcedAspectRatio&&(n/i<a.forcedAspectRatio?n=Math.round(i*a.forcedAspectRatio):i=Math.round(n/a.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var s=Math.min(screen.width/n,screen.height/i);n=Math.round(n*s),i=Math.round(i*s)}kt?(e.width!=n&&(e.width=n),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(n!=t||i!=r?(e.style.setProperty("width",n+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}function Vt(){return!1}a._emscripten_is_main_browser_thread=Vt;var jt,Bt=[];function Rt(e,t){E[e>>2]=t,E[e+4>>2]=t/4294967296|0}function Ct(e,t,r,a,n){function i(t){var r=0,a=0;t&&(a=w.response?w.response.byteLength:0,r=pr(a),M.set(new Uint8Array(w.response),r)),E[e+12>>2]=r,Rt(e+16,a)}var s=E[e+8>>2];if(s){var _=T(s),o=e+112,c=T(o);c||(c="GET");var u=E[o+52>>2],f=E[o+56>>2],p=!!E[o+60>>2],l=E[o+68>>2],d=E[o+72>>2];s=E[o+76>>2];var m=E[o+80>>2],h=E[o+84>>2];o=E[o+88>>2];var b=!!(1&u),g=!!(2&u);u=!!(64&u),l=l?T(l):void 0,d=d?T(d):void 0;var y=m?T(m):void 0,w=new XMLHttpRequest;if(w.withCredentials=p,w.open(c,_,!u,l,d),u||(w.timeout=f),w.Ra=_,w.responseType="arraybuffer",m&&w.overrideMimeType(y),s)for(;(c=E[s>>2])&&(_=E[s+4>>2]);)s+=8,c=T(c),_=T(_),w.setRequestHeader(c,_);Bt.push(w),E[e+0>>2]=Bt.length,s=h&&o?M.slice(h,h+o):null,w.onload=function(a){i(b&&!g);var n=w.response?w.response.byteLength:0;Rt(e+24,0),n&&Rt(e+32,n),x[e+40>>1]=w.readyState,x[e+42>>1]=w.status,w.statusText&&D(w.statusText,M,e+44,64),200<=w.status&&300>w.status?t&&t(e,w,a):r&&r(e,w,a)},w.onerror=function(t){i(b);var a=w.status;Rt(e+24,0),Rt(e+32,w.response?w.response.byteLength:0),x[e+40>>1]=w.readyState,x[e+42>>1]=a,r&&r(e,w,t)},w.ontimeout=function(t){r&&r(e,w,t)},w.onprogress=function(t){var r=b&&g&&w.response?w.response.byteLength:0,n=0;b&&g&&(n=pr(r),M.set(new Uint8Array(w.response),n)),E[e+12>>2]=n,Rt(e+16,r),Rt(e+24,t.loaded-r),Rt(e+32,t.total),x[e+40>>1]=w.readyState,3<=w.readyState&&0===w.status&&0<t.loaded&&(w.status=200),x[e+42>>1]=w.status,w.statusText&&D(w.statusText,M,e+44,64),a&&a(e,w,t),n&&fr(n)},w.onreadystatechange=function(t){x[e+40>>1]=w.readyState,2<=w.readyState&&(x[e+42>>1]=w.status),n&&n(e,w,t)};try{w.send(s)}catch(t){r&&r(e,w,t)}}else r(e,0,"no url specified!")}function Ut(e,t,r,a){var n=jt;if(n){var i=E[e+112+64>>2];i||(i=E[e+8>>2]);var s=T(i);try{var _=n.transaction(["FILES"],"readwrite").objectStore("FILES").put(t,s);_.onsuccess=function(){x[e+40>>1]=4,x[e+42>>1]=200,D("OK",M,e+44,64),r(e,0,s)},_.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=413,D("Payload Too Large",M,e+44,64),a(e,0,t)}}catch(t){a(e,0,t)}}else a(e,0,"IndexedDB not available!")}var qt,Zt={};function Ht(){if(!qt){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o||"./this.program"};for(e in Zt)t[e]=Zt[e];var r=[];for(e in t)r.push(e+"="+t[e]);qt=r}return qt}var Wt=1,Nt=[],Yt=[];function Kt(e){for(var t=Wt++,r=e.length;r<t;r++)e[r]=null;return t}var Gt,Jt,Xt,$t={};function Qt(e){return 0==e%4&&(0!=e%100||0==e%400)}function er(e,t){for(var r=0,a=0;a<=t;r+=e[a++]);return r}var tr=[31,29,31,30,31,30,31,31,30,31,30,31],rr=[31,28,31,30,31,30,31,31,30,31,30,31];function ar(e,t){for(e=new Date(e.getTime());0<t;){var r=e.getMonth(),a=(Qt(e.getFullYear())?tr:rr)[r];if(!(t>a-e.getDate())){e.setDate(e.getDate()+t);break}t-=a-e.getDate()+1,e.setDate(1),11>r?e.setMonth(r+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}var nr,ir=[];function sr(e,t,r,a){e||(e=this),this.parent=e,this.u=e.u,this.H=null,this.id=we++,this.name=t,this.mode=r,this.c={},this.f={},this.I=a}function _r(e,t){var r=Array(I(e)+1);return e=D(e,r,0,r.length),t&&(r.length=e),r}Object.defineProperties(sr.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}}}),Ge(),ve=Array(4096),Re(he,"/"),Ue("/tmp"),Ue("/home"),Ue("/home/web_user"),function(){Ue("/dev"),Be(259,{read:function(){return 0},write:function(e,t,r,a){return a}}),qe("/dev/null",259),pe(1280,de),pe(1536,me),qe("/dev/tty",1280),qe("/dev/tty1",1536);var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}return function(){J("randomDevice")}}();Je("random",e),Je("urandom",e),Ue("/dev/shm"),Ue("/dev/shm/tmp")}(),Ue("/proc"),Ue("/proc/self"),Ue("/proc/self/fd"),Re({u:function(){var e=Le("/proc/self","fd",16895,73);return e.c={G:function(e,t){var r=ye[+t];if(!r)throw new Me(8);return(e={parent:null,u:{ga:"fake"},c:{J:function(){return r.path}}}).parent=e}},e}},"/proc/self/fd"),a.requestFullscreen=function(e,t){!function(e,t){function r(){ht=!1;var e=n.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(n.exitFullscreen=Mt,zt&&n.requestPointerLock(),ht=!0,kt?("undefined"!=typeof SDL&&(O[SDL.screen>>2]=8388608|E[SDL.screen>>2]),It(a.canvas),Dt()):It(n)):(e.parentNode.insertBefore(n,e),e.parentNode.removeChild(e),kt?("undefined"!=typeof SDL&&(O[SDL.screen>>2]=-8388609&E[SDL.screen>>2]),It(a.canvas),Dt()):It(n)),a.onFullScreen&&a.onFullScreen(ht),a.onFullscreen&&a.onFullscreen(ht)}void 0===(zt=e)&&(zt=!0),void 0===(kt=t)&&(kt=!1);var n=a.canvas;vt||(vt=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var i=document.createElement("div");n.parentNode.insertBefore(i,n),i.appendChild(n),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()}(e,t)},a.requestAnimationFrame=function(e){xt(e)},a.setCanvasSize=function(e,t,r){It(a.canvas,e,t),r||Dt()},a.pauseMainLoop=function(){ot=null,ct++},a.resumeMainLoop=function(){ct++;var t=ft,r=pt,n=ut;ut=null,function(e){d=!0,y(!ut,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ut=e;var t=ct;st=function(){if(!g)if(0<dt.length){var r=Date.now(),n=dt.shift();if(n.da(n.L),_t){var i=_t,s=0==i%1?i-1:Math.floor(i);_t=n.Sa?s:(8*i+(s+.5))/9}console.log(\'main loop blocker "\'+n.name+\'" took \'+(Date.now()-r)+" ms"),a.setStatus&&(r=a.statusMessage||"Please wait...",n=_t,i=mt.Ua,n?n<i?a.setStatus(r+" ("+(i-n)+"/"+i+")"):a.setStatus(r):a.setStatus("")),t<ct||setTimeout(st,0)}else if(!(t<ct))if(lt=lt+1|0,1==ft&&1<pt&&0!=lt%pt)ot();else{0==ft&&(it=te());e:if(!(g||a.preMainLoop&&!1===a.preMainLoop())){try{e()}catch(e){if(e instanceof vr||"unwind"==e)break e;throw e&&"object"==typeof e&&e.stack&&h("exception thrown: "+[e,e.stack]),e}a.postMainLoop&&a.postMainLoop()}t<ct||("object"==typeof SDL&&SDL.audio&&SDL.audio.Ba&&SDL.audio.Ba(),ot())}}}(n),function(t,r){if(ft=t,pt=r,ut)if(0==t)ot=function(){var e=0|Math.max(0,it+r-te());setTimeout(st,e)};else if(1==t)ot=function(){xt(st)};else if(2==t){if(void 0===e){var n=[];addEventListener("message",(function(e){"setimmediate"!==e.data&&"setimmediate"!==e.data.target||(e.stopPropagation(),n.shift()())}),!0),e=function(e){n.push(e),void 0===a.setImmediates&&(a.setImmediates=[]),a.setImmediates.push(e),postMessage({target:"setimmediate"})}}ot=function(){e(st)}}}(t,r),ot()},a.getUserMedia=function(){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(void 0)},a.createContext=function(e,t,r,a){return wt(e,t,r,a)},function(e,t){try{var r=indexedDB.open("emscripten_filesystem",1)}catch(e){return void t()}r.onupgradeneeded=function(e){(e=e.target.result).objectStoreNames.contains("FILES")&&e.deleteObjectStore("FILES"),e.createObjectStore("FILES")},r.onsuccess=function(e){!function(e){jt=e,G()}(e.target.result)},r.onerror=function(e){t()}}(0,(function(){jt=!1,G()})),"undefined"!=typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||K(),U.push({da:function(){ur()}});var or={__clock_gettime:function(e,t){return ne(e,t)},__cxa_allocate_exception:function(e){return pr(e+16)+16},__cxa_atexit:function(){},__cxa_throw:function(e,t,r){throw new ie(e).ua(t,r),e},__sys_fcntl64:function(e,t,r){rt=r;try{var a=nt(e);switch(t){case 0:var n=at();return 0>n?-28:Ye(a.path,a.flags,0,n).v;case 1:case 2:return 0;case 3:return a.flags;case 4:return n=at(),a.flags|=n,0;case 12:return n=at(),A[n+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return O[lr()>>2]=28,-1;default:return-28}}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_getpid:function(){return 42},__sys_ioctl:function(e,t,r){rt=r;try{var a=nt(e);switch(t){case 21509:case 21505:return a.h?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return a.h?0:-59;case 21519:if(!a.h)return-59;var n=at();return O[n>>2]=0;case 21520:return a.h?-28:-59;case 21531:if(e=n=at(),!a.f.wa)throw new Me(59);return a.f.wa(a,t,e);case 21523:case 21524:return a.h?0:-59;default:J("bad ioctl syscall "+t)}}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_lstat64:function(e,t){try{return tt(Ne,e=T(e),t)}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_open:function(e,t,r){rt=r;try{return Ye(T(e),t,r?at():0).v}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_stat64:function(e,t){try{return tt(We,e=T(e),t)}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_symlink:function(e,t){try{return Ze(e=T(e),t=T(t)),0}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_uname:function(e){try{if(!e)return-21;var t={__size__:390,domainname:325,machine:260,nodename:65,release:130,sysname:0,version:195};return j("Emscripten",e+t.sysname),j("emscripten",e+t.nodename),j("1.0",e+t.release),j("#1",e+t.version),j("x86-JS",e+t.machine),0}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},__sys_unlink:function(e){try{var t=xe(e=T(e),{parent:!0}).node,r=ce(e),a=Pe(t,r);e:{try{var n=Pe(t,r)}catch(e){var i=e.i;break e}var s=Te(t,"wx");i=s||(16384==(61440&n.mode)?31:0)}if(i)throw new Me(i);if(!t.c.S)throw new Me(63);if(a.H)throw new Me(10);try{ke.willDeletePath&&ke.willDeletePath(e)}catch(t){h("FS.trackingDelegate[\'willDeletePath\'](\'"+e+"\') threw an exception: "+t.message)}t.c.S(t,r);var _=Ee(a.parent.id,a.name);if(ve[_]===a)ve[_]=a.B;else for(var o=ve[_];o;){if(o.B===a){o.B=a.B;break}o=o.B}try{ke.onDeletePath&&ke.onDeletePath(e)}catch(t){h("FS.trackingDelegate[\'onDeletePath\'](\'"+e+"\') threw an exception: "+t.message)}return 0}catch(e){return void 0!==et&&e instanceof Me||J(e),-e.i}},_emscripten_fetch_free:function(e){delete Bt[e-1]},abort:function(){J()},clock_gettime:ne,emidentity:function(){var e=new URL(location.origin).hostname;if(0===e.length&&(e=new URL(location.href.replace("blob:","")).hostname),/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e))0===e.indexOf("10.")&&(e="10.*"),0===e.indexOf("192.168.")&&(e="192.168.*"),0===e.indexOf("172.")&&(e="172.*"),0===e.indexOf("127.")&&(e="127.*");else{var t=new RegExp("("+String.fromCharCode(92)+".ngrok"+String.fromCharCode(92)+".io)$","i");t.test(e)&&(e="*.ngrok.io"),(t=new RegExp("("+String.fromCharCode(92)+".arweb"+String.fromCharCode(92)+".app)$","i")).test(e)&&(e="*.arweb.app")}t=I(e)+1;var r=pr(t);return D(e,M,r,t+1),r},emlicerr:function(){self.postMessage({t:"licerr"})},emscripten_asm_const_int:function(e,t,r){var a;for(ir.length=0,r>>=2;a=M[t++];)(a=105>a)&&1&r&&r++,ir.push(a?L[r++>>1]:O[r]),++r;return re[e].apply(null,ir)},emscripten_async_call:function(e,t,r){function a(){R.get(e)(t)}d=!0,0<=r?Ot(a,r):function(e){xt((function(){g||e()}))}(a)},emscripten_is_main_browser_thread:Vt,emscripten_memcpy_big:function(e,t,r){M.copyWithin(e,t,t+r)},emscripten_resize_heap:function(e){e>>>=0;var t=M.length;if(2147483648<e)return!1;for(var r=1;4>=r;r*=2){var a=t*(1+.2/r);a=Math.min(a,e+100663296),0<(a=Math.max(16777216,e,a))%65536&&(a+=65536-a%65536);e:{try{b.grow(Math.min(2147483648,a)-z.byteLength+65535>>>16),B();var n=1;break e}catch(e){}n=void 0}if(n)return!0}return!1},emscripten_start_fetch:function(e,t,r,a,n){function i(e,r){Ut(e,r.response,(function(e){p?R.get(p)(e):t&&t(e)}),(function(e){p?R.get(p)(e):t&&t(e)}))}function s(e){h?R.get(h)(e):n&&n(e)}function _(e){l?R.get(l)(e):r&&r(e)}function o(e){m?R.get(m)(e):a&&a(e)}function c(e){p?R.get(p)(e):t&&t(e)}void 0!==d&&(d=!0);var u=e+112,f=T(u),p=E[u+36>>2],l=E[u+40>>2],m=E[u+44>>2],h=E[u+48>>2],b=E[u+52>>2],g=!!(4&b),y=!!(32&b);if(b=!!(16&b),"EM_IDB_STORE"===f)f=E[u+84>>2],Ut(e,M.slice(f,f+E[u+88>>2]),c,_);else if("EM_IDB_DELETE"===f)!function(e,t,r){var a=jt;if(a){var n=E[e+112+64>>2];n||(n=E[e+8>>2]),n=T(n);try{var i=a.transaction(["FILES"],"readwrite").objectStore("FILES").delete(n);i.onsuccess=function(r){r=r.target.result,E[e+12>>2]=0,Rt(e+16,0),Rt(e+24,0),Rt(e+32,0),x[e+40>>1]=4,x[e+42>>1]=200,D("OK",M,e+44,64),t(e,0,r)},i.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=404,D("Not Found",M,e+44,64),r(e,0,t)}}catch(t){r(e,0,t)}}else r(e,0,"IndexedDB not available!")}(e,c,_);else if(b){if(y)return 0;Ct(e,g?i:c,_,o,s)}else!function(e,t,r){var a=jt;if(a){var n=E[e+112+64>>2];n||(n=E[e+8>>2]),n=T(n);try{var i=a.transaction(["FILES"],"readonly").objectStore("FILES").get(n);i.onsuccess=function(a){if(a.target.result){var n=(a=a.target.result).byteLength||a.length,i=pr(n);M.set(new Uint8Array(a),i),E[e+12>>2]=i,Rt(e+16,n),Rt(e+24,0),Rt(e+32,n),x[e+40>>1]=4,x[e+42>>1]=200,D("OK",M,e+44,64),t(e,0,a)}else x[e+40>>1]=4,x[e+42>>1]=404,D("Not Found",M,e+44,64),r(e,0,"no data")},i.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=404,D("Not Found",M,e+44,64),r(e,0,t)}}catch(t){r(e,0,t)}}else r(e,0,"IndexedDB not available!")}(e,c,y?_:g?function(e){Ct(e,i,_,o,s)}:function(e){Ct(e,c,_,o,s)});return e},emscripten_thread_sleep:function(e){for(var t=te();te()-t<e;);},environ_get:function(e,t){try{var r=0;return Ht().forEach((function(a,n){var i=t+r;O[e+4*n>>2]=i,j(a,i),r+=a.length+1})),0}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},environ_sizes_get:function(e,t){try{var r=Ht();O[e>>2]=r.length;var a=0;return r.forEach((function(e){a+=e.length+1})),O[t>>2]=a,0}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},exit:function(e){d||(a.onExit&&a.onExit(e),g=!0),c(e,new vr(e))},fd_close:function(e){try{var t=nt(e);if(null===t.v)throw new Me(8);t.W&&(t.W=null);try{t.f.close&&t.f.close(t)}catch(e){throw e}finally{ye[t.v]=null}return t.v=null,0}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},fd_read:function(e,t,r,a){try{e:{for(var n=nt(e),i=e=0;i<r;i++){var s=O[t+(8*i+4)>>2],_=n,o=O[t+8*i>>2],c=s,u=void 0,f=k;if(0>c||0>u)throw new Me(28);if(null===_.v)throw new Me(8);if(1==(2097155&_.flags))throw new Me(8);if(16384==(61440&_.node.mode))throw new Me(31);if(!_.f.read)throw new Me(28);var p=void 0!==u;if(p){if(!_.seekable)throw new Me(70)}else u=_.position;var l=_.f.read(_,f,o,c,u);p||(_.position+=l);var d=l;if(0>d){var m=-1;break e}if(e+=d,d<s)break}m=e}return O[a>>2]=m,0}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},fd_seek:function(e,t,r,a,n){try{var i=nt(e);return-9007199254740992>=(e=4294967296*r+(t>>>0))||9007199254740992<=e?-61:(Ke(i,e,a),ee=[i.position>>>0,(Q=i.position,1<=+Math.abs(Q)?0<Q?(0|Math.min(+Math.floor(Q/4294967296),4294967295))>>>0:~~+Math.ceil((Q-+(~~Q>>>0))/4294967296)>>>0:0)],O[n>>2]=ee[0],O[n+4>>2]=ee[1],i.W&&0===e&&0===a&&(i.W=null),0)}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},fd_write:function(e,t,r,a){try{e:{for(var n=nt(e),i=e=0;i<r;i++){var s=n,_=O[t+8*i>>2],o=O[t+(8*i+4)>>2],c=void 0,u=k;if(0>o||0>c)throw new Me(28);if(null===s.v)throw new Me(8);if(0==(2097155&s.flags))throw new Me(8);if(16384==(61440&s.node.mode))throw new Me(31);if(!s.f.write)throw new Me(28);s.seekable&&1024&s.flags&&Ke(s,0,2);var f=void 0!==c;if(f){if(!s.seekable)throw new Me(70)}else c=s.position;var p=s.f.write(s,u,_,o,c,void 0);f||(s.position+=p);try{s.path&&ke.onWriteToFile&&ke.onWriteToFile(s.path)}catch(e){h("FS.trackingDelegate[\'onWriteToFile\'](\'"+s.path+"\') threw an exception: "+e.message)}var l=p;if(0>l){var d=-1;break e}e+=l}d=e}return O[a>>2]=d,0}catch(e){return void 0!==et&&e instanceof Me||J(e),e.i}},gettimeofday:function(e){var t=Date.now();return O[e>>2]=t/1e3|0,O[e+4>>2]=t%1e3*1e3|0,0},glBindTexture:function(e,t){nr.bindTexture(e,Nt[t])},glGenTextures:function(e,t){for(var r=0;r<e;r++){var a=nr.createTexture(),n=a&&Kt(Nt);a?(a.name=n,Nt[n]=a):Gt||(Gt=1282),O[t+4*r>>2]=n}},glTexImage2D:function(e,t,r,a,n,i,s,_,o){nr.texImage2D(e,t,r,a,n,i,s,_,o?function(e,t,r,a,n){e=1==(e-=5120)?M:4==e?O:6==e?P:5==e||28922==e?E:x;var i=31-Math.clz32(e.BYTES_PER_ELEMENT);return e.subarray(n>>i,n+a*(r*({5:3,6:4,8:2,29502:3,29504:4}[t-6402]||1)*(1<<i)+4-1&-4)>>i)}(_,s,a,n,o):null)},glTexParameteri:function(e,t,r){nr.texParameteri(e,t,r)},localtime_r:function(e,t){!function(){function e(e){return(e=e.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?e[1]:"GMT"}if(!Xt){Xt=!0;var t=(new Date).getFullYear(),r=new Date(t,0,1),a=new Date(t,6,1);t=r.getTimezoneOffset();var n=a.getTimezoneOffset(),i=Math.max(t,n);O[hr()>>2]=60*i,O[mr()>>2]=Number(t!=n),r=e(r),a=e(a),r=V(r),a=V(a),n<t?(O[dr()>>2]=r,O[dr()+4>>2]=a):(O[dr()>>2]=a,O[dr()+4>>2]=r)}}(),e=new Date(1e3*O[e>>2]),O[t>>2]=e.getSeconds(),O[t+4>>2]=e.getMinutes(),O[t+8>>2]=e.getHours(),O[t+12>>2]=e.getDate(),O[t+16>>2]=e.getMonth(),O[t+20>>2]=e.getFullYear()-1900,O[t+24>>2]=e.getDay();var r=new Date(e.getFullYear(),0,1);O[t+28>>2]=(e.getTime()-r.getTime())/864e5|0,O[t+36>>2]=-60*e.getTimezoneOffset();var a=new Date(e.getFullYear(),6,1).getTimezoneOffset();return e=0|(a!=(r=r.getTimezoneOffset())&&e.getTimezoneOffset()==Math.min(r,a)),O[t+32>>2]=e,e=O[dr()+(e?4:0)>>2],O[t+40>>2]=e,t},pthread_create:function(){return 6},pthread_join:function(){return 28},setTempRet0:function(){},strftime_l:function(e,t,r,a){return function(e,t,r,a){function n(e,t,r){for(e="number"==typeof e?e.toString():e||"";e.length<t;)e=r[0]+e;return e}function i(e,t){return n(e,t,"0")}function s(e,t){function r(e){return 0>e?-1:0<e?1:0}var a;return 0===(a=r(e.getFullYear()-t.getFullYear()))&&0===(a=r(e.getMonth()-t.getMonth()))&&(a=r(e.getDate()-t.getDate())),a}function _(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function o(e){e=ar(new Date(e.l+1900,0,1),e.R);var t=new Date(e.getFullYear()+1,0,4),r=_(new Date(e.getFullYear(),0,4));return t=_(t),0>=s(r,e)?0>=s(t,e)?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}var c=O[a+40>>2];for(var u in a={La:O[a>>2],Ka:O[a+4>>2],O:O[a+8>>2],K:O[a+12>>2],F:O[a+16>>2],l:O[a+20>>2],P:O[a+24>>2],R:O[a+28>>2],ab:O[a+32>>2],Ja:O[a+36>>2],Ma:c?T(c):""},r=T(r),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(u,"g"),c[u]);var f="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),p="January February March April May June July August September October November December".split(" ");for(u in c={"%a":function(e){return f[e.P].substring(0,3)},"%A":function(e){return f[e.P]},"%b":function(e){return p[e.F].substring(0,3)},"%B":function(e){return p[e.F]},"%C":function(e){return i((e.l+1900)/100|0,2)},"%d":function(e){return i(e.K,2)},"%e":function(e){return n(e.K,2," ")},"%g":function(e){return o(e).toString().substring(2)},"%G":function(e){return o(e)},"%H":function(e){return i(e.O,2)},"%I":function(e){return 0==(e=e.O)?e=12:12<e&&(e-=12),i(e,2)},"%j":function(e){return i(e.K+er(Qt(e.l+1900)?tr:rr,e.F-1),3)},"%m":function(e){return i(e.F+1,2)},"%M":function(e){return i(e.Ka,2)},"%n":function(){return"\\n"},"%p":function(e){return 0<=e.O&&12>e.O?"AM":"PM"},"%S":function(e){return i(e.La,2)},"%t":function(){return"\\t"},"%u":function(e){return e.P||7},"%U":function(e){var t=new Date(e.l+1900,0,1),r=0===t.getDay()?t:ar(t,7-t.getDay());return 0>s(r,e=new Date(e.l+1900,e.F,e.K))?i(Math.ceil((31-r.getDate()+(er(Qt(e.getFullYear())?tr:rr,e.getMonth()-1)-31)+e.getDate())/7),2):0===s(r,t)?"01":"00"},"%V":function(e){var t=new Date(e.l+1901,0,4),r=_(new Date(e.l+1900,0,4));t=_(t);var a=ar(new Date(e.l+1900,0,1),e.R);return 0>s(a,r)?"53":0>=s(t,a)?"01":i(Math.ceil((r.getFullYear()<e.l+1900?e.R+32-r.getDate():e.R+1-r.getDate())/7),2)},"%w":function(e){return e.P},"%W":function(e){var t=new Date(e.l,0,1),r=1===t.getDay()?t:ar(t,0===t.getDay()?1:7-t.getDay()+1);return 0>s(r,e=new Date(e.l+1900,e.F,e.K))?i(Math.ceil((31-r.getDate()+(er(Qt(e.getFullYear())?tr:rr,e.getMonth()-1)-31)+e.getDate())/7),2):0===s(r,t)?"01":"00"},"%y":function(e){return(e.l+1900).toString().substring(2)},"%Y":function(e){return e.l+1900},"%z":function(e){var t=0<=(e=e.Ja);return e=Math.abs(e)/60,(t?"+":"-")+String("0000"+(e/60*100+e%60)).slice(-4)},"%Z":function(e){return e.Ma},"%%":function(){return"%"}})0<=r.indexOf(u)&&(r=r.replace(new RegExp(u,"g"),c[u](a)));return(u=_r(r,!1)).length>t?0:(k.set(u,e),u.length-1)}(e,t,r,a)},sysconf:function(e){switch(e){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return O[lr()>>2]=28,-1},time:function(e){var t=Date.now()/1e3|0;return e&&(O[e>>2]=t),t}},cr=function(){function e(e){a.asm=e.exports,b=a.asm.memory,B(),R=a.asm.__indirect_function_table,G()}var t={env:or,wasi_snapshot_preview1:or};if(K(),a.instantiateWasm)try{return a.instantiateWasm(t,e)}catch(e){return h("Module.instantiateWasm callback failed with error: "+e),!1}return t=function(e){var t=X;try{e:{try{if(t==X&&l){var r=new Uint8Array(l);break e}if(u){r=u(t);break e}throw"sync fetching of the wasm failed: you can preload it to Module[\'wasmBinary\'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){J(e)}r=void 0}var a=new WebAssembly.Module(r),n=new WebAssembly.Instance(a,e)}catch(t){throw e=t.toString(),h("failed to compile wasm module: "+e),(0<=e.indexOf("imported Memory")||0<=e.indexOf("memory import"))&&h("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),t}return[n,a]}(t),e(t[0],t[1]),a.asm}(),ur=a.___wasm_call_ctors=cr.__wasm_call_ctors;a._zappar_has_initialized=cr.zappar_has_initialized,a._zappar_invert=cr.zappar_invert,a._zappar_pipeline_create=cr.zappar_pipeline_create,a._zappar_pipeline_destroy=cr.zappar_pipeline_destroy,a._zappar_pipeline_camera_frame_submit=cr.zappar_pipeline_camera_frame_submit,a._zappar_pipeline_frame_update=cr.zappar_pipeline_frame_update,a._zappar_pipeline_camera_frame_user_data=cr.zappar_pipeline_camera_frame_user_data,a._zappar_pipeline_camera_model=cr.zappar_pipeline_camera_model,a._zappar_pipeline_frame_number=cr.zappar_pipeline_frame_number,a._zappar_pipeline_motion_accelerometer_submit=cr.zappar_pipeline_motion_accelerometer_submit,a._zappar_pipeline_motion_rotation_rate_submit=cr.zappar_pipeline_motion_rotation_rate_submit,a._zappar_pipeline_motion_attitude_submit=cr.zappar_pipeline_motion_attitude_submit,a._zappar_pipeline_motion_attitude_matrix_submit=cr.zappar_pipeline_motion_attitude_matrix_submit,a._zappar_pipeline_camera_frame_user_facing=cr.zappar_pipeline_camera_frame_user_facing,a._zappar_pipeline_camera_frame_texture_matrix=cr.zappar_pipeline_camera_frame_texture_matrix,a._zappar_pipeline_camera_pose_with_attitude=cr.zappar_pipeline_camera_pose_with_attitude,a._zappar_pipeline_camera_pose_with_origin=cr.zappar_pipeline_camera_pose_with_origin,a._zappar_pipeline_camera_frame_camera_attitude=cr.zappar_pipeline_camera_frame_camera_attitude,a._zappar_pipeline_camera_frame_device_attitude=cr.zappar_pipeline_camera_frame_device_attitude,a._zappar_pipeline_camera_frame_texture_gl=cr.zappar_pipeline_camera_frame_texture_gl,a._zappar_pipeline_camera_frame_upload_gl=cr.zappar_pipeline_camera_frame_upload_gl,a._zappar_pipeline_sequence_record_start=cr.zappar_pipeline_sequence_record_start,a._zappar_pipeline_sequence_record_stop=cr.zappar_pipeline_sequence_record_stop,a._zappar_pipeline_sequence_record_clear=cr.zappar_pipeline_sequence_record_clear,a._zappar_pipeline_sequence_record_device_attitude_matrices_set=cr.zappar_pipeline_sequence_record_device_attitude_matrices_set,a._zappar_pipeline_sequence_record_data_size=cr.zappar_pipeline_sequence_record_data_size,a._zappar_pipeline_sequence_record_data=cr.zappar_pipeline_sequence_record_data,a._zappar_pipeline_process_gl=cr.zappar_pipeline_process_gl,a._zappar_pipeline_camera_pose_default=cr.zappar_pipeline_camera_pose_default,a._zappar_instant_world_tracker_create=cr.zappar_instant_world_tracker_create,a._zappar_instant_world_tracker_destroy=cr.zappar_instant_world_tracker_destroy,a._zappar_instant_world_tracker_anchor_pose_set_from_camera_offset_raw=cr.zappar_instant_world_tracker_anchor_pose_set_from_camera_offset_raw,a._zappar_instant_world_tracker_anchor_pose_raw=cr.zappar_instant_world_tracker_anchor_pose_raw,a._zappar_instant_world_tracker_enabled_set=cr.zappar_instant_world_tracker_enabled_set,a._zappar_instant_world_tracker_enabled=cr.zappar_instant_world_tracker_enabled,a._zappar_image_tracker_create=cr.zappar_image_tracker_create,a._zappar_image_tracker_destroy=cr.zappar_image_tracker_destroy,a._zappar_image_tracker_target_load_from_memory=cr.zappar_image_tracker_target_load_from_memory,a.__Z42zappar_image_tracker_target_load_from_fileP23zappar_image_tracker_tiPKc=cr._Z42zappar_image_tracker_target_load_from_fileP23zappar_image_tracker_tiPKc;var fr=a._free=cr.free;a._zappar_image_tracker_anchor_count=cr.zappar_image_tracker_anchor_count,a._zappar_image_tracker_anchor_id=cr.zappar_image_tracker_anchor_id,a._zappar_image_tracker_anchor_pose_raw=cr.zappar_image_tracker_anchor_pose_raw,a._zappar_image_tracker_enabled_set=cr.zappar_image_tracker_enabled_set,a._zappar_image_tracker_enabled=cr.zappar_image_tracker_enabled,a._zappar_image_tracker_target_loaded_version=cr.zappar_image_tracker_target_loaded_version,a._zappar_image_tracker_target_count=cr.zappar_image_tracker_target_count,a.__Z46zappar_image_tracker_target_preview_compressedP23zappar_image_tracker_tii=cr._Z46zappar_image_tracker_target_preview_compressedP23zappar_image_tracker_tii,a.__Z51zappar_image_tracker_target_preview_compressed_sizeP23zappar_image_tracker_tii=cr._Z51zappar_image_tracker_target_preview_compressed_sizeP23zappar_image_tracker_tii,a.__Z55zappar_image_tracker_target_preview_compressed_mimetypeP23zappar_image_tracker_tii=cr._Z55zappar_image_tracker_target_preview_compressed_mimetypeP23zappar_image_tracker_tii,a.__Z40zappar_image_tracker_target_preview_rgbaP23zappar_image_tracker_tii=cr._Z40zappar_image_tracker_target_preview_rgbaP23zappar_image_tracker_tii,a.__Z45zappar_image_tracker_target_preview_rgba_sizeP23zappar_image_tracker_tii=cr._Z45zappar_image_tracker_target_preview_rgba_sizeP23zappar_image_tracker_tii,a.__Z46zappar_image_tracker_target_preview_rgba_widthP23zappar_image_tracker_tii=cr._Z46zappar_image_tracker_target_preview_rgba_widthP23zappar_image_tracker_tii,a.__Z47zappar_image_tracker_target_preview_rgba_heightP23zappar_image_tracker_tii=cr._Z47zappar_image_tracker_target_preview_rgba_heightP23zappar_image_tracker_tii,a._zappar_face_tracker_create=cr.zappar_face_tracker_create,a._zappar_face_tracker_destroy=cr.zappar_face_tracker_destroy,a._zappar_face_tracker_model_load_from_memory=cr.zappar_face_tracker_model_load_from_memory,a._zappar_face_tracker_anchor_count=cr.zappar_face_tracker_anchor_count,a._zappar_face_tracker_anchor_id=cr.zappar_face_tracker_anchor_id,a._zappar_face_tracker_anchor_pose_raw=cr.zappar_face_tracker_anchor_pose_raw,a._zappar_face_tracker_anchor_identity_coefficients=cr.zappar_face_tracker_anchor_identity_coefficients,a._zappar_face_tracker_anchor_expression_coefficients=cr.zappar_face_tracker_anchor_expression_coefficients,a._zappar_face_tracker_enabled_set=cr.zappar_face_tracker_enabled_set,a._zappar_face_tracker_enabled=cr.zappar_face_tracker_enabled,a._zappar_face_tracker_max_faces_set=cr.zappar_face_tracker_max_faces_set,a._zappar_face_tracker_max_faces=cr.zappar_face_tracker_max_faces,a._zappar_face_tracker_model_loaded_version=cr.zappar_face_tracker_model_loaded_version,a._zappar_face_landmark_create=cr.zappar_face_landmark_create,a._zappar_face_landmark_destroy=cr.zappar_face_landmark_destroy,a.__Z27zappar_face_landmark_updateP23zappar_face_landmark_tiPKfS2_i=cr._Z27zappar_face_landmark_updateP23zappar_face_landmark_tiPKfS2_i,a._zappar_face_landmark_anchor_pose=cr.zappar_face_landmark_anchor_pose,a._zappar_barcode_finder_create=cr.zappar_barcode_finder_create,a._zappar_barcode_finder_destroy=cr.zappar_barcode_finder_destroy,a._zappar_barcode_finder_found_number=cr.zappar_barcode_finder_found_number,a._zappar_barcode_finder_found_text=cr.zappar_barcode_finder_found_text,a._zappar_barcode_finder_enabled_set=cr.zappar_barcode_finder_enabled_set,a._zappar_barcode_finder_enabled=cr.zappar_barcode_finder_enabled,a._zappar_barcode_finder_found_format=cr.zappar_barcode_finder_found_format,a._zappar_barcode_finder_formats=cr.zappar_barcode_finder_formats,a._zappar_barcode_finder_formats_set=cr.zappar_barcode_finder_formats_set;var pr=a._malloc=cr.malloc;a._zappar_face_mesh_create=cr.zappar_face_mesh_create,a._zappar_face_mesh_destroy=cr.zappar_face_mesh_destroy,a.__Z33zappar_face_mesh_load_from_memoryP19zappar_face_mesh_tiPKciiiii=cr._Z33zappar_face_mesh_load_from_memoryP19zappar_face_mesh_tiPKciiiii,a.__Z29zappar_face_mesh_indices_sizeP19zappar_face_mesh_ti=cr._Z29zappar_face_mesh_indices_sizeP19zappar_face_mesh_ti,a.__Z25zappar_face_mesh_uvs_sizeP19zappar_face_mesh_ti=cr._Z25zappar_face_mesh_uvs_sizeP19zappar_face_mesh_ti,a.__Z30zappar_face_mesh_vertices_sizeP19zappar_face_mesh_ti=cr._Z30zappar_face_mesh_vertices_sizeP19zappar_face_mesh_ti,a.__Z31zappar_face_mesh_loaded_versionP19zappar_face_mesh_ti=cr._Z31zappar_face_mesh_loaded_versionP19zappar_face_mesh_ti,a.__Z25zappar_face_mesh_verticesP19zappar_face_mesh_ti=cr._Z25zappar_face_mesh_verticesP19zappar_face_mesh_ti,a.__Z20zappar_face_mesh_uvsP19zappar_face_mesh_ti=cr._Z20zappar_face_mesh_uvsP19zappar_face_mesh_ti,a.__Z24zappar_face_mesh_indicesP19zappar_face_mesh_ti=cr._Z24zappar_face_mesh_indicesP19zappar_face_mesh_ti,a.__Z23zappar_face_mesh_updateP19zappar_face_mesh_tiPKfS2_i=cr._Z23zappar_face_mesh_updateP19zappar_face_mesh_tiPKfS2_i,a.__Z29zappar_face_mesh_normals_sizeP19zappar_face_mesh_ti=cr._Z29zappar_face_mesh_normals_sizeP19zappar_face_mesh_ti,a.__Z24zappar_face_mesh_normalsP19zappar_face_mesh_ti=cr._Z24zappar_face_mesh_normalsP19zappar_face_mesh_ti,a._zappar_camera_source_create=cr.zappar_camera_source_create,a._zappar_camera_source_destroy=cr.zappar_camera_source_destroy,a._zappar_camera_source_start=cr.zappar_camera_source_start,a._zappar_camera_source_pause=cr.zappar_camera_source_pause,a._zappar_camera_default_device_id=cr.zappar_camera_default_device_id,a._zappar_sequence_source_create=cr.zappar_sequence_source_create,a.__Z28zappar_sequence_source_startP25zappar_sequence_source_ti=cr._Z28zappar_sequence_source_startP25zappar_sequence_source_ti,a.__Z39zappar_sequence_source_load_from_memoryP25zappar_sequence_source_tiPKci=cr._Z39zappar_sequence_source_load_from_memoryP25zappar_sequence_source_tiPKci,a.__Z28zappar_sequence_source_pauseP25zappar_sequence_source_ti=cr._Z28zappar_sequence_source_pauseP25zappar_sequence_source_ti,a._zappar_sequence_source_destroy=cr.zappar_sequence_source_destroy,a._zappar_log_level_set=cr.zappar_log_level_set,a._zappar_log_level=cr.zappar_log_level,a.___em_js__emidentity=cr.__em_js__emidentity,a._zappar_analytics_project_id_set=cr.zappar_analytics_project_id_set,a.___em_js__emlicerr=cr.__em_js__emlicerr;var lr=a.___errno_location=cr.__errno_location;a._ntohs=cr.ntohs,a._htons=cr.htons,a._htonl=cr.htonl,a._usleep=cr.usleep;var dr=a.__get_tzname=cr._get_tzname,mr=a.__get_daylight=cr._get_daylight,hr=a.__get_timezone=cr._get_timezone;a._emscripten_main_thread_process_queued_calls=cr.emscripten_main_thread_process_queued_calls;var br,gr=a.stackSave=cr.stackSave,yr=a.stackRestore=cr.stackRestore,wr=a.stackAlloc=cr.stackAlloc;function vr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function zr(){function e(){if(!br&&(br=!0,a.calledRun=!0,!g)){if(a.noFSInit||Ve||(Ve=!0,Ge(),a.stdin=a.stdin,a.stdout=a.stdout,a.stderr=a.stderr,a.stdin?Je("stdin",a.stdin):Ze("/dev/tty","/dev/stdin"),a.stdout?Je("stdout",null,a.stdout):Ze("/dev/tty","/dev/stdout"),a.stderr?Je("stderr",null,a.stderr):Ze("/dev/tty1","/dev/stderr"),Ye("/dev/stdin",0),Ye("/dev/stdout",1),Ye("/dev/stderr",1)),ae(U),ze=!1,ae(q),n(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;){var e=a.postRun.shift();Z.unshift(e)}ae(Z)}}if(!(0<W)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)H();ae(C),0<W||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),e()}),1)):e())}}if(a._setThrew=cr.setThrew,a.dynCall_viijii=cr.dynCall_viijii,a.dynCall_vij=cr.dynCall_vij,a.dynCall_iiji=cr.dynCall_iiji,a.dynCall_viji=cr.dynCall_viji,a.dynCall_vijii=cr.dynCall_vijii,a.dynCall_ji=cr.dynCall_ji,a.dynCall_jiji=cr.dynCall_jiji,a.dynCall_iiiiij=cr.dynCall_iiiiij,a.dynCall_iiiiijj=cr.dynCall_iiiiijj,a.dynCall_iiiiiijj=cr.dynCall_iiiiiijj,a.cwrap=function(e,t,r,a){var n=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&n&&!a?w(e):function(){return v(e,t,r,arguments)}},a.setValue=function(e,t,r){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":k[e>>0]=t;break;case"i16":A[e>>1]=t;break;case"i32":O[e>>2]=t;break;case"i64":ee=[t>>>0,(Q=t,1<=+Math.abs(Q)?0<Q?(0|Math.min(+Math.floor(Q/4294967296),4294967295))>>>0:~~+Math.ceil((Q-+(~~Q>>>0))/4294967296)>>>0:0)],O[e>>2]=ee[0],O[e+4>>2]=ee[1];break;case"float":P[e>>2]=t;break;case"double":L[e>>3]=t;break;default:J("invalid type for setValue: "+r)}},a.getValue=function(e,t){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return k[e>>0];case"i16":return A[e>>1];case"i32":case"i64":return O[e>>2];case"float":return P[e>>2];case"double":return L[e>>3];default:J("invalid type for getValue: "+t)}return null},a.UTF8ToString=T,Y=function e(){br||zr(),br||(Y=e)},a.run=zr,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();return d=!0,zr(),t});t.default=a}.call(this,r(4).setImmediate)},function(e,t,r){(function(e){var a=void 0!==e&&e||"undefined"!=typeof self&&self||window,n=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(n.call(setTimeout,a,arguments),clearTimeout)},t.setInterval=function(){return new i(n.call(setInterval,a,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(a,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(5),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(0))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var a,n,i,s,_,o=1,c={},u=!1,f=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,"[object process]"==={}.toString.call(e.process)?a=function(e){t.nextTick((function(){d(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},a=function(e){i.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(n=f.documentElement,a=function(e){var t=f.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,n.removeChild(t),t=null},n.appendChild(t)}):a=function(e){setTimeout(d,0,e)}:(s="setImmediate$"+Math.random()+"$",_=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&d(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",_,!1):e.attachEvent("onmessage",_),a=function(t){e.postMessage(s+t,"*")}),p.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return c[o]=n,a(o),o++},p.clearImmediate=l}function l(e){delete c[e]}function d(e){if(u)setTimeout(d,0,e);else{var t=c[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(void 0,r)}}(t)}finally{l(e),u=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,r(0),r(6))},function(e,t){var r,a,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function _(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var o,c=[],u=!1,f=-1;function p(){u&&o&&(u=!1,o.length?c=o.concat(c):f=-1,c.length&&l())}function l(){if(!u){var e=_(p);u=!0;for(var t=c.length;t;){for(o=c,c=[];++f<t;)o&&o[f].run();f=-1,t=c.length}o=null,u=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function m(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new d(e,t)),1!==c.length||u||_(l)},d.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=m,n.addListener=m,n.once=m,n.off=m,n.removeListener=m,n.removeAllListeners=m,n.emit=m,n.prependListener=m,n.prependOnceListener=m,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRuntimeObject=void 0,t.getRuntimeObject=function(e){let t=e.cwrap("zappar_log_level","number",[]),r=e.cwrap("zappar_log_level_set",null,["number"]),a=e.cwrap("zappar_analytics_project_id_set",null,["string"]),n=e.cwrap("zappar_pipeline_create","number",[]),i=e.cwrap("zappar_pipeline_destroy",null,["number"]),s=e.cwrap("zappar_pipeline_frame_update",null,["number"]),_=e.cwrap("zappar_pipeline_frame_number","number",["number"]),o=e.cwrap("zappar_pipeline_camera_model","number",["number"]),c=e.cwrap("zappar_pipeline_camera_frame_user_data","number",["number"]),u=e.cwrap("zappar_pipeline_camera_frame_submit",null,["number","number","number","number","number","number","number","number","number"]),f=e.cwrap("zappar_pipeline_camera_frame_camera_attitude","number",["number"]),p=e.cwrap("zappar_pipeline_camera_frame_device_attitude","number",["number"]),l=e.cwrap("zappar_pipeline_motion_accelerometer_submit",null,["number","number","number","number","number"]),d=e.cwrap("zappar_pipeline_motion_rotation_rate_submit",null,["number","number","number","number","number"]),m=e.cwrap("zappar_pipeline_motion_attitude_submit",null,["number","number","number","number","number"]),h=e.cwrap("zappar_pipeline_motion_attitude_matrix_submit",null,["number","number"]),b=e.cwrap("zappar_camera_source_create","number",["number","string"]),g=e.cwrap("zappar_camera_source_destroy",null,["number"]),y=e.cwrap("zappar_sequence_source_create","number",["number"]),w=e.cwrap("zappar_sequence_source_destroy",null,["number"]),v=e.cwrap("zappar_image_tracker_create","number",["number"]),z=e.cwrap("zappar_image_tracker_destroy",null,["number"]),k=e.cwrap("zappar_image_tracker_target_load_from_memory",null,["number","number","number"]),M=e.cwrap("zappar_image_tracker_target_loaded_version","number",["number"]),A=e.cwrap("zappar_image_tracker_target_count","number",["number"]),x=e.cwrap("zappar_image_tracker_enabled","number",["number"]),O=e.cwrap("zappar_image_tracker_enabled_set",null,["number","number"]),E=e.cwrap("zappar_image_tracker_anchor_count","number",["number"]),P=e.cwrap("zappar_image_tracker_anchor_id","string",["number","number"]),L=e.cwrap("zappar_image_tracker_anchor_pose_raw","number",["number","number"]),F=e.cwrap("zappar_face_tracker_create","number",["number"]),S=e.cwrap("zappar_face_tracker_destroy",null,["number"]),T=e.cwrap("zappar_face_tracker_model_load_from_memory",null,["number","number","number"]),D=e.cwrap("zappar_face_tracker_model_loaded_version","number",["number"]),I=e.cwrap("zappar_face_tracker_enabled_set",null,["number","number"]),V=e.cwrap("zappar_face_tracker_enabled","number",["number"]),j=e.cwrap("zappar_face_tracker_max_faces_set",null,["number","number"]),B=e.cwrap("zappar_face_tracker_max_faces","number",["number"]),R=e.cwrap("zappar_face_tracker_anchor_count","number",["number"]),C=e.cwrap("zappar_face_tracker_anchor_id","string",["number","number"]),U=e.cwrap("zappar_face_tracker_anchor_pose_raw","number",["number","number"]),q=e.cwrap("zappar_face_tracker_anchor_identity_coefficients","number",["number","number"]),Z=e.cwrap("zappar_face_tracker_anchor_expression_coefficients","number",["number","number"]),H=e.cwrap("zappar_face_mesh_create","number",[]),W=e.cwrap("zappar_face_mesh_destroy",null,["number"]),N=e.cwrap("zappar_face_landmark_create","number",["number"]),Y=e.cwrap("zappar_face_landmark_destroy",null,["number"]),K=e.cwrap("zappar_barcode_finder_create","number",["number"]),G=e.cwrap("zappar_barcode_finder_destroy",null,["number"]),J=e.cwrap("zappar_barcode_finder_enabled_set",null,["number","number"]),X=e.cwrap("zappar_barcode_finder_enabled","number",["number"]),$=e.cwrap("zappar_barcode_finder_found_number","number",["number"]),Q=e.cwrap("zappar_barcode_finder_found_text","string",["number","number"]),ee=e.cwrap("zappar_barcode_finder_found_format","number",["number","number"]),te=e.cwrap("zappar_barcode_finder_formats","number",["number"]),re=e.cwrap("zappar_barcode_finder_formats_set",null,["number","number"]),ae=e.cwrap("zappar_instant_world_tracker_create","number",["number"]),ne=e.cwrap("zappar_instant_world_tracker_destroy",null,["number"]),ie=e.cwrap("zappar_instant_world_tracker_enabled_set",null,["number","number"]),se=e.cwrap("zappar_instant_world_tracker_enabled","number",["number"]),_e=e.cwrap("zappar_instant_world_tracker_anchor_pose_raw","number",["number"]),oe=e.cwrap("zappar_instant_world_tracker_anchor_pose_set_from_camera_offset_raw",null,["number","number","number","number","number"]),ce=32,ue=e._malloc(ce),fe=64,pe=e._malloc(fe);return{log_level:()=>t(),log_level_set:e=>r(e),analytics_project_id_set:e=>a(e),pipeline_create:()=>n(),pipeline_destroy:()=>{i()},pipeline_frame_update:e=>s(e),pipeline_frame_number:e=>_(e),pipeline_camera_model:t=>{let r=o(t),a=new Float32Array(6);return a.set(e.HEAPF32.subarray(r/4,6+r/4)),r=a,r},pipeline_camera_frame_user_data:e=>c(e),pipeline_camera_frame_submit:(t,r,a,n,i,s,_,o)=>{ce<r.byteLength&&(e._free(ue),ce=r.byteLength,ue=e._malloc(ce));let c=ue,f=r.byteLength;e.HEAPU8.set(new Uint8Array(r),ue);let p=a,l=n,d=i;fe<s.byteLength&&(e._free(fe),fe=s.byteLength,pe=e._malloc(fe));let m=pe;e.HEAPF32.set(s,pe/4),fe<_.byteLength&&(e._free(fe),fe=_.byteLength,pe=e._malloc(fe));let h=pe;return e.HEAPF32.set(_,pe/4),u(t,c,f,p,l,d,m,h,o?1:0)},pipeline_camera_frame_camera_attitude:t=>{let r=f(t),a=new Float32Array(16);return a.set(e.HEAPF32.subarray(r/4,16+r/4)),r=a,r},pipeline_camera_frame_device_attitude:t=>{let r=p(t),a=new Float32Array(16);return a.set(e.HEAPF32.subarray(r/4,16+r/4)),r=a,r},pipeline_motion_accelerometer_submit:(e,t,r,a,n)=>l(e,t,r,a,n),pipeline_motion_rotation_rate_submit:(e,t,r,a,n)=>d(e,t,r,a,n),pipeline_motion_attitude_submit:(e,t,r,a,n)=>m(e,t,r,a,n),pipeline_motion_attitude_matrix_submit:(t,r)=>{fe<r.byteLength&&(e._free(fe),fe=r.byteLength,pe=e._malloc(fe));let a=pe;return e.HEAPF32.set(r,pe/4),h(t,a)},camera_source_create:(e,t)=>b(e,t),camera_source_destroy:()=>{g()},sequence_source_create:e=>y(e),sequence_source_destroy:()=>{w()},image_tracker_create:e=>v(e),image_tracker_destroy:()=>{z()},image_tracker_target_load_from_memory:(t,r)=>{ce<r.byteLength&&(e._free(ue),ce=r.byteLength,ue=e._malloc(ce));let a=ue,n=r.byteLength;return e.HEAPU8.set(new Uint8Array(r),ue),k(t,a,n)},image_tracker_target_loaded_version:e=>M(e),image_tracker_target_count:e=>A(e),image_tracker_enabled:e=>{let t=x(e);return t=1===t,t},image_tracker_enabled_set:(e,t)=>O(e,t?1:0),image_tracker_anchor_count:e=>E(e),image_tracker_anchor_id:(e,t)=>P(e,t),image_tracker_anchor_pose_raw:(t,r)=>{let a=L(t,r),n=new Float32Array(16);return n.set(e.HEAPF32.subarray(a/4,16+a/4)),a=n,a},face_tracker_create:e=>F(e),face_tracker_destroy:()=>{S()},face_tracker_model_load_from_memory:(t,r)=>{ce<r.byteLength&&(e._free(ue),ce=r.byteLength,ue=e._malloc(ce));let a=ue,n=r.byteLength;return e.HEAPU8.set(new Uint8Array(r),ue),T(t,a,n)},face_tracker_model_loaded_version:e=>D(e),face_tracker_enabled_set:(e,t)=>I(e,t?1:0),face_tracker_enabled:e=>{let t=V(e);return t=1===t,t},face_tracker_max_faces_set:(e,t)=>j(e,t),face_tracker_max_faces:e=>B(e),face_tracker_anchor_count:e=>R(e),face_tracker_anchor_id:(e,t)=>C(e,t),face_tracker_anchor_pose_raw:(t,r)=>{let a=U(t,r),n=new Float32Array(16);return n.set(e.HEAPF32.subarray(a/4,16+a/4)),a=n,a},face_tracker_anchor_identity_coefficients:(t,r)=>{let a=q(t,r),n=new Float32Array(50);return n.set(e.HEAPF32.subarray(a/4,50+a/4)),a=n,a},face_tracker_anchor_expression_coefficients:(t,r)=>{let a=Z(t,r),n=new Float32Array(29);return n.set(e.HEAPF32.subarray(a/4,29+a/4)),a=n,a},face_mesh_create:()=>H(),face_mesh_destroy:()=>{W()},face_landmark_create:e=>N(e),face_landmark_destroy:()=>{Y()},barcode_finder_create:e=>K(e),barcode_finder_destroy:()=>{G()},barcode_finder_enabled_set:(e,t)=>J(e,t?1:0),barcode_finder_enabled:e=>{let t=X(e);return t=1===t,t},barcode_finder_found_number:e=>$(e),barcode_finder_found_text:(e,t)=>Q(e,t),barcode_finder_found_format:(e,t)=>ee(e,t),barcode_finder_formats:e=>te(e),barcode_finder_formats_set:(e,t)=>re(e,t),instant_world_tracker_create:e=>ae(e),instant_world_tracker_destroy:()=>{ne()},instant_world_tracker_enabled_set:(e,t)=>ie(e,t?1:0),instant_world_tracker_enabled:e=>{let t=se(e);return t=1===t,t},instant_world_tracker_anchor_pose_raw:t=>{let r=_e(t),a=new Float32Array(16);return a.set(e.HEAPF32.subarray(r/4,16+r/4)),r=a,r},instant_world_tracker_anchor_pose_set_from_camera_offset_raw:(e,t,r,a,n)=>oe(e,t,r,a,n)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zappar_server=void 0;const a=r(9),n=r(10);t.zappar_server=class{constructor(e,t){this._impl=e,this._sender=t,this._deserializer=new n.MessageDeserializer,this.serializersByPipelineId=new Map,this._pipeline_id_by_pipeline_id=new Map,this._pipeline_by_instance=new Map,this._pipeline_id_by_camera_source_id=new Map,this._camera_source_by_instance=new Map,this._pipeline_id_by_sequence_source_id=new Map,this._sequence_source_by_instance=new Map,this._pipeline_id_by_image_tracker_id=new Map,this._image_tracker_by_instance=new Map,this._pipeline_id_by_face_tracker_id=new Map,this._face_tracker_by_instance=new Map,this._pipeline_id_by_face_mesh_id=new Map,this._face_mesh_by_instance=new Map,this._pipeline_id_by_face_landmark_id=new Map,this._face_landmark_by_instance=new Map,this._pipeline_id_by_barcode_finder_id=new Map,this._barcode_finder_by_instance=new Map,this._pipeline_id_by_instant_world_tracker_id=new Map,this._instant_world_tracker_by_instance=new Map}processBuffer(e){this._deserializer.setData(e),this._deserializer.forMessages((e,t)=>{switch(e){case 34:this._impl.log_level_set(t.logLevel());break;case 31:this._impl.analytics_project_id_set(t.string());break;case 27:{let e=t.type(),r=this._impl.pipeline_create();this._pipeline_by_instance.set(e,r),this._pipeline_id_by_pipeline_id.set(e,e),this.serializersByPipelineId.set(e,new a.MessageSerializer(t=>{this._sender(e,t)}));break}case 28:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_destroy(r),this._pipeline_by_instance.delete(e);break}case 9:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_frame_update(r);break}case 8:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_camera_frame_submit(r,t.dataWithLength(),t.int(),t.int(),t.int(),t.matrix4x4(),t.matrix4x4(),t.bool());break}case 10:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_accelerometer_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 11:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_rotation_rate_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 12:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_attitude_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 13:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_attitude_matrix_submit(r,t.matrix4x4());break}case 29:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=t.string(),i=this._impl.camera_source_create(a,n);this._camera_source_by_instance.set(e,i),this._pipeline_id_by_camera_source_id.set(e,r);break}case 30:{let e=t.type(),r=this._camera_source_by_instance.get(e);if(void 0===r)return;this._impl.camera_source_destroy(r),this._camera_source_by_instance.delete(e);break}case 35:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=this._impl.sequence_source_create(a);this._sequence_source_by_instance.set(e,n),this._pipeline_id_by_sequence_source_id.set(e,r);break}case 36:{let e=t.type(),r=this._sequence_source_by_instance.get(e);if(void 0===r)return;this._impl.sequence_source_destroy(r),this._sequence_source_by_instance.delete(e);break}case 2:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=this._impl.image_tracker_create(a);this._image_tracker_by_instance.set(e,n),this._pipeline_id_by_image_tracker_id.set(e,r);break}case 14:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_destroy(r),this._image_tracker_by_instance.delete(e);break}case 4:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_target_load_from_memory(r,t.dataWithLength());break}case 3:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_enabled_set(r,t.bool());break}case 20:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=this._impl.face_tracker_create(a);this._face_tracker_by_instance.set(e,n),this._pipeline_id_by_face_tracker_id.set(e,r);break}case 21:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_destroy(r),this._face_tracker_by_instance.delete(e);break}case 22:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_model_load_from_memory(r,t.dataWithLength());break}case 23:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_enabled_set(r,t.bool());break}case 24:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_max_faces_set(r,t.int());break}case 25:{let e=t.type(),r=this._impl.face_mesh_create();this._face_mesh_by_instance.set(e,r);break}case 26:{let e=t.type(),r=this._face_mesh_by_instance.get(e);if(void 0===r)return;this._impl.face_mesh_destroy(r),this._face_mesh_by_instance.delete(e);break}case 32:{let e=t.type(),r=t.faceLandmarkName(),a=this._impl.face_landmark_create(r);this._face_landmark_by_instance.set(e,a);break}case 33:{let e=t.type(),r=this._face_landmark_by_instance.get(e);if(void 0===r)return;this._impl.face_landmark_destroy(r),this._face_landmark_by_instance.delete(e);break}case 16:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=this._impl.barcode_finder_create(a);this._barcode_finder_by_instance.set(e,n),this._pipeline_id_by_barcode_finder_id.set(e,r);break}case 17:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_destroy(r),this._barcode_finder_by_instance.delete(e);break}case 18:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_enabled_set(r,t.bool());break}case 19:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_formats_set(r,t.barcodeFormat());break}case 5:{let e=t.type(),r=t.type(),a=this._pipeline_by_instance.get(r),n=this._impl.instant_world_tracker_create(a);this._instant_world_tracker_by_instance.set(e,n),this._pipeline_id_by_instant_world_tracker_id.set(e,r);break}case 15:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_destroy(r),this._instant_world_tracker_by_instance.delete(e);break}case 6:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_enabled_set(r,t.bool());break}case 7:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_anchor_pose_set_from_camera_offset_raw(r,t.float(),t.float(),t.float(),t.instantTrackerTransformOrientation());break}}})}exploreState(){for(let[e,t]of this._pipeline_by_instance){let r=this._pipeline_id_by_pipeline_id.get(e);if(!r)continue;let a=this.serializersByPipelineId.get(r);a&&(a.sendMessage(7,r=>{r.type(e),r.int(this._impl.pipeline_frame_number(t))}),a.sendMessage(6,r=>{r.type(e),r.cameraModel(this._impl.pipeline_camera_model(t))}),a.sendMessage(5,r=>{r.type(e),r.int(this._impl.pipeline_camera_frame_user_data(t))}),a.sendMessage(11,r=>{r.type(e),r.matrix4x4(this._impl.pipeline_camera_frame_camera_attitude(t))}),a.sendMessage(12,r=>{r.type(e),r.matrix4x4(this._impl.pipeline_camera_frame_device_attitude(t))}))}for(let[e,t]of this._camera_source_by_instance){let t=this._pipeline_id_by_camera_source_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._sequence_source_by_instance){let t=this._pipeline_id_by_sequence_source_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._image_tracker_by_instance){let r=this._pipeline_id_by_image_tracker_id.get(e);if(!r)continue;let a=this.serializersByPipelineId.get(r);if(a){a.sendMessage(19,r=>{r.type(e),r.int(this._impl.image_tracker_target_loaded_version(t))}),a.sendMessage(21,r=>{r.type(e),r.int(this._impl.image_tracker_target_count(t))}),a.sendMessage(1,r=>{r.type(e),r.int(this._impl.image_tracker_anchor_count(t))});for(let r=0;r<this._impl.image_tracker_anchor_count(t);r++)a.sendMessage(2,a=>{a.type(e),a.int(r),a.string(this._impl.image_tracker_anchor_id(t,r))});for(let r=0;r<this._impl.image_tracker_anchor_count(t);r++)a.sendMessage(3,a=>{a.type(e),a.int(r),a.matrix4x4(this._impl.image_tracker_anchor_pose_raw(t,r))})}}for(let[e,t]of this._face_tracker_by_instance){let r=this._pipeline_id_by_face_tracker_id.get(e);if(!r)continue;let a=this.serializersByPipelineId.get(r);if(a){a.sendMessage(18,r=>{r.type(e),r.int(this._impl.face_tracker_model_loaded_version(t))}),a.sendMessage(13,r=>{r.type(e),r.int(this._impl.face_tracker_anchor_count(t))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)a.sendMessage(14,a=>{a.type(e),a.int(r),a.string(this._impl.face_tracker_anchor_id(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)a.sendMessage(15,a=>{a.type(e),a.int(r),a.matrix4x4(this._impl.face_tracker_anchor_pose_raw(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)a.sendMessage(16,a=>{a.type(e),a.int(r),a.identityCoefficients(this._impl.face_tracker_anchor_identity_coefficients(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)a.sendMessage(17,a=>{a.type(e),a.int(r),a.expressionCoefficients(this._impl.face_tracker_anchor_expression_coefficients(t,r))})}}for(let[e,t]of this._face_mesh_by_instance){let t=this._pipeline_id_by_face_mesh_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._face_landmark_by_instance){let t=this._pipeline_id_by_face_landmark_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._barcode_finder_by_instance){let r=this._pipeline_id_by_barcode_finder_id.get(e);if(!r)continue;let a=this.serializersByPipelineId.get(r);if(a){a.sendMessage(8,r=>{r.type(e),r.int(this._impl.barcode_finder_found_number(t))});for(let r=0;r<this._impl.barcode_finder_found_number(t);r++)a.sendMessage(9,a=>{a.type(e),a.int(r),a.string(this._impl.barcode_finder_found_text(t,r))});for(let r=0;r<this._impl.barcode_finder_found_number(t);r++)a.sendMessage(10,a=>{a.type(e),a.int(r),a.barcodeFormat(this._impl.barcode_finder_found_format(t,r))})}}for(let[e,t]of this._instant_world_tracker_by_instance){let r=this._pipeline_id_by_instant_world_tracker_id.get(e);if(!r)continue;let a=this.serializersByPipelineId.get(r);a&&a.sendMessage(4,r=>{r.type(e),r.matrix4x4(this._impl.instant_world_tracker_anchor_pose_raw(t))})}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageSerializer=void 0;t.MessageSerializer=class{constructor(e){this._messageSender=e,this._freeBufferPool=[],this._buffer=new ArrayBuffer(16),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1,this._timeoutSet=!1,this._appender={int:e=>this.int(e),bool:e=>this.int(e?1:0),float:e=>this.float(e),string:e=>this.string(e),dataWithLength:e=>this.arrayBuffer(e),type:e=>this.int(e),matrix4x4:e=>this.float32ArrayBuffer(e),matrix3x3:e=>this.float32ArrayBuffer(e),identityCoefficients:e=>this.float32ArrayBuffer(e),expressionCoefficients:e=>this.float32ArrayBuffer(e),cameraModel:e=>this.float32ArrayBuffer(e),timestamp:e=>this.double(e),barcodeFormat:e=>this.int(e),faceLandmarkName:e=>this.int(e),instantTrackerTransformOrientation:e=>this.int(e),logLevel:e=>this.int(e)},this._freeBufferPool.push(new ArrayBuffer(16)),this._freeBufferPool.push(new ArrayBuffer(16))}bufferReturn(e){this._freeBufferPool.push(e)}_ensureArrayBuffer(e){let t=4*(this._offset+e+8);if(this._buffer&&this._buffer.byteLength>=t)return;let r=void 0;if(!r){let e=t;e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,r=new ArrayBuffer(e)}let a=this._buffer?this._i32View:void 0;this._buffer=r,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),a&&this._i32View.set(a.subarray(0,this._offset))}sendMessage(e,t){this._ensureArrayBuffer(4),this._startOffset=this._offset,this._i32View[this._offset+1]=e,this._offset+=2,t(this._appender),this._i32View[this._startOffset]=this._offset-this._startOffset,this._startOffset=-1,this._sendOneTime()}_sendOneTime(){!1===this._timeoutSet&&(this._timeoutSet=!0,setTimeout(()=>{this._timeoutSet=!1,this._send()},0))}_send(){0!==this._freeBufferPool.length?(this._i32View[0]=this._offset,this._messageSender(this._buffer),this._buffer=void 0,this._buffer=this._freeBufferPool.pop(),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1):this._sendOneTime()}int(e){this._ensureArrayBuffer(1),this._i32View[this._offset]=e,this._offset++}double(e){this._ensureArrayBuffer(2),this._offset%2==1&&this._offset++,this._f64View[this._offset/2]=e,this._offset+=2}float(e){this._ensureArrayBuffer(1),this._f32View[this._offset]=e,this._offset++}int32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t];this._offset+=e.length}float32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._f32View[this._offset+t]=e[t];this._offset+=e.length}booleanArray(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t]?1:0;this._offset+=e.length}uint8ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8View.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}arrayBuffer(e){let t=new Uint8Array(e);this.uint8ArrayBuffer(t)}uint8ClampedArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8cView.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}float32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._f32View.set(e,this._offset),this._offset+=e.length}uint16ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++;let t=2*this._offset;this._u16View.set(e,t),this._offset+=e.length>>1,0!=(1&e.length)&&this._offset++}int32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._i32View.set(e,this._offset),this._offset+=e.length}uint32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._u32View.set(e,this._offset),this._offset+=e.length}string(e){let t=(new TextEncoder).encode(e);this._ensureArrayBuffer(t.byteLength/4),this._i32View[this._offset]=t.byteLength,this._offset++,this._u8View.set(t,4*this._offset),this._offset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._offset++}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageDeserializer=void 0;t.MessageDeserializer=class{constructor(){this._buffer=new ArrayBuffer(0),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,this._startOffset=-1,this._processor={int:()=>this._i32View[this._startOffset++],bool:()=>1===this._i32View[this._startOffset++],type:()=>this._i32View[this._startOffset++],float:()=>this._f32View[this._startOffset++],timestamp:()=>{this._startOffset%2==1&&this._startOffset++;let e=this._f64View[this._startOffset/2];return this._startOffset+=2,e},string:()=>{let e=this._i32View[this._startOffset++],t=(new TextDecoder).decode(new Uint8Array(this._buffer,4*this._startOffset,e));return this._startOffset+=e>>2,0!=(3&e)&&this._startOffset++,t},dataWithLength:()=>{let e=this._i32View[this._startOffset++],t=new Uint8Array(e);return t.set(this._u8View.subarray(4*this._startOffset,4*this._startOffset+e)),this._startOffset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._startOffset++,t.buffer},matrix4x4:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+16)),this._startOffset+=e,t},matrix3x3:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+9)),this._startOffset+=e,t},identityCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+50)),this._startOffset+=e,t},expressionCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+29)),this._startOffset+=e,t},cameraModel:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+6)),this._startOffset+=e,t},barcodeFormat:()=>this._i32View[this._startOffset++],faceLandmarkName:()=>this._i32View[this._startOffset++],instantTrackerTransformOrientation:()=>this._i32View[this._startOffset++],logLevel:()=>this._i32View[this._startOffset++]}}setData(e){this._buffer=e,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,e.byteLength>=4&&(this._offset=1,this._length=this._i32View[0]),this._startOffset=-1}hasMessage(){return this._offset+1<this._length}forMessages(e){for(;this.hasMessage();){let t=this._i32View[this._offset],r=this._i32View[this._offset+1];this._startOffset=this._offset+2,this._offset+=t,e(r,this._processor)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgManager=void 0;const a=r(12);t.MsgManager=class{constructor(){this.onOutgoingMessage=new a.Event,this.onIncomingMessage=new a.Event1,this._outgoingMessages=[]}postIncomingMessage(e){this.onIncomingMessage.emit(e)}postOutgoingMessage(e,t){this._outgoingMessages.push({msg:e,transferables:t}),this.onOutgoingMessage.emit()}getOutgoingMessages(){let e=this._outgoingMessages;return this._outgoingMessages=[],e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Event5=t.Event3=t.Event2=t.Event1=t.Event=void 0;t.Event=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(){for(var e=0,t=this._funcs.length;e<t;e++)this._funcs[e]()}};t.Event1=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e){for(var t=0,r=this._funcs.length;t<r;t++)this._funcs[t](e)}};t.Event2=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t){for(var r=0,a=this._funcs.length;r<a;r++)this._funcs[r](e,t)}};t.Event3=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r){for(var a=0,n=this._funcs.length;a<n;a++)this._funcs[a](e,t,r)}};t.Event5=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r,a,n){for(var i=0,s=this._funcs.length;i<s;i++)this._funcs[i](e,t,r,a,n)}}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"a20150d17b0290cadaa6cb9911ab9500.wasm"}]);',"Worker",void 0,r.p+"zappar-cv.worker.js")}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"a20150d17b0290cadaa6cb9911ab9500.wasm"},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function o(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.permissionDeniedUI=t.permissionRequestUI=t.permissionRequestMotion=t.permissionRequestCamera=t.permissionRequestAll=t.permissionGrantedAll=t.permissionDeniedAny=t.permissionDeniedMotion=t.permissionDeniedCamera=t.permissionGrantedMotion=t.permissionGrantedCamera=void 0;let a=new(r(9).UAParser),i=!1,s=!1,o=!1,c=!1;function u(){return n(this,void 0,void 0,(function*(){if(navigator.permissions&&navigator.permissions.query)try{let e=yield navigator.permissions.query({name:"camera"});o="denied"===e.state,i="granted"===e.state}catch(e){}}))}function _(){return o||c}function f(){return i&&s}function l(){return n(this,void 0,void 0,(function*(){yield h(),yield d()}))}function d(){return n(this,void 0,void 0,(function*(){try{(yield navigator.mediaDevices.getUserMedia({video:!0})).getTracks().forEach(e=>e.stop()),i=!0,o=!1}catch(e){i=!1,o=!0}}))}function h(){return n(this,void 0,void 0,(function*(){if(window.DeviceOrientationEvent&&window.DeviceOrientationEvent.requestPermission){if("granted"!==(yield window.DeviceOrientationEvent.requestPermission()))return s=!1,c=!0,!1}s=!0,c=!1}))}window.DeviceOrientationEvent&&window.DeviceOrientationEvent.requestPermission||(s=!0),u(),t.permissionGrantedCamera=function(){return i},t.permissionGrantedMotion=function(){return s},t.permissionDeniedCamera=function(){return o},t.permissionDeniedMotion=function(){return c},t.permissionDeniedAny=_,t.permissionGrantedAll=f,t.permissionRequestAll=l,t.permissionRequestCamera=d,t.permissionRequestMotion=h,t.permissionRequestUI=function(){return n(this,void 0,void 0,(function*(){if(yield u(),f())return!0;let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n max-width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Almost there...</div>\n <div class="zappar-text">In order to provide this augmented reality experience, we need access to your device\'s camera and motion sensors.</div>\n <button id="zappar-permission-request-button">Grant Access</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-request-button");return yield new Promise(r=>{null==t||t.addEventListener("click",()=>n(this,void 0,void 0,(function*(){for(yield l(),e.remove();;){if(yield new Promise(e=>requestAnimationFrame(()=>e())),_())return void r(!1);if(f())return void r(!0)}})))})}))},t.permissionDeniedUI=function(){switch(a.getBrowser().name){case"Chrome":!function(){let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Permission is Needed</div>\n <div class="zappar-text">Permission to access your device\'s camera and motion sensors is necessary for this experience.<br/><br/>To grant access, please tap the ! button in the address bar of your browser, then "Site settings", and finally "Clear and reset". You can then reload the page to try again.</div>\n <button id="zappar-permission-reload-button">Reload</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-reload-button");null==t||t.addEventListener("click",()=>window.location.reload())}();break;default:!function(){let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n max-width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Permission is Needed</div>\n <div class="zappar-text">Permission to access your device\'s camera and motion sensors is necessary for this experience. Please reload the page to try again.</div>\n <button id="zappar-permission-reload-button">Reload</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-reload-button");null==t||t.addEventListener("click",()=>window.location.reload())}()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceMesh=t.getFaceMesh=t.destroyFaceMesh=t.createFaceMesh=void 0;const n=r(1),a=r(0);let i=1,s=new Map;t.createFaceMesh=function(){let e=i++;return s.set(e,new o),a.zcout("face_mesh_t initialized"),e},t.destroyFaceMesh=function(e){s.delete(e)},t.getFaceMesh=function(e){return s.get(e)};class o{constructor(){this.render_mean_=new Float32Array,this.render_identity_=new Float32Array(50),this.render_expression_=new Float32Array(29),this.render_uvs_=new Float32Array,this.render_indices_=new Uint16Array,this.vertices_=new Float32Array,this.normals_=new Float32Array,this.normalsCalculated_=!1,this.modelVersion_=-1,this.mirrored_=!1}loadFromMemory(e,t,r,n,a){let i=0,s=new Uint16Array(e),o=new Int32Array(e),c=new Float32Array(e),u=()=>{let e=o[i++]*o[i++],t=c.subarray(i,i+e);return i+=e,t},_=()=>{let e=o[i++],t=s.subarray(2*i,2*i+e);return i+=e/2,t};this.render_mean_=u(),this.render_identity_=u(),this.render_expression_=u(),this.render_uvs_=u();let f=_(),l=i<o.length?_():new Uint16Array,d=i<o.length?_():new Uint16Array,h=i<o.length?_():new Uint16Array,p=i<o.length?_():new Uint16Array;if(t||r||n||a){let e=f.length;t&&(e+=l.length),r&&(e+=d.length),n&&(e+=h.length),a&&(e+=p.length),this.render_indices_=new Uint16Array(e),this.render_indices_.set(f,0);let i=f.length;t&&(this.render_indices_.set(l,i),i+=l.length),r&&(this.render_indices_.set(d,i),i+=d.length),n&&(this.render_indices_.set(h,i),i+=h.length),a&&(this.render_indices_.set(p,i),i+=p.length)}else this.render_indices_=f;this.vertices_=new Float32Array(this.render_mean_),this.normals_=new Float32Array(this.vertices_.length),this.modelVersion_++}getVertices(){return this.vertices_}getUVs(){return this.render_uvs_}getIndices(){if(this.mirrored_){if(!this.render_indices_reversed){this.render_indices_reversed=new Uint16Array(this.render_indices_.length);for(let e=0;e<this.render_indices_.length;e+=3)this.render_indices_reversed[e]=this.render_indices_[e+2],this.render_indices_reversed[e+1]=this.render_indices_[e+1],this.render_indices_reversed[e+2]=this.render_indices_[e]}return this.render_indices_reversed}return this.render_indices_}getNormals(){return this.normalsCalculated_||this.calculateNormals(),this.normals_}getModelVersion(){return this.modelVersion_}getLandmarkDataForVertex(e){let t=[this.render_mean_[3*e],this.render_mean_[3*e+1],this.render_mean_[3*e+2]],r=[];for(let t=0;t<50;t++)r.push(this.render_identity_[3*e*50+t]),r.push(this.render_identity_[50*(3*e+1)+t]),r.push(this.render_identity_[50*(3*e+2)+t]);let n=[];for(let t=0;t<29;t++)n.push(this.render_expression_[3*e*29+t]),n.push(this.render_expression_[29*(3*e+1)+t]),n.push(this.render_expression_[29*(3*e+2)+t]);return{mean:t,identity:r,expression:n}}update(e,t,r){if(0!==this.render_mean_.length&&0!==this.render_identity_.length&&0!==this.render_expression_.length){this.mirrored_=r,this.vertices_.set(this.render_mean_);for(let t=0;t<e.length;t++)for(let r=0;r<this.vertices_.length;r++)this.vertices_[r]+=e[t]*this.render_identity_[r*e.length+t];for(let e=0;e<t.length;e++)for(let r=0;r<this.vertices_.length;r++)this.vertices_[r]+=t[e]*this.render_expression_[r*t.length+e];if(r)for(let e=0;e<this.vertices_.length;e+=3)this.vertices_[e]*=-1;this.normalsCalculated_=!1}}calculateNormals(){let e=this.getIndices(),t=this.vertices_,r=new Float32Array(e.length);if(!t)return;let a=e.length,i=this.normals_,s=new Float32Array([0,0,0]),o=new Float32Array([0,0,0]),c=new Float32Array([0,0,0]);for(let i=0;i<a;i+=3){let a=3*e[i],u=3*e[i+1],_=3*e[i+2];s[0]=t[u]-t[a],s[1]=t[u+1]-t[a+1],s[2]=t[u+2]-t[a+2],o[0]=t[_]-t[a],o[1]=t[_+1]-t[a+1],o[2]=t[_+2]-t[a+2],n.vec3.cross(c,s,o);let f=n.vec3.length(c);r[i]=c[0]/f,r[i+1]=c[1]/f,r[i+2]=c[2]/f}i.fill(0);for(let t=0;t<a;t+=3){let n=3*e[t],a=3*e[t+1],s=3*e[t+2];i[n]+=r[t],i[n+1]+=r[t+1],i[n+2]+=r[t+2],i[a]+=r[t],i[a+1]+=r[t+1],i[a+2]+=r[t+2],i[s]+=r[t],i[s+1]+=r[t+1],i[s+2]+=r[t+2]}let u=i.length/3;for(let e=0;e<u;e++){let t=3*e;s[0]=i[t],s[1]=i[t+1],s[2]=i[t+2],n.vec3.normalize(o,s),i[t]=o[0],i[t+1]=o[1],i[t+2]=o[2]}this.normalsCalculated_=!0}}t.FaceMesh=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cameraFrameTextureMatrix=t.CameraDraw=void 0;const n=r(2),a=r(1);t.CameraDraw=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._vbo=void 0,this._shader&&this._gl.deleteProgram(this._shader.prog),this._shader=void 0}_generate(e,t){if(this._vbo)return this._vbo;if(this._vbo||(this._vbo=e.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");let r=new Float32Array([-1,-1,0,0,0,-1,1,0,0,1,1,-1,0,1,0,1,-1,0,1,0,-1,1,0,0,1,1,1,0,1,1]);return e.bindBuffer(e.ARRAY_BUFFER,this._vbo),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),this._vbo}drawCameraFrame(e,t,r,n){if(!r.texture)return;let a=this._gl;a.disable(a.DEPTH_TEST),a.disable(a.SCISSOR_TEST),a.disable(a.CULL_FACE),a.disable(a.BLEND);let i=this._getCameraShader(a),s=this._generate(a,r);a.activeTexture(a.TEXTURE0),a.useProgram(i.prog),a.uniformMatrix4fv(i.unif_skinTexTransform,!1,o(r.dataWidth,r.dataHeight,e,t,r.uvTransform,n)),a.uniform1i(i.unif_skinSampler,0),a.bindTexture(a.TEXTURE_2D,r.texture),a.bindBuffer(a.ARRAY_BUFFER,s),a.vertexAttribPointer(i.attr_position,3,a.FLOAT,!1,20,0),a.enableVertexAttribArray(i.attr_position),a.vertexAttribPointer(i.attr_texCoord,2,a.FLOAT,!1,20,12),a.enableVertexAttribArray(i.attr_texCoord),a.drawArrays(a.TRIANGLES,0,6),a.disableVertexAttribArray(i.attr_position),a.disableVertexAttribArray(i.attr_texCoord),a.bindTexture(a.TEXTURE_2D,null),a.bindBuffer(a.ARRAY_BUFFER,null),a.useProgram(null)}_getCameraShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,i),a=n.compileShader(e,e.FRAGMENT_SHADER,s);e.attachShader(t,r),e.attachShader(t,a),n.linkProgram(e,t);let o=e.getUniformLocation(t,"skinTexTransform");if(!o)throw new Error("Unable to get uniform location skinTexTransform");let c=e.getUniformLocation(t,"skinSampler");if(!c)throw new Error("Unable to get uniform location skinSampler");return this._shader={prog:t,unif_skinTexTransform:o,unif_skinSampler:c,attr_position:e.getAttribLocation(t,"position"),attr_texCoord:e.getAttribLocation(t,"texCoord")},this._shader}};let i="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nattribute vec4 position;\nattribute vec4 texCoord;\nvarying vec4 skinTexVarying;\nuniform mat4 skinTexTransform;\n\nvoid main()\n{\n gl_Position = position;\n skinTexVarying = skinTexTransform * texCoord;\n}",s="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying vec4 skinTexVarying;\nuniform lowp sampler2D skinSampler;\n\nvoid main()\n{\n gl_FragColor = texture2DProj(skinSampler, skinTexVarying);\n}";function o(e,t,r,n,i,s){let o=a.mat4.create(),c=a.mat4.create();a.mat4.fromTranslation(c,[-.5,-.5,0]),a.mat4.multiply(o,c,o),s&&(a.mat4.fromScaling(c,[-1,1,1]),a.mat4.multiply(o,c,o)),a.mat4.fromRotation(c,-1*function(){if(window.screen.orientation)switch(window.screen.orientation.type){case"portrait-primary":return 270;case"landscape-secondary":return 180;case"portrait-secondary":return 90;default:return 0}else if(void 0!==window.orientation)switch(window.orientation){case 0:return 270;case 90:return 0;case 180:return 90;case-90:return 180}return 0}()*Math.PI/180,[0,0,1]),a.mat4.multiply(o,c,o);let u=a.vec3.create();u[0]=r,u[1]=n,u[2]=0,a.vec3.transformMat4(u,u,c);let _=Math.abs(u[0]),f=Math.abs(u[1]);a.mat4.fromScaling(c,[1,-1,1]),a.mat4.multiply(o,c,o);let l=_/f,d=e/t;return l>d?a.mat4.fromScaling(c,[1,d/l,1]):a.mat4.fromScaling(c,[l/d,1,1]),a.mat4.multiply(o,c,o),a.mat4.fromTranslation(c,[.5,.5,0]),a.mat4.multiply(o,c,o),a.mat4.multiply(o,i,o),o}t.cameraFrameTextureMatrix=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceDraw=void 0;const n=r(2);t.FaceDraw=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._normalbo&&this._gl.deleteBuffer(this._normalbo),this._ibo&&this._gl.deleteBuffer(this._ibo),this._shader&&this._gl.deleteProgram(this._shader.prog),this._vbo=void 0,this._normalbo=void 0,this._ibo=void 0,this._shader=void 0}_generateIBO(e,t){if(this._ibo&&this._lastIndices===e)return this._ibo;if(this._lastIndices=e,this._ibo||(this._ibo=t.createBuffer()),!this._ibo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this._ibo),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),this._ibo}_generateVBO(e,t){if(this._vbo||(this._vbo=t.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._vbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._vbo}_generateNormalBO(e,t){if(this._normalbo||(this._normalbo=t.createBuffer()),!this._normalbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._normalbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._normalbo}drawFace(e,t){let r=this._gl,n=this._getShader(r),a=this._generateVBO(t.getVertices(),r),i=this._generateNormalBO(t.getNormals(),r),s=this._generateIBO(t.getIndices(),r);r.enable(r.DEPTH_TEST),r.enable(r.CULL_FACE),r.useProgram(n.prog),r.uniformMatrix4fv(n.unif_matrix,!1,e),r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.attr_position,3,r.FLOAT,!1,12,0),r.enableVertexAttribArray(n.attr_position),r.bindBuffer(r.ARRAY_BUFFER,i),r.vertexAttribPointer(n.attr_normal,3,r.FLOAT,!1,12,0),r.enableVertexAttribArray(n.attr_normal),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,s),r.drawElements(r.TRIANGLES,t.getIndices().length,r.UNSIGNED_SHORT,0),r.disableVertexAttribArray(n.attr_position),r.disableVertexAttribArray(n.attr_normal),r.bindBuffer(r.ARRAY_BUFFER,null),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,null)}_getShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,a),s=n.compileShader(e,e.FRAGMENT_SHADER,i);e.attachShader(t,r),e.attachShader(t,s),n.linkProgram(e,t);let o=e.getUniformLocation(t,"matrix");if(!o)throw new Error("Unable to get uniform location mattrix");return this._shader={prog:t,unif_matrix:o,attr_position:e.getAttribLocation(t,"position"),attr_normal:e.getAttribLocation(t,"normal")},this._shader}};let a="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 matrix;\nattribute vec4 position;\nattribute vec3 normal;\nvarying highp vec3 vnormal;\n\nvoid main()\n{\n gl_Position = matrix * position;\n vnormal = normal;\n}",i="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying vec4 skinTexVarying;\nvarying highp vec3 vnormal;\nuniform lowp sampler2D skinSampler;\n\nvoid main()\n{\n vec3 normal2 = 0.5 * vnormal + 0.5;\n gl_FragColor = vec4(normal2.x , normal2.y, normal2.z, 1.0);\n}"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceDrawProject=void 0;const n=r(2);t.FaceDrawProject=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._uvbo&&this._gl.deleteBuffer(this._uvbo),this._ibo&&this._gl.deleteBuffer(this._ibo),this._shader&&this._gl.deleteProgram(this._shader.prog),this._vbo=void 0,this._uvbo=void 0,this._ibo=void 0,this._shader=void 0}_generateIBO(e,t){if(this._ibo&&this._lastIndices===e)return this._ibo;if(this._lastIndices=e,this._ibo||(this._ibo=t.createBuffer()),!this._ibo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this._ibo),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),this._ibo}_generateVBO(e,t){if(this._vbo||(this._vbo=t.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._vbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._vbo}_generateUVBO(e,t){if(this._uvbo||(this._uvbo=t.createBuffer()),!this._uvbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._uvbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._uvbo}drawFace(e,t,r,n,a,i){let s=this._gl,o=this._getShader(s),c=this._generateVBO(t,s),u=this._generateUVBO(n,s),_=this._generateIBO(a,s);s.enable(s.DEPTH_TEST),s.enable(s.CULL_FACE),s.useProgram(o.prog),s.uniformMatrix4fv(o.unif_matrix,!1,e),s.uniformMatrix4fv(o.unif_uvmatrix,!1,r),s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i),s.uniform1i(o.unif_sampler,0),s.bindBuffer(s.ARRAY_BUFFER,c),s.vertexAttribPointer(o.attr_position,3,s.FLOAT,!1,12,0),s.enableVertexAttribArray(o.attr_position),s.bindBuffer(s.ARRAY_BUFFER,u),s.vertexAttribPointer(o.attr_uv,3,s.FLOAT,!1,12,0),s.enableVertexAttribArray(o.attr_uv),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,_),s.drawElements(s.TRIANGLES,6912,s.UNSIGNED_SHORT,0),s.disableVertexAttribArray(o.attr_position),s.disableVertexAttribArray(o.attr_uv),s.bindBuffer(s.ARRAY_BUFFER,null),s.bindBuffer(s.ELEMENT_ARRAY_BUFFER,null)}_getShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,a),s=n.compileShader(e,e.FRAGMENT_SHADER,i);e.attachShader(t,r),e.attachShader(t,s),n.linkProgram(e,t);let o=e.getUniformLocation(t,"matrix");if(!o)throw new Error("Unable to get uniform location matrix");let c=e.getUniformLocation(t,"uvmatrix");if(!c)throw new Error("Unable to get uniform location matrix");let u=e.getUniformLocation(t,"uSampler");if(!u)throw new Error("Unable to get uniform location sampler");return this._shader={prog:t,unif_matrix:o,unif_sampler:u,unif_uvmatrix:c,attr_position:e.getAttribLocation(t,"position"),attr_uv:e.getAttribLocation(t,"uv"),attr_texturecoord:e.getAttribLocation(t,"aTextureCoord")},this._shader}};let a="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 matrix;\nuniform mat4 uvmatrix;\nattribute vec4 position;\nattribute vec3 normal;\nattribute vec3 uv;\n\n// varying highp vec3 vnormal;\n\nvarying highp vec2 vTextureCoord;\nvarying highp float vAlpha;\n\nvoid main()\n{\n gl_Position = matrix * position;\n vec4 ret = uvmatrix * vec4(uv.x, uv.y, uv.z, 1.0);\n ret.x /= ret.w * 2.0;\n ret.y /= ret.w * 2.0;\n ret.x += 0.5;\n ret.y += 0.0;\n vAlpha = 1.0;\n vTextureCoord = ret.xy;\n}",i="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying highp vec2 vTextureCoord;\nvarying highp vec3 vnormal;\nvarying highp float vAlpha;\nuniform lowp sampler2D uSampler;\n\nvoid main()\n{\n // vec3 normal2 = 0.5 * vnormal + 0.5;\n vec4 p = texture2D(uSampler, vTextureCoord);\n p.a = vAlpha;\n gl_FragColor = p; // vec4(normal2.x , normal2.y, normal2.z, 1.0);\n}"},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function o(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,o)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CameraSource=void 0;const a=r(12),i=r(14),s=r(4),o=r(6),c=r(0);let u=1,_=new Map,f=document.createElement("video");f.setAttribute("playsinline",""),f.setAttribute("webkit-playsinline",""),i.profile.videoElementInDOM&&(f.style.width="0px",f.style.height="0px",document.body.appendChild(f));class l extends a.HTMLElementSource{constructor(e,t,r){super(f,t),this._impl=e,this._deviceId=r,this._currentStream=null,this._activeDeviceId=null,this._hasStartedOrientation=!1,this._deviceMotionListener=e=>{let t=s.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.accelerationIncludingGravity&&null!==e.accelerationIncludingGravity.x&&null!==e.accelerationIncludingGravity.y&&null!==e.accelerationIncludingGravity.z&&t.motionAccelerometerSubmit(r,e.accelerationIncludingGravity.x*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.y*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.z*i.profile.deviceMotionMutliplier),null===e.rotationRate||null===e.rotationRate.alpha||null===e.rotationRate.beta||null===e.rotationRate.gamma||this._hasStartedOrientation?this._hasStartedOrientation||this._startDeviceOrientation():(e.timeStamp,t.motionRotationRateSubmit(r,e.rotationRate.alpha*Math.PI/-180,e.rotationRate.beta*Math.PI/-180,e.rotationRate.gamma*Math.PI/-180))}}static create(e,t){let r=u++;return _.set(r,new l(r,e,t)),c.zcout("camera_source_t initialized"),r}static get(e){return _.get(e)}destroy(){_.delete(this._impl),super.destroy()}_stop(){if(!this._currentStream)return;this._currentStream.getTracks().forEach(e=>e.stop()),this._currentStream=null}pause(){super.pause(),this._stopDeviceMotion(),this._syncCamera()}start(){super.start(),this._startDeviceMotion(),this._syncCamera()}_getConstraints(){return n(this,void 0,void 0,(function*(){let e,t;this._deviceId!==l.DEFAULT_DEVICE_ID&&this._deviceId!==l.USER_DEFAULT_DEVICE_ID?e=this._deviceId:t=this._deviceId===l.DEFAULT_DEVICE_ID?"environment":"user";let r={audio:!1,video:{facingMode:t,width:i.profile.videoWidth,height:i.profile.videoHeight,frameRate:i.profile.requestHighFrameRate?60:void 0,deviceId:e}};if(e)return r;if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return r;let n=yield navigator.mediaDevices.enumerateDevices(),a=!1;return n=n.filter(e=>{if("videoinput"!==e.kind)return!1;if(e.getCapabilities){a=!0;let r=e.getCapabilities();if(r&&r.facingMode&&r.facingMode.indexOf("user"===t?"user":"environment")<0)return!1}return!0}),a&&0!==n.length?("object"==typeof r.video&&(c.zcout("choosing device ID",n[n.length-1].deviceId),r.video.deviceId=n[n.length-1].deviceId),r):r}))}getFrame(e){return this._cameraToScreenRotation=o.cameraRotationForScreenOrientation(!1),super.getFrame(e)}_getUserMedia(){return n(this,void 0,void 0,(function*(){let e=yield this._getConstraints();return navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?yield navigator.mediaDevices.getUserMedia(e):yield new Promise((t,r)=>{navigator.getUserMedia(e,t,r)})}))}_syncCamera(){return n(this,void 0,void 0,(function*(){if(this._currentStream&&this._isPaused)this._stop();else if(this._currentStream&&this._activeDeviceId!==this._deviceId&&this._stop(),!this._isPaused){if(this._activeDeviceId=this._deviceId,this._currentStream=yield this._getUserMedia(),this._isPaused)return void(yield this._syncCamera());if(this._isUserFacing=!1,this._currentStream){let e=this._currentStream.getVideoTracks();e.length>0&&(this._isUserFacing="user"===e[0].getSettings().facingMode)}if(!(this._video instanceof HTMLVideoElement))return;this._video.src="",this._video.loop=!1,this._video.muted=!0,this._video.srcObject=this._currentStream,this._video.play()}}))}_startDeviceOrientation(){this._hasStartedOrientation||(this._hasStartedOrientation=!0,this._deviceOrientationListener=e=>{let t=s.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.alpha&&null!==e.beta&&null!==e.gamma&&t.motionAttitudeSubmit(r,e.alpha,e.beta,e.gamma)},window.addEventListener("deviceorientation",this._deviceOrientationListener))}_startDeviceMotion(){window.addEventListener("devicemotion",this._deviceMotionListener,!1)}_stopDeviceMotion(){window.removeEventListener("devicemotion",this._deviceMotionListener),this._deviceOrientationListener&&window.removeEventListener("deviceorientation",this._deviceOrientationListener)}}t.CameraSource=l,l.USER_DEFAULT_DEVICE_ID="Simulated User Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b",l.DEFAULT_DEVICE_ID="Simulated Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceLandmark=t.getFaceLandmark=t.destroyFaceLandmark=t.createFaceLandmark=void 0;const n=r(1),a=r(34),i=r(0);let s=1,o=new Map;t.createFaceLandmark=function(e){let t=s++;return o.set(t,new c(e)),i.zcout("face_landmark_t initialized"),t},t.destroyFaceLandmark=function(e){o.delete(e)},t.getFaceLandmark=function(e){return o.get(e)};class c{constructor(e){this._name=e,this.anchor_pose=n.mat4.create()}_getVertex(e,t,r){let n=r.mean.slice();for(let t=0;t<50;t++)n[0]+=e[t]*r.identity[3*t+0],n[1]+=e[t]*r.identity[3*t+1],n[2]+=e[t]*r.identity[3*t+2];for(let e=0;e<29;e++)n[0]+=t[e]*r.expression[3*e+0],n[1]+=t[e]*r.expression[3*e+1],n[2]+=t[e]*r.expression[3*e+2];return n}update(e,t,r){let i,s=a.landmarkData[this._name.toString()];if(s){if(Array.isArray(s)){i=this._getVertex(e,t,s[0]);let r=this._getVertex(e,t,s[1]);i[0]=.5*(i[0]+r[0]),i[1]=.5*(i[1]+r[1]),i[2]=.5*(i[2]+r[2])}else i=this._getVertex(e,t,s);r&&(i[0]*=-1),n.mat4.fromTranslation(this.anchor_pose,i)}}}t.FaceLandmark=c},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.landmarkData=void 0,t.landmarkData={0:[{mean:[.235,.2344,.7305],identity:[.008,.0087,.0024,-.0026,6e-4,-.0022,5e-4,.0033,.0026,.0017,-.0055,-8e-4,.0011,.0059,0,2e-4,.001,-.001,-.0044,-.0011,-1e-4,.0024,.0019,-9e-4,4e-4,-.0015,0,.0038,.0013,3e-4,.002,-.0021,.0018,.0023,.0011,.0012,-.0011,-.0017,9e-4,-.0012,-8e-4,7e-4,-.0017,.0029,-.0029,8e-4,-.0027,8e-4,-.0017,4e-4,9e-4,-.001,-3e-4,8e-4,-.0016,-3e-4,-7e-4,.0016,-9e-4,.0021,-5e-4,.0011,-.0024,-1e-4,6e-4,1e-4,-.0026,-4e-4,-3e-4,-9e-4,5e-4,3e-4,-8e-4,-.001,-4e-4,-8e-4,.0022,-.0014,-1e-4,-.0023,0,-.0018,7e-4,-.0036,.0017,.0017,-.0018,-2e-4,-4e-4,-9e-4,-8e-4,3e-4,.0012,9e-4,-4e-4,-.0016,5e-4,-.0013,.0011,.0023,.0029,.0024,.0017,-.0027,-4e-4,-.001,-.0018,-.0015,-.001,.001,-.0013,-1e-4,-2e-4,7e-4,3e-4,3e-4,-.0016,9e-4,-.0021,4e-4,.0014,.002,-7e-4,-4e-4,2e-4,-4e-4,-6e-4,-9e-4,.0015,4e-4,-4e-4,5e-4,-.0015,9e-4,3e-4,3e-4,-2e-4,-8e-4,-9e-4,.0023,4e-4,1e-4,-4e-4,-1e-4,7e-4,2e-4,.001,1e-4,-.0029,-5e-4],expression:[0,3e-4,.0052,-7e-4,-.0051,-.0103,0,.0019,.0027,-.0054,.0135,.035,-5e-4,-6e-4,.0025,-.0045,-.0557,-.003,-.0191,-.1199,.0548,-.0036,-.0682,-.0167,2e-4,-.0085,-.0085,.0044,.0041,-.0568,.0044,.179,.0065,-.0017,-.1006,.0036,-.0267,-.3279,.0301,-.0011,-.0173,-.001,.0046,.2808,.0207,.0162,.238,-.0225,.0017,.1041,.0203,5e-4,.0161,.0031,-.0436,.6504,.0873,-.0099,.1039,.0048,-.0254,.2534,-.0042,.003,-.0106,-.0153,-.0118,.0252,9e-4,-.0071,.0099,.007,-.0724,.0461,-.0235,.0833,.004,.0141,-.0219,.0132,-.0042,-.0179,.0045,-.0215,.3638,.0054,-.0445]},{mean:[.2358,.1466,.7183],identity:[.0077,.0093,1e-4,-.0022,0,-.0041,5e-4,.0022,.0028,.0018,-.0038,-.0013,.001,.0044,-2e-4,0,.0017,-.0016,-.0043,-2e-4,-1e-4,.0023,9e-4,5e-4,-7e-4,-4e-4,-.0017,.003,7e-4,6e-4,.0011,-.0018,5e-4,.0018,-8e-4,4e-4,-.0023,-6e-4,-3e-4,-.0015,-.0014,-1e-4,-.0018,.0027,-.0026,3e-4,-.0031,.0011,-.0026,-.0011,.0012,-.0013,-2e-4,7e-4,-.0021,.0021,4e-4,.0012,-.001,.002,-3e-4,2e-4,-.0026,-3e-4,.001,1e-4,-.0018,-.001,9e-4,-.0011,.001,4e-4,-8e-4,-7e-4,-.001,-3e-4,7e-4,-5e-4,-6e-4,-.0019,-5e-4,-.002,7e-4,-.0027,.0014,.0013,6e-4,-5e-4,-3e-4,-3e-4,-.001,0,.0019,1e-4,6e-4,-.0012,4e-4,-9e-4,4e-4,.0025,3e-4,.0024,.0017,-9e-4,-.0015,-.0015,-.001,-.0023,-.001,-5e-4,-4e-4,8e-4,9e-4,7e-4,2e-4,7e-4,-9e-4,9e-4,-.0013,1e-4,9e-4,2e-4,6e-4,-6e-4,-8e-4,-4e-4,-7e-4,8e-4,.0019,3e-4,.0015,2e-4,-.0015,-3e-4,0,6e-4,3e-4,6e-4,-6e-4,2e-4,5e-4,-4e-4,.0012,-4e-4,2e-4,-8e-4,6e-4,-4e-4,2e-4,-.0021],expression:[-.0034,.0054,.0069,.004,6e-4,-.0104,-3e-4,.0036,.0025,.0065,.0296,.0208,-9e-4,.0154,.0029,-.0167,.0124,.004,-.0102,.0351,.028,-.019,.0146,-.0035,-.0023,-.0069,-.0051,-.01,.0262,-.028,.0112,.082,.023,-.0019,-.066,-.0104,-.0408,.0164,.0075,-.0074,.0367,.0041,.0517,-.0207,.0045,.0291,-.0672,-.0129,.0345,-.1558,-.0106,.0037,-.0437,-.0021,.0854,-.1121,.0187,.0041,.0072,.0011,.0193,-.0143,-.0119,.005,-.02,-.0122,-.008,.0527,.0036,-.006,.0222,.007,-.0429,.046,-.0046,.0226,-.0059,.0202,-.0173,.0087,0,-.0067,-.0095,-.0153,.1506,-.0017,.0021]}],1:[{mean:[-.2271,.2323,.7319],identity:[-.0084,.0097,.0018,.0041,2e-4,-.002,-.0012,.0036,.0019,-9e-4,-.0063,-.001,-3e-4,.0053,6e-4,1e-4,5e-4,-.0015,.0044,-.0025,-.0015,-.002,.0016,-6e-4,2e-4,-.0013,0,-.0022,2e-4,2e-4,-.0025,-.0014,.0015,8e-4,2e-4,.0012,6e-4,-6e-4,.0017,0,3e-4,-1e-4,.0024,.0025,-.0029,-.0015,-.0015,1e-4,.0031,-.0016,7e-4,.0019,6e-4,.002,9e-4,.001,-.0014,-.002,-.0015,.0029,1e-4,5e-4,-.0023,8e-4,-.0011,.0019,.0017,-3e-4,-.0011,-3e-4,.0011,-8e-4,.0019,-.0022,1e-4,.0015,.0017,-8e-4,-.0011,-.0022,3e-4,.0022,6e-4,-.003,-2e-4,0,-.0017,-2e-4,0,1e-4,4e-4,.0012,.0019,-.0014,4e-4,-.0017,-.0012,-.0011,.0021,-.0029,.0026,.0018,-.0023,-.0029,1e-4,.0014,-.0019,-4e-4,-4e-4,.0023,-.0016,0,-9e-4,.0014,-.0015,.0015,-.0016,-.0011,-.0022,1e-4,-.0018,.0027,-.0013,4e-4,-1e-4,-5e-4,.0011,-2e-4,.0015,5e-4,-9e-4,-1e-4,.0029,6e-4,0,-3e-4,7e-4,-8e-4,-5e-4,.0025,3e-4,2e-4,-8e-4,-1e-4,3e-4,0,.0014,2e-4,-.0024,1e-4],expression:[-.0025,-9e-4,.006,.004,-.0027,-.0113,-8e-4,.001,.0031,-.0016,.0144,.0382,-3e-4,-5e-4,.0035,-.0044,-.0511,-.0014,-7e-4,-.1007,.0582,-6e-4,-.0606,-.0165,5e-4,-.0087,-.0093,.0036,.0057,-.0576,-.0039,.1488,.0127,.0016,-.0666,-9e-4,-.0153,.3162,-.0445,-.0021,.0023,.0043,-.0033,.2382,.0063,-.0217,.167,-.039,.0097,-.1144,-.0189,-.0145,.6831,.0632,-.0012,-.1959,-.0133,4e-4,.1108,-3e-4,.0062,.2593,-.0161,-.0018,-.0051,-.012,.0162,.016,-.0022,-.0052,-.0201,.0101,.0115,.0365,-.024,-.0059,.0188,-.0336,.0352,.0224,-.0229,.0146,.0086,-.0273,-.0032,.0103,-.0112]},{mean:[-.2288,.1541,.7202],identity:[-.0082,.0101,2e-4,.0036,-7e-4,-.0037,-8e-4,.0024,.0022,-.0013,-.0045,-.0013,-6e-4,.0045,-4e-4,4e-4,.0012,-.0014,.0042,-.001,-7e-4,-.0019,3e-4,-2e-4,.0012,-4e-4,-.0012,-.0018,-4e-4,-1e-4,-.0014,-.0012,1e-4,1e-4,-.0017,.001,.0015,-1e-4,6e-4,1e-4,0,-6e-4,.0028,.0021,-.0025,-.002,-.0015,7e-4,.0028,-.0023,9e-4,.0013,1e-4,.0016,.0012,.0032,-6e-4,-.0013,-.0011,.0021,3e-4,-5e-4,-.0024,4e-4,-4e-4,.0014,.0015,-8e-4,-3e-4,3e-4,.0017,-6e-4,.002,-.0018,-3e-4,9e-4,1e-4,2e-4,-6e-4,-.0015,-4e-4,.0022,7e-4,-.0023,0,-2e-4,-2e-4,-3e-4,-1e-4,6e-4,-2e-4,6e-4,.0022,-3e-4,.0013,-.0014,-5e-4,-3e-4,.0013,-.0027,6e-4,.0025,-.0023,-8e-4,-.0013,.0017,-9e-4,-.0019,1e-4,8e-4,-7e-4,-4e-4,0,.001,-.001,.0019,-8e-4,-.0015,-6e-4,-2e-4,-.0011,8e-4,1e-4,9e-4,-8e-4,-4e-4,6e-4,7e-4,.0021,-4e-4,7e-4,-5e-4,.0021,-7e-4,-4e-4,-9e-4,8e-4,3e-4,1e-4,3e-4,1e-4,9e-4,.001,-5e-4,5e-4,-.001,.001,4e-4,-5e-4,-.0012],expression:[8e-4,.0037,.0078,-4e-4,5e-4,-.012,-2e-4,-.0046,.0033,-.0089,.0295,.0221,-.0024,-.0084,.0013,.0057,.0125,.0049,-.0036,.0373,.0285,.0115,.0135,-.0035,.0048,.0108,-.0033,.0106,.0281,-.0301,-.0082,.0803,.0244,-7e-4,-.0725,-.0105,-.0247,-.0036,-.0143,-.0045,-.029,2e-4,-.0303,.0093,-.0021,-.0196,-.0754,-.0211,.0326,.1246,.006,-.0804,-.1499,.0109,.0182,-.0029,-.0014,-.0035,.0072,-8e-4,-.0152,-.0108,-.0166,-.0073,-.0144,-.0095,.0101,.047,-.0018,-.004,-.0189,.0027,.0104,.0298,-.0042,-.0096,.0191,-.0217,.0228,.0226,-.0105,.0047,-.0048,-.0172,.0061,-.0043,-.0016]}],2:{mean:[.5396,.2028,.2496],identity:[.0204,.0146,-.0182,-.0052,.0158,-.0038,-.0025,-.0108,-.006,.0085,-.0044,.0029,.0042,.001,.0095,.0015,-.0034,-.0064,-.0057,7e-4,.0026,7e-4,.0037,-6e-4,.0037,.0026,.0024,5e-4,-.0019,-.0013,.003,-.0028,.0018,-9e-4,.002,-.0047,.004,-.003,.0031,-.0027,-.0026,-.0017,.0016,.0014,-4e-4,.0021,-.002,0,.0017,7e-4,-4e-4,-7e-4,-.0018,-9e-4,2e-4,-.0012,1e-4,-5e-4,-.0011,4e-4,2e-4,.0011,1e-4,8e-4,.0017,-.0013,.0025,.0017,.001,2e-4,3e-4,5e-4,-4e-4,-1e-4,-5e-4,7e-4,-.0022,-.0029,6e-4,-8e-4,-6e-4,6e-4,-5e-4,5e-4,.0013,3e-4,-5e-4,-.003,7e-4,2e-4,.0016,-4e-4,0,0,4e-4,1e-4,.0014,.0012,1e-4,4e-4,-1e-4,8e-4,9e-4,4e-4,-4e-4,9e-4,-2e-4,.001,9e-4,4e-4,1e-4,7e-4,7e-4,.001,-.0017,-8e-4,2e-4,.0017,-3e-4,-1e-4,4e-4,5e-4,7e-4,5e-4,-1e-4,-6e-4,-1e-4,1e-4,-3e-4,-7e-4,-2e-4,-5e-4,0,-3e-4,3e-4,8e-4,-2e-4,-3e-4,5e-4,1e-4,-7e-4,-.001,-2e-4,3e-4,4e-4,-1e-4,7e-4,0,4e-4,4e-4],expression:[1e-4,-4e-4,1e-4,0,5e-4,2e-4,0,0,3e-4,-2e-4,3e-4,5e-4,-1e-4,2e-4,8e-4,1e-4,-2e-4,-5e-4,-3e-4,6e-4,5e-4,0,1e-4,2e-4,1e-4,-1e-4,-6e-4,-2e-4,5e-4,0,-4e-4,4e-4,.0016,4e-4,-4e-4,-.0015,0,1e-4,1e-4,-3e-4,3e-4,.0019,-2e-4,7e-4,4e-4,4e-4,-8e-4,-.0015,.0013,-.0016,-.0069,4e-4,-6e-4,-.0019,0,-1e-4,5e-4,-3e-4,2e-4,.0014,-3e-4,6e-4,.0011,4e-4,-3e-4,-.0032,-6e-4,8e-4,.0025,-3e-4,3e-4,.0015,-1e-4,1e-4,3e-4,-1e-4,0,0,-3e-4,4e-4,.0019,1e-4,0,-8e-4,-1e-4,1e-4,5e-4]},3:{mean:[-.5464,.2141,.26],identity:[-.0207,.0172,-.0176,.0068,.0148,-.0051,.0042,-.0101,-.0058,-.0087,-.0059,.0045,-.0056,.0017,.0097,-.0048,-.004,-.0044,.0019,2e-4,.0041,-.0052,.0041,2e-4,-.0027,6e-4,.002,-.0027,-.0033,-6e-4,-.004,9e-4,-.0012,-1e-4,-.0026,.0021,-.003,-.0025,.0052,.0025,.0022,-1e-4,-8e-4,.0013,.001,4e-4,.0018,.0014,6e-4,-5e-4,-.0015,-.0039,.0014,-1e-4,8e-4,-2e-4,6e-4,-5e-4,-.0038,-.0012,-.0018,-3e-4,.001,9e-4,.0012,.0024,-.0024,-7e-4,-.0016,-.0016,3e-4,-.001,-.0014,-.0014,.001,-3e-4,-7e-4,-.0012,3e-4,6e-4,3e-4,-5e-4,3e-4,.0012,6e-4,-8e-4,4e-4,4e-4,8e-4,-2e-4,-.0014,3e-4,0,.0023,-3e-4,-.0012,-.0013,.0011,-2e-4,-.0014,-1e-4,.0014,0,3e-4,3e-4,-8e-4,-5e-4,-7e-4,-7e-4,-2e-4,3e-4,5e-4,2e-4,-1e-4,.0011,-.0014,1e-4,-.0015,-1e-4,-3e-4,0,-.001,-1e-4,-8e-4,8e-4,-8e-4,-2e-4,-.0011,-3e-4,-4e-4,1e-4,-2e-4,3e-4,-7e-4,0,3e-4,1e-4,-8e-4,5e-4,1e-4,4e-4,.0014,-6e-4,-.001,-3e-4,-2e-4,1e-4,-1e-4,-1e-4,7e-4],expression:[-3e-4,-1e-4,6e-4,4e-4,0,-7e-4,0,-3e-4,-2e-4,-4e-4,.0012,8e-4,1e-4,-5e-4,-7e-4,-4e-4,0,1e-4,-4e-4,.0017,7e-4,0,1e-4,3e-4,0,4e-4,4e-4,5e-4,1e-4,-.001,-7e-4,.0022,.0026,5e-4,-.0024,-.0023,0,1e-4,3e-4,0,-.0013,-.0015,6e-4,.0014,8e-4,-2e-4,-.0025,-.0023,-3e-4,.0049,.006,-2e-4,-7e-4,-2e-4,0,-.0019,-.0018,-2e-4,.0017,.0017,3e-4,.0015,7e-4,1e-4,-.0023,-.0036,2e-4,.0023,.0017,0,-5e-4,-3e-4,-3e-4,4e-4,2e-4,-1e-4,-3e-4,-5e-4,1e-4,.0018,.0025,1e-4,-6e-4,-.0011,0,1e-4,1e-4]},4:{mean:[.0018,.1864,.853],identity:[-.0011,.0134,.0085,9e-4,-.0025,-7e-4,-3e-4,.0033,4e-4,-5e-4,-.0047,-.002,7e-4,.0026,-.0069,-1e-4,.0036,.0072,5e-4,-8e-4,-.0047,4e-4,-8e-4,-.001,0,2e-4,-.0036,-2e-4,-.001,-.0048,-1e-4,.0018,.0044,-7e-4,-2e-4,.0043,3e-4,.002,-.0031,0,-7e-4,.0013,0,.0037,.0033,-.0016,-.0012,.002,-1e-4,-.0027,.0051,5e-4,8e-4,7e-4,-.0017,.0054,.0023,-3e-4,.0032,1e-4,0,7e-4,-5e-4,-.0011,2e-4,8e-4,0,-.0033,-8e-4,-7e-4,7e-4,.0033,5e-4,-3e-4,.0029,-1e-4,-.0024,-.0011,-.002,-.0015,-.0019,2e-4,7e-4,.0031,6e-4,.0012,0,0,-.0021,0,-9e-4,-.0011,-.0011,-2e-4,.0015,.001,.0013,8e-4,.001,-3e-4,9e-4,.0027,-2e-4,-.0011,-.0011,6e-4,7e-4,2e-4,1e-4,-5e-4,-.0022,.0011,-.0014,9e-4,3e-4,2e-4,0,-6e-4,-4e-4,-.0011,-7e-4,.001,-.0012,6e-4,-.0012,-.0015,3e-4,-9e-4,-.0013,-.0013,7e-4,.001,-.0011,-.0013,.0015,4e-4,1e-4,4e-4,-1e-4,-.0016,-.0016,9e-4,-7e-4,-.0024,5e-4,-1e-4,-.0017,-2e-4,3e-4,-9e-4],expression:[-.0017,.0019,.0097,.003,-.0103,-.0093,9e-4,6e-4,.0023,-.0017,-.0204,.0376,.0033,-.0034,.0033,-.0026,-.0322,.0396,-.0032,-.0947,.0942,-7e-4,-.0175,.0266,-.001,-6e-4,.0016,.0025,.0157,-.0142,-.0022,.037,.015,.0021,-.0102,-.0107,.0036,.0055,-.0051,.0021,3e-4,-3e-4,4e-4,-.0177,.0074,-6e-4,-.0357,.0149,-.0066,9e-4,.0013,-.0031,.0016,.0095,.002,.0052,.0035,-3e-4,.0053,-.0082,.002,.0022,-.0071,-.0011,5e-4,.0055,.0011,3e-4,-.0126,-4e-4,3e-4,-.0023,-.0015,.0059,.0063,-.0042,-.0023,.0055,.0019,.0017,-.0075,6e-4,-8e-4,.0018,.0012,.0012,-5e-4]},5:{mean:[-.002,-.0469,1.0039],identity:[-.0017,.0018,.0156,6e-4,-.0038,5e-4,4e-4,.0013,.002,-4e-4,-.0015,-.0051,5e-4,-7e-4,-.0055,-1e-4,-9e-4,.008,-2e-4,.0036,-.0053,4e-4,-.0026,-.0016,7e-4,9e-4,-.009,-3e-4,7e-4,-.0084,.0015,.0021,.0032,-.0015,.0018,.0046,-3e-4,-4e-4,-1e-4,8e-4,-.0044,-7e-4,-8e-4,7e-4,.0048,-.0024,-3e-4,.0024,2e-4,-.0051,.0058,-6e-4,.0028,.0018,-.0021,.0035,.0057,.0011,.0065,0,-2e-4,.0011,.003,-.0027,8e-4,7e-4,3e-4,-.0039,-.002,-2e-4,-.0015,.0034,.0012,-.0025,.0024,-2e-4,4e-4,-.0042,-.0024,-.001,-.0023,.0016,-7e-4,.0039,1e-4,-5e-4,.0018,3e-4,-2e-4,-9e-4,-.0015,3e-4,-7e-4,-1e-4,-2e-4,.0023,.0032,.002,-.0013,.0013,-.0038,.0045,1e-4,-.0031,1e-4,.0019,-1e-4,.0016,.0013,0,-.002,.0023,2e-4,.0011,.0018,-.0024,6e-4,-.0017,.002,-8e-4,-.0021,7e-4,.0011,8e-4,4e-4,-.001,.0012,2e-4,-6e-4,-.0027,-5e-4,.001,-9e-4,1e-4,-1e-4,8e-4,-.0011,.0022,-.001,-5e-4,-.0011,.0016,-.0015,8e-4,-3e-4,9e-4,.0013,-7e-4,-7e-4,-2e-4],expression:[-.0018,-.0168,.0088,.0389,.1026,.0414,.2201,-.0262,-.0016,-.0017,.0612,-.0298,-.0323,.0093,.0013,-.005,.2207,.1315,-4e-4,.0858,-.0303,-.0133,.015,-.008,.1454,.0114,.0177,-.0077,.1022,.0356,-.0023,.1088,.0232,.003,-.0706,.0347,-1e-4,.004,-.0011,.0397,-.0096,-.0033,.0029,-.01,-.0083,-6e-4,-.0135,.0016,-.0087,-.0019,.0022,-.004,-.0087,.0105,8e-4,-.005,.0069,.0028,.0409,-.0391,.003,.0103,.0051,.0026,.0776,-.0083,-.0062,-.0567,.0268,.0175,.0017,.0156,-.0043,.0299,-.0395,-.0015,.0051,-.0148,.0125,.0035,.0603,.0109,-.0645,-.0257,.002,6e-4,-8e-4]},6:{mean:[-6e-4,-.1542,.8789],identity:[-7e-4,-.0032,.01,0,-.0027,.0031,6e-4,5e-4,-6e-4,-3e-4,.0013,-.0049,-2e-4,-.002,-.0046,8e-4,-.0011,.0054,2e-4,.0043,-.0027,3e-4,-.0022,-.0019,8e-4,.0032,-.0069,0,4e-4,-.0071,.0016,.0027,.0039,-.0017,9e-4,.0031,-1e-4,-5e-4,-4e-4,7e-4,-.0026,-.0012,-5e-4,6e-4,2e-4,-.0014,-.0013,.0019,-2e-4,-.0053,.0031,-6e-4,.0016,.0023,-.0013,.0021,.0029,8e-4,.0052,0,4e-4,0,.0037,-.0026,3e-4,.002,-2e-4,-.0024,4e-4,-4e-4,-.0012,8e-4,7e-4,-.0023,5e-4,0,.0014,-.0022,-.0016,0,-.0012,8e-4,-7e-4,.0014,-6e-4,-.0012,-3e-4,2e-4,.0012,-3e-4,-.002,-1e-4,1e-4,-2e-4,-.0016,9e-4,.002,.0019,0,6e-4,-.0022,.0016,1e-4,-.0017,-.0013,.001,9e-4,-1e-4,.0011,3e-4,-7e-4,.0014,8e-4,.0013,.0011,-.002,0,-.0015,.0014,.001,-.0015,7e-4,3e-4,.001,-1e-4,.0012,7e-4,6e-4,-4e-4,-.0013,-.0012,-9e-4,-.0011,2e-4,-5e-4,5e-4,4e-4,2e-4,1e-4,0,5e-4,5e-4,-.0014,.0015,-9e-4,5e-4,.0014,-8e-4,-8e-4,.0012],expression:[8e-4,.0481,.1653,.0784,.1008,-.3992,.5088,-.02,.0542,.001,.3723,-.0151,-.0986,.0283,-.0033,-.0121,.2634,.1202,.0036,-.0529,-.0245,-.0297,-.1085,.0495,.3264,.0083,4e-4,-.0314,.1459,-.1142,-.003,1e-4,.1154,-.0035,-.0285,-.0184,-1e-4,.0012,.0035,.079,-.0103,.0043,.011,-.004,-.0774,-.0047,-.023,.0284,-.0048,-.001,.0149,-.0039,.0046,.0528,-6e-4,.0063,.0376,.0096,.0558,-.0295,0,-.0311,-.0634,.0062,.0176,-.0154,-.0109,-.1149,.0192,.0326,.0121,.0237,.0034,.0262,-.0778,.0014,-.0045,-.0203,.0077,.0588,.0575,.008,-.0557,-.0095,.0032,.0054,-.0042]},7:{mean:[.0038,-.2927,.833],identity:[6e-4,-.0109,.0073,-6e-4,-.0044,.0017,-1e-4,-.0022,-6e-4,-3e-4,.0065,-.0014,-6e-4,-.0051,-.0046,3e-4,-.0029,.003,2e-4,.0038,-6e-4,0,-.0012,6e-4,-4e-4,.0053,-.0075,-2e-4,-7e-4,-.0063,.0014,.0026,.0019,-.0022,.0018,.0028,-1e-4,-.0012,.0011,9e-4,.0019,-.0019,-1e-4,.0012,-.0022,-3e-4,-.0012,4e-4,-8e-4,3e-4,-3e-4,0,.0017,.0021,-4e-4,.0012,.0022,-3e-4,.0026,-3e-4,4e-4,-.0026,.0032,-.0019,3e-4,.0015,1e-4,-.0015,.0013,-1e-4,1e-4,-.0029,0,-2e-4,-.0028,-7e-4,.0019,-3e-4,-2e-4,.0012,9e-4,4e-4,-.001,-.002,-.0016,.0011,-1e-4,3e-4,.0021,2e-4,-.0014,-9e-4,-1e-4,0,-2e-4,-.001,.0015,.0018,1e-4,7e-4,8e-4,.0017,.001,-9e-4,1e-4,4e-4,.0023,-1e-4,.0012,1e-4,-8e-4,2e-4,.0018,6e-4,3e-4,1e-4,.0012,-3e-4,.002,-6e-4,0,-1e-4,-.0022,4e-4,5e-4,.0011,2e-4,-.0013,-.0023,6e-4,6e-4,-5e-4,-5e-4,9e-4,2e-4,2e-4,.0011,-3e-4,.0011,.0015,.0011,3e-4,2e-4,8e-4,-4e-4,-8e-4,3e-4,0,.0012,-1e-4],expression:[.026,.1107,.3257,.1917,.3206,-1.1348,1.0791,-.035,.1549,-.0103,.6953,1e-4,-.3262,.068,.0219,-.0044,.3643,.2178,.0168,-.2478,-.1321,-.0414,-.3782,-.0617,.5088,-.0031,-.0311,-.0497,.0948,-.385,.0148,-.2224,-.1415,-.0074,.0863,-.203,3e-4,-.0081,.0057,.1164,-.0039,.0015,-.0024,.0505,.1532,.0039,-.0148,-.0753,.0163,.0058,-.0339,.0036,.0252,-.0569,-.0041,.0163,-.0361,.0035,-.018,.1266,0,-.0163,-.0046,.0133,-.1656,.2134,.0191,.0057,.0734,.0681,.0039,-.0144,.029,-.074,-.046,.0122,.0072,-.0162,-.0349,-.1234,.0212,-.0355,.0535,.1218,.0043,-.024,.0016]},8:{mean:[-.0018,-.3037,.8491],identity:[2e-4,-.0112,.0077,-4e-4,-.0044,.0024,1e-4,-.0021,-4e-4,-4e-4,.0066,-.002,-4e-4,-.0052,-.0044,3e-4,-.0032,.0039,4e-4,.0042,-3e-4,2e-4,-.0012,-2e-4,-2e-4,.0052,-.0083,-1e-4,-8e-4,-.0056,.0017,.0024,.0019,-.0023,.002,.0027,-2e-4,-.0013,.002,9e-4,.0017,-.0028,-2e-4,.0012,-.0026,0,-.0016,2e-4,-5e-4,3e-4,-.001,-1e-4,.0016,.0016,-3e-4,.0012,.0012,-3e-4,.0027,-3e-4,3e-4,-.0026,.0037,-.0017,1e-4,.0016,1e-4,-.0015,.0024,1e-4,2e-4,-.0039,0,-3e-4,-.0033,-6e-4,.0017,-4e-4,-4e-4,.0012,.0018,2e-4,-.0012,-.002,-.0017,.0013,-.001,3e-4,.0021,4e-4,-.0012,-6e-4,-2e-4,0,-4e-4,-9e-4,.0016,.0017,4e-4,7e-4,7e-4,.001,9e-4,-8e-4,5e-4,5e-4,.0023,.001,.0013,2e-4,-4e-4,2e-4,.0017,8e-4,3e-4,-1e-4,9e-4,-4e-4,.0019,-5e-4,3e-4,0,-.0025,3e-4,3e-4,.0011,1e-4,-.0015,-.001,7e-4,7e-4,-7e-4,-7e-4,8e-4,0,1e-4,.0013,-4e-4,.0012,.0014,.0017,4e-4,2e-4,3e-4,-3e-4,-9e-4,1e-4,0,.001,-4e-4],expression:[-.0092,2.8809,1.416,.2018,1.1982,-.9351,1.4492,-.1902,.1749,.0305,-.167,-.1572,-.7354,-.0492,.0115,.0608,.2971,.1179,.0046,-.0997,-.0041,-.0104,.3379,-.1854,.009,.0366,-.0583,.0269,-.0029,-.4175,-8e-4,.1794,.0752,-.0135,.1158,.1234,5e-4,.003,-.0032,.1034,-.0504,-.0055,-.0076,-.0772,.224,.0047,.0229,-.1044,.0162,-.0161,-.0241,-.0083,-.1388,-.0434,-.0125,-.0997,-.0327,-.0111,.1576,-.3911,.0199,.2522,.142,.0059,-.0721,-.0045,.031,-.1136,-.1685,.0641,.0142,.0312,.0426,-.1366,.1011,.0101,-.0157,.0018,-.0103,-.0344,.0907,.0016,.1168,-.0806,.0104,-.0057,.0111]},9:[{mean:[.0038,-.2927,.833],identity:[6e-4,-.0109,.0073,-6e-4,-.0044,.0017,-1e-4,-.0022,-6e-4,-3e-4,.0065,-.0014,-6e-4,-.0051,-.0046,3e-4,-.0029,.003,2e-4,.0038,-6e-4,0,-.0012,6e-4,-4e-4,.0053,-.0075,-2e-4,-7e-4,-.0063,.0014,.0026,.0019,-.0022,.0018,.0028,-1e-4,-.0012,.0011,9e-4,.0019,-.0019,-1e-4,.0012,-.0022,-3e-4,-.0012,4e-4,-8e-4,3e-4,-3e-4,0,.0017,.0021,-4e-4,.0012,.0022,-3e-4,.0026,-3e-4,4e-4,-.0026,.0032,-.0019,3e-4,.0015,1e-4,-.0015,.0013,-1e-4,1e-4,-.0029,0,-2e-4,-.0028,-7e-4,.0019,-3e-4,-2e-4,.0012,9e-4,4e-4,-.001,-.002,-.0016,.0011,-1e-4,3e-4,.0021,2e-4,-.0014,-9e-4,-1e-4,0,-2e-4,-.001,.0015,.0018,1e-4,7e-4,8e-4,.0017,.001,-9e-4,1e-4,4e-4,.0023,-1e-4,.0012,1e-4,-8e-4,2e-4,.0018,6e-4,3e-4,1e-4,.0012,-3e-4,.002,-6e-4,0,-1e-4,-.0022,4e-4,5e-4,.0011,2e-4,-.0013,-.0023,6e-4,6e-4,-5e-4,-5e-4,9e-4,2e-4,2e-4,.0011,-3e-4,.0011,.0015,.0011,3e-4,2e-4,8e-4,-4e-4,-8e-4,3e-4,0,.0012,-1e-4],expression:[.026,.1107,.3257,.1917,.3206,-1.1348,1.0791,-.035,.1549,-.0103,.6953,1e-4,-.3262,.068,.0219,-.0044,.3643,.2178,.0168,-.2478,-.1321,-.0414,-.3782,-.0617,.5088,-.0031,-.0311,-.0497,.0948,-.385,.0148,-.2224,-.1415,-.0074,.0863,-.203,3e-4,-.0081,.0057,.1164,-.0039,.0015,-.0024,.0505,.1532,.0039,-.0148,-.0753,.0163,.0058,-.0339,.0036,.0252,-.0569,-.0041,.0163,-.0361,.0035,-.018,.1266,0,-.0163,-.0046,.0133,-.1656,.2134,.0191,.0057,.0734,.0681,.0039,-.0144,.029,-.074,-.046,.0122,.0072,-.0162,-.0349,-.1234,.0212,-.0355,.0535,.1218,.0043,-.024,.0016]},{mean:[-.0018,-.3037,.8491],identity:[2e-4,-.0112,.0077,-4e-4,-.0044,.0024,1e-4,-.0021,-4e-4,-4e-4,.0066,-.002,-4e-4,-.0052,-.0044,3e-4,-.0032,.0039,4e-4,.0042,-3e-4,2e-4,-.0012,-2e-4,-2e-4,.0052,-.0083,-1e-4,-8e-4,-.0056,.0017,.0024,.0019,-.0023,.002,.0027,-2e-4,-.0013,.002,9e-4,.0017,-.0028,-2e-4,.0012,-.0026,0,-.0016,2e-4,-5e-4,3e-4,-.001,-1e-4,.0016,.0016,-3e-4,.0012,.0012,-3e-4,.0027,-3e-4,3e-4,-.0026,.0037,-.0017,1e-4,.0016,1e-4,-.0015,.0024,1e-4,2e-4,-.0039,0,-3e-4,-.0033,-6e-4,.0017,-4e-4,-4e-4,.0012,.0018,2e-4,-.0012,-.002,-.0017,.0013,-.001,3e-4,.0021,4e-4,-.0012,-6e-4,-2e-4,0,-4e-4,-9e-4,.0016,.0017,4e-4,7e-4,7e-4,.001,9e-4,-8e-4,5e-4,5e-4,.0023,.001,.0013,2e-4,-4e-4,2e-4,.0017,8e-4,3e-4,-1e-4,9e-4,-4e-4,.0019,-5e-4,3e-4,0,-.0025,3e-4,3e-4,.0011,1e-4,-.0015,-.001,7e-4,7e-4,-7e-4,-7e-4,8e-4,0,1e-4,.0013,-4e-4,.0012,.0014,.0017,4e-4,2e-4,3e-4,-3e-4,-9e-4,1e-4,0,.001,-4e-4],expression:[-.0092,2.8809,1.416,.2018,1.1982,-.9351,1.4492,-.1902,.1749,.0305,-.167,-.1572,-.7354,-.0492,.0115,.0608,.2971,.1179,.0046,-.0997,-.0041,-.0104,.3379,-.1854,.009,.0366,-.0583,.0269,-.0029,-.4175,-8e-4,.1794,.0752,-.0135,.1158,.1234,5e-4,.003,-.0032,.1034,-.0504,-.0055,-.0076,-.0772,.224,.0047,.0229,-.1044,.0162,-.0161,-.0241,-.0083,-.1388,-.0434,-.0125,-.0997,-.0327,-.0111,.1576,-.3911,.0199,.2522,.142,.0059,-.0721,-.0045,.031,-.1136,-.1685,.0641,.0142,.0312,.0426,-.1366,.1011,.0101,-.0157,.0018,-.0103,-.0344,.0907,.0016,.1168,-.0806,.0104,-.0057,.0111]}],10:{mean:[-.007,-.6338,.7695],identity:[1e-4,-.0296,.0089,-6e-4,-.0073,-.0065,-1e-4,-.0029,-.0031,-2e-4,.0128,.0065,0,-.0116,-.014,-1e-4,-.0037,-.0052,-5e-4,.0028,.003,-4e-4,.0041,.0015,6e-4,.0088,-.0076,-.0011,-.0015,-.0073,7e-4,-.0011,.0019,-.0011,-5e-4,.0031,-1e-4,-.0018,9e-4,.0018,.0038,.0068,-4e-4,-1e-4,.0061,.0024,.0024,-.0066,-6e-4,.0051,.0014,.002,.005,-.0035,1e-4,-.0034,-.004,-7e-4,.001,-8e-4,1e-4,-5e-4,-.0021,2e-4,.0045,-.0043,-.0012,-.0024,-.0014,6e-4,.0034,.0027,-8e-4,-.0053,.0014,1e-4,.0013,-.0018,6e-4,-.0015,.0029,-2e-4,-.0035,1e-4,-.002,.0012,.0048,.0011,1e-4,-2e-4,-3e-4,-.0012,.0033,6e-4,.002,-.0033,4e-4,.0028,2e-4,8e-4,-1e-4,-.0018,8e-4,.0017,1e-4,9e-4,8e-4,3e-4,.0019,-.001,.001,-7e-4,-.0013,0,1e-4,.0032,-1e-4,1e-4,.0011,-4e-4,5e-4,-7e-4,.0018,-3e-4,2e-4,7e-4,8e-4,-.0014,7e-4,.0015,-6e-4,-1e-4,-4e-4,.0019,-9e-4,-6e-4,-6e-4,-.0012,2e-4,-.0012,-8e-4,4e-4,6e-4,-.0011,3e-4,9e-4,-4e-4,6e-4,-7e-4,-4e-4],expression:[-.0603,2.0527,1.9014,.1025,.6143,.3804,.7881,-.1023,-.0764,.0454,-.2487,-.5073,-.6704,-.031,-.0181,.0466,.0651,-.0726,-.0033,-.0022,.2944,.0101,.1669,-.5225,-.4685,.0236,.0079,.011,.2173,.4529,.0121,-.2104,-.0673,.0225,-.4023,.0317,-9e-4,.0076,-.0032,.0333,.0523,.0129,-.001,-.0319,-.0139,.0015,-.0044,.0247,-5e-4,.0161,.0061,.0074,.0776,-.0176,.007,.055,-.017,.0052,-.1819,.0294,-.0161,-.0337,.0226,-.008,-.0297,.1967,-.0095,.0383,.2039,.0434,.0271,-.0064,-.0037,-.0294,-.024,.0024,-.0137,-.0209,-.0031,.0628,.1003,-.0126,-.056,-.0097,-.0012,-.0041,.0162]},11:{mean:[.2505,.3833,.7793],identity:[.0098,.012,.0077,-6e-4,-3e-4,0,1e-4,.0082,-7e-4,.0019,-.0036,-.0012,2e-4,.0119,-.0039,.001,1e-4,.0031,-.0036,-.0059,-7e-4,.0026,.0028,-.0011,9e-4,-.0032,8e-4,.0029,.0043,3e-4,.0025,-9e-4,.0047,.0016,.0022,.0018,-.001,.0025,-.003,-.001,.0033,.0034,4e-4,-.0052,.0024,-2e-4,.001,-.0014,-6e-4,.0038,-.0015,-6e-4,-.001,-.0011,-4e-4,-.001,4e-4,-7e-4,.0036,-8e-4,-2e-4,-.0019,5e-4,3e-4,-6e-4,-.0024,-.0017,-.0014,6e-4,-4e-4,-.0031,-.0013,-6e-4,.0042,2e-4,-2e-4,-.002,-3e-4,8e-4,.0018,-5e-4,-6e-4,-2e-4,-6e-4,.0025,.0019,.001,8e-4,-.0015,-.0012,-1e-4,-6e-4,-4e-4,.0023,-.001,6e-4,-2e-4,-.001,0,-9e-4,-.002,-.0011,1e-4,0,-1e-4,5e-4,6e-4,9e-4,-6e-4,5e-4,8e-4,-1e-4,-2e-4,-.0017,-6e-4,-4e-4,4e-4,-6e-4,.0012,4e-4,3e-4,-7e-4,3e-4,-2e-4,6e-4,1e-4,5e-4,-.0019,-6e-4,4e-4,7e-4,-1e-4,1e-4,5e-4,.001,-6e-4,-.002,-7e-4,-5e-4,5e-4,3e-4,7e-4,.0014,0,5e-4,-5e-4,-2e-4,3e-4,-6e-4,-1e-4],expression:[-9e-4,-3e-4,.0032,-.003,-.0034,-.0031,.0014,0,4e-4,-.0139,-.0764,.0275,-.002,-.0089,.0031,-.0503,-.0771,.038,-.1323,-.3523,.1368,-.0474,-.0564,.0296,-.0045,.007,-.0013,.0153,.1259,-.0464,.0866,.2175,-.0786,-.0413,-.1248,.0448,-.1777,-.4607,.1782,-5e-4,-.005,.0016,.0629,.1506,-.0624,.0545,.2576,-.0864,-.0231,-.0552,.0244,-.0136,-.0359,.0169,-.1158,-.2996,.1214,-.0235,-.0354,.0165,-.0745,-.1079,.0475,-.0116,-.0039,.0012,.0013,-.0108,-8e-4,.0044,-.0027,-1e-4,-.0694,.0363,.0071,.1462,-.136,.0047,.009,-.0177,.0038,-.0271,.0118,.0011,-.0399,-.0111,.0123]},12:{mean:[-.2981,.3828,.7563],identity:[-.0116,.014,.0054,.0018,5e-4,0,-4e-4,.0068,-.0013,-.0019,-.0048,-5e-4,5e-4,.0108,-.0036,-.0029,-.0018,.0029,.0043,-.0077,6e-4,-.0017,.002,-.0011,-.0014,-.0035,.0015,-.0024,.0011,4e-4,-.0048,2e-4,.0029,-1e-4,-1e-4,.003,.0019,.0035,-.0016,-4e-4,.0039,.0019,1e-4,-.0064,.004,3e-4,.002,-.0021,.0017,.0011,-.001,.0026,.0025,-5e-4,2e-4,-3e-4,-5e-4,-7e-4,9e-4,-4e-4,-.001,-.0022,.001,9e-4,-.0014,7e-4,.0011,-.001,-5e-4,-8e-4,-.0017,-.0021,9e-4,.0036,5e-4,4e-4,-.0031,6e-4,-.0015,.0027,2e-4,1e-4,-.0011,2e-4,-.0011,-.0018,4e-4,-.0013,-2e-4,7e-4,9e-4,-3e-4,.001,-.0021,8e-4,6e-4,-9e-4,4e-4,-7e-4,8e-4,-.002,-.0013,0,7e-4,-.0012,-1e-4,.0014,.0014,-1e-4,.0013,6e-4,6e-4,-.0014,-.0015,-9e-4,1e-4,1e-4,9e-4,7e-4,0,1e-4,-.001,-4e-4,0,-5e-4,1e-4,-3e-4,4e-4,-5e-4,-1e-4,-.0011,2e-4,0,1e-4,8e-4,8e-4,0,-7e-4,-8e-4,0,2e-4,-1e-4,.001,3e-4,4e-4,-2e-4,0,5e-4,.0018,-1e-4],expression:[0,-4e-4,.0028,.0036,-8e-4,-.0026,-.0015,-8e-4,3e-4,.0075,-.0608,.025,.0019,-.0076,.0033,.0379,-.0437,.0335,.0964,-.2452,.1233,.0368,-.0251,.0253,.0033,.0097,-.0021,-.0095,.1171,-.0475,-.064,.1548,-.0718,.0228,-.0831,.0343,-.1924,.6206,-.2771,.0021,-.0143,.0056,-.0705,.2522,-.1116,-.0692,.4229,-.1592,-.0093,.05,-.0185,.0948,-.3196,.1437,-.0184,.0194,-.0131,.0205,-.0353,.0201,.0676,-.135,.0672,.0137,-.0311,.0118,3e-4,-.0077,-2e-4,-.0151,4e-4,-.0058,.029,-.0139,.0163,.1324,.1819,-.0039,.0406,.0501,.0017,.0331,.0161,.0062,-.0235,-.0446,.0047]}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={incompatible:()=>!("function"==typeof Promise&&"object"==typeof WebAssembly&&!!(navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices&&navigator.mediaDevices.getUserMedia)),incompatible_ui:()=>{const e=document.createElement("div");e.append(function(){let e=document.createElement("div"),t="a recent web browser";navigator.userAgent.match(/Android/i)?(t="Chrome for Android",window.location.href="googlechrome://navigate?url="+encodeURI(window.location.href),setTimeout(()=>{window.location.href="samsunginternet://open?url="+encodeURI(window.location.href)},2e3)):navigator.userAgent.match(/iPhone|iPod|iPad/i)&&(t="Safari",e.classList.add("zee-launcher-browser-safari")),e.classList.add("zee-launcher-unsupported"),e.innerHTML=`\n <style>.zee-launcher-unsupported {\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n align-items: center;\n }\n .zee-launcher-browser-logo {\n background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 210 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%23ffffff' stroke-width='2'%3E%3Cg transform='translate(83 146.5)'%3E%3Cpath d='m55.146 88.785l-32.039-49.472c19.962-24.947 49.904-38.684 80.517-38.81 17.739-0.12642 35.855 4.4246 52.336 13.99 18.2 10.619 32.039 25.874 40.846 43.404l-86.095-4.5511c-24.365-1.4327-47.556 12.347-55.565 35.439zm13.797 16.224c0 19.468 15.684 35.229 35.059 35.229 19.374 0 35.059-15.76 35.059-35.229 0-19.468-15.684-35.229-35.059-35.229-19.374 0-35.059 15.718-35.059 35.229zm132.06-37.588l-58.585 3.034c15.894 18.668 16.145 45.595 2.7678 66.243l-47.01 72.648c19.5 1.0535 39.588-3.2447 57.788-13.864 45.039-26.126 63.282-80.908 45.039-128.06zm-144.93 57.647l-39.126-77.326c-10.694 16.434-16.942 36.156-16.942 57.267 0 52.253 38.078 95.53 87.856 103.2l26.713-52.59c-24.155 4.5511-47.472-8.765-58.501-30.551z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A");\n width: 211px;\n height: 211px;\n margin-bottom: 25%;\n margin-top: -60px;\n background-repeat: no-repeat;\n }\n .zee-launcher-browser-safari .zee-launcher-browser-logo {\n background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 211 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%23fffffft' stroke-width='2'%3E%3Cpath d='m180 251.86c0-4.0385 2.9377-7.855 7.2552-7.855 3.9614 0 7.7448 2.8402 7.7448 7.145 0 4.0385-2.8487 7.855-7.1662 7.855-4.0059 0-7.8338-2.9734-7.8338-7.145zm112-0.35503c0 57.728-46.772 104.5-104.5 104.5s-104.5-46.772-104.5-104.5 46.772-104.5 104.5-104.5 104.5 46.772 104.5 104.5zm-12-1c0-51.649-41.851-93.5-93.5-93.5s-93.5 41.851-93.5 93.5 41.851 93.5 93.5 93.5 93.5-41.851 93.5-93.5zm-30.624 40.983c0 1.5095 5.4495 4.2768 6.8328 5.1154-11.486 17.401-29.26 29.938-49.423 34.928l-1.8444-7.757c-0.12576-1.0482-0.79646-1.174-1.7606-1.174-0.79646 0-1.2576 1.174-1.1737 1.7611l1.8444 7.8828c-5.5753 1.174-11.234 1.7611-16.935 1.7611-15.217 0-30.182-4.2768-43.177-12.202 0.71263-1.174 5.1141-7.5474 5.1141-8.4698 0-0.79666-0.71263-1.5095-1.5091-1.5095-1.6348 0-5.1141 6.9603-6.1621 8.344-17.522-11.615-30.182-29.602-35.044-50.148l8.0066-1.761c0.92222-0.25158 1.1737-0.92246 1.1737-1.7611 0-0.79667-1.1737-1.2579-1.8444-1.174l-7.8389 1.803c-1.048-5.3251-1.6348-10.692-1.6348-16.143 0-15.556 4.4015-30.86 12.66-43.984 1.1737 0.71281 6.749 4.5284 7.6712 4.5284 0.79646 0 1.5091-0.58702 1.5091-1.3837 0-1.6353-6.1621-4.7381-7.5455-5.7024 11.821-17.275 29.805-29.728 50.219-34.34l1.7606 7.757c0.25152 0.92246 0.92222 1.174 1.7606 1.174 0.83838 0 1.2576-1.174 1.1737-1.8449l-1.7606-7.6732c5.1141-0.92246 10.312-1.5095 15.552-1.5095 15.552 0 30.727 4.4026 43.973 12.663-0.79646 1.174-4.5273 6.6249-4.5273 7.5474 0 0.79667 0.58687 1.5095 1.3833 1.5095 1.6348 0 4.7369-6.0379 5.5753-7.4216 17.187 11.615 29.469 29.351 34.248 49.561l-6.4975 1.3837c-1.048 0.25158-1.1737 0.92246-1.1737 1.8449 0 0.79667 1.1737 1.2579 1.7606 1.174l6.6232-1.5095c1.048 5.3251 1.6348 10.776 1.6348 16.227 0 15.221-4.1919 30.189-12.073 43.062-1.1737-0.58702-6.0364-4.0672-6.9586-4.0672-0.8803 0-1.5929 0.71281-1.5929 1.5095zm-14.876-98.483c-5.2178 4.88-53.863 49.48-55.228 51.8l-38.772 64.2c5.0974-4.76 53.863-49.6 55.108-51.72l38.892-64.28z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");\n }\n .zee-launcher-unsupported-message {\n text-align: center;\n width: 250px;\n font-family: sans-serif;\n color: #ffffff;\n }\n .zee-launcher-unsupported-message-copy {\n border: 1px solid #ffffff;\n border-radius: 5px;\n margin-top: 10px;\n }\n #zee-launcher-unsupported-message-input {\n border: none;\n padding: 10px;\n border-radius: 0px;\n border-right: 1px solid #344B60;\n height: 40px;\n color: #ffffff;\n background-color: black;\n box-sizing: border-box;\n width: calc(100% - 65px);\n margin-left: 5px;\n }\n #zee-launcher-unsupported-message-button {\n background: none;\n border: none;\n outline: none;\n text-transform: uppercase;\n color: #ffffff;\n height: 40px;\n display: inline-block;\n width: 59px;\n }\n .zee-launcher-unsupported-message-before-copy {\n height: 100px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n }\n .zee-launcher-unsupported-message-copied .zee-launcher-unsupported-message-before-copy {\n display: none;\n }\n .zee-launcher-unsupported-message-after-copy {\n display: none;\n }\n .zee-launcher-unsupported-message-copied .zee-launcher-unsupported-message-after-copy {\n height: 100px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n }\n </style>\n <div class="zee-launcher-browser-logo"></div>\n <div class="zee-launcher-unsupported-message">Open with ${t} to access this content.</div>\n <div class="zee-launcher-unsupported-message-before-copy">\n <div class="zee-launcher-unsupported-message ">Tap below to copy the address for easy pasting into ${t}.</div>\n <div class="zee-launcher-unsupported-message-copy"><input id="zee-launcher-unsupported-message-input" type="text/"><button id="zee-launcher-unsupported-message-button">Copy</button></div>\n </div>\n <div class="zee-launcher-unsupported-message zee-launcher-unsupported-message-after-copy">COPIED! Now paste into ${t}'s address bar to experience the content.</div>\n `;let r=e.querySelector("#zee-launcher-unsupported-message-input")||document.createElement("input");r.value=window.location.href;let n=()=>{if(navigator.userAgent.match(/iPhone|iPod|iPad/i)){let e=document.createRange();e.selectNodeContents(r);let t=window.getSelection();if(!t)return;t.removeAllRanges(),t.addRange(e),r.setSelectionRange(0,999999999)}else r.select();document.execCommand("copy"),r.blur(),e.classList.toggle("zee-launcher-unsupported-message-copied",!0)};return(e.querySelector("#zee-launcher-unsupported-message-button")||document.createElement("button")).addEventListener("click",n),r.addEventListener("click",n),e}()),Object.assign(e.style,{position:"fixed",width:"100%",height:"100%",top:"0px",left:"0px",zIndex:1001,backgroundColor:"rgba(0, 0, 0, 0.9)",fontFamily:"sans-serif",color:"white",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),e.classList.add("zee_launcher_compatibility"),document.body.append(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceSource=void 0;const n=r(0),a=r(11),i=r(13),s=r(4),o=r(1);let c=1,u=new Map;class _ extends i.Source{constructor(e,t){super(),this._impl=e,this._pipeline=t,this._packetNumber=0}static create(e){let t=c++;return u.set(t,new _(t,e)),n.zcout("sequence_source_source_t initialized"),t}static get(e){return u.get(e)}loadFromMemory(e){try{this._decoder=new a.SequenceDecoder(e),this._packetNumber=0}catch(e){n.zcerr("Unable to decode sequence:",e)}}getFrame(e){let t=s.Pipeline.get(this._pipeline);if(t&&!e&&this._decoder)for(;this._packetNumber<this._decoder.numberPackets;){let e=this._decoder.dataByPacket.get(this._packetNumber);if(this._packetNumber++,!e)return;switch(e.type){case a.SequenceRecorderPacketType.ACCELEROMETER:t.motionAccelerometerSubmit(e.t,e.x,e.y,e.z);break;case a.SequenceRecorderPacketType.ROTATION_RATE:t.motionRotationRateSubmit(e.t,e.x,e.y,e.z);break;case a.SequenceRecorderPacketType.ATTITUDE:t.motionAttitudeSubmit(e.t,e.x,e.y,e.z);break;case a.SequenceRecorderPacketType.ATTITUDE_MATRIX:t.motionAttitudeMatrix(e.attitude);break;case a.SequenceRecorderPacketType.CAMERA_FRAME:{let r=t.cameraPixelArrays.pop();for(;r&&r.byteLength!==e.greyscale.byteLength;)r=t.cameraPixelArrays.pop();return r||(r=new ArrayBuffer(e.greyscale.byteLength)),new Uint8Array(r).set(e.greyscale),{data:r,cameraSourceData:e.greyscale,cameraModel:e.cameraModel,cameraToDevice:e.cameraToDevice,dataWidth:e.width,dataHeight:e.height,texture:void 0,userFacing:e.userFacing,uvTransform:o.mat4.create(),cameraSource:this}}}}}destroy(){u.delete(this._impl),this.pause()}start(){var e;let t=s.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this)}pause(){let e=s.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0)}uploadGL(e){let t=s.Pipeline.get(this._pipeline);if(!t)return;let r=null==t?void 0:t.glContext;r&&(e.texture||(e.texture=t.getVideoTexture()),e.texture&&e.cameraSourceData&&(r.bindTexture(r.TEXTURE_2D,e.texture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e.dataWidth,e.dataHeight,0,r.LUMINANCE,r.UNSIGNED_BYTE,new Uint8Array(e.cameraSourceData)),r.bindTexture(r.TEXTURE_2D,null)))}}t.SequenceSource=_},function(e,t,r){"use strict";r.r(t),t.default=r.p+"f7b62a3a53b5c9b3222ba8dc53cb8b11.zbin"},function(e,t,r){"use strict";r.r(t),t.default=r.p+"482727c0e7dd40d73f5aae47f238ad61.zbin"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,t.VERSION="0.4.0-beta.1"}])}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ZCV=t():e.ZCV=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=18)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zcwarn=t.zcerr=t.zcout=t.setLogLevel=void 0;const n=r(12);let i=n.log_level_t.LOG_LEVEL_ERROR;t.setLogLevel=function(e){i=e},t.zcout=function(...e){i>=n.log_level_t.LOG_LEVEL_VERBOSE&&console.log("[Zappar] INFO",...e)},t.zcerr=function(...e){i>=n.log_level_t.LOG_LEVEL_ERROR&&console.error("[Zappar] ERROR",...e)},t.zcwarn=function(...e){i>=n.log_level_t.LOG_LEVEL_VERBOSE&&console.log("[Zappar] WARN",...e)}},function(e,t,r){"use strict";r.r(t),r.d(t,"glMatrix",(function(){return n})),r.d(t,"mat2",(function(){return i})),r.d(t,"mat2d",(function(){return a})),r.d(t,"mat3",(function(){return o})),r.d(t,"mat4",(function(){return s})),r.d(t,"quat",(function(){return f})),r.d(t,"quat2",(function(){return _})),r.d(t,"vec2",(function(){return d})),r.d(t,"vec3",(function(){return u})),r.d(t,"vec4",(function(){return c}));var n={};r.r(n),r.d(n,"EPSILON",(function(){return l})),r.d(n,"ARRAY_TYPE",(function(){return h})),r.d(n,"RANDOM",(function(){return m})),r.d(n,"setMatrixArrayType",(function(){return p})),r.d(n,"toRadian",(function(){return g})),r.d(n,"equals",(function(){return v}));var i={};r.r(i),r.d(i,"create",(function(){return w})),r.d(i,"clone",(function(){return y})),r.d(i,"copy",(function(){return M})),r.d(i,"identity",(function(){return E})),r.d(i,"fromValues",(function(){return A})),r.d(i,"set",(function(){return x})),r.d(i,"transpose",(function(){return T})),r.d(i,"invert",(function(){return R})),r.d(i,"adjoint",(function(){return k})),r.d(i,"determinant",(function(){return F})),r.d(i,"multiply",(function(){return S})),r.d(i,"rotate",(function(){return L})),r.d(i,"scale",(function(){return I})),r.d(i,"fromRotation",(function(){return P})),r.d(i,"fromScaling",(function(){return O})),r.d(i,"str",(function(){return z})),r.d(i,"frob",(function(){return U})),r.d(i,"LDU",(function(){return C})),r.d(i,"add",(function(){return D})),r.d(i,"subtract",(function(){return B})),r.d(i,"exactEquals",(function(){return V})),r.d(i,"equals",(function(){return N})),r.d(i,"multiplyScalar",(function(){return q})),r.d(i,"multiplyScalarAndAdd",(function(){return G})),r.d(i,"mul",(function(){return j})),r.d(i,"sub",(function(){return H}));var a={};r.r(a),r.d(a,"create",(function(){return W})),r.d(a,"clone",(function(){return X})),r.d(a,"copy",(function(){return Y})),r.d(a,"identity",(function(){return Z})),r.d(a,"fromValues",(function(){return $})),r.d(a,"set",(function(){return K})),r.d(a,"invert",(function(){return J})),r.d(a,"determinant",(function(){return Q})),r.d(a,"multiply",(function(){return ee})),r.d(a,"rotate",(function(){return te})),r.d(a,"scale",(function(){return re})),r.d(a,"translate",(function(){return ne})),r.d(a,"fromRotation",(function(){return ie})),r.d(a,"fromScaling",(function(){return ae})),r.d(a,"fromTranslation",(function(){return oe})),r.d(a,"str",(function(){return se})),r.d(a,"frob",(function(){return ue})),r.d(a,"add",(function(){return ce})),r.d(a,"subtract",(function(){return fe})),r.d(a,"multiplyScalar",(function(){return _e})),r.d(a,"multiplyScalarAndAdd",(function(){return de})),r.d(a,"exactEquals",(function(){return le})),r.d(a,"equals",(function(){return he})),r.d(a,"mul",(function(){return me})),r.d(a,"sub",(function(){return pe}));var o={};r.r(o),r.d(o,"create",(function(){return be})),r.d(o,"fromMat4",(function(){return ge})),r.d(o,"clone",(function(){return ve})),r.d(o,"copy",(function(){return we})),r.d(o,"fromValues",(function(){return ye})),r.d(o,"set",(function(){return Me})),r.d(o,"identity",(function(){return Ee})),r.d(o,"transpose",(function(){return Ae})),r.d(o,"invert",(function(){return xe})),r.d(o,"adjoint",(function(){return Te})),r.d(o,"determinant",(function(){return Re})),r.d(o,"multiply",(function(){return ke})),r.d(o,"translate",(function(){return Fe})),r.d(o,"rotate",(function(){return Se})),r.d(o,"scale",(function(){return Le})),r.d(o,"fromTranslation",(function(){return Ie})),r.d(o,"fromRotation",(function(){return Pe})),r.d(o,"fromScaling",(function(){return Oe})),r.d(o,"fromMat2d",(function(){return ze})),r.d(o,"fromQuat",(function(){return Ue})),r.d(o,"normalFromMat4",(function(){return Ce})),r.d(o,"projection",(function(){return De})),r.d(o,"str",(function(){return Be})),r.d(o,"frob",(function(){return Ve})),r.d(o,"add",(function(){return Ne})),r.d(o,"subtract",(function(){return qe})),r.d(o,"multiplyScalar",(function(){return Ge})),r.d(o,"multiplyScalarAndAdd",(function(){return je})),r.d(o,"exactEquals",(function(){return He})),r.d(o,"equals",(function(){return We})),r.d(o,"mul",(function(){return Xe})),r.d(o,"sub",(function(){return Ye}));var s={};r.r(s),r.d(s,"create",(function(){return Ze})),r.d(s,"clone",(function(){return $e})),r.d(s,"copy",(function(){return Ke})),r.d(s,"fromValues",(function(){return Je})),r.d(s,"set",(function(){return Qe})),r.d(s,"identity",(function(){return et})),r.d(s,"transpose",(function(){return tt})),r.d(s,"invert",(function(){return rt})),r.d(s,"adjoint",(function(){return nt})),r.d(s,"determinant",(function(){return it})),r.d(s,"multiply",(function(){return at})),r.d(s,"translate",(function(){return ot})),r.d(s,"scale",(function(){return st})),r.d(s,"rotate",(function(){return ut})),r.d(s,"rotateX",(function(){return ct})),r.d(s,"rotateY",(function(){return ft})),r.d(s,"rotateZ",(function(){return _t})),r.d(s,"fromTranslation",(function(){return dt})),r.d(s,"fromScaling",(function(){return lt})),r.d(s,"fromRotation",(function(){return ht})),r.d(s,"fromXRotation",(function(){return mt})),r.d(s,"fromYRotation",(function(){return pt})),r.d(s,"fromZRotation",(function(){return bt})),r.d(s,"fromRotationTranslation",(function(){return gt})),r.d(s,"fromQuat2",(function(){return vt})),r.d(s,"getTranslation",(function(){return wt})),r.d(s,"getScaling",(function(){return yt})),r.d(s,"getRotation",(function(){return Mt})),r.d(s,"fromRotationTranslationScale",(function(){return Et})),r.d(s,"fromRotationTranslationScaleOrigin",(function(){return At})),r.d(s,"fromQuat",(function(){return xt})),r.d(s,"frustum",(function(){return Tt})),r.d(s,"perspective",(function(){return Rt})),r.d(s,"perspectiveFromFieldOfView",(function(){return kt})),r.d(s,"ortho",(function(){return Ft})),r.d(s,"lookAt",(function(){return St})),r.d(s,"targetTo",(function(){return Lt})),r.d(s,"str",(function(){return It})),r.d(s,"frob",(function(){return Pt})),r.d(s,"add",(function(){return Ot})),r.d(s,"subtract",(function(){return zt})),r.d(s,"multiplyScalar",(function(){return Ut})),r.d(s,"multiplyScalarAndAdd",(function(){return Ct})),r.d(s,"exactEquals",(function(){return Dt})),r.d(s,"equals",(function(){return Bt})),r.d(s,"mul",(function(){return Vt})),r.d(s,"sub",(function(){return Nt}));var u={};r.r(u),r.d(u,"create",(function(){return qt})),r.d(u,"clone",(function(){return Gt})),r.d(u,"length",(function(){return jt})),r.d(u,"fromValues",(function(){return Ht})),r.d(u,"copy",(function(){return Wt})),r.d(u,"set",(function(){return Xt})),r.d(u,"add",(function(){return Yt})),r.d(u,"subtract",(function(){return Zt})),r.d(u,"multiply",(function(){return $t})),r.d(u,"divide",(function(){return Kt})),r.d(u,"ceil",(function(){return Jt})),r.d(u,"floor",(function(){return Qt})),r.d(u,"min",(function(){return er})),r.d(u,"max",(function(){return tr})),r.d(u,"round",(function(){return rr})),r.d(u,"scale",(function(){return nr})),r.d(u,"scaleAndAdd",(function(){return ir})),r.d(u,"distance",(function(){return ar})),r.d(u,"squaredDistance",(function(){return or})),r.d(u,"squaredLength",(function(){return sr})),r.d(u,"negate",(function(){return ur})),r.d(u,"inverse",(function(){return cr})),r.d(u,"normalize",(function(){return fr})),r.d(u,"dot",(function(){return _r})),r.d(u,"cross",(function(){return dr})),r.d(u,"lerp",(function(){return lr})),r.d(u,"hermite",(function(){return hr})),r.d(u,"bezier",(function(){return mr})),r.d(u,"random",(function(){return pr})),r.d(u,"transformMat4",(function(){return br})),r.d(u,"transformMat3",(function(){return gr})),r.d(u,"transformQuat",(function(){return vr})),r.d(u,"rotateX",(function(){return wr})),r.d(u,"rotateY",(function(){return yr})),r.d(u,"rotateZ",(function(){return Mr})),r.d(u,"angle",(function(){return Er})),r.d(u,"zero",(function(){return Ar})),r.d(u,"str",(function(){return xr})),r.d(u,"exactEquals",(function(){return Tr})),r.d(u,"equals",(function(){return Rr})),r.d(u,"sub",(function(){return Fr})),r.d(u,"mul",(function(){return Sr})),r.d(u,"div",(function(){return Lr})),r.d(u,"dist",(function(){return Ir})),r.d(u,"sqrDist",(function(){return Pr})),r.d(u,"len",(function(){return Or})),r.d(u,"sqrLen",(function(){return zr})),r.d(u,"forEach",(function(){return Ur}));var c={};r.r(c),r.d(c,"create",(function(){return Cr})),r.d(c,"clone",(function(){return Dr})),r.d(c,"fromValues",(function(){return Br})),r.d(c,"copy",(function(){return Vr})),r.d(c,"set",(function(){return Nr})),r.d(c,"add",(function(){return qr})),r.d(c,"subtract",(function(){return Gr})),r.d(c,"multiply",(function(){return jr})),r.d(c,"divide",(function(){return Hr})),r.d(c,"ceil",(function(){return Wr})),r.d(c,"floor",(function(){return Xr})),r.d(c,"min",(function(){return Yr})),r.d(c,"max",(function(){return Zr})),r.d(c,"round",(function(){return $r})),r.d(c,"scale",(function(){return Kr})),r.d(c,"scaleAndAdd",(function(){return Jr})),r.d(c,"distance",(function(){return Qr})),r.d(c,"squaredDistance",(function(){return en})),r.d(c,"length",(function(){return tn})),r.d(c,"squaredLength",(function(){return rn})),r.d(c,"negate",(function(){return nn})),r.d(c,"inverse",(function(){return an})),r.d(c,"normalize",(function(){return on})),r.d(c,"dot",(function(){return sn})),r.d(c,"cross",(function(){return un})),r.d(c,"lerp",(function(){return cn})),r.d(c,"random",(function(){return fn})),r.d(c,"transformMat4",(function(){return _n})),r.d(c,"transformQuat",(function(){return dn})),r.d(c,"zero",(function(){return ln})),r.d(c,"str",(function(){return hn})),r.d(c,"exactEquals",(function(){return mn})),r.d(c,"equals",(function(){return pn})),r.d(c,"sub",(function(){return bn})),r.d(c,"mul",(function(){return gn})),r.d(c,"div",(function(){return vn})),r.d(c,"dist",(function(){return wn})),r.d(c,"sqrDist",(function(){return yn})),r.d(c,"len",(function(){return Mn})),r.d(c,"sqrLen",(function(){return En})),r.d(c,"forEach",(function(){return An}));var f={};r.r(f),r.d(f,"create",(function(){return xn})),r.d(f,"identity",(function(){return Tn})),r.d(f,"setAxisAngle",(function(){return Rn})),r.d(f,"getAxisAngle",(function(){return kn})),r.d(f,"getAngle",(function(){return Fn})),r.d(f,"multiply",(function(){return Sn})),r.d(f,"rotateX",(function(){return Ln})),r.d(f,"rotateY",(function(){return In})),r.d(f,"rotateZ",(function(){return Pn})),r.d(f,"calculateW",(function(){return On})),r.d(f,"exp",(function(){return zn})),r.d(f,"ln",(function(){return Un})),r.d(f,"pow",(function(){return Cn})),r.d(f,"slerp",(function(){return Dn})),r.d(f,"random",(function(){return Bn})),r.d(f,"invert",(function(){return Vn})),r.d(f,"conjugate",(function(){return Nn})),r.d(f,"fromMat3",(function(){return qn})),r.d(f,"fromEuler",(function(){return Gn})),r.d(f,"str",(function(){return jn})),r.d(f,"clone",(function(){return Kn})),r.d(f,"fromValues",(function(){return Jn})),r.d(f,"copy",(function(){return Qn})),r.d(f,"set",(function(){return ei})),r.d(f,"add",(function(){return ti})),r.d(f,"mul",(function(){return ri})),r.d(f,"scale",(function(){return ni})),r.d(f,"dot",(function(){return ii})),r.d(f,"lerp",(function(){return ai})),r.d(f,"length",(function(){return oi})),r.d(f,"len",(function(){return si})),r.d(f,"squaredLength",(function(){return ui})),r.d(f,"sqrLen",(function(){return ci})),r.d(f,"normalize",(function(){return fi})),r.d(f,"exactEquals",(function(){return _i})),r.d(f,"equals",(function(){return di})),r.d(f,"rotationTo",(function(){return li})),r.d(f,"sqlerp",(function(){return hi})),r.d(f,"setAxes",(function(){return mi}));var _={};r.r(_),r.d(_,"create",(function(){return pi})),r.d(_,"clone",(function(){return bi})),r.d(_,"fromValues",(function(){return gi})),r.d(_,"fromRotationTranslationValues",(function(){return vi})),r.d(_,"fromRotationTranslation",(function(){return wi})),r.d(_,"fromTranslation",(function(){return yi})),r.d(_,"fromRotation",(function(){return Mi})),r.d(_,"fromMat4",(function(){return Ei})),r.d(_,"copy",(function(){return Ai})),r.d(_,"identity",(function(){return xi})),r.d(_,"set",(function(){return Ti})),r.d(_,"getReal",(function(){return Ri})),r.d(_,"getDual",(function(){return ki})),r.d(_,"setReal",(function(){return Fi})),r.d(_,"setDual",(function(){return Si})),r.d(_,"getTranslation",(function(){return Li})),r.d(_,"translate",(function(){return Ii})),r.d(_,"rotateX",(function(){return Pi})),r.d(_,"rotateY",(function(){return Oi})),r.d(_,"rotateZ",(function(){return zi})),r.d(_,"rotateByQuatAppend",(function(){return Ui})),r.d(_,"rotateByQuatPrepend",(function(){return Ci})),r.d(_,"rotateAroundAxis",(function(){return Di})),r.d(_,"add",(function(){return Bi})),r.d(_,"multiply",(function(){return Vi})),r.d(_,"mul",(function(){return Ni})),r.d(_,"scale",(function(){return qi})),r.d(_,"dot",(function(){return Gi})),r.d(_,"lerp",(function(){return ji})),r.d(_,"invert",(function(){return Hi})),r.d(_,"conjugate",(function(){return Wi})),r.d(_,"length",(function(){return Xi})),r.d(_,"len",(function(){return Yi})),r.d(_,"squaredLength",(function(){return Zi})),r.d(_,"sqrLen",(function(){return $i})),r.d(_,"normalize",(function(){return Ki})),r.d(_,"str",(function(){return Ji})),r.d(_,"exactEquals",(function(){return Qi})),r.d(_,"equals",(function(){return ea}));var d={};r.r(d),r.d(d,"create",(function(){return ta})),r.d(d,"clone",(function(){return ra})),r.d(d,"fromValues",(function(){return na})),r.d(d,"copy",(function(){return ia})),r.d(d,"set",(function(){return aa})),r.d(d,"add",(function(){return oa})),r.d(d,"subtract",(function(){return sa})),r.d(d,"multiply",(function(){return ua})),r.d(d,"divide",(function(){return ca})),r.d(d,"ceil",(function(){return fa})),r.d(d,"floor",(function(){return _a})),r.d(d,"min",(function(){return da})),r.d(d,"max",(function(){return la})),r.d(d,"round",(function(){return ha})),r.d(d,"scale",(function(){return ma})),r.d(d,"scaleAndAdd",(function(){return pa})),r.d(d,"distance",(function(){return ba})),r.d(d,"squaredDistance",(function(){return ga})),r.d(d,"length",(function(){return va})),r.d(d,"squaredLength",(function(){return wa})),r.d(d,"negate",(function(){return ya})),r.d(d,"inverse",(function(){return Ma})),r.d(d,"normalize",(function(){return Ea})),r.d(d,"dot",(function(){return Aa})),r.d(d,"cross",(function(){return xa})),r.d(d,"lerp",(function(){return Ta})),r.d(d,"random",(function(){return Ra})),r.d(d,"transformMat2",(function(){return ka})),r.d(d,"transformMat2d",(function(){return Fa})),r.d(d,"transformMat3",(function(){return Sa})),r.d(d,"transformMat4",(function(){return La})),r.d(d,"rotate",(function(){return Ia})),r.d(d,"angle",(function(){return Pa})),r.d(d,"zero",(function(){return Oa})),r.d(d,"str",(function(){return za})),r.d(d,"exactEquals",(function(){return Ua})),r.d(d,"equals",(function(){return Ca})),r.d(d,"len",(function(){return Da})),r.d(d,"sub",(function(){return Ba})),r.d(d,"mul",(function(){return Va})),r.d(d,"div",(function(){return Na})),r.d(d,"dist",(function(){return qa})),r.d(d,"sqrDist",(function(){return Ga})),r.d(d,"sqrLen",(function(){return ja})),r.d(d,"forEach",(function(){return Ha}));var l=1e-6,h="undefined"!=typeof Float32Array?Float32Array:Array,m=Math.random;function p(e){h=e}var b=Math.PI/180;function g(e){return e*b}function v(e,t){return Math.abs(e-t)<=l*Math.max(1,Math.abs(e),Math.abs(t))}function w(){var e=new h(4);return h!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function y(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function M(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function E(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function A(e,t,r,n){var i=new h(4);return i[0]=e,i[1]=t,i[2]=r,i[3]=n,i}function x(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function T(e,t){if(e===t){var r=t[1];e[1]=t[2],e[2]=r}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function R(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r*a-i*n;return o?(o=1/o,e[0]=a*o,e[1]=-n*o,e[2]=-i*o,e[3]=r*o,e):null}function k(e,t){var r=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=r,e}function F(e){return e[0]*e[3]-e[2]*e[1]}function S(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[0],u=r[1],c=r[2],f=r[3];return e[0]=n*s+a*u,e[1]=i*s+o*u,e[2]=n*c+a*f,e[3]=i*c+o*f,e}function L(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),u=Math.cos(r);return e[0]=n*u+a*s,e[1]=i*u+o*s,e[2]=n*-s+a*u,e[3]=i*-s+o*u,e}function I(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[0],u=r[1];return e[0]=n*s,e[1]=i*s,e[2]=a*u,e[3]=o*u,e}function P(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e}function O(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function z(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function U(e){return Math.hypot(e[0],e[1],e[2],e[3])}function C(e,t,r,n){return e[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-e[2]*r[1],[e,t,r]}function D(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function B(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function V(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function N(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=t[0],s=t[1],u=t[2],c=t[3];return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=l*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-u)<=l*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=l*Math.max(1,Math.abs(a),Math.abs(c))}function q(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function G(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var j=S,H=B;function W(){var e=new h(6);return h!=Float32Array&&(e[1]=0,e[2]=0,e[4]=0,e[5]=0),e[0]=1,e[3]=1,e}function X(e){var t=new h(6);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Y(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Z(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function $(e,t,r,n,i,a){var o=new h(6);return o[0]=e,o[1]=t,o[2]=r,o[3]=n,o[4]=i,o[5]=a,o}function K(e,t,r,n,i,a,o){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=a,e[5]=o,e}function J(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=r*a-n*i;return u?(u=1/u,e[0]=a*u,e[1]=-n*u,e[2]=-i*u,e[3]=r*u,e[4]=(i*s-a*o)*u,e[5]=(n*o-r*s)*u,e):null}function Q(e){return e[0]*e[3]-e[1]*e[2]}function ee(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=r[0],f=r[1],_=r[2],d=r[3],l=r[4],h=r[5];return e[0]=n*c+a*f,e[1]=i*c+o*f,e[2]=n*_+a*d,e[3]=i*_+o*d,e[4]=n*l+a*h+s,e[5]=i*l+o*h+u,e}function te(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=Math.sin(r),f=Math.cos(r);return e[0]=n*f+a*c,e[1]=i*f+o*c,e[2]=n*-c+a*f,e[3]=i*-c+o*f,e[4]=s,e[5]=u,e}function re(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=r[0],f=r[1];return e[0]=n*c,e[1]=i*c,e[2]=a*f,e[3]=o*f,e[4]=s,e[5]=u,e}function ne(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=r[0],f=r[1];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=n*c+a*f+s,e[5]=i*c+o*f+u,e}function ie(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e[4]=0,e[5]=0,e}function ae(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e[4]=0,e[5]=0,e}function oe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}function se(e){return"mat2d("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+")"}function ue(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],1)}function ce(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e}function fe(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e}function _e(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e}function de(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e}function le(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function he(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=t[0],c=t[1],f=t[2],_=t[3],d=t[4],h=t[5];return Math.abs(r-u)<=l*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(n-c)<=l*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(i-f)<=l*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(a-_)<=l*Math.max(1,Math.abs(a),Math.abs(_))&&Math.abs(o-d)<=l*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(s-h)<=l*Math.max(1,Math.abs(s),Math.abs(h))}var me=ee,pe=fe;function be(){var e=new h(9);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function ge(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function ve(e){var t=new h(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function we(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ye(e,t,r,n,i,a,o,s,u){var c=new h(9);return c[0]=e,c[1]=t,c[2]=r,c[3]=n,c[4]=i,c[5]=a,c[6]=o,c[7]=s,c[8]=u,c}function Me(e,t,r,n,i,a,o,s,u,c){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=a,e[5]=o,e[6]=s,e[7]=u,e[8]=c,e}function Ee(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ae(e,t){if(e===t){var r=t[1],n=t[2],i=t[5];e[1]=t[3],e[2]=t[6],e[3]=r,e[5]=t[7],e[6]=n,e[7]=i}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function xe(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],c=t[7],f=t[8],_=f*o-s*c,d=-f*a+s*u,l=c*a-o*u,h=r*_+n*d+i*l;return h?(h=1/h,e[0]=_*h,e[1]=(-f*n+i*c)*h,e[2]=(s*n-i*o)*h,e[3]=d*h,e[4]=(f*r-i*u)*h,e[5]=(-s*r+i*a)*h,e[6]=l*h,e[7]=(-c*r+n*u)*h,e[8]=(o*r-n*a)*h,e):null}function Te(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],c=t[7],f=t[8];return e[0]=o*f-s*c,e[1]=i*c-n*f,e[2]=n*s-i*o,e[3]=s*u-a*f,e[4]=r*f-i*u,e[5]=i*a-r*s,e[6]=a*c-o*u,e[7]=n*u-r*c,e[8]=r*o-n*a,e}function Re(e){var t=e[0],r=e[1],n=e[2],i=e[3],a=e[4],o=e[5],s=e[6],u=e[7],c=e[8];return t*(c*a-o*u)+r*(-c*i+o*s)+n*(u*i-a*s)}function ke(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=t[8],d=r[0],l=r[1],h=r[2],m=r[3],p=r[4],b=r[5],g=r[6],v=r[7],w=r[8];return e[0]=d*n+l*o+h*c,e[1]=d*i+l*s+h*f,e[2]=d*a+l*u+h*_,e[3]=m*n+p*o+b*c,e[4]=m*i+p*s+b*f,e[5]=m*a+p*u+b*_,e[6]=g*n+v*o+w*c,e[7]=g*i+v*s+w*f,e[8]=g*a+v*u+w*_,e}function Fe(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=t[8],d=r[0],l=r[1];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=u,e[6]=d*n+l*o+c,e[7]=d*i+l*s+f,e[8]=d*a+l*u+_,e}function Se(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=t[8],d=Math.sin(r),l=Math.cos(r);return e[0]=l*n+d*o,e[1]=l*i+d*s,e[2]=l*a+d*u,e[3]=l*o-d*n,e[4]=l*s-d*i,e[5]=l*u-d*a,e[6]=c,e[7]=f,e[8]=_,e}function Le(e,t,r){var n=r[0],i=r[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=i*t[3],e[4]=i*t[4],e[5]=i*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Ie(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Pe(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=-r,e[4]=n,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Oe(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function ze(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function Ue(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r+r,s=n+n,u=i+i,c=r*o,f=n*o,_=n*s,d=i*o,l=i*s,h=i*u,m=a*o,p=a*s,b=a*u;return e[0]=1-_-h,e[3]=f-b,e[6]=d+p,e[1]=f+b,e[4]=1-c-h,e[7]=l-m,e[2]=d-p,e[5]=l+m,e[8]=1-c-_,e}function Ce(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],m=t[13],p=t[14],b=t[15],g=r*s-n*o,v=r*u-i*o,w=r*c-a*o,y=n*u-i*s,M=n*c-a*s,E=i*c-a*u,A=f*m-_*h,x=f*p-d*h,T=f*b-l*h,R=_*p-d*m,k=_*b-l*m,F=d*b-l*p,S=g*F-v*k+w*R+y*T-M*x+E*A;return S?(S=1/S,e[0]=(s*F-u*k+c*R)*S,e[1]=(u*T-o*F-c*x)*S,e[2]=(o*k-s*T+c*A)*S,e[3]=(i*k-n*F-a*R)*S,e[4]=(r*F-i*T+a*x)*S,e[5]=(n*T-r*k-a*A)*S,e[6]=(m*E-p*M+b*y)*S,e[7]=(p*w-h*E-b*v)*S,e[8]=(h*M-m*w+b*g)*S,e):null}function De(e,t,r){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/r,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Be(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function Ve(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Ne(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e}function qe(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e}function Ge(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e}function je(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e}function He(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function We(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],f=e[8],_=t[0],d=t[1],h=t[2],m=t[3],p=t[4],b=t[5],g=t[6],v=t[7],w=t[8];return Math.abs(r-_)<=l*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-d)<=l*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-h)<=l*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(a-m)<=l*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(o-p)<=l*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(s-b)<=l*Math.max(1,Math.abs(s),Math.abs(b))&&Math.abs(u-g)<=l*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(c-v)<=l*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(f-w)<=l*Math.max(1,Math.abs(f),Math.abs(w))}var Xe=ke,Ye=qe;function Ze(){var e=new h(16);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function $e(e){var t=new h(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ke(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Je(e,t,r,n,i,a,o,s,u,c,f,_,d,l,m,p){var b=new h(16);return b[0]=e,b[1]=t,b[2]=r,b[3]=n,b[4]=i,b[5]=a,b[6]=o,b[7]=s,b[8]=u,b[9]=c,b[10]=f,b[11]=_,b[12]=d,b[13]=l,b[14]=m,b[15]=p,b}function Qe(e,t,r,n,i,a,o,s,u,c,f,_,d,l,h,m,p){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=a,e[5]=o,e[6]=s,e[7]=u,e[8]=c,e[9]=f,e[10]=_,e[11]=d,e[12]=l,e[13]=h,e[14]=m,e[15]=p,e}function et(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function tt(e,t){if(e===t){var r=t[1],n=t[2],i=t[3],a=t[6],o=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=a,e[11]=t[14],e[12]=i,e[13]=o,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function rt(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],m=t[13],p=t[14],b=t[15],g=r*s-n*o,v=r*u-i*o,w=r*c-a*o,y=n*u-i*s,M=n*c-a*s,E=i*c-a*u,A=f*m-_*h,x=f*p-d*h,T=f*b-l*h,R=_*p-d*m,k=_*b-l*m,F=d*b-l*p,S=g*F-v*k+w*R+y*T-M*x+E*A;return S?(S=1/S,e[0]=(s*F-u*k+c*R)*S,e[1]=(i*k-n*F-a*R)*S,e[2]=(m*E-p*M+b*y)*S,e[3]=(d*M-_*E-l*y)*S,e[4]=(u*T-o*F-c*x)*S,e[5]=(r*F-i*T+a*x)*S,e[6]=(p*w-h*E-b*v)*S,e[7]=(f*E-d*w+l*v)*S,e[8]=(o*k-s*T+c*A)*S,e[9]=(n*T-r*k-a*A)*S,e[10]=(h*M-m*w+b*g)*S,e[11]=(_*w-f*M-l*g)*S,e[12]=(s*x-o*R-u*A)*S,e[13]=(r*R-n*x+i*A)*S,e[14]=(m*v-h*y-p*g)*S,e[15]=(f*y-_*v+d*g)*S,e):null}function nt(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],u=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],m=t[13],p=t[14],b=t[15];return e[0]=s*(d*b-l*p)-_*(u*b-c*p)+m*(u*l-c*d),e[1]=-(n*(d*b-l*p)-_*(i*b-a*p)+m*(i*l-a*d)),e[2]=n*(u*b-c*p)-s*(i*b-a*p)+m*(i*c-a*u),e[3]=-(n*(u*l-c*d)-s*(i*l-a*d)+_*(i*c-a*u)),e[4]=-(o*(d*b-l*p)-f*(u*b-c*p)+h*(u*l-c*d)),e[5]=r*(d*b-l*p)-f*(i*b-a*p)+h*(i*l-a*d),e[6]=-(r*(u*b-c*p)-o*(i*b-a*p)+h*(i*c-a*u)),e[7]=r*(u*l-c*d)-o*(i*l-a*d)+f*(i*c-a*u),e[8]=o*(_*b-l*m)-f*(s*b-c*m)+h*(s*l-c*_),e[9]=-(r*(_*b-l*m)-f*(n*b-a*m)+h*(n*l-a*_)),e[10]=r*(s*b-c*m)-o*(n*b-a*m)+h*(n*c-a*s),e[11]=-(r*(s*l-c*_)-o*(n*l-a*_)+f*(n*c-a*s)),e[12]=-(o*(_*p-d*m)-f*(s*p-u*m)+h*(s*d-u*_)),e[13]=r*(_*p-d*m)-f*(n*p-i*m)+h*(n*d-i*_),e[14]=-(r*(s*p-u*m)-o*(n*p-i*m)+h*(n*u-i*s)),e[15]=r*(s*d-u*_)-o*(n*d-i*_)+f*(n*u-i*s),e}function it(e){var t=e[0],r=e[1],n=e[2],i=e[3],a=e[4],o=e[5],s=e[6],u=e[7],c=e[8],f=e[9],_=e[10],d=e[11],l=e[12],h=e[13],m=e[14],p=e[15];return(t*o-r*a)*(_*p-d*m)-(t*s-n*a)*(f*p-d*h)+(t*u-i*a)*(f*m-_*h)+(r*s-n*o)*(c*p-d*l)-(r*u-i*o)*(c*m-_*l)+(n*u-i*s)*(c*h-f*l)}function at(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=t[8],d=t[9],l=t[10],h=t[11],m=t[12],p=t[13],b=t[14],g=t[15],v=r[0],w=r[1],y=r[2],M=r[3];return e[0]=v*n+w*s+y*_+M*m,e[1]=v*i+w*u+y*d+M*p,e[2]=v*a+w*c+y*l+M*b,e[3]=v*o+w*f+y*h+M*g,v=r[4],w=r[5],y=r[6],M=r[7],e[4]=v*n+w*s+y*_+M*m,e[5]=v*i+w*u+y*d+M*p,e[6]=v*a+w*c+y*l+M*b,e[7]=v*o+w*f+y*h+M*g,v=r[8],w=r[9],y=r[10],M=r[11],e[8]=v*n+w*s+y*_+M*m,e[9]=v*i+w*u+y*d+M*p,e[10]=v*a+w*c+y*l+M*b,e[11]=v*o+w*f+y*h+M*g,v=r[12],w=r[13],y=r[14],M=r[15],e[12]=v*n+w*s+y*_+M*m,e[13]=v*i+w*u+y*d+M*p,e[14]=v*a+w*c+y*l+M*b,e[15]=v*o+w*f+y*h+M*g,e}function ot(e,t,r){var n,i,a,o,s,u,c,f,_,d,l,h,m=r[0],p=r[1],b=r[2];return t===e?(e[12]=t[0]*m+t[4]*p+t[8]*b+t[12],e[13]=t[1]*m+t[5]*p+t[9]*b+t[13],e[14]=t[2]*m+t[6]*p+t[10]*b+t[14],e[15]=t[3]*m+t[7]*p+t[11]*b+t[15]):(n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=t[8],d=t[9],l=t[10],h=t[11],e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=u,e[6]=c,e[7]=f,e[8]=_,e[9]=d,e[10]=l,e[11]=h,e[12]=n*m+s*p+_*b+t[12],e[13]=i*m+u*p+d*b+t[13],e[14]=a*m+c*p+l*b+t[14],e[15]=o*m+f*p+h*b+t[15]),e}function st(e,t,r){var n=r[0],i=r[1],a=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function ut(e,t,r,n){var i,a,o,s,u,c,f,_,d,h,m,p,b,g,v,w,y,M,E,A,x,T,R,k,F=n[0],S=n[1],L=n[2],I=Math.hypot(F,S,L);return I<l?null:(F*=I=1/I,S*=I,L*=I,i=Math.sin(r),o=1-(a=Math.cos(r)),s=t[0],u=t[1],c=t[2],f=t[3],_=t[4],d=t[5],h=t[6],m=t[7],p=t[8],b=t[9],g=t[10],v=t[11],w=F*F*o+a,y=S*F*o+L*i,M=L*F*o-S*i,E=F*S*o-L*i,A=S*S*o+a,x=L*S*o+F*i,T=F*L*o+S*i,R=S*L*o-F*i,k=L*L*o+a,e[0]=s*w+_*y+p*M,e[1]=u*w+d*y+b*M,e[2]=c*w+h*y+g*M,e[3]=f*w+m*y+v*M,e[4]=s*E+_*A+p*x,e[5]=u*E+d*A+b*x,e[6]=c*E+h*A+g*x,e[7]=f*E+m*A+v*x,e[8]=s*T+_*R+p*k,e[9]=u*T+d*R+b*k,e[10]=c*T+h*R+g*k,e[11]=f*T+m*R+v*k,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function ct(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[4],o=t[5],s=t[6],u=t[7],c=t[8],f=t[9],_=t[10],d=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+c*n,e[5]=o*i+f*n,e[6]=s*i+_*n,e[7]=u*i+d*n,e[8]=c*i-a*n,e[9]=f*i-o*n,e[10]=_*i-s*n,e[11]=d*i-u*n,e}function ft(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],u=t[3],c=t[8],f=t[9],_=t[10],d=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-c*n,e[1]=o*i-f*n,e[2]=s*i-_*n,e[3]=u*i-d*n,e[8]=a*n+c*i,e[9]=o*n+f*i,e[10]=s*n+_*i,e[11]=u*n+d*i,e}function _t(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],u=t[3],c=t[4],f=t[5],_=t[6],d=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+c*n,e[1]=o*i+f*n,e[2]=s*i+_*n,e[3]=u*i+d*n,e[4]=c*i-a*n,e[5]=f*i-o*n,e[6]=_*i-s*n,e[7]=d*i-u*n,e}function dt(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function lt(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ht(e,t,r){var n,i,a,o=r[0],s=r[1],u=r[2],c=Math.hypot(o,s,u);return c<l?null:(o*=c=1/c,s*=c,u*=c,n=Math.sin(t),a=1-(i=Math.cos(t)),e[0]=o*o*a+i,e[1]=s*o*a+u*n,e[2]=u*o*a-s*n,e[3]=0,e[4]=o*s*a-u*n,e[5]=s*s*a+i,e[6]=u*s*a+o*n,e[7]=0,e[8]=o*u*a+s*n,e[9]=s*u*a-o*n,e[10]=u*u*a+i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function mt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function pt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function bt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function gt(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=n+n,u=i+i,c=a+a,f=n*s,_=n*u,d=n*c,l=i*u,h=i*c,m=a*c,p=o*s,b=o*u,g=o*c;return e[0]=1-(l+m),e[1]=_+g,e[2]=d-b,e[3]=0,e[4]=_-g,e[5]=1-(f+m),e[6]=h+p,e[7]=0,e[8]=d+b,e[9]=h-p,e[10]=1-(f+l),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function vt(e,t){var r=new h(3),n=-t[0],i=-t[1],a=-t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=n*n+i*i+a*a+o*o;return _>0?(r[0]=2*(s*o+f*n+u*a-c*i)/_,r[1]=2*(u*o+f*i+c*n-s*a)/_,r[2]=2*(c*o+f*a+s*i-u*n)/_):(r[0]=2*(s*o+f*n+u*a-c*i),r[1]=2*(u*o+f*i+c*n-s*a),r[2]=2*(c*o+f*a+s*i-u*n)),gt(e,t,r),e}function wt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function yt(e,t){var r=t[0],n=t[1],i=t[2],a=t[4],o=t[5],s=t[6],u=t[8],c=t[9],f=t[10];return e[0]=Math.hypot(r,n,i),e[1]=Math.hypot(a,o,s),e[2]=Math.hypot(u,c,f),e}function Mt(e,t){var r=new h(3);yt(r,t);var n=1/r[0],i=1/r[1],a=1/r[2],o=t[0]*n,s=t[1]*i,u=t[2]*a,c=t[4]*n,f=t[5]*i,_=t[6]*a,d=t[8]*n,l=t[9]*i,m=t[10]*a,p=o+f+m,b=0;return p>0?(b=2*Math.sqrt(p+1),e[3]=.25*b,e[0]=(_-l)/b,e[1]=(d-u)/b,e[2]=(s-c)/b):o>f&&o>m?(b=2*Math.sqrt(1+o-f-m),e[3]=(_-l)/b,e[0]=.25*b,e[1]=(s+c)/b,e[2]=(d+u)/b):f>m?(b=2*Math.sqrt(1+f-o-m),e[3]=(d-u)/b,e[0]=(s+c)/b,e[1]=.25*b,e[2]=(_+l)/b):(b=2*Math.sqrt(1+m-o-f),e[3]=(s-c)/b,e[0]=(d+u)/b,e[1]=(_+l)/b,e[2]=.25*b),e}function Et(e,t,r,n){var i=t[0],a=t[1],o=t[2],s=t[3],u=i+i,c=a+a,f=o+o,_=i*u,d=i*c,l=i*f,h=a*c,m=a*f,p=o*f,b=s*u,g=s*c,v=s*f,w=n[0],y=n[1],M=n[2];return e[0]=(1-(h+p))*w,e[1]=(d+v)*w,e[2]=(l-g)*w,e[3]=0,e[4]=(d-v)*y,e[5]=(1-(_+p))*y,e[6]=(m+b)*y,e[7]=0,e[8]=(l+g)*M,e[9]=(m-b)*M,e[10]=(1-(_+h))*M,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function At(e,t,r,n,i){var a=t[0],o=t[1],s=t[2],u=t[3],c=a+a,f=o+o,_=s+s,d=a*c,l=a*f,h=a*_,m=o*f,p=o*_,b=s*_,g=u*c,v=u*f,w=u*_,y=n[0],M=n[1],E=n[2],A=i[0],x=i[1],T=i[2],R=(1-(m+b))*y,k=(l+w)*y,F=(h-v)*y,S=(l-w)*M,L=(1-(d+b))*M,I=(p+g)*M,P=(h+v)*E,O=(p-g)*E,z=(1-(d+m))*E;return e[0]=R,e[1]=k,e[2]=F,e[3]=0,e[4]=S,e[5]=L,e[6]=I,e[7]=0,e[8]=P,e[9]=O,e[10]=z,e[11]=0,e[12]=r[0]+A-(R*A+S*x+P*T),e[13]=r[1]+x-(k*A+L*x+O*T),e[14]=r[2]+T-(F*A+I*x+z*T),e[15]=1,e}function xt(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r+r,s=n+n,u=i+i,c=r*o,f=n*o,_=n*s,d=i*o,l=i*s,h=i*u,m=a*o,p=a*s,b=a*u;return e[0]=1-_-h,e[1]=f+b,e[2]=d-p,e[3]=0,e[4]=f-b,e[5]=1-c-h,e[6]=l+m,e[7]=0,e[8]=d+p,e[9]=l-m,e[10]=1-c-_,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Tt(e,t,r,n,i,a,o){var s=1/(r-t),u=1/(i-n),c=1/(a-o);return e[0]=2*a*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*a*u,e[6]=0,e[7]=0,e[8]=(r+t)*s,e[9]=(i+n)*u,e[10]=(o+a)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*a*2*c,e[15]=0,e}function Rt(e,t,r,n,i){var a,o=1/Math.tan(t/2);return e[0]=o/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=i&&i!==1/0?(a=1/(n-i),e[10]=(i+n)*a,e[14]=2*i*n*a):(e[10]=-1,e[14]=-2*n),e}function kt(e,t,r,n){var i=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),u=2/(o+s),c=2/(i+a);return e[0]=u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(o-s)*u*.5,e[9]=(i-a)*c*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function Ft(e,t,r,n,i,a,o){var s=1/(t-r),u=1/(n-i),c=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+r)*s,e[13]=(i+n)*u,e[14]=(o+a)*c,e[15]=1,e}function St(e,t,r,n){var i,a,o,s,u,c,f,_,d,h,m=t[0],p=t[1],b=t[2],g=n[0],v=n[1],w=n[2],y=r[0],M=r[1],E=r[2];return Math.abs(m-y)<l&&Math.abs(p-M)<l&&Math.abs(b-E)<l?et(e):(f=m-y,_=p-M,d=b-E,i=v*(d*=h=1/Math.hypot(f,_,d))-w*(_*=h),a=w*(f*=h)-g*d,o=g*_-v*f,(h=Math.hypot(i,a,o))?(i*=h=1/h,a*=h,o*=h):(i=0,a=0,o=0),s=_*o-d*a,u=d*i-f*o,c=f*a-_*i,(h=Math.hypot(s,u,c))?(s*=h=1/h,u*=h,c*=h):(s=0,u=0,c=0),e[0]=i,e[1]=s,e[2]=f,e[3]=0,e[4]=a,e[5]=u,e[6]=_,e[7]=0,e[8]=o,e[9]=c,e[10]=d,e[11]=0,e[12]=-(i*m+a*p+o*b),e[13]=-(s*m+u*p+c*b),e[14]=-(f*m+_*p+d*b),e[15]=1,e)}function Lt(e,t,r,n){var i=t[0],a=t[1],o=t[2],s=n[0],u=n[1],c=n[2],f=i-r[0],_=a-r[1],d=o-r[2],l=f*f+_*_+d*d;l>0&&(f*=l=1/Math.sqrt(l),_*=l,d*=l);var h=u*d-c*_,m=c*f-s*d,p=s*_-u*f;return(l=h*h+m*m+p*p)>0&&(h*=l=1/Math.sqrt(l),m*=l,p*=l),e[0]=h,e[1]=m,e[2]=p,e[3]=0,e[4]=_*p-d*m,e[5]=d*h-f*p,e[6]=f*m-_*h,e[7]=0,e[8]=f,e[9]=_,e[10]=d,e[11]=0,e[12]=i,e[13]=a,e[14]=o,e[15]=1,e}function It(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Pt(e){return Math.hypot(e[0],e[1],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Ot(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function zt(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function Ut(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function Ct(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function Dt(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Bt(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],f=e[8],_=e[9],d=e[10],h=e[11],m=e[12],p=e[13],b=e[14],g=e[15],v=t[0],w=t[1],y=t[2],M=t[3],E=t[4],A=t[5],x=t[6],T=t[7],R=t[8],k=t[9],F=t[10],S=t[11],L=t[12],I=t[13],P=t[14],O=t[15];return Math.abs(r-v)<=l*Math.max(1,Math.abs(r),Math.abs(v))&&Math.abs(n-w)<=l*Math.max(1,Math.abs(n),Math.abs(w))&&Math.abs(i-y)<=l*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(a-M)<=l*Math.max(1,Math.abs(a),Math.abs(M))&&Math.abs(o-E)<=l*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(s-A)<=l*Math.max(1,Math.abs(s),Math.abs(A))&&Math.abs(u-x)<=l*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-T)<=l*Math.max(1,Math.abs(c),Math.abs(T))&&Math.abs(f-R)<=l*Math.max(1,Math.abs(f),Math.abs(R))&&Math.abs(_-k)<=l*Math.max(1,Math.abs(_),Math.abs(k))&&Math.abs(d-F)<=l*Math.max(1,Math.abs(d),Math.abs(F))&&Math.abs(h-S)<=l*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(m-L)<=l*Math.max(1,Math.abs(m),Math.abs(L))&&Math.abs(p-I)<=l*Math.max(1,Math.abs(p),Math.abs(I))&&Math.abs(b-P)<=l*Math.max(1,Math.abs(b),Math.abs(P))&&Math.abs(g-O)<=l*Math.max(1,Math.abs(g),Math.abs(O))}var Vt=at,Nt=zt;function qt(){var e=new h(3);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Gt(e){var t=new h(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function jt(e){var t=e[0],r=e[1],n=e[2];return Math.hypot(t,r,n)}function Ht(e,t,r){var n=new h(3);return n[0]=e,n[1]=t,n[2]=r,n}function Wt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Xt(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Yt(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Zt(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function $t(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Kt(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Jt(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Qt(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function er(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function tr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function rr(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function nr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ir(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function ar(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return Math.hypot(r,n,i)}function or(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return r*r+n*n+i*i}function sr(e){var t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function ur(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function cr(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function fr(e,t){var r=t[0],n=t[1],i=t[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function _r(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function dr(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2];return e[0]=i*u-a*s,e[1]=a*o-n*u,e[2]=n*s-i*o,e}function lr(e,t,r,n){var i=t[0],a=t[1],o=t[2];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e[2]=o+n*(r[2]-o),e}function hr(e,t,r,n,i,a){var o=a*a,s=o*(2*a-3)+1,u=o*(a-2)+a,c=o*(a-1),f=o*(3-2*a);return e[0]=t[0]*s+r[0]*u+n[0]*c+i[0]*f,e[1]=t[1]*s+r[1]*u+n[1]*c+i[1]*f,e[2]=t[2]*s+r[2]*u+n[2]*c+i[2]*f,e}function mr(e,t,r,n,i,a){var o=1-a,s=o*o,u=a*a,c=s*o,f=3*a*s,_=3*u*o,d=u*a;return e[0]=t[0]*c+r[0]*f+n[0]*_+i[0]*d,e[1]=t[1]*c+r[1]*f+n[1]*_+i[1]*d,e[2]=t[2]*c+r[2]*f+n[2]*_+i[2]*d,e}function pr(e,t){t=t||1;var r=2*m()*Math.PI,n=2*m()-1,i=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*i,e[1]=Math.sin(r)*i,e[2]=n*t,e}function br(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,e}function gr(e,t,r){var n=t[0],i=t[1],a=t[2];return e[0]=n*r[0]+i*r[3]+a*r[6],e[1]=n*r[1]+i*r[4]+a*r[7],e[2]=n*r[2]+i*r[5]+a*r[8],e}function vr(e,t,r){var n=r[0],i=r[1],a=r[2],o=r[3],s=t[0],u=t[1],c=t[2],f=i*c-a*u,_=a*s-n*c,d=n*u-i*s,l=i*d-a*_,h=a*f-n*d,m=n*_-i*f,p=2*o;return f*=p,_*=p,d*=p,l*=2,h*=2,m*=2,e[0]=s+f+l,e[1]=u+_+h,e[2]=c+d+m,e}function wr(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e}function yr(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e}function Mr(e,t,r,n){var i=[],a=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e}function Er(e,t){var r=Ht(e[0],e[1],e[2]),n=Ht(t[0],t[1],t[2]);fr(r,r),fr(n,n);var i=_r(r,n);return i>1?0:i<-1?Math.PI:Math.acos(i)}function Ar(e){return e[0]=0,e[1]=0,e[2]=0,e}function xr(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Tr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Rr(e,t){var r=e[0],n=e[1],i=e[2],a=t[0],o=t[1],s=t[2];return Math.abs(r-a)<=l*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-o)<=l*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-s)<=l*Math.max(1,Math.abs(i),Math.abs(s))}var kr,Fr=Zt,Sr=$t,Lr=Kt,Ir=ar,Pr=or,Or=jt,zr=sr,Ur=(kr=qt(),function(e,t,r,n,i,a){var o,s;for(t||(t=3),r||(r=0),s=n?Math.min(n*t+r,e.length):e.length,o=r;o<s;o+=t)kr[0]=e[o],kr[1]=e[o+1],kr[2]=e[o+2],i(kr,kr,a),e[o]=kr[0],e[o+1]=kr[1],e[o+2]=kr[2];return e});function Cr(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Dr(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Br(e,t,r,n){var i=new h(4);return i[0]=e,i[1]=t,i[2]=r,i[3]=n,i}function Vr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Nr(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function qr(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function Gr(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function jr(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e}function Hr(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e}function Wr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function Xr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function Yr(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e}function Zr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e}function $r(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e[3]=Math.round(t[3]),e}function Kr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function Jr(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}function Qr(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],a=t[3]-e[3];return Math.hypot(r,n,i,a)}function en(e,t){var r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],a=t[3]-e[3];return r*r+n*n+i*i+a*a}function tn(e){var t=e[0],r=e[1],n=e[2],i=e[3];return Math.hypot(t,r,n,i)}function rn(e){var t=e[0],r=e[1],n=e[2],i=e[3];return t*t+r*r+n*n+i*i}function nn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function an(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function on(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r*r+n*n+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=n*o,e[2]=i*o,e[3]=a*o,e}function sn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function un(e,t,r,n){var i=r[0]*n[1]-r[1]*n[0],a=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],s=r[1]*n[2]-r[2]*n[1],u=r[1]*n[3]-r[3]*n[1],c=r[2]*n[3]-r[3]*n[2],f=t[0],_=t[1],d=t[2],l=t[3];return e[0]=_*c-d*u+l*s,e[1]=-f*c+d*o-l*a,e[2]=f*u-_*o+l*i,e[3]=-f*s+_*a-d*i,e}function cn(e,t,r,n){var i=t[0],a=t[1],o=t[2],s=t[3];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e[2]=o+n*(r[2]-o),e[3]=s+n*(r[3]-s),e}function fn(e,t){var r,n,i,a,o,s;t=t||1;do{o=(r=2*m()-1)*r+(n=2*m()-1)*n}while(o>=1);do{s=(i=2*m()-1)*i+(a=2*m()-1)*a}while(s>=1);var u=Math.sqrt((1-o)/s);return e[0]=t*r,e[1]=t*n,e[2]=t*i*u,e[3]=t*a*u,e}function _n(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,e[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,e[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,e[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,e}function dn(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2],c=r[3],f=c*n+s*a-u*i,_=c*i+u*n-o*a,d=c*a+o*i-s*n,l=-o*n-s*i-u*a;return e[0]=f*c+l*-o+_*-u-d*-s,e[1]=_*c+l*-s+d*-o-f*-u,e[2]=d*c+l*-u+f*-s-_*-o,e[3]=t[3],e}function ln(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function hn(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function mn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function pn(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=t[0],s=t[1],u=t[2],c=t[3];return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=l*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-u)<=l*Math.max(1,Math.abs(i),Math.abs(u))&&Math.abs(a-c)<=l*Math.max(1,Math.abs(a),Math.abs(c))}var bn=Gr,gn=jr,vn=Hr,wn=Qr,yn=en,Mn=tn,En=rn,An=function(){var e=Cr();return function(t,r,n,i,a,o){var s,u;for(r||(r=4),n||(n=0),u=i?Math.min(i*r+n,t.length):t.length,s=n;s<u;s+=r)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}}();function xn(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Tn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Rn(e,t,r){r*=.5;var n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e}function kn(e,t){var r=2*Math.acos(t[3]),n=Math.sin(r/2);return n>l?(e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n):(e[0]=1,e[1]=0,e[2]=0),r}function Fn(e,t){var r=ii(e,t);return Math.acos(2*r*r-1)}function Sn(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[0],u=r[1],c=r[2],f=r[3];return e[0]=n*f+o*s+i*c-a*u,e[1]=i*f+o*u+a*s-n*c,e[2]=a*f+o*c+n*u-i*s,e[3]=o*f-n*s-i*u-a*c,e}function Ln(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),u=Math.cos(r);return e[0]=n*u+o*s,e[1]=i*u+a*s,e[2]=a*u-i*s,e[3]=o*u-n*s,e}function In(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),u=Math.cos(r);return e[0]=n*u-a*s,e[1]=i*u+o*s,e[2]=a*u+n*s,e[3]=o*u-i*s,e}function Pn(e,t,r){r*=.5;var n=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(r),u=Math.cos(r);return e[0]=n*u+i*s,e[1]=i*u-n*s,e[2]=a*u+o*s,e[3]=o*u-a*s,e}function On(e,t){var r=t[0],n=t[1],i=t[2];return e[0]=r,e[1]=n,e[2]=i,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i)),e}function zn(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=Math.sqrt(r*r+n*n+i*i),s=Math.exp(a),u=o>0?s*Math.sin(o)/o:0;return e[0]=r*u,e[1]=n*u,e[2]=i*u,e[3]=s*Math.cos(o),e}function Un(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=Math.sqrt(r*r+n*n+i*i),s=o>0?Math.atan2(o,a)/o:0;return e[0]=r*s,e[1]=n*s,e[2]=i*s,e[3]=.5*Math.log(r*r+n*n+i*i+a*a),e}function Cn(e,t,r){return Un(e,t),ni(e,e,r),zn(e,e),e}function Dn(e,t,r,n){var i,a,o,s,u,c=t[0],f=t[1],_=t[2],d=t[3],h=r[0],m=r[1],p=r[2],b=r[3];return(a=c*h+f*m+_*p+d*b)<0&&(a=-a,h=-h,m=-m,p=-p,b=-b),1-a>l?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,u=Math.sin(n*i)/o):(s=1-n,u=n),e[0]=s*c+u*h,e[1]=s*f+u*m,e[2]=s*_+u*p,e[3]=s*d+u*b,e}function Bn(e){var t=m(),r=m(),n=m(),i=Math.sqrt(1-t),a=Math.sqrt(t);return e[0]=i*Math.sin(2*Math.PI*r),e[1]=i*Math.cos(2*Math.PI*r),e[2]=a*Math.sin(2*Math.PI*n),e[3]=a*Math.cos(2*Math.PI*n),e}function Vn(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r*r+n*n+i*i+a*a,s=o?1/o:0;return e[0]=-r*s,e[1]=-n*s,e[2]=-i*s,e[3]=a*s,e}function Nn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function qn(e,t){var r,n=t[0]+t[4]+t[8];if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var i=0;t[4]>t[0]&&(i=1),t[8]>t[3*i+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[3*i+i]-t[3*a+a]-t[3*o+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[3*a+o]-t[3*o+a])*r,e[a]=(t[3*a+i]+t[3*i+a])*r,e[o]=(t[3*o+i]+t[3*i+o])*r}return e}function Gn(e,t,r,n){var i=.5*Math.PI/180;t*=i,r*=i,n*=i;var a=Math.sin(t),o=Math.cos(t),s=Math.sin(r),u=Math.cos(r),c=Math.sin(n),f=Math.cos(n);return e[0]=a*u*f-o*s*c,e[1]=o*s*f+a*u*c,e[2]=o*u*c-a*s*f,e[3]=o*u*f+a*s*c,e}function jn(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Hn,Wn,Xn,Yn,Zn,$n,Kn=Dr,Jn=Br,Qn=Vr,ei=Nr,ti=qr,ri=Sn,ni=Kr,ii=sn,ai=cn,oi=tn,si=oi,ui=rn,ci=ui,fi=on,_i=mn,di=pn,li=(Hn=qt(),Wn=Ht(1,0,0),Xn=Ht(0,1,0),function(e,t,r){var n=_r(t,r);return n<-.999999?(dr(Hn,Wn,t),Or(Hn)<1e-6&&dr(Hn,Xn,t),fr(Hn,Hn),Rn(e,Hn,Math.PI),e):n>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(dr(Hn,t,r),e[0]=Hn[0],e[1]=Hn[1],e[2]=Hn[2],e[3]=1+n,fi(e,e))}),hi=(Yn=xn(),Zn=xn(),function(e,t,r,n,i,a){return Dn(Yn,t,i,a),Dn(Zn,r,n,a),Dn(e,Yn,Zn,2*a*(1-a)),e}),mi=($n=be(),function(e,t,r,n){return $n[0]=r[0],$n[3]=r[1],$n[6]=r[2],$n[1]=n[0],$n[4]=n[1],$n[7]=n[2],$n[2]=-t[0],$n[5]=-t[1],$n[8]=-t[2],fi(e,qn(e,$n))});function pi(){var e=new h(8);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0),e[3]=1,e}function bi(e){var t=new h(8);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function gi(e,t,r,n,i,a,o,s){var u=new h(8);return u[0]=e,u[1]=t,u[2]=r,u[3]=n,u[4]=i,u[5]=a,u[6]=o,u[7]=s,u}function vi(e,t,r,n,i,a,o){var s=new h(8);s[0]=e,s[1]=t,s[2]=r,s[3]=n;var u=.5*i,c=.5*a,f=.5*o;return s[4]=u*n+c*r-f*t,s[5]=c*n+f*e-u*r,s[6]=f*n+u*t-c*e,s[7]=-u*e-c*t-f*r,s}function wi(e,t,r){var n=.5*r[0],i=.5*r[1],a=.5*r[2],o=t[0],s=t[1],u=t[2],c=t[3];return e[0]=o,e[1]=s,e[2]=u,e[3]=c,e[4]=n*c+i*u-a*s,e[5]=i*c+a*o-n*u,e[6]=a*c+n*s-i*o,e[7]=-n*o-i*s-a*u,e}function yi(e,t){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=.5*t[0],e[5]=.5*t[1],e[6]=.5*t[2],e[7]=0,e}function Mi(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Ei(e,t){var r=xn();Mt(r,t);var n=new h(3);return wt(n,t),wi(e,r,n),e}function Ai(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e}function xi(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Ti(e,t,r,n,i,a,o,s,u){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=a,e[5]=o,e[6]=s,e[7]=u,e}var Ri=Qn;function ki(e,t){return e[0]=t[4],e[1]=t[5],e[2]=t[6],e[3]=t[7],e}var Fi=Qn;function Si(e,t){return e[4]=t[0],e[5]=t[1],e[6]=t[2],e[7]=t[3],e}function Li(e,t){var r=t[4],n=t[5],i=t[6],a=t[7],o=-t[0],s=-t[1],u=-t[2],c=t[3];return e[0]=2*(r*c+a*o+n*u-i*s),e[1]=2*(n*c+a*s+i*o-r*u),e[2]=2*(i*c+a*u+r*s-n*o),e}function Ii(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=.5*r[0],u=.5*r[1],c=.5*r[2],f=t[4],_=t[5],d=t[6],l=t[7];return e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=o*s+i*c-a*u+f,e[5]=o*u+a*s-n*c+_,e[6]=o*c+n*u-i*s+d,e[7]=-n*s-i*u-a*c+l,e}function Pi(e,t,r){var n=-t[0],i=-t[1],a=-t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=s*o+f*n+u*a-c*i,d=u*o+f*i+c*n-s*a,l=c*o+f*a+s*i-u*n,h=f*o-s*n-u*i-c*a;return Ln(e,t,r),n=e[0],i=e[1],a=e[2],o=e[3],e[4]=_*o+h*n+d*a-l*i,e[5]=d*o+h*i+l*n-_*a,e[6]=l*o+h*a+_*i-d*n,e[7]=h*o-_*n-d*i-l*a,e}function Oi(e,t,r){var n=-t[0],i=-t[1],a=-t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=s*o+f*n+u*a-c*i,d=u*o+f*i+c*n-s*a,l=c*o+f*a+s*i-u*n,h=f*o-s*n-u*i-c*a;return In(e,t,r),n=e[0],i=e[1],a=e[2],o=e[3],e[4]=_*o+h*n+d*a-l*i,e[5]=d*o+h*i+l*n-_*a,e[6]=l*o+h*a+_*i-d*n,e[7]=h*o-_*n-d*i-l*a,e}function zi(e,t,r){var n=-t[0],i=-t[1],a=-t[2],o=t[3],s=t[4],u=t[5],c=t[6],f=t[7],_=s*o+f*n+u*a-c*i,d=u*o+f*i+c*n-s*a,l=c*o+f*a+s*i-u*n,h=f*o-s*n-u*i-c*a;return Pn(e,t,r),n=e[0],i=e[1],a=e[2],o=e[3],e[4]=_*o+h*n+d*a-l*i,e[5]=d*o+h*i+l*n-_*a,e[6]=l*o+h*a+_*i-d*n,e[7]=h*o-_*n-d*i-l*a,e}function Ui(e,t,r){var n=r[0],i=r[1],a=r[2],o=r[3],s=t[0],u=t[1],c=t[2],f=t[3];return e[0]=s*o+f*n+u*a-c*i,e[1]=u*o+f*i+c*n-s*a,e[2]=c*o+f*a+s*i-u*n,e[3]=f*o-s*n-u*i-c*a,s=t[4],u=t[5],c=t[6],f=t[7],e[4]=s*o+f*n+u*a-c*i,e[5]=u*o+f*i+c*n-s*a,e[6]=c*o+f*a+s*i-u*n,e[7]=f*o-s*n-u*i-c*a,e}function Ci(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[0],u=r[1],c=r[2],f=r[3];return e[0]=n*f+o*s+i*c-a*u,e[1]=i*f+o*u+a*s-n*c,e[2]=a*f+o*c+n*u-i*s,e[3]=o*f-n*s-i*u-a*c,s=r[4],u=r[5],c=r[6],f=r[7],e[4]=n*f+o*s+i*c-a*u,e[5]=i*f+o*u+a*s-n*c,e[6]=a*f+o*c+n*u-i*s,e[7]=o*f-n*s-i*u-a*c,e}function Di(e,t,r,n){if(Math.abs(n)<l)return Ai(e,t);var i=Math.hypot(r[0],r[1],r[2]);n*=.5;var a=Math.sin(n),o=a*r[0]/i,s=a*r[1]/i,u=a*r[2]/i,c=Math.cos(n),f=t[0],_=t[1],d=t[2],h=t[3];e[0]=f*c+h*o+_*u-d*s,e[1]=_*c+h*s+d*o-f*u,e[2]=d*c+h*u+f*s-_*o,e[3]=h*c-f*o-_*s-d*u;var m=t[4],p=t[5],b=t[6],g=t[7];return e[4]=m*c+g*o+p*u-b*s,e[5]=p*c+g*s+b*o-m*u,e[6]=b*c+g*u+m*s-p*o,e[7]=g*c-m*o-p*s-b*u,e}function Bi(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e}function Vi(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=r[4],u=r[5],c=r[6],f=r[7],_=t[4],d=t[5],l=t[6],h=t[7],m=r[0],p=r[1],b=r[2],g=r[3];return e[0]=n*g+o*m+i*b-a*p,e[1]=i*g+o*p+a*m-n*b,e[2]=a*g+o*b+n*p-i*m,e[3]=o*g-n*m-i*p-a*b,e[4]=n*f+o*s+i*c-a*u+_*g+h*m+d*b-l*p,e[5]=i*f+o*u+a*s-n*c+d*g+h*p+l*m-_*b,e[6]=a*f+o*c+n*u-i*s+l*g+h*b+_*p-d*m,e[7]=o*f-n*s-i*u-a*c+h*g-_*m-d*p-l*b,e}var Ni=Vi;function qi(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e}var Gi=ii;function ji(e,t,r,n){var i=1-n;return Gi(t,r)<0&&(n=-n),e[0]=t[0]*i+r[0]*n,e[1]=t[1]*i+r[1]*n,e[2]=t[2]*i+r[2]*n,e[3]=t[3]*i+r[3]*n,e[4]=t[4]*i+r[4]*n,e[5]=t[5]*i+r[5]*n,e[6]=t[6]*i+r[6]*n,e[7]=t[7]*i+r[7]*n,e}function Hi(e,t){var r=Zi(t);return e[0]=-t[0]/r,e[1]=-t[1]/r,e[2]=-t[2]/r,e[3]=t[3]/r,e[4]=-t[4]/r,e[5]=-t[5]/r,e[6]=-t[6]/r,e[7]=t[7]/r,e}function Wi(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=t[7],e}var Xi=oi,Yi=Xi,Zi=ui,$i=Zi;function Ki(e,t){var r=Zi(t);if(r>0){r=Math.sqrt(r);var n=t[0]/r,i=t[1]/r,a=t[2]/r,o=t[3]/r,s=t[4],u=t[5],c=t[6],f=t[7],_=n*s+i*u+a*c+o*f;e[0]=n,e[1]=i,e[2]=a,e[3]=o,e[4]=(s-n*_)/r,e[5]=(u-i*_)/r,e[6]=(c-a*_)/r,e[7]=(f-o*_)/r}return e}function Ji(e){return"quat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+")"}function Qi(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]}function ea(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],c=e[7],f=t[0],_=t[1],d=t[2],h=t[3],m=t[4],p=t[5],b=t[6],g=t[7];return Math.abs(r-f)<=l*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(n-_)<=l*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(i-d)<=l*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(a-h)<=l*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(o-m)<=l*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(s-p)<=l*Math.max(1,Math.abs(s),Math.abs(p))&&Math.abs(u-b)<=l*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(c-g)<=l*Math.max(1,Math.abs(c),Math.abs(g))}function ta(){var e=new h(2);return h!=Float32Array&&(e[0]=0,e[1]=0),e}function ra(e){var t=new h(2);return t[0]=e[0],t[1]=e[1],t}function na(e,t){var r=new h(2);return r[0]=e,r[1]=t,r}function ia(e,t){return e[0]=t[0],e[1]=t[1],e}function aa(e,t,r){return e[0]=t,e[1]=r,e}function oa(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function sa(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function ua(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function ca(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function fa(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function _a(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function da(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function la(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}function ha(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function ma(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function pa(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function ba(e,t){var r=t[0]-e[0],n=t[1]-e[1];return Math.hypot(r,n)}function ga(e,t){var r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function va(e){var t=e[0],r=e[1];return Math.hypot(t,r)}function wa(e){var t=e[0],r=e[1];return t*t+r*r}function ya(e,t){return e[0]=-t[0],e[1]=-t[1],e}function Ma(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function Ea(e,t){var r=t[0],n=t[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e}function Aa(e,t){return e[0]*t[0]+e[1]*t[1]}function xa(e,t,r){var n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e}function Ta(e,t,r,n){var i=t[0],a=t[1];return e[0]=i+n*(r[0]-i),e[1]=a+n*(r[1]-a),e}function Ra(e,t){t=t||1;var r=2*m()*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e}function ka(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e}function Fa(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i+r[4],e[1]=r[1]*n+r[3]*i+r[5],e}function Sa(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[3]*i+r[6],e[1]=r[1]*n+r[4]*i+r[7],e}function La(e,t,r){var n=t[0],i=t[1];return e[0]=r[0]*n+r[4]*i+r[12],e[1]=r[1]*n+r[5]*i+r[13],e}function Ia(e,t,r,n){var i=t[0]-r[0],a=t[1]-r[1],o=Math.sin(n),s=Math.cos(n);return e[0]=i*s-a*o+r[0],e[1]=i*o+a*s+r[1],e}function Pa(e,t){var r=e[0],n=e[1],i=t[0],a=t[1],o=r*r+n*n;o>0&&(o=1/Math.sqrt(o));var s=i*i+a*a;s>0&&(s=1/Math.sqrt(s));var u=(r*i+n*a)*o*s;return u>1?0:u<-1?Math.PI:Math.acos(u)}function Oa(e){return e[0]=0,e[1]=0,e}function za(e){return"vec2("+e[0]+", "+e[1]+")"}function Ua(e,t){return e[0]===t[0]&&e[1]===t[1]}function Ca(e,t){var r=e[0],n=e[1],i=t[0],a=t[1];return Math.abs(r-i)<=l*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=l*Math.max(1,Math.abs(n),Math.abs(a))}var Da=va,Ba=sa,Va=ua,Na=ca,qa=ba,Ga=ga,ja=wa,Ha=function(){var e=ta();return function(t,r,n,i,a,o){var s,u;for(r||(r=2),n||(n=0),u=i?Math.min(i*r+n,t.length):t.length,s=n;s<u;s+=r)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}}()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyScreenCounterRotation=t.Pipeline=void 0;const n=r(30),i=r(1),a=r(5),o=r(31),s=r(32),u=r(9),c=r(10),f=r(0),_=r(13),d=r(7);let l=new Map,h=i.mat4.create();class m{constructor(e,t,r){this._client=e,this._impl=t,this._mgr=r,this.pendingMessages=[],this.cameraTokens=new Map,this.nextCameraToken=1,this.tokensInFlight=0,this.videoTextures=[],this.cameraPixelArrays=[],this._sequenceRecordDeviceAttitudeMatrices=!0,this._sequenceRecorderFirstCameraToken=0,this.onGLContextReset=new c.Event}static create(e,t){let r=e.pipeline_create();return l.set(r,new m(e,r,t)),r}static get(e){return l.get(e)}frameUpdate(e){for(let t of this.pendingMessages)e.processMessages(t),this._mgr.postOutgoingMessage({t:"buf",p:this._impl,d:t},[t]);this.pendingMessages=[],this.cleanOldFrames()}cleanOldFrames(){var e,t;let r=this._client.pipeline_camera_frame_user_data(this._impl);if(r)for(let n of this.cameraTokens)n[0]<r&&(n[1].texture&&this.videoTextures.push(n[1].texture),null===(t=null===(e=n[1].frame)||void 0===e?void 0:e.close)||void 0===t||t.call(e),this.cameraTokens.delete(n[0]))}cameraTokenReturn(e){if(this._sequenceRecorder&&this._sequenceRecordDeviceAttitudeMatrices&&e.token>=this._sequenceRecorderFirstCameraToken){let t=this.cameraTokens.get(e.token);t&&(e.att&&this._sequenceRecorder.appendAttitudeMatrix(e.att),t.data=e.d,this._sequenceRecorder.appendCameraFrame(t))}this.cameraPixelArrays.push(e.d),this.tokensInFlight--}sequenceRecordStart(e){this._sequenceRecorder||(this._sequenceRecorder=new _.SequenceRecorder(e)),this._sequenceRecorder.start(),this._sequenceRecorderFirstCameraToken=this.nextCameraToken}sequenceRecordStop(){var e;null===(e=this._sequenceRecorder)||void 0===e||e.stop()}sequenceRecordData(){var e;return(null===(e=this._sequenceRecorder)||void 0===e?void 0:e.data())||new Uint8Array(0)}sequenceRecordClear(){delete this._sequenceRecorder}sequenceRecordDeviceAttitudeMatrices(e){this._sequenceRecordDeviceAttitudeMatrices=e}getVideoTexture(){return this.videoTextures.pop()}destroy(){this._client.pipeline_destroy(this._impl),l.delete(this._impl)}getCurrentCameraInfo(){let e=this._client.pipeline_camera_frame_user_data(this._impl);if(e)return this.cameraTokens.get(e)}cameraFrameDrawGL(e,t,r){if(!this.glContext)return;let i=this.getCurrentCameraInfo();i&&(this._cameraDraw||(this._cameraDraw=new n.CameraDraw(this.glContext)),this._cameraDraw.drawCameraFrame(e,t,i,!0===r))}glContextLost(){this._cameraDraw&&this._cameraDraw.dispose(),this._faceDraw&&this._faceDraw.dispose(),this._faceProjectDraw&&this._faceProjectDraw.dispose(),delete this._cameraDraw,delete this._faceDraw,delete this._faceProjectDraw,u.disposeDrawPlane(),this.onGLContextReset.emit();for(let e of this.videoTextures)this.glContext&&this.glContext.deleteTexture(e);this.videoTextures=[];for(let e of this.cameraTokens)this.glContext&&e[1].texture&&this.glContext.deleteTexture(e[1].texture),e[1].texture=void 0;this.glContext=void 0}glContextSet(e,t){this.glContextLost(),this.glContext=e,t=t||[];for(let r=0;r<4;r++){let n=t[r]||e.createTexture();n&&(e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),this.videoTextures.push(n))}e.bindTexture(e.TEXTURE_2D,null)}drawFace(e,t,r,n){if(!this.glContext)return;this._faceDraw||(this._faceDraw=new o.FaceDraw(this.glContext));let a=i.mat4.create();i.mat4.multiply(a,e,t),i.mat4.multiply(a,a,r),this._faceDraw.drawFace(a,n)}drawFaceProject(e,t,r,n,i,a){this.glContext&&(this._faceProjectDraw||(this._faceProjectDraw=new s.FaceDrawProject(this.glContext)),this._faceProjectDraw.drawFace(e,t,r,n,i,a))}cameraFrameTexture(){var e;return null===(e=this.getCurrentCameraInfo())||void 0===e?void 0:e.texture}cameraFrameTextureMatrix(e,t,r){let a=this.getCurrentCameraInfo();return a?n.cameraFrameTextureMatrix(a.dataWidth,a.dataHeight,e,t,a.uvTransform||h,r):i.mat4.create()}cameraFrameUserFacing(){var e;return(null===(e=this.getCurrentCameraInfo())||void 0===e?void 0:e.userFacing)||!1}cameraPoseWithAttitude(e){let t=p(this.getCurrentCameraInfo(),this._client.pipeline_camera_frame_camera_attitude(this._impl));if(e){let e=i.mat4.create();i.mat4.fromScaling(e,[-1,1,1]),i.mat4.multiply(t,e,t),i.mat4.multiply(t,t,e)}return i.mat4.invert(t,t),t}videoFrameFromWorker(e){let t=this.nextCameraToken++;const r=d.getCameraSource(e.source);r&&(this.cameraTokens.set(t,{dataWidth:e.w,dataHeight:e.h,texture:void 0,frame:e.d,userFacing:e.userFacing,uvTransform:e.uvTransform,cameraModel:e.cameraModel,cameraToDevice:e.cameraToDevice,cameraSource:r}),this.cleanOldFrames())}imageBitmapFromWorker(e){let t=this.cameraTokens.get(e.tokenId);t&&(t.dataWidth=e.dataWidth,t.dataHeight=e.dataHeight,t.frame=e.frame,t.userFacing=e.userFacing,t.uvTransform=e.uvTransform,this.tokensInFlight--,this.cleanOldFrames())}uploadGL(){var e,t;let r=this.getCurrentCameraInfo();null===(t=null===(e=null==r?void 0:r.cameraSource)||void 0===e?void 0:e.uploadGL)||void 0===t||t.call(e,r)}registerToken(e){let t=this.nextCameraToken++;return this.cameraTokens.set(t,e),this.tokensInFlight++,t}processGL(){this.glContext?this.currentCameraSource&&(this.tokensInFlight>0?this.currentCameraSource.getFrame(!0):this.currentCameraSource.getFrame(!1)):f.zcerr("no GL context for camera frames - please call pipeline_gl_context_set")}motionAccelerometerSubmit(e,t,r,n){var i;this._sequenceRecordDeviceAttitudeMatrices||null===(i=this._sequenceRecorder)||void 0===i||i.appendAccelerometer(e,t,r,n),this._client.pipeline_motion_accelerometer_submit(this._impl,e,t,r,n)}motionRotationRateSubmit(e,t,r,n){var i;this._sequenceRecordDeviceAttitudeMatrices||null===(i=this._sequenceRecorder)||void 0===i||i.appendRotationRate(e,t,r,n),this._client.pipeline_motion_rotation_rate_submit(this._impl,e,t,r,n)}motionAttitudeSubmit(e,t,r,n){var i;this._sequenceRecordDeviceAttitudeMatrices||null===(i=this._sequenceRecorder)||void 0===i||i.appendAttitude(e,t,r,n),this._client.pipeline_motion_attitude_submit(this._impl,e,t,r,n)}motionAttitudeMatrix(e){this._client.pipeline_motion_attitude_matrix_submit(this._impl,e)}sendCameraStreamToWorker(e,t,r){let n={t:"streamC2S",p:this._impl,s:t,userFacing:r,source:e};this._mgr.postOutgoingMessage(n,[n.s])}sendCameraToScreenRotationToWorker(e){let t={p:this._impl,t:"cameraToScreenC2S",r:e};this._mgr.postOutgoingMessage(t,[])}sendImageBitmapToWorker(e,t,r,n,i,a){let o={p:this._impl,t:"imageBitmapC2S",i:e,r:t,tokenId:n,userFacing:r,cameraModel:i,cameraToDevice:a};this._mgr.postOutgoingMessage(o,[e])}sendDataToWorker(e,t,r,n,i,a,o){let s={d:e,p:this._impl,width:r,height:n,token:t,userFacing:i,c2d:a,cm:o,t:"cameraFrameC2S"};this._mgr.postOutgoingMessage(s,[e])}}function p(e,t){let r=!1;r=!!e&&e.userFacing;let n=i.mat4.create();return i.mat4.fromRotation(n,a.cameraRotationForScreenOrientation(r)*Math.PI/180,[0,0,1]),i.mat4.multiply(n,n,t),n}t.Pipeline=m,t.applyScreenCounterRotation=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.profile=t.EmbeddedVideoImplementation=void 0;const n=r(11);!function(e){e[e.OBJECT_URL=0]="OBJECT_URL",e[e.SRC_OBJECT=1]="SRC_OBJECT"}(t.EmbeddedVideoImplementation||(t.EmbeddedVideoImplementation={})),t.profile={deviceMotionMutliplier:-1,blacklisted:!1,showGyroPermissionsWarningIfNecessary:!1,showSafariPermissionsResetIfNecessary:!1,requestHighFrameRate:!1,videoWidth:640,videoHeight:480,dataWidth:320,dataHeight:240,videoElementInDOM:!1,preferMediaStreamTrackProcessorCamera:!1,preferImageBitmapCamera:!1},"undefined"!=typeof window&&(window.zeeProfile=t.profile,window.location.href.indexOf("_mstppipeline")>=0&&(console.log("Configuring for MSTP camera pipeline (if supported)"),t.profile.preferMediaStreamTrackProcessorCamera=!0),window.location.href.indexOf("_imagebitmappipeline")>=0&&(console.log("Configuring for ImageBitmap camera pipeline (if supported)"),t.profile.preferImageBitmapCamera=!0));let i=new n.UAParser,a=(i.getOS().name||"unknown").toLowerCase(),o=(i.getEngine().name||"unknown").toLowerCase();function s(){let e=i.getOS().version;if(e){let r=e.split(".");if(r.length>=2){const e=parseInt(r[0]),n=parseInt(r[1]);(e<11||11===e&&n<3)&&(t.profile.blacklisted=!0),(e<12||12===e&&n<2)&&(t.profile.videoElementInDOM=!0),(12===e&&n>=2||e>=13)&&(t.profile.showGyroPermissionsWarningIfNecessary=!0),e>=13&&(t.profile.showSafariPermissionsResetIfNecessary=!0),(e>=12&&n>1||e>=13)&&navigator.mediaDevices&&navigator.mediaDevices.getSupportedConstraints&&navigator.mediaDevices.getSupportedConstraints().frameRate&&(t.profile.requestHighFrameRate=!0,e<14&&(t.profile.videoHeight=360,t.profile.dataHeight=180))}}}"webkit"===o&&"ios"!==a&&(t.profile.deviceMotionMutliplier=1,"undefined"!=typeof window&&void 0!==window.orientation&&s()),"webkit"===o&&"ios"===a&&(t.profile.deviceMotionMutliplier=1,s())},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.linkProgram=t.compileShader=void 0,t.compileShader=function(e,t,r){let n=e.createShader(t);if(!n)throw new Error("Unable to create shader");e.shaderSource(n,r),e.compileShader(n);let i=e.getShaderInfoLog(n);if(i&&i.trim().length>0)throw new Error("Shader compile error: "+i);return n},t.linkProgram=function(e,t){e.linkProgram(t);let r=e.getProgramInfoLog(t);if(r&&r.trim().length>0)throw new Error("Unable to link: "+r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cameraRotationForScreenOrientation=t.projectionMatrix=void 0;const n=r(1);function i(e){if(window.screen.orientation)switch(window.screen.orientation.type){case"portrait-primary":return e?90:270;case"landscape-secondary":return 180;case"portrait-secondary":return e?270:90;default:return 0}else if(void 0!==window.orientation)switch(window.orientation){case 0:return e?90:270;case 90:return 0;case 180:return e?270:90;case-90:return 180}return 0}t.projectionMatrix=function(e,t,r,a=.01,o=100){let s=2*e[2],u=2*e[3],c=n.mat4.create();n.mat4.frustum(c,a*(-.5-e[2])/e[0],a*(s-.5-e[2])/e[0],a*(u-.5-e[3])/e[1],a*(-.5-e[3])/e[1],a,o),c[4]*=-1,c[5]*=-1,c[6]*=-1,c[7]*=-1;let f=n.mat4.create();n.mat4.fromScaling(f,[.5*s,.5*u,1]),n.mat4.multiply(c,f,c),n.mat4.fromRotation(f,i(!1)*Math.PI/180,[0,0,1]),n.mat4.multiply(c,f,c);let _=n.vec3.create();_[0]=s,_[1]=u,_[2]=0,n.vec3.transformMat4(_,_,f);let d=Math.abs(_[0]),l=Math.abs(_[1]),h=1;return h=d/t>l/r?r/l:t/d,n.mat4.fromScaling(f,[h,h,1]),n.mat4.multiply(c,f,c),n.mat4.fromScaling(f,[2/t,2/r,1]),n.mat4.multiply(c,f,c),n.mat4.fromRotation(f,i(!1)*Math.PI/-180,[0,0,1]),n.mat4.multiply(c,c,f),c},t.cameraRotationForScreenOrientation=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.frame_pixel_format_t=t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=void 0,function(e){e[e.UNKNOWN=131072]="UNKNOWN",e[e.AZTEC=1]="AZTEC",e[e.CODABAR=2]="CODABAR",e[e.CODE_39=4]="CODE_39",e[e.CODE_93=8]="CODE_93",e[e.CODE_128=16]="CODE_128",e[e.DATA_MATRIX=32]="DATA_MATRIX",e[e.EAN_8=64]="EAN_8",e[e.EAN_13=128]="EAN_13",e[e.ITF=256]="ITF",e[e.MAXICODE=512]="MAXICODE",e[e.PDF_417=1024]="PDF_417",e[e.QR_CODE=2048]="QR_CODE",e[e.RSS_14=4096]="RSS_14",e[e.RSS_EXPANDED=8192]="RSS_EXPANDED",e[e.UPC_A=16384]="UPC_A",e[e.UPC_E=32768]="UPC_E",e[e.UPC_EAN_EXTENSION=65536]="UPC_EAN_EXTENSION",e[e.ALL=131071]="ALL"}(t.barcode_format_t||(t.barcode_format_t={})),function(e){e[e.EYE_LEFT=0]="EYE_LEFT",e[e.EYE_RIGHT=1]="EYE_RIGHT",e[e.EAR_LEFT=2]="EAR_LEFT",e[e.EAR_RIGHT=3]="EAR_RIGHT",e[e.NOSE_BRIDGE=4]="NOSE_BRIDGE",e[e.NOSE_TIP=5]="NOSE_TIP",e[e.NOSE_BASE=6]="NOSE_BASE",e[e.LIP_TOP=7]="LIP_TOP",e[e.LIP_BOTTOM=8]="LIP_BOTTOM",e[e.MOUTH_CENTER=9]="MOUTH_CENTER",e[e.CHIN=10]="CHIN",e[e.EYEBROW_LEFT=11]="EYEBROW_LEFT",e[e.EYEBROW_RIGHT=12]="EYEBROW_RIGHT"}(t.face_landmark_name_t||(t.face_landmark_name_t={})),function(e){e[e.WORLD=3]="WORLD",e[e.MINUS_Z_AWAY_FROM_USER=4]="MINUS_Z_AWAY_FROM_USER",e[e.MINUS_Z_HEADING=5]="MINUS_Z_HEADING",e[e.UNCHANGED=6]="UNCHANGED"}(t.instant_world_tracker_transform_orientation_t||(t.instant_world_tracker_transform_orientation_t={})),function(e){e[e.LOG_LEVEL_NONE=0]="LOG_LEVEL_NONE",e[e.LOG_LEVEL_ERROR=1]="LOG_LEVEL_ERROR",e[e.LOG_LEVEL_WARNING=2]="LOG_LEVEL_WARNING",e[e.LOG_LEVEL_VERBOSE=3]="LOG_LEVEL_VERBOSE"}(t.log_level_t||(t.log_level_t={})),function(e){e[e.FRAME_PIXEL_FORMAT_I420=0]="FRAME_PIXEL_FORMAT_I420",e[e.FRAME_PIXEL_FORMAT_I420A=1]="FRAME_PIXEL_FORMAT_I420A",e[e.FRAME_PIXEL_FORMAT_I422=2]="FRAME_PIXEL_FORMAT_I422",e[e.FRAME_PIXEL_FORMAT_I444=3]="FRAME_PIXEL_FORMAT_I444",e[e.FRAME_PIXEL_FORMAT_NV12=4]="FRAME_PIXEL_FORMAT_NV12",e[e.FRAME_PIXEL_FORMAT_RGBA=5]="FRAME_PIXEL_FORMAT_RGBA",e[e.FRAME_PIXEL_FORMAT_BGRA=6]="FRAME_PIXEL_FORMAT_BGRA",e[e.FRAME_PIXEL_FORMAT_Y=7]="FRAME_PIXEL_FORMAT_Y"}(t.frame_pixel_format_t||(t.frame_pixel_format_t={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createCameraSource=t.deleteCameraSource=t.getCameraSource=t.setCameraSourceId=t.getNextCameraSourceId=void 0;const n=r(14),i=r(35),a=r(0),o=r(36),s=r(3);let u=1,c=new Map;function f(){return u++}function _(e,t){c.set(e,t)}t.getNextCameraSourceId=f,t.setCameraSourceId=_,t.getCameraSource=function(e){return c.get(e)},t.deleteCameraSource=function(e){c.delete(e)},t.createCameraSource=function(e,t){let r=f();return s.profile.preferMediaStreamTrackProcessorCamera&&"MediaStreamTrackProcessor"in window&&"MediaStreamTrackGenerator"in window?_(r,new o.MSTPCameraSource(r,e,t)):s.profile.preferImageBitmapCamera&&"undefined"!=typeof OffscreenCanvas?_(r,new i.ImageBitmapCameraSource(r,e,t)):_(r,new n.CameraSource(r,e,t)),a.zcout("camera_source_t initialized"),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Source=void 0;t.Source=class{}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drawPlane=t.disposeDrawPlane=void 0;const n=r(4);let i,a,o,s={};function u(e){if(o)return o;if(o=e.createBuffer(),!o)throw new Error("Unable to create buffer object");return e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,1,1,0]),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),o}t.disposeDrawPlane=function(){i=void 0,a=void 0,o=void 0,s={}},t.drawPlane=function(e,t,r,n,i){let o=c(e),f=function(e){if(a)return a;if(a=e.createBuffer(),!a)throw new Error("Unable to create buffer object");return e.bindBuffer(e.ARRAY_BUFFER,a),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-.5,.125,0,-.5,-.125,0,.5,.125,0,.5,-.125,0]),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),a}(e),_=u(e);e.disable(e.DEPTH_TEST),e.useProgram(o.prog),e.uniformMatrix4fv(o.unif_proj,!1,t),e.uniformMatrix4fv(o.unif_camera,!1,r),e.uniformMatrix4fv(o.unif_matrix,!1,n),e.bindBuffer(e.ARRAY_BUFFER,f),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,function(e,t){if(s[t])return s[t];let r=e.createTexture();if(!r)throw new Error("Unable to create texture");s[t]=r,e.bindTexture(e.TEXTURE_2D,r);const n=e.RGBA,i=e.RGBA,a=e.UNSIGNED_BYTE,o=new Uint8Array([0,0,255,255]);e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,n,1,1,0,i,a,o);const u=new Image;return u.onload=function(){e.bindTexture(e.TEXTURE_2D,r),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,n,i,a,u),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR)},u.src=t,r}(e,i)),e.uniform1i(o.unif_skinSampler,0),e.vertexAttribPointer(o.attr_position,3,e.FLOAT,!1,12,0),e.enableVertexAttribArray(o.attr_position),e.bindBuffer(e.ARRAY_BUFFER,_),e.vertexAttribPointer(o.attr_textureCoord,2,e.FLOAT,!1,8,0),e.enableVertexAttribArray(o.attr_textureCoord),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.disableVertexAttribArray(o.attr_position),e.bindBuffer(e.ARRAY_BUFFER,null)};function c(e){if(i)return i;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,"\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 projMatrix;\nuniform mat4 cameraMatrix;\nuniform mat4 modelViewMatrix;\nattribute vec4 position;\nattribute vec2 textureCoord;\n\nvarying highp vec2 vTextureCoord;\n\nvoid main()\n{\n gl_Position = projMatrix * cameraMatrix * modelViewMatrix * position;\n vTextureCoord = textureCoord;\n}"),a=n.compileShader(e,e.FRAGMENT_SHADER,"\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying highp vec2 vTextureCoord;\nuniform sampler2D skinSampler;\n\nvoid main()\n{\n gl_FragColor = texture2D(skinSampler, vTextureCoord);\n}");e.attachShader(t,r),e.attachShader(t,a),n.linkProgram(e,t);let o=e.getUniformLocation(t,"projMatrix");if(!o)throw new Error("Unable to get uniform location projMatrix");let s=e.getUniformLocation(t,"modelViewMatrix");if(!s)throw new Error("Unable to get uniform location modelViewMatrix");let u=e.getUniformLocation(t,"cameraMatrix");if(!u)throw new Error("Unable to get uniform location cameraMatrix");let c=e.getUniformLocation(t,"skinSampler");if(!c)throw new Error("Unable to get uniform location skinSampler");return i={prog:t,unif_matrix:s,unif_proj:o,unif_camera:u,unif_skinSampler:c,attr_position:e.getAttribLocation(t,"position"),attr_textureCoord:e.getAttribLocation(t,"textureCoord")},i}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Event5=t.Event3=t.Event2=t.Event1=t.Event=void 0;t.Event=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(){for(var e=0,t=this._funcs.length;e<t;e++)this._funcs[e]()}};t.Event1=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e){for(var t=0,r=this._funcs.length;t<r;t++)this._funcs[t](e)}};t.Event2=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t){for(var r=0,n=this._funcs.length;r<n;r++)this._funcs[r](e,t)}};t.Event3=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r){for(var n=0,i=this._funcs.length;n<i;n++)this._funcs[n](e,t,r)}};t.Event5=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r,n,i){for(var a=0,o=this._funcs.length;a<o;a++)this._funcs[a](e,t,r,n,i)}}},function(e,t,r){var n;!function(i,a){"use strict";var o="model",s="name",u="type",c="vendor",f="version",_="mobile",d="tablet",l="smarttv",h=function(e){var t={};for(var r in e)t[e[r].toUpperCase()]=e[r];return t},m=function(e,t){return"string"==typeof e&&-1!==p(t).indexOf(p(e))},p=function(e){return e.toLowerCase()},b=function(e,t){if("string"==typeof e)return e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),void 0===t?e:e.substring(0,255)},g=function(e,t){for(var r,n,i,a,o,s,u=0;u<t.length&&!o;){var c=t[u],f=t[u+1];for(r=n=0;r<c.length&&!o;)if(o=c[r++].exec(e))for(i=0;i<f.length;i++)s=o[++n],"object"==typeof(a=f[i])&&a.length>0?2==a.length?"function"==typeof a[1]?this[a[0]]=a[1].call(this,s):this[a[0]]=a[1]:3==a.length?"function"!=typeof a[1]||a[1].exec&&a[1].test?this[a[0]]=s?s.replace(a[1],a[2]):void 0:this[a[0]]=s?a[1].call(this,s,a[2]):void 0:4==a.length&&(this[a[0]]=s?a[3].call(this,s.replace(a[1],a[2])):void 0):this[a]=s||void 0;u+=2}},v=function(e,t){for(var r in t)if("object"==typeof t[r]&&t[r].length>0){for(var n=0;n<t[r].length;n++)if(m(t[r][n],e))return"?"===r?void 0:r}else if(m(t[r],e))return"?"===r?void 0:r;return e},w={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},y={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[f,[s,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[f,[s,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[s,f],[/opios[\/ ]+([\w\.]+)/i],[f,[s,"Opera Mini"]],[/\bopr\/([\w\.]+)/i],[f,[s,"Opera"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[s,f],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[f,[s,"UCBrowser"]],[/\bqbcore\/([\w\.]+)/i],[f,[s,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[f,[s,"WeChat"]],[/konqueror\/([\w\.]+)/i],[f,[s,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[f,[s,"IE"]],[/yabrowser\/([\w\.]+)/i],[f,[s,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[s,/(.+)/,"$1 Secure Browser"],f],[/\bfocus\/([\w\.]+)/i],[f,[s,"Firefox Focus"]],[/\bopt\/([\w\.]+)/i],[f,[s,"Opera Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[f,[s,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[f,[s,"Dolphin"]],[/coast\/([\w\.]+)/i],[f,[s,"Opera Coast"]],[/miuibrowser\/([\w\.]+)/i],[f,[s,"MIUI Browser"]],[/fxios\/([-\w\.]+)/i],[f,[s,"Firefox"]],[/\bqihu|(qi?ho?o?|360)browser/i],[[s,"360 Browser"]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[s,/(.+)/,"$1 Browser"],f],[/(comodo_dragon)\/([\w\.]+)/i],[[s,/_/g," "],f],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[s,f],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[s],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[s,"Facebook"],f],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[s,f],[/\bgsa\/([\w\.]+) .*safari\//i],[f,[s,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[f,[s,"Chrome Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[s,"Chrome WebView"],f],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[f,[s,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[s,f],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[f,[s,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[f,s],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[s,[f,v,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[s,f],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[s,"Netscape"],f],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[f,[s,"Firefox Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[s,f]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[["architecture","amd64"]],[/(ia32(?=;))/i],[["architecture",p]],[/((?:i[346]|x)86)[;\)]/i],[["architecture","ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[["architecture","arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[["architecture","armhf"]],[/windows (ce|mobile); ppc;/i],[["architecture","arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[["architecture",/ower/,"",p]],[/(sun4\w)[;\)]/i],[["architecture","sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[["architecture",p]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[o,[c,"Samsung"],[u,d]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[o,[c,"Samsung"],[u,_]],[/\((ip(?:hone|od)[\w ]*);/i],[o,[c,"Apple"],[u,_]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[o,[c,"Apple"],[u,d]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[o,[c,"Huawei"],[u,d]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[o,[c,"Huawei"],[u,_]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[o,/_/g," "],[c,"Xiaomi"],[u,_]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[o,/_/g," "],[c,"Xiaomi"],[u,d]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007)\b/i],[o,[c,"OPPO"],[u,_]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[o,[c,"Vivo"],[u,_]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[o,[c,"Realme"],[u,_]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[o,[c,"Motorola"],[u,_]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[o,[c,"Motorola"],[u,d]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[o,[c,"LG"],[u,d]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[o,[c,"LG"],[u,_]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[o,[c,"Lenovo"],[u,d]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[o,/_/g," "],[c,"Nokia"],[u,_]],[/(pixel c)\b/i],[o,[c,"Google"],[u,d]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[o,[c,"Google"],[u,_]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[o,[c,"Sony"],[u,_]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[o,"Xperia Tablet"],[c,"Sony"],[u,d]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[o,[c,"OnePlus"],[u,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[o,[c,"Amazon"],[u,d]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[o,/(.+)/g,"Fire Phone $1"],[c,"Amazon"],[u,_]],[/(playbook);[-\w\),; ]+(rim)/i],[o,c,[u,d]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[o,[c,"BlackBerry"],[u,_]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[o,[c,"ASUS"],[u,d]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[o,[c,"ASUS"],[u,_]],[/(nexus 9)/i],[o,[c,"HTC"],[u,d]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[c,[o,/_/g," "],[u,_]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[o,[c,"Acer"],[u,d]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[o,[c,"Meizu"],[u,_]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[o,[c,"Sharp"],[u,_]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[c,o,[u,_]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[c,o,[u,d]],[/(surface duo)/i],[o,[c,"Microsoft"],[u,d]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[o,[c,"Fairphone"],[u,_]],[/(u304aa)/i],[o,[c,"AT&T"],[u,_]],[/\bsie-(\w*)/i],[o,[c,"Siemens"],[u,_]],[/\b(rct\w+) b/i],[o,[c,"RCA"],[u,d]],[/\b(venue[\d ]{2,7}) b/i],[o,[c,"Dell"],[u,d]],[/\b(q(?:mv|ta)\w+) b/i],[o,[c,"Verizon"],[u,d]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[o,[c,"Barnes & Noble"],[u,d]],[/\b(tm\d{3}\w+) b/i],[o,[c,"NuVision"],[u,d]],[/\b(k88) b/i],[o,[c,"ZTE"],[u,d]],[/\b(nx\d{3}j) b/i],[o,[c,"ZTE"],[u,_]],[/\b(gen\d{3}) b.+49h/i],[o,[c,"Swiss"],[u,_]],[/\b(zur\d{3}) b/i],[o,[c,"Swiss"],[u,d]],[/\b((zeki)?tb.*\b) b/i],[o,[c,"Zeki"],[u,d]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[c,"Dragon Touch"],o,[u,d]],[/\b(ns-?\w{0,9}) b/i],[o,[c,"Insignia"],[u,d]],[/\b((nxa|next)-?\w{0,9}) b/i],[o,[c,"NextBook"],[u,d]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[c,"Voice"],o,[u,_]],[/\b(lvtel\-)?(v1[12]) b/i],[[c,"LvTel"],o,[u,_]],[/\b(ph-1) /i],[o,[c,"Essential"],[u,_]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[o,[c,"Envizen"],[u,d]],[/\b(trio[-\w\. ]+) b/i],[o,[c,"MachSpeed"],[u,d]],[/\btu_(1491) b/i],[o,[c,"Rotor"],[u,d]],[/(shield[\w ]+) b/i],[o,[c,"Nvidia"],[u,d]],[/(sprint) (\w+)/i],[c,o,[u,_]],[/(kin\.[onetw]{3})/i],[[o,/\./g," "],[c,"Microsoft"],[u,_]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[o,[c,"Zebra"],[u,d]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[o,[c,"Zebra"],[u,_]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[c,o,[u,"console"]],[/droid.+; (shield) bui/i],[o,[c,"Nvidia"],[u,"console"]],[/(playstation [345portablevi]+)/i],[o,[c,"Sony"],[u,"console"]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[o,[c,"Microsoft"],[u,"console"]],[/smart-tv.+(samsung)/i],[c,[u,l]],[/hbbtv.+maple;(\d+)/i],[[o,/^/,"SmartTV"],[c,"Samsung"],[u,l]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[c,"LG"],[u,l]],[/(apple) ?tv/i],[c,[o,"Apple TV"],[u,l]],[/crkey/i],[[o,"Chromecast"],[c,"Google"],[u,l]],[/droid.+aft(\w)( bui|\))/i],[o,[c,"Amazon"],[u,l]],[/\(dtv[\);].+(aquos)/i],[o,[c,"Sharp"],[u,l]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[c,b],[o,b],[u,l]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[u,l]],[/((pebble))app/i],[c,o,[u,"wearable"]],[/droid.+; (glass) \d/i],[o,[c,"Google"],[u,"wearable"]],[/droid.+; (wt63?0{2,3})\)/i],[o,[c,"Zebra"],[u,"wearable"]],[/(quest( 2)?)/i],[o,[c,"Facebook"],[u,"wearable"]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[c,[u,"embedded"]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[o,[u,_]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[o,[u,d]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[u,d]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[u,_]],[/(android[-\w\. ]{0,9});.+buil/i],[o,[c,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[f,[s,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[f,[s,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[s,f],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[f,s]],os:[[/microsoft (windows) (vista|xp)/i],[s,f],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[s,[f,v,w]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[s,"Windows"],[f,v,w]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[f,/_/g,"."],[s,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[s,"Mac OS"],[f,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[f,s],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[s,f],[/\(bb(10);/i],[f,[s,"BlackBerry"]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[f,[s,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[f,[s,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[f,[s,"webOS"]],[/crkey\/([\d\.]+)/i],[f,[s,"Chromecast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[s,"Chromium OS"],f],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[s,f],[/(sunos) ?([\w\.\d]*)/i],[[s,"Solaris"],f],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[s,f]]},M=function(e,t){if("object"==typeof e&&(t=e,e=void 0),!(this instanceof M))return new M(e,t).getResult();var r=e||(void 0!==i&&i.navigator&&i.navigator.userAgent?i.navigator.userAgent:""),n=t?function(e,t){var r={};for(var n in e)t[n]&&t[n].length%2==0?r[n]=t[n].concat(e[n]):r[n]=e[n];return r}(y,t):y;return this.getBrowser=function(){var e,t={};return t[s]=void 0,t[f]=void 0,g.call(t,r,n.browser),t.major="string"==typeof(e=t.version)?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0,t},this.getCPU=function(){var e={architecture:void 0};return g.call(e,r,n.cpu),e},this.getDevice=function(){var e={vendor:void 0,model:void 0,type:void 0};return g.call(e,r,n.device),e},this.getEngine=function(){var e={name:void 0,version:void 0};return g.call(e,r,n.engine),e},this.getOS=function(){var e={name:void 0,version:void 0};return g.call(e,r,n.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r="string"==typeof e&&e.length>255?b(e,255):e,this},this.setUA(r),this};M.VERSION="0.7.30",M.BROWSER=h([s,f,"major"]),M.CPU=h(["architecture"]),M.DEVICE=h([o,c,u,"console",_,l,d,"wearable","embedded"]),M.ENGINE=M.OS=h([s,f]),void 0!==t?(void 0!==e&&e.exports&&(t=e.exports=M),t.UAParser=M):r(28)?void 0===(n=function(){return M}.call(t,r,t,e))||(e.exports=n):void 0!==i&&(i.UAParser=M);var E=void 0!==i&&(i.jQuery||i.Zepto);if(E&&!E.ua){var A=new M;E.ua=A.getResult(),E.ua.get=function(){return A.getUA()},E.ua.set=function(e){A.setUA(e);var t=A.getResult();for(var r in t)E.ua[r]=t[r]}}}("object"==typeof window?window:this)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.frame_pixel_format_t=t.face_landmark_name_t=t.barcode_format_t=void 0;var n=r(6);Object.defineProperty(t,"barcode_format_t",{enumerable:!0,get:function(){return n.barcode_format_t}});var i=r(6);Object.defineProperty(t,"face_landmark_name_t",{enumerable:!0,get:function(){return i.face_landmark_name_t}});var a=r(6);Object.defineProperty(t,"frame_pixel_format_t",{enumerable:!0,get:function(){return a.frame_pixel_format_t}});var o=r(6);Object.defineProperty(t,"instant_world_tracker_transform_orientation_t",{enumerable:!0,get:function(){return o.instant_world_tracker_transform_orientation_t}});var s=r(6);Object.defineProperty(t,"log_level_t",{enumerable:!0,get:function(){return s.log_level_t}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceDecoder=t.SequenceRecorder=t.SequenceRecorderPacketType=void 0;const n=r(0);var i;!function(e){e[e.CAMERA_FRAME=0]="CAMERA_FRAME",e[e.ACCELEROMETER=1]="ACCELEROMETER",e[e.ROTATION_RATE=2]="ROTATION_RATE",e[e.ATTITUDE=3]="ATTITUDE",e[e.ATTITUDE_MATRIX=4]="ATTITUDE_MATRIX"}(i=t.SequenceRecorderPacketType||(t.SequenceRecorderPacketType={}));class a{constructor(e){this._insertionByte=0,this._numberPackets=0,this._started=!1,this._hasLoggedUnsuppored=!1,this._data=new ArrayBuffer(this._estimatedSize(e,320,240)),this._dataView=new DataView(this._data),this._dataUint8=new Uint8Array(this._data),this._dataFloat32=new Float32Array(this._data)}_estimatedSize(e,t,r){return a.headerSizeBytes+(a.psbPacketType+a.cameraPacketSizeBytes+t*r)*e}start(){this._started=!0,this._insertionByte=0,this._numberPackets=0,this._growArrayBuffer(a.headerSizeBytes);let e=(new TextEncoder).encode("UAR1");this._dataUint8.set(e),this._dataView.setUint32(4,0,!0),this._insertionByte+=8}stop(){this._started=!1;let e=this._data.slice(0,this._insertionByte);this._data=e,this._dataUint8=new Uint8Array(this._data),this._dataFloat32=new Float32Array(this._data),this._dataView=new DataView(this._data)}data(){return this._dataUint8}appendCameraFrame(e){if(!this._started)return;if(!e.data){if(this._hasLoggedUnsuppored)return;return this._hasLoggedUnsuppored=!0,void n.zcerr("Unable to record frames from this camera source")}if(e.data.byteLength!==e.dataWidth*e.dataHeight)return void n.zcerr("Unable to record frame to sequence: greyscale array doesn't match dimensions");let t=a.psbPacketType+a.cameraPacketSizeBytes+e.dataWidth*e.dataHeight;this._growArrayBuffer(t),this._dataView.setUint32(this._insertionByte,i.CAMERA_FRAME,!0),this._insertionByte+=a.psbPacketType,this._dataView.setUint32(this._insertionByte,e.dataWidth,!0),this._insertionByte+=a.psbCameraFrameWidth,this._dataView.setUint32(this._insertionByte,e.dataHeight,!0),this._insertionByte+=a.psbCameraFrameHeight,this._dataFloat32.set(e.cameraToDevice,this._insertionByte/4),this._insertionByte+=a.psbCameraToDeviceTransform,this._dataFloat32.set(e.cameraModel,this._insertionByte/4),this._insertionByte+=a.psbCameraModel,this._dataView.setUint32(this._insertionByte,e.userFacing?1:0,!0),this._insertionByte+=a.psbFlags,this._dataUint8.set(new Uint8Array(e.data),this._insertionByte),this._insertionByte+=e.data.byteLength,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}appendAccelerometer(e,t,r,n){this._appendTimestampedVec3(i.ACCELEROMETER,e,t,r,n)}appendRotationRate(e,t,r,n){this._appendTimestampedVec3(i.ROTATION_RATE,e,t,r,n)}appendAttitude(e,t,r,n){this._appendTimestampedVec3(i.ATTITUDE,e,t,r,n)}_appendTimestampedVec3(e,t,r,n,i){if(!this._started)return;let o=a.psbPacketType+a.accelerometerPacketSizeBytes;this._growArrayBuffer(o),this._dataView.setUint32(this._insertionByte,e,!0),this._insertionByte+=a.psbPacketType,this._dataView.setUint32(this._insertionByte,t,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,r,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,n,!0),this._insertionByte+=4,this._dataView.setFloat32(this._insertionByte,i,!0),this._insertionByte+=4,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}appendAttitudeMatrix(e){if(!this._started)return;let t=a.psbPacketType+a.attitudeMatrixPacketSizeBytes;this._growArrayBuffer(t),this._dataView.setUint32(this._insertionByte,i.ATTITUDE_MATRIX,!0),this._insertionByte+=a.psbPacketType,this._dataFloat32.set(e,this._insertionByte/4),this._insertionByte+=a.attitudeMatrixPacketSizeBytes,this._numberPackets++,this._dataView.setUint32(4,this._numberPackets,!0)}_growArrayBuffer(e){for(;this._insertionByte+e>this._data.byteLength;){let e=Math.max(2*this._data.byteLength,this._estimatedSize(50,320,240)),t=new ArrayBuffer(e),r=new Uint8Array(t);r.set(this._dataUint8),this._data=t,this._dataUint8=r,this._dataFloat32=new Float32Array(this._data),this._dataView=new DataView(this._data)}}}t.SequenceRecorder=a,a.headerSizeBytes=8,a.psbPacketType=4,a.psbCameraFrameWidth=4,a.psbCameraFrameHeight=4,a.psbFlags=4,a.psbCameraToDeviceTransform=64,a.psbCameraModel=24,a.cameraPacketSizeBytes=a.psbCameraFrameWidth+a.psbCameraFrameHeight+a.psbCameraToDeviceTransform+a.psbCameraModel+a.psbFlags,a.accelerometerPacketSizeBytes=16,a.rotationRatePacketSizeBytes=16,a.attitudePacketSizeBytes=16,a.attitudeMatrixPacketSizeBytes=64;t.SequenceDecoder=class{constructor(e){this._data=e,this.dataByPacket=new Map,this.dataByCameraFrame=new Map,this.numberPackets=0,this.numberCameraFrames=0,this.numberAccelerometerPackets=0,this.numberRotationRatePackets=0,this.numberAttitudePackets=0,this.numberAttitudeMatrixPackets=0;let t=new TextDecoder,r="";try{r=t.decode(this._data.slice(0,4))}catch(e){throw new Error("Unable to decode header - perhaps this isn't a sequence file?")}if("UAR1"!==r)throw new Error("Invalid - perhaps this isn't a sequence file: "+r);let n=0,o=new DataView(this._data);this.numberPackets=o.getUint32(4,!0),n+=a.headerSizeBytes;for(let e=0;e<this.numberPackets;e++){let t=o.getUint32(n,!0);switch(n+=a.psbPacketType,t){case i.CAMERA_FRAME:{let t=o.getUint32(n,!0);n+=a.psbCameraFrameWidth;let r=o.getUint32(n,!0);n+=a.psbCameraFrameHeight;let s=new Float32Array(this._data,n,a.psbCameraToDeviceTransform/4);n+=a.psbCameraToDeviceTransform;let u=new Float32Array(this._data,n,a.psbCameraModel/4);n+=a.psbCameraModel;let c=o.getUint32(n,!0);n+=a.psbFlags;let f=1===c,_=new Uint8Array(this._data,n,t*r);n+=t*r;let d={type:i.CAMERA_FRAME,width:t,height:r,cameraToDevice:s,cameraModel:u,userFacing:f,greyscale:_};this.dataByPacket.set(e,d),this.dataByCameraFrame.set(this.numberCameraFrames,d),this.numberCameraFrames++;break}case i.ACCELEROMETER:{let t=o.getUint32(n,!0);n+=4;let r=o.getFloat32(n,!0);n+=4;let a=o.getFloat32(n,!0);n+=4;let s=o.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:i.ACCELEROMETER,t:t,x:r,y:a,z:s}),this.numberAccelerometerPackets++;break}case i.ROTATION_RATE:{let t=o.getUint32(n,!0);n+=4;let r=o.getFloat32(n,!0);n+=4;let a=o.getFloat32(n,!0);n+=4;let s=o.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:i.ROTATION_RATE,t:t,x:r,y:a,z:s}),this.numberRotationRatePackets++;break}case i.ATTITUDE:{let t=o.getUint32(n,!0);n+=4;let r=o.getFloat32(n,!0);n+=4;let a=o.getFloat32(n,!0);n+=4;let s=o.getFloat32(n,!0);n+=4,this.dataByPacket.set(e,{type:i.ATTITUDE,t:t,x:r,y:a,z:s}),this.numberAttitudePackets++;break}case i.ATTITUDE_MATRIX:{let t=new Float32Array(this._data,n,a.attitudeMatrixPacketSizeBytes/4);n+=a.attitudeMatrixPacketSizeBytes,this.dataByPacket.set(e,{type:i.ATTITUDE_MATRIX,attitude:t}),this.numberAttitudeMatrixPackets++;break}}}}}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CameraSource=void 0;const i=r(15),a=r(3),o=r(2),s=r(5),u=r(0),c=r(7);let f=document.createElement("video");f.setAttribute("playsinline",""),f.setAttribute("webkit-playsinline",""),a.profile.videoElementInDOM&&(f.style.width="0px",f.style.height="0px",document.body.appendChild(f));class _ extends i.HTMLElementSource{constructor(e,t,r){super(f,t),this._impl=e,this._deviceId=r,this._currentStream=null,this._activeDeviceId=null,this._hasStartedOrientation=!1,this._deviceMotionListener=e=>{let t=o.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.accelerationIncludingGravity&&null!==e.accelerationIncludingGravity.x&&null!==e.accelerationIncludingGravity.y&&null!==e.accelerationIncludingGravity.z&&t.motionAccelerometerSubmit(r,e.accelerationIncludingGravity.x*a.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.y*a.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.z*a.profile.deviceMotionMutliplier),null===e.rotationRate||null===e.rotationRate.alpha||null===e.rotationRate.beta||null===e.rotationRate.gamma||this._hasStartedOrientation?this._hasStartedOrientation||this._startDeviceOrientation():(e.timeStamp,t.motionRotationRateSubmit(r,e.rotationRate.alpha*Math.PI/-180,e.rotationRate.beta*Math.PI/-180,e.rotationRate.gamma*Math.PI/-180))}}destroy(){c.deleteCameraSource(this._impl),super.destroy()}_stop(){if(!this._currentStream)return;this._currentStream.getTracks().forEach(e=>e.stop()),this._currentStream=null}pause(){super.pause(),this._stopDeviceMotion(),this._syncCamera()}start(){super.start(),this._startDeviceMotion(),this._syncCamera()}_getConstraints(){return n(this,void 0,void 0,(function*(){let e,t;this._deviceId!==_.DEFAULT_DEVICE_ID&&this._deviceId!==_.USER_DEFAULT_DEVICE_ID?e=this._deviceId:t=this._deviceId===_.DEFAULT_DEVICE_ID?"environment":"user";let r={audio:!1,video:{facingMode:t,width:a.profile.videoWidth,height:a.profile.videoHeight,frameRate:a.profile.requestHighFrameRate?60:void 0,deviceId:e}};if(e)return r;if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return r;let n=yield navigator.mediaDevices.enumerateDevices(),i=!1;return n=n.filter(e=>{if("videoinput"!==e.kind)return!1;if(e.getCapabilities){i=!0;let r=e.getCapabilities();if(r&&r.facingMode&&r.facingMode.indexOf("user"===t?"user":"environment")<0)return!1}return!0}),i&&0!==n.length?("object"==typeof r.video&&(u.zcout("choosing device ID",n[n.length-1].deviceId),r.video.deviceId=n[n.length-1].deviceId),r):r}))}getFrame(e){this._cameraToScreenRotation=s.cameraRotationForScreenOrientation(!1),super.getFrame(e)}_getUserMedia(){return n(this,void 0,void 0,(function*(){let e=yield this._getConstraints();return navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?yield navigator.mediaDevices.getUserMedia(e):yield new Promise((t,r)=>{navigator.getUserMedia(e,t,r)})}))}_syncCamera(){return n(this,void 0,void 0,(function*(){if(this._currentStream&&this._isPaused)this._stop();else if(this._currentStream&&this._activeDeviceId!==this._deviceId&&this._stop(),!this._isPaused){if(this._activeDeviceId=this._deviceId,this._currentStream=yield this._getUserMedia(),this._isPaused)return void(yield this._syncCamera());if(this._isUserFacing=!1,this._currentStream){let e=this._currentStream.getVideoTracks();e.length>0&&(this._isUserFacing="user"===e[0].getSettings().facingMode)}if(!(this._video instanceof HTMLVideoElement))return;this._video.src="",this._video.loop=!1,this._video.muted=!0,this._video.srcObject=this._currentStream,this._video.play()}}))}_startDeviceOrientation(){this._hasStartedOrientation||(this._hasStartedOrientation=!0,this._deviceOrientationListener=e=>{let t=o.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.alpha&&null!==e.beta&&null!==e.gamma&&t.motionAttitudeSubmit(r,e.alpha,e.beta,e.gamma)},window.addEventListener("deviceorientation",this._deviceOrientationListener))}_startDeviceMotion(){window.addEventListener("devicemotion",this._deviceMotionListener,!1)}_stopDeviceMotion(){window.removeEventListener("devicemotion",this._deviceMotionListener),this._deviceOrientationListener&&window.removeEventListener("deviceorientation",this._deviceOrientationListener)}}t.CameraSource=_,_.USER_DEFAULT_DEVICE_ID="Simulated User Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b",_.DEFAULT_DEVICE_ID="Simulated Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTMLElementSource=void 0;const n=r(2),i=r(8),a=r(3),o=r(1),s=r(0),u=r(33);let c=1,f=new Map;class _ extends i.Source{constructor(e,t){super(),this._video=e,this._pipeline=t,this._isPaused=!0,this._hadFrames=!1,this._isUserFacing=!1,this._cameraToScreenRotation=0,this._isUploadFrame=!0,this._cameraToDeviceTransform=o.mat4.create(),this._cameraToDeviceTransformUserFacing=o.mat4.create(),this._cameraModel=new Float32Array([300,300,160,120,0,0]),o.mat4.fromScaling(this._cameraToDeviceTransformUserFacing,[-1,1,-1]);let r=this._video;this._video instanceof HTMLVideoElement?r.addEventListener("loadedmetadata",()=>{this._hadFrames=!0}):this._hadFrames=!0,this._resetGLContext=this._resetGLContext.bind(this);let i=n.Pipeline.get(this._pipeline);i&&i.onGLContextReset.bind(this._resetGLContext)}static createVideoElementSource(e,t){let r=c++;return f.set(r,new _(t,e)),s.zcout("html_element_source_t initialized"),r}static getVideoElementSource(e){return f.get(e)}_resetGLContext(){var e,t;this._currentVideoTexture=void 0,null===(t=null===(e=this._imageProcessor)||void 0===e?void 0:e.resetGLContext)||void 0===t||t.call(e)}destroy(){let e=n.Pipeline.get(this._pipeline);e&&e.onGLContextReset.unbind(this._resetGLContext),this.pause(),this._resetGLContext()}pause(){this._isPaused=!0;let e=n.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0)}start(){var e;this._isPaused&&(this._isUploadFrame=!0,this._video instanceof HTMLVideoElement&&(this._hadFrames=!1)),this._isPaused=!1;let t=n.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this)}getFrame(e){let t=n.Pipeline.get(this._pipeline);if(!t)return;let r=t.glContext;if(r&&!this._isPaused&&this._hadFrames)try{let n=this._processFrame(r,this._cameraToScreenRotation,e);if(n){let e=t.registerToken(n);t.sendDataToWorker(n.data||new ArrayBuffer(0),e,n.dataWidth,n.dataHeight,n.userFacing,n.cameraToDevice,n.cameraModel)}}catch(e){console.log("Unable to process frame")}}_processFrame(e,t,r){let i=n.Pipeline.get(this._pipeline);if(!i)return;if(this._imageProcessor||(this._imageProcessor=new u.ImageProcessGL(e)),this._isUploadFrame){if(this._currentVideoTexture||(this._currentVideoTexture=i.getVideoTexture()),!this._currentVideoTexture)return;return this._imageProcessor.uploadFrame(this._currentVideoTexture,this._video,t,this._isUserFacing),void(this._isUploadFrame=!this._isUploadFrame)}if(r||!this._currentVideoTexture)return;this._isUploadFrame=!this._isUploadFrame;let o=a.profile.dataWidth*a.profile.dataHeight,s=i.cameraPixelArrays.pop();for(;s&&s.byteLength!==o;)s=i.cameraPixelArrays.pop();s||(s=new ArrayBuffer(o));let c=this._currentVideoTexture;this._currentVideoTexture=void 0;let f=300*a.profile.dataWidth/320;return this._cameraModel[0]=f,this._cameraModel[1]=f,this._cameraModel[2]=.5*a.profile.dataWidth,this._cameraModel[3]=.5*a.profile.dataHeight,Object.assign(Object.assign({},this._imageProcessor.readFrame(c,s)),{cameraModel:this._cameraModel,cameraSource:this,cameraToDevice:this._isUserFacing?this._cameraToDeviceTransformUserFacing:this._cameraToDeviceTransform})}uploadGL(){}}t.HTMLElementSource=_},function(e,t,r){"use strict";r.r(t),t.default=r.p+"b4f46e148a3b3b5aef90717d8d60e3fc.zbin"},function(e,t,r){"use strict";e.exports=function(e,t,r,n){try{try{var i;try{i=new window.Blob([e])}catch(t){(i=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(e),i=i.getBlob()}var a=window.URL||window.webkitURL,o=a.createObjectURL(i),s=new window[t](o,r);return a.revokeObjectURL(o),s}catch(n){return new window[t]("data:application/javascript,".concat(encodeURIComponent(e)),r)}}catch(e){if(!n)throw Error("Inline worker is not supported");return new window[t](n,r)}}},function(e,t,r){"use strict";if(Object.defineProperty(t,"__esModule",{value:!0}),t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=t.initialize=void 0,document.currentScript){const e=new URL(document.currentScript.src);let t=e.toString();if(e.pathname){let e=t.split("/");e.pop(),t=e.join("/")+"/"}r.p=t}const n=r(19),i=r(46);t.initialize=function(){return console.log("Zappar CV v"+i.VERSION),n.initialize()};var a=r(12);Object.defineProperty(t,"barcode_format_t",{enumerable:!0,get:function(){return a.barcode_format_t}}),Object.defineProperty(t,"face_landmark_name_t",{enumerable:!0,get:function(){return a.face_landmark_name_t}}),Object.defineProperty(t,"instant_world_tracker_transform_orientation_t",{enumerable:!0,get:function(){return a.instant_world_tracker_transform_orientation_t}}),Object.defineProperty(t,"log_level_t",{enumerable:!0,get:function(){return a.log_level_t}})},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.initialize=void 0;const i=r(20),a=r(9),o=r(5),s=r(1),u=r(23),c=r(27),f=r(29),_=r(2),d=r(14),l=r(15),h=r(37),m=r(39),p=r(0),b=r(40),g=r(7),v=r(41),w=r(42);let y;t.initialize=function(){if(y)return y;let e=!1;u.launchWorker().then(()=>{p.zcout("Fully loaded"),e=!0});let t=new i.zappar_client(e=>{u.messageManager.postOutgoingMessage({t:"zappar",d:e},[e])});if(window.location.hostname.toLowerCase().indexOf(".zappar.io")>0){let e=window.location.pathname.split("/");e.length>1&&e[1].length>0&&t.impl.analytics_project_id_set(".wiz"+e[1])}return u.messageManager.onIncomingMessage.bind(e=>{var r,n,i,a,o,s,u;switch(e.t){case"zappar":null===(r=_.Pipeline.get(e.p))||void 0===r||r.pendingMessages.push(e.d);break;case"buf":t.serializer.bufferReturn(e.d);break;case"cameraFrameRecycleS2C":{let t=e;null===(i=null===(n=_.Pipeline.get(t.p))||void 0===n?void 0:n.cameraTokenReturn)||void 0===i||i.call(n,e);break}case"videoFrameS2C":{let t=e;null===(o=null===(a=_.Pipeline.get(t.p))||void 0===a?void 0:a.videoFrameFromWorker)||void 0===o||o.call(a,t);break}case"imageBitmapS2C":{let t=e;null===(u=null===(s=_.Pipeline.get(t.p))||void 0===s?void 0:s.imageBitmapFromWorker)||void 0===u||u.call(s,t);break}case"licerr":{let e=document.createElement("div");e.innerHTML="Visit <a href='https://docs.zap.works/universal-ar/licensing/' style='color: white;'>our licensing page</a> to find out about hosting on your own domain.",e.style.position="absolute",e.style.bottom="20px",e.style.width="80%",e.style.backgroundColor="black",e.style.color="white",e.style.borderRadius="10px",e.style.padding="10px",e.style.fontFamily="sans-serif",e.style.textAlign="center",e.style.left="10%",e.style.zIndex=Number.MAX_SAFE_INTEGER.toString();let t=document.createElement("span");t.innerText=" (30)",e.append(t);let r=30;setInterval((function(){r--,r>=0&&(t.innerText=" ("+r.toString()+")")}),1e3),document.body.append(e)}case"gfx":{let e=document.createElement("div");e.innerHTML=v.gfx,e.style.position="absolute",e.style.bottom="20px",e.style.width="250px",e.style.left="50%",e.style.marginLeft="-125px",e.style.zIndex=Number.MAX_SAFE_INTEGER.toString(),e.style.opacity="0",e.style.transition="opacity 0.5s",document.body.append(e),setTimeout((function(){e.style.opacity="1"}),500),setTimeout((function(){e.style.opacity="0"}),3e3),setTimeout((function(){e.remove()}),4e3)}}}),y=Object.assign(Object.assign({},t.impl),{loaded:()=>e,camera_default_device_id:e=>e?d.CameraSource.USER_DEFAULT_DEVICE_ID:d.CameraSource.DEFAULT_DEVICE_ID,camera_source_create:(e,t)=>g.createCameraSource(e,t),camera_source_destroy:e=>{var t;return null===(t=g.getCameraSource(e))||void 0===t?void 0:t.destroy()},camera_source_pause:e=>{var t;return null===(t=g.getCameraSource(e))||void 0===t?void 0:t.pause()},camera_source_start:e=>{var t;return null===(t=g.getCameraSource(e))||void 0===t?void 0:t.start()},pipeline_create:()=>_.Pipeline.create(t.impl,u.messageManager),pipeline_frame_update:e=>{var r;return null===(r=_.Pipeline.get(e))||void 0===r?void 0:r.frameUpdate(t)},pipeline_camera_frame_draw_gl:(e,t,r,n)=>{var i;null===(i=_.Pipeline.get(e))||void 0===i||i.cameraFrameDrawGL(t,r,n)},draw_plane:(e,t,r,n,i)=>{a.drawPlane(e,t,r,n,i)},pipeline_draw_face:(e,t,r,n,i)=>{var a;let o=f.getFaceMesh(i);if(!o)return p.zcwarn("attempting to call draw_face on a destroyed zappar_face_mesh_t"),new Uint16Array;null===(a=_.Pipeline.get(e))||void 0===a||a.drawFace(t,r,n,o)},pipeline_draw_face_project:(e,t,r,n,i,a,o)=>{var s;null===(s=_.Pipeline.get(e))||void 0===s||s.drawFaceProject(t,r,n,i,a,o)},projection_matrix_from_camera_model:o.projectionMatrix,projection_matrix_from_camera_model_ext:o.projectionMatrix,pipeline_process_gl:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.processGL()},pipeline_gl_context_set:(e,t,r)=>{var n;return null===(n=_.Pipeline.get(e))||void 0===n?void 0:n.glContextSet(t,r)},pipeline_gl_context_lost:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.glContextLost()},pipeline_camera_frame_upload_gl:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.uploadGL()},pipeline_camera_frame_texture_gl:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.cameraFrameTexture()},pipeline_camera_frame_texture_matrix:(e,t,r,n)=>{var i;return(null===(i=_.Pipeline.get(e))||void 0===i?void 0:i.cameraFrameTextureMatrix(t,r,n))||s.mat4.create()},pipeline_camera_frame_user_facing:e=>{var t;return(null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.cameraFrameUserFacing())||!1},pipeline_camera_pose_default:()=>s.mat4.create(),pipeline_camera_pose_with_attitude:(e,t)=>{var r;return(null===(r=_.Pipeline.get(e))||void 0===r?void 0:r.cameraPoseWithAttitude(t))||s.mat4.create()},pipeline_camera_pose_with_origin:(e,t)=>{let r=s.mat4.create();return s.mat4.invert(r,t),r},pipeline_sequence_record_clear:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordClear()},pipeline_sequence_record_start:(e,t)=>{var r;return null===(r=_.Pipeline.get(e))||void 0===r?void 0:r.sequenceRecordStart(t)},pipeline_sequence_record_stop:e=>{var t;return null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordStop()},pipeline_sequence_record_device_attitude_matrices_set:(e,t)=>{var r;return null===(r=_.Pipeline.get(e))||void 0===r?void 0:r.sequenceRecordDeviceAttitudeMatrices(t)},pipeline_sequence_record_data:e=>{var t;return(null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordData())||new Uint8Array(0)},pipeline_sequence_record_data_size:e=>{var t;return(null===(t=_.Pipeline.get(e))||void 0===t?void 0:t.sequenceRecordData().byteLength)||0},instant_world_tracker_anchor_pose_camera_relative:(e,r)=>{let n=_.applyScreenCounterRotation(void 0,t.impl.instant_world_tracker_anchor_pose_raw(e));if(r){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(n,e,n),s.mat4.multiply(n,n,e)}return n},instant_world_tracker_anchor_pose:(e,r,n)=>{let i=_.applyScreenCounterRotation(void 0,t.impl.instant_world_tracker_anchor_pose_raw(e));if(n){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(i,e,i),s.mat4.multiply(i,i,e)}return s.mat4.multiply(i,r,i),i},instant_world_tracker_anchor_pose_set_from_camera_offset:(e,r,n,i,a)=>{let u=o.cameraRotationForScreenOrientation(!1)*Math.PI/180,c=s.mat4.create();s.mat4.fromRotation(c,-u,[0,0,1]);let f=s.vec3.create();s.vec3.transformMat4(f,[r,n,i],c),t.impl.instant_world_tracker_anchor_pose_set_from_camera_offset_raw(e,f[0],f[1],f[2],a)},image_tracker_create:e=>w.ImageTracker.create(e,t.impl),image_tracker_destroy:e=>{var t;return null===(t=w.ImageTracker.get(e))||void 0===t?void 0:t.destroy()},image_tracker_target_count:e=>{let t=w.ImageTracker.get(e);return t?t.targetCount():(p.zcwarn("attempting to call image_tracker_target_count on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_load_from_memory:(e,t)=>{let r=w.ImageTracker.get(e);if(!r)return p.zcwarn("attempting to call image_tracker_target_load_from_memory on a destroyed zappar_image_tracker_t"),0;r.loadFromMemory(t)},image_tracker_target_preview_compressed:(e,t)=>{var r;let n=w.ImageTracker.get(e);return n?(null===(r=n.getTargetInfo(t).preview)||void 0===r?void 0:r.compressed)||new Uint8Array(0):(p.zcwarn("attempting to call image_tracker_target_preview_compressed on a destroyed zappar_image_tracker_t"),new Uint8Array(0))},image_tracker_target_preview_compressed_mimetype:(e,t)=>{var r;let n=w.ImageTracker.get(e);return n?(null===(r=n.getTargetInfo(t).preview)||void 0===r?void 0:r.mimeType)||"":(p.zcwarn("attempting to call image_tracker_target_preview_compressed_mimetype on a destroyed zappar_image_tracker_t"),"")},image_tracker_target_preview_compressed_size:(e,t)=>{var r,n;let i=w.ImageTracker.get(e);return i?(null===(n=null===(r=i.getTargetInfo(t).preview)||void 0===r?void 0:r.compressed)||void 0===n?void 0:n.byteLength)||0:(p.zcwarn("attempting to call image_tracker_target_preview_compressed_size on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_physical_scale_factor:(e,t)=>{let r=w.ImageTracker.get(e);return r?r.getTargetInfo(t).physicalScaleFactor:(p.zcwarn("attempting to call image_tracker_target_physical_scale_factor on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_radius_top:(e,t)=>{let r=w.ImageTracker.get(e);return r?r.getTargetInfo(t).topRadius:(p.zcwarn("attempting to call image_tracker_target_radius_top on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_radius_bottom:(e,t)=>{let r=w.ImageTracker.get(e);return r?r.getTargetInfo(t).bottomRadius:(p.zcwarn("attempting to call image_tracker_target_radius_bottom on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_side_length:(e,t)=>{let r=w.ImageTracker.get(e);return r?r.getTargetInfo(t).sideLength:(p.zcwarn("attempting to call image_tracker_target_side_length on a destroyed zappar_image_tracker_t"),0)},image_tracker_target_image:(e,t)=>{let r=w.ImageTracker.get(e);return r?r.getDecodedPreview(t):(p.zcwarn("attempting to call image_tracker_target_image on a destroyed zappar_image_tracker_t"),new Image)},image_tracker_anchor_pose_camera_relative:(e,r,n)=>{let i=_.applyScreenCounterRotation(void 0,t.impl.image_tracker_anchor_pose_raw(e,r));if(n){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(i,e,i),s.mat4.multiply(i,i,e)}return i},image_tracker_anchor_pose:(e,r,n,i)=>{let a=_.applyScreenCounterRotation(void 0,t.impl.image_tracker_anchor_pose_raw(e,r));if(i){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(a,e,a),s.mat4.multiply(a,a,e)}return s.mat4.multiply(a,n,a),a},face_tracker_anchor_pose_camera_relative:(e,r,n)=>{let i=_.applyScreenCounterRotation(void 0,t.impl.face_tracker_anchor_pose_raw(e,r));if(n){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(i,e,i),s.mat4.multiply(i,i,e)}return i},face_tracker_anchor_pose:(e,r,n,i)=>{let a=_.applyScreenCounterRotation(void 0,t.impl.face_tracker_anchor_pose_raw(e,r));if(i){let e=s.mat4.create();s.mat4.fromScaling(e,[-1,1,1]),s.mat4.multiply(a,e,a),s.mat4.multiply(a,a,e)}return s.mat4.multiply(a,n,a),a},face_tracker_model_load_default:e=>n(this,void 0,void 0,(function*(){yield function(e){return n(this,void 0,void 0,(function*(){let t=r(45);void 0!==t.default&&(t=t.default);let n=yield fetch(t),i=yield n.arrayBuffer();null==y||y.face_tracker_model_load_from_memory(e,i)}))}(e)})),face_mesh_create:()=>f.createFaceMesh(),face_mesh_destroy:e=>{f.destroyFaceMesh(e)},face_mesh_indices:e=>{let t=f.getFaceMesh(e);return t?t.getIndices():(p.zcwarn("attempting to call face_mesh_indices on a destroyed zappar_face_mesh_t"),new Uint16Array)},face_mesh_indices_size:e=>{let t=f.getFaceMesh(e);return t?t.getIndices().length:(p.zcwarn("attempting to call face_mesh_indices_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_uvs:e=>{let t=f.getFaceMesh(e);return t?t.getUVs():(p.zcwarn("attempting to call face_mesh_uvs on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_uvs_size:e=>{let t=f.getFaceMesh(e);return t?t.getUVs().length:(p.zcwarn("attempting to call face_mesh_uvs_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_vertices:e=>{let t=f.getFaceMesh(e);return t?t.getVertices():(p.zcwarn("attempting to call face_mesh_vertices on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_vertices_size:e=>{let t=f.getFaceMesh(e);return t?t.getVertices().length:(p.zcwarn("attempting to call face_mesh_vertices_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_normals:e=>{let t=f.getFaceMesh(e);return t?t.getNormals():(p.zcwarn("attempting to call face_mesh_normals on a destroyed zappar_face_mesh_t"),new Float32Array)},face_mesh_normals_size:e=>{let t=f.getFaceMesh(e);return t?t.getNormals().length:(p.zcwarn("attempting to call face_mesh_normals_size on a destroyed zappar_face_mesh_t"),0)},face_mesh_load_from_memory:(e,t,r,n,i,a)=>{let o=f.getFaceMesh(e);o?o.loadFromMemory(t,r,n,i,a):p.zcwarn("attempting to call face_mesh_load_from_memory on a destroyed zappar_face_mesh_t")},face_mesh_update:(e,t,r,n)=>{let i=f.getFaceMesh(e);i?i.update(t,r,n):p.zcwarn("attempting to call face_mesh_update on a destroyed zappar_face_mesh_t")},face_mesh_load_default:e=>n(this,void 0,void 0,(function*(){let t=f.getFaceMesh(e);if(!t)return void p.zcwarn("attempting to call face_mesh_load_default on a destroyed zappar_face_mesh_t");let n=r(16);void 0!==n.default&&(n=n.default);let i=yield fetch(n);t.loadFromMemory(yield i.arrayBuffer(),!1,!1,!1,!1)})),face_mesh_load_default_face:(e,t,i,a)=>n(this,void 0,void 0,(function*(){let n=f.getFaceMesh(e);if(!n)return void p.zcwarn("attempting to call face_mesh_load_default_face on a destroyed zappar_face_mesh_t");let o=r(16);void 0!==o.default&&(o=o.default);let s=yield fetch(o);n.loadFromMemory(yield s.arrayBuffer(),t,i,a,!1)})),face_mesh_load_default_full_head_simplified:(e,t,i,a,o)=>n(this,void 0,void 0,(function*(){let n=f.getFaceMesh(e);if(!n)return void p.zcwarn("attempting to call face_mesh_load_default_full_head_simplified on a destroyed zappar_face_mesh_t");let s=r(44);void 0!==s.default&&(s=s.default);let u=yield fetch(s);n.loadFromMemory(yield u.arrayBuffer(),t,i,a,o)})),face_mesh_loaded_version:e=>{let t=f.getFaceMesh(e);return t?t.getModelVersion():(p.zcwarn("attempting to call face_mesh_load_default on a destroyed zappar_face_mesh_t"),-1)},face_landmark_create:e=>h.createFaceLandmark(e),face_landmark_destroy:e=>{h.destroyFaceLandmark(e)},face_landmark_update:(e,t,r,n)=>{let i=h.getFaceLandmark(e);i?i.update(t,r,n):p.zcwarn("attempting to call face_landmark_update on a destroyed zappar_face_landmark_t")},face_landmark_anchor_pose:e=>{let t=h.getFaceLandmark(e);return t?t.anchor_pose:(p.zcwarn("attempting to call face_landmark_anchor_pose on a destroyed zappar_face_landmark_t"),s.mat4.create())},html_element_source_create:(e,t)=>l.HTMLElementSource.createVideoElementSource(e,t),html_element_source_start:e=>{var t;return null===(t=l.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.start()},html_element_source_pause:e=>{var t;return null===(t=l.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.pause()},html_element_source_destroy:e=>{var t;return null===(t=l.HTMLElementSource.getVideoElementSource(e))||void 0===t?void 0:t.destroy()},sequence_source_create:e=>b.SequenceSource.create(e),sequence_source_load_from_memory:(e,t)=>{var r;return null===(r=b.SequenceSource.get(e))||void 0===r?void 0:r.loadFromMemory(t)},sequence_source_pause:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.pause()},sequence_source_start:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.start()},sequence_source_max_playback_fps_set:(e,t)=>{var r;return null===(r=b.SequenceSource.get(e))||void 0===r?void 0:r.maxPlaybackFpsSet(t)},sequence_source_destroy:e=>{var t;return null===(t=b.SequenceSource.get(e))||void 0===t?void 0:t.destroy()},permission_granted_all:c.permissionGrantedAll,permission_granted_camera:c.permissionGrantedCamera,permission_granted_motion:c.permissionGrantedMotion,permission_denied_any:c.permissionDeniedAny,permission_denied_camera:c.permissionDeniedCamera,permission_denied_motion:c.permissionDeniedMotion,permission_request_motion:c.permissionRequestMotion,permission_request_camera:c.permissionRequestCamera,permission_request_all:c.permissionRequestAll,permission_request_ui:c.permissionRequestUI,permission_request_ui_promise:c.permissionRequestUI,permission_denied_ui:c.permissionDeniedUI,browser_incompatible:m.default.incompatible,browser_incompatible_ui:m.default.incompatible_ui,log_level_set:e=>{p.setLogLevel(e),t.impl.log_level_set(e)}}),y}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zappar_client=void 0;const n=r(21),i=r(22);t.zappar_client=class{constructor(e){this._messageSender=e,this._globalState={log_level:1},this.serializer=new n.MessageSerializer(e=>{this._messageSender(e)}),this.deserializer=new i.MessageDeserializer,this._latestId=1,this._pipeline_state_by_instance=new Map,this._camera_source_state_by_instance=new Map,this._sequence_source_state_by_instance=new Map,this._image_tracker_state_by_instance=new Map,this._face_tracker_state_by_instance=new Map,this._face_mesh_state_by_instance=new Map,this._face_landmark_state_by_instance=new Map,this._barcode_finder_state_by_instance=new Map,this._instant_world_tracker_state_by_instance=new Map,this.impl={log_level:()=>this._globalState.log_level,log_level_set:e=>{this.serializer.sendMessage(34,t=>{t.logLevel(e)})},analytics_project_id_set:e=>{this.serializer.sendMessage(31,t=>{t.string(e)})},pipeline_create:()=>{let e=this._latestId++,t={current_frame_user_data:0,camera_model:new Float32Array([300,300,160,120,0,0]),camera_pose:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),camera_frame_camera_attitude:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),camera_frame_device_attitude:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),frame_number:0};return this._pipeline_state_by_instance.set(e,t),this.serializer.sendMessage(27,t=>{t.type(e)}),e},pipeline_destroy:e=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this._pipeline_state_by_instance.delete(e),this.serializer.sendMessage(28,t=>{t.type(e)})},pipeline_frame_update:e=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(9,t=>{t.type(e)})},pipeline_frame_number:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.frame_number},pipeline_camera_model:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_model},pipeline_camera_frame_user_data:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.current_frame_user_data},pipeline_camera_frame_submit:(e,t,r,n,i,a,o,s)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(8,u=>{u.type(e),u.dataWithLength(t),u.int(r),u.int(n),u.int(i),u.matrix4x4(a),u.cameraModel(o),u.bool(s)})},pipeline_camera_frame_submit_raw_pointer:(e,t,r,n,i,a,o,s,u,c,f)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed")},pipeline_camera_frame_camera_attitude:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_frame_camera_attitude},pipeline_camera_frame_device_attitude:e=>{let t=this._pipeline_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.camera_frame_device_attitude},pipeline_motion_accelerometer_submit:(e,t,r,n,i)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(10,a=>{a.type(e),a.timestamp(t),a.float(r),a.float(n),a.float(i)})},pipeline_motion_rotation_rate_submit:(e,t,r,n,i)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(11,a=>{a.type(e),a.timestamp(t),a.float(r),a.float(n),a.float(i)})},pipeline_motion_attitude_submit:(e,t,r,n,i)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(12,a=>{a.type(e),a.timestamp(t),a.float(r),a.float(n),a.float(i)})},pipeline_motion_attitude_matrix_submit:(e,t)=>{if(!this._pipeline_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(13,r=>{r.type(e),r.matrix4x4(t)})},camera_source_create:(e,t)=>{let r=this._latestId++;return this._camera_source_state_by_instance.set(r,{}),this.serializer.sendMessage(29,n=>{n.type(r),n.type(e),n.string(t)}),r},camera_source_destroy:e=>{if(!this._camera_source_state_by_instance.get(e))throw new Error("This object has been destroyed");this._camera_source_state_by_instance.delete(e),this.serializer.sendMessage(30,t=>{t.type(e)})},sequence_source_create:e=>{let t=this._latestId++;return this._sequence_source_state_by_instance.set(t,{}),this.serializer.sendMessage(35,r=>{r.type(t),r.type(e)}),t},sequence_source_destroy:e=>{if(!this._sequence_source_state_by_instance.get(e))throw new Error("This object has been destroyed");this._sequence_source_state_by_instance.delete(e),this.serializer.sendMessage(36,t=>{t.type(e)})},image_tracker_create:e=>{let t=this._latestId++;return this._image_tracker_state_by_instance.set(t,{enabled:!0,target_loaded_version:-1,anchor_count:0,anchor_id:[],anchor_pose:[]}),this.serializer.sendMessage(2,r=>{r.type(t),r.type(e)}),t},image_tracker_destroy:e=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._image_tracker_state_by_instance.delete(e),this.serializer.sendMessage(14,t=>{t.type(e)})},image_tracker_target_load_from_memory:(e,t)=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(4,r=>{r.type(e),r.dataWithLength(t)})},image_tracker_target_loaded_version:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.target_loaded_version},image_tracker_enabled:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},image_tracker_enabled_set:(e,t)=>{if(!this._image_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(3,r=>{r.type(e),r.bool(t)})},image_tracker_anchor_count:e=>{let t=this._image_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.anchor_count},image_tracker_anchor_id:(e,t)=>{let r=this._image_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_id[t]},image_tracker_anchor_pose_raw:(e,t)=>{let r=this._image_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_pose[t]},face_tracker_create:e=>{let t=this._latestId++;return this._face_tracker_state_by_instance.set(t,{enabled:!0,model_loaded:-1,max_faces:1,anchor_count:0,anchor_id:[],anchor_pose:[],anchor_identity_coefficients:[],anchor_expression_coefficients:[]}),this.serializer.sendMessage(20,r=>{r.type(t),r.type(e)}),t},face_tracker_destroy:e=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_tracker_state_by_instance.delete(e),this.serializer.sendMessage(21,t=>{t.type(e)})},face_tracker_model_load_from_memory:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(22,r=>{r.type(e),r.dataWithLength(t)})},face_tracker_model_loaded_version:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.model_loaded},face_tracker_enabled_set:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(23,r=>{r.type(e),r.bool(t)})},face_tracker_enabled:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},face_tracker_max_faces_set:(e,t)=>{if(!this._face_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(24,r=>{r.type(e),r.int(t)})},face_tracker_max_faces:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.max_faces},face_tracker_anchor_count:e=>{let t=this._face_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.anchor_count},face_tracker_anchor_id:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_id[t]},face_tracker_anchor_pose_raw:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_pose[t]},face_tracker_anchor_identity_coefficients:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_identity_coefficients[t]},face_tracker_anchor_expression_coefficients:(e,t)=>{let r=this._face_tracker_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.anchor_expression_coefficients[t]},face_mesh_create:()=>{let e=this._latestId++;return this._face_mesh_state_by_instance.set(e,{}),this.serializer.sendMessage(25,t=>{t.type(e)}),e},face_mesh_destroy:e=>{if(!this._face_mesh_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_mesh_state_by_instance.delete(e),this.serializer.sendMessage(26,t=>{t.type(e)})},face_landmark_create:e=>{let t=this._latestId++;return this._face_landmark_state_by_instance.set(t,{}),this.serializer.sendMessage(32,r=>{r.type(t),r.faceLandmarkName(e)}),t},face_landmark_destroy:e=>{if(!this._face_landmark_state_by_instance.get(e))throw new Error("This object has been destroyed");this._face_landmark_state_by_instance.delete(e),this.serializer.sendMessage(33,t=>{t.type(e)})},barcode_finder_create:e=>{let t=this._latestId++;return this._barcode_finder_state_by_instance.set(t,{enabled:!0,number_found:0,found_text:[],found_format:[],formats:131071}),this.serializer.sendMessage(16,r=>{r.type(t),r.type(e)}),t},barcode_finder_destroy:e=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this._barcode_finder_state_by_instance.delete(e),this.serializer.sendMessage(17,t=>{t.type(e)})},barcode_finder_enabled_set:(e,t)=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(18,r=>{r.type(e),r.bool(t)})},barcode_finder_enabled:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},barcode_finder_found_number:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.number_found},barcode_finder_found_text:(e,t)=>{let r=this._barcode_finder_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.found_text[t]},barcode_finder_found_format:(e,t)=>{let r=this._barcode_finder_state_by_instance.get(e);if(!r)throw new Error("This object has been destroyed");return r.found_format[t]},barcode_finder_formats:e=>{let t=this._barcode_finder_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.formats},barcode_finder_formats_set:(e,t)=>{if(!this._barcode_finder_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(19,r=>{r.type(e),r.barcodeFormat(t)})},instant_world_tracker_create:e=>{let t=this._latestId++,r={enabled:!0,pose:new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};return this._instant_world_tracker_state_by_instance.set(t,r),this.serializer.sendMessage(5,r=>{r.type(t),r.type(e)}),t},instant_world_tracker_destroy:e=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this._instant_world_tracker_state_by_instance.delete(e),this.serializer.sendMessage(15,t=>{t.type(e)})},instant_world_tracker_enabled_set:(e,t)=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(6,r=>{r.type(e),r.bool(t)})},instant_world_tracker_enabled:e=>{let t=this._instant_world_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.enabled},instant_world_tracker_anchor_pose_raw:e=>{let t=this._instant_world_tracker_state_by_instance.get(e);if(!t)throw new Error("This object has been destroyed");return t.pose},instant_world_tracker_anchor_pose_set_from_camera_offset_raw:(e,t,r,n,i)=>{if(!this._instant_world_tracker_state_by_instance.get(e))throw new Error("This object has been destroyed");this.serializer.sendMessage(7,a=>{a.type(e),a.float(t),a.float(r),a.float(n),a.instantTrackerTransformOrientation(i)})}}}processMessages(e){this.deserializer.setData(e),this.deserializer.forMessages((e,t)=>{switch(e){case 7:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.frame_number=t.int();break}case 6:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_model=t.cameraModel();break}case 5:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.current_frame_user_data=t.int();break}case 11:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_frame_camera_attitude=t.matrix4x4();break}case 12:{let e=t.type(),r=this._pipeline_state_by_instance.get(e);if(!r)return;r.camera_frame_device_attitude=t.matrix4x4();break}case 19:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;r.target_loaded_version=t.int();break}case 1:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;r.anchor_count=t.int();break}case 2:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_id[n]=t.string();break}case 3:{let e=t.type(),r=this._image_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_pose[n]=t.matrix4x4();break}case 18:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;r.model_loaded=t.int();break}case 13:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;r.anchor_count=t.int();break}case 14:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_id[n]=t.string();break}case 15:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_pose[n]=t.matrix4x4();break}case 16:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_identity_coefficients[n]=t.identityCoefficients();break}case 17:{let e=t.type(),r=this._face_tracker_state_by_instance.get(e);if(!r)return;let n=t.int();r.anchor_expression_coefficients[n]=t.expressionCoefficients();break}case 8:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;r.number_found=t.int();break}case 9:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;let n=t.int();r.found_text[n]=t.string();break}case 10:{let e=t.type(),r=this._barcode_finder_state_by_instance.get(e);if(!r)return;let n=t.int();r.found_format[n]=t.barcodeFormat();break}case 4:{let e=t.type(),r=this._instant_world_tracker_state_by_instance.get(e);if(!r)return;r.pose=t.matrix4x4();break}}})}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageSerializer=void 0;t.MessageSerializer=class{constructor(e){this._messageSender=e,this._freeBufferPool=[],this._buffer=new ArrayBuffer(16),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1,this._timeoutSet=!1,this._appender={int:e=>this.int(e),bool:e=>this.int(e?1:0),float:e=>this.float(e),string:e=>this.string(e),dataWithLength:e=>this.arrayBuffer(e),type:e=>this.int(e),matrix4x4:e=>this.float32ArrayBuffer(e),matrix3x3:e=>this.float32ArrayBuffer(e),identityCoefficients:e=>this.float32ArrayBuffer(e),expressionCoefficients:e=>this.float32ArrayBuffer(e),cameraModel:e=>this.float32ArrayBuffer(e),timestamp:e=>this.double(e),barcodeFormat:e=>this.int(e),faceLandmarkName:e=>this.int(e),instantTrackerTransformOrientation:e=>this.int(e),logLevel:e=>this.int(e)},this._freeBufferPool.push(new ArrayBuffer(16)),this._freeBufferPool.push(new ArrayBuffer(16))}bufferReturn(e){this._freeBufferPool.push(e)}_ensureArrayBuffer(e){let t=4*(this._offset+e+8);if(this._buffer&&this._buffer.byteLength>=t)return;let r=void 0;if(!r){let e=t;e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,r=new ArrayBuffer(e)}let n=this._buffer?this._i32View:void 0;this._buffer=r,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),n&&this._i32View.set(n.subarray(0,this._offset))}sendMessage(e,t){this._ensureArrayBuffer(4),this._startOffset=this._offset,this._i32View[this._offset+1]=e,this._offset+=2,t(this._appender),this._i32View[this._startOffset]=this._offset-this._startOffset,this._startOffset=-1,this._sendOneTime()}_sendOneTime(){!1===this._timeoutSet&&(this._timeoutSet=!0,setTimeout(()=>{this._timeoutSet=!1,this._send()},0))}_send(){0!==this._freeBufferPool.length?(this._i32View[0]=this._offset,this._messageSender(this._buffer),this._buffer=void 0,this._buffer=this._freeBufferPool.pop(),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1):this._sendOneTime()}int(e){this._ensureArrayBuffer(1),this._i32View[this._offset]=e,this._offset++}double(e){this._ensureArrayBuffer(2),this._offset%2==1&&this._offset++,this._f64View[this._offset/2]=e,this._offset+=2}float(e){this._ensureArrayBuffer(1),this._f32View[this._offset]=e,this._offset++}int32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t];this._offset+=e.length}float32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._f32View[this._offset+t]=e[t];this._offset+=e.length}booleanArray(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t]?1:0;this._offset+=e.length}uint8ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8View.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}arrayBuffer(e){let t=new Uint8Array(e);this.uint8ArrayBuffer(t)}uint8ClampedArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8cView.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}float32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._f32View.set(e,this._offset),this._offset+=e.length}uint16ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++;let t=2*this._offset;this._u16View.set(e,t),this._offset+=e.length>>1,0!=(1&e.length)&&this._offset++}int32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._i32View.set(e,this._offset),this._offset+=e.length}uint32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._u32View.set(e,this._offset),this._offset+=e.length}string(e){let t=(new TextEncoder).encode(e);this._ensureArrayBuffer(t.byteLength/4),this._i32View[this._offset]=t.byteLength,this._offset++,this._u8View.set(t,4*this._offset),this._offset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._offset++}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageDeserializer=void 0;t.MessageDeserializer=class{constructor(){this._buffer=new ArrayBuffer(0),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,this._startOffset=-1,this._processor={int:()=>this._i32View[this._startOffset++],bool:()=>1===this._i32View[this._startOffset++],type:()=>this._i32View[this._startOffset++],float:()=>this._f32View[this._startOffset++],timestamp:()=>{this._startOffset%2==1&&this._startOffset++;let e=this._f64View[this._startOffset/2];return this._startOffset+=2,e},string:()=>{let e=this._i32View[this._startOffset++],t=(new TextDecoder).decode(new Uint8Array(this._buffer,4*this._startOffset,e));return this._startOffset+=e>>2,0!=(3&e)&&this._startOffset++,t},dataWithLength:()=>{let e=this._i32View[this._startOffset++],t=new Uint8Array(e);return t.set(this._u8View.subarray(4*this._startOffset,4*this._startOffset+e)),this._startOffset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._startOffset++,t.buffer},matrix4x4:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+16)),this._startOffset+=e,t},matrix3x3:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+9)),this._startOffset+=e,t},identityCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+50)),this._startOffset+=e,t},expressionCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+29)),this._startOffset+=e,t},cameraModel:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+6)),this._startOffset+=e,t},barcodeFormat:()=>this._i32View[this._startOffset++],faceLandmarkName:()=>this._i32View[this._startOffset++],instantTrackerTransformOrientation:()=>this._i32View[this._startOffset++],logLevel:()=>this._i32View[this._startOffset++]}}setData(e){this._buffer=e,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,e.byteLength>=4&&(this._offset=1,this._length=this._i32View[0]),this._startOffset=-1}hasMessage(){return this._offset+1<this._length}forMessages(e){for(;this.hasMessage();){let t=this._i32View[this._offset],r=this._i32View[this._offset+1];this._startOffset=this._offset+2,this._offset+=t,e(r,this._processor)}}}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.launchWorker=t.messageManager=void 0;const i=r(24);let a;t.messageManager=new i.MsgManager,a=r(25),a.default&&(a=a.default),t.launchWorker=function(){return n(this,void 0,void 0,(function*(){let e=new a;var n;function i(){let r=t.messageManager.getOutgoingMessages();for(let t of r)e.postMessage(t.msg,t.transferables)}e.postMessage({t:"wasm",url:r(26).default}),yield(n=e,new Promise(e=>{let t=r=>{"loaded"===r.data&&(n.removeEventListener("message",t),e())};n.addEventListener("message",t)})),t.messageManager.onOutgoingMessage.bind(i),i(),e.addEventListener("message",e=>{t.messageManager.postIncomingMessage(e.data)})}))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgManager=void 0;const n=r(10);t.MsgManager=class{constructor(){this.onOutgoingMessage=new n.Event,this.onIncomingMessage=new n.Event1,this._outgoingMessages=[]}postIncomingMessage(e){this.onIncomingMessage.emit(e)}postOutgoingMessage(e,t){this._outgoingMessages.push({msg:e,transferables:t}),this.onOutgoingMessage.emit()}getOutgoingMessages(){let e=this._outgoingMessages;return this._outgoingMessages=[],e}}},function(e,t,r){"use strict";r.r(t);var n=r(17),i=r.n(n);t.default=function(){return i()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.profile=t.EmbeddedVideoImplementation=void 0;const n=r(19);!function(e){e[e.OBJECT_URL=0]="OBJECT_URL",e[e.SRC_OBJECT=1]="SRC_OBJECT"}(t.EmbeddedVideoImplementation||(t.EmbeddedVideoImplementation={})),t.profile={deviceMotionMutliplier:-1,blacklisted:!1,showGyroPermissionsWarningIfNecessary:!1,showSafariPermissionsResetIfNecessary:!1,requestHighFrameRate:!1,videoWidth:640,videoHeight:480,dataWidth:320,dataHeight:240,videoElementInDOM:!1,preferMediaStreamTrackProcessorCamera:!1,preferImageBitmapCamera:!1},"undefined"!=typeof window&&(window.zeeProfile=t.profile,window.location.href.indexOf("_mstppipeline")>=0&&(console.log("Configuring for MSTP camera pipeline (if supported)"),t.profile.preferMediaStreamTrackProcessorCamera=!0),window.location.href.indexOf("_imagebitmappipeline")>=0&&(console.log("Configuring for ImageBitmap camera pipeline (if supported)"),t.profile.preferImageBitmapCamera=!0));let a=new n.UAParser,i=(a.getOS().name||"unknown").toLowerCase(),o=(a.getEngine().name||"unknown").toLowerCase();function u(){let e=a.getOS().version;if(e){let r=e.split(".");if(r.length>=2){const e=parseInt(r[0]),n=parseInt(r[1]);(e<11||11===e&&n<3)&&(t.profile.blacklisted=!0),(e<12||12===e&&n<2)&&(t.profile.videoElementInDOM=!0),(12===e&&n>=2||e>=13)&&(t.profile.showGyroPermissionsWarningIfNecessary=!0),e>=13&&(t.profile.showSafariPermissionsResetIfNecessary=!0),(e>=12&&n>1||e>=13)&&navigator.mediaDevices&&navigator.mediaDevices.getSupportedConstraints&&navigator.mediaDevices.getSupportedConstraints().frameRate&&(t.profile.requestHighFrameRate=!0,e<14&&(t.profile.videoHeight=360,t.profile.dataHeight=180))}}}"webkit"===o&&"ios"!==i&&(t.profile.deviceMotionMutliplier=1,"undefined"!=typeof window&&void 0!==window.orientation&&u()),"webkit"===o&&"ios"===i&&(t.profile.deviceMotionMutliplier=1,u())},function(e,t,r){"use strict";r.r(t),r.d(t,"glMatrix",(function(){return n})),r.d(t,"mat2",(function(){return a})),r.d(t,"mat2d",(function(){return i})),r.d(t,"mat3",(function(){return o})),r.d(t,"mat4",(function(){return u})),r.d(t,"quat",(function(){return f})),r.d(t,"quat2",(function(){return _})),r.d(t,"vec2",(function(){return d})),r.d(t,"vec3",(function(){return s})),r.d(t,"vec4",(function(){return c}));var n={};r.r(n),r.d(n,"EPSILON",(function(){return l})),r.d(n,"ARRAY_TYPE",(function(){return h})),r.d(n,"RANDOM",(function(){return p})),r.d(n,"setMatrixArrayType",(function(){return m})),r.d(n,"toRadian",(function(){return w})),r.d(n,"equals",(function(){return g}));var a={};r.r(a),r.d(a,"create",(function(){return v})),r.d(a,"clone",(function(){return y})),r.d(a,"copy",(function(){return M})),r.d(a,"identity",(function(){return E})),r.d(a,"fromValues",(function(){return A})),r.d(a,"set",(function(){return x})),r.d(a,"transpose",(function(){return k})),r.d(a,"invert",(function(){return T})),r.d(a,"adjoint",(function(){return R})),r.d(a,"determinant",(function(){return F})),r.d(a,"multiply",(function(){return z})),r.d(a,"rotate",(function(){return L})),r.d(a,"scale",(function(){return O})),r.d(a,"fromRotation",(function(){return I})),r.d(a,"fromScaling",(function(){return P})),r.d(a,"str",(function(){return S})),r.d(a,"frob",(function(){return B})),r.d(a,"LDU",(function(){return D})),r.d(a,"add",(function(){return U})),r.d(a,"subtract",(function(){return C})),r.d(a,"exactEquals",(function(){return V})),r.d(a,"equals",(function(){return N})),r.d(a,"multiplyScalar",(function(){return q})),r.d(a,"multiplyScalarAndAdd",(function(){return G})),r.d(a,"mul",(function(){return W})),r.d(a,"sub",(function(){return H}));var i={};r.r(i),r.d(i,"create",(function(){return j})),r.d(i,"clone",(function(){return X})),r.d(i,"copy",(function(){return Y})),r.d(i,"identity",(function(){return Z})),r.d(i,"fromValues",(function(){return $})),r.d(i,"set",(function(){return K})),r.d(i,"invert",(function(){return J})),r.d(i,"determinant",(function(){return Q})),r.d(i,"multiply",(function(){return ee})),r.d(i,"rotate",(function(){return te})),r.d(i,"scale",(function(){return re})),r.d(i,"translate",(function(){return ne})),r.d(i,"fromRotation",(function(){return ae})),r.d(i,"fromScaling",(function(){return ie})),r.d(i,"fromTranslation",(function(){return oe})),r.d(i,"str",(function(){return ue})),r.d(i,"frob",(function(){return se})),r.d(i,"add",(function(){return ce})),r.d(i,"subtract",(function(){return fe})),r.d(i,"multiplyScalar",(function(){return _e})),r.d(i,"multiplyScalarAndAdd",(function(){return de})),r.d(i,"exactEquals",(function(){return le})),r.d(i,"equals",(function(){return he})),r.d(i,"mul",(function(){return pe})),r.d(i,"sub",(function(){return me}));var o={};r.r(o),r.d(o,"create",(function(){return be})),r.d(o,"fromMat4",(function(){return we})),r.d(o,"clone",(function(){return ge})),r.d(o,"copy",(function(){return ve})),r.d(o,"fromValues",(function(){return ye})),r.d(o,"set",(function(){return Me})),r.d(o,"identity",(function(){return Ee})),r.d(o,"transpose",(function(){return Ae})),r.d(o,"invert",(function(){return xe})),r.d(o,"adjoint",(function(){return ke})),r.d(o,"determinant",(function(){return Te})),r.d(o,"multiply",(function(){return Re})),r.d(o,"translate",(function(){return Fe})),r.d(o,"rotate",(function(){return ze})),r.d(o,"scale",(function(){return Le})),r.d(o,"fromTranslation",(function(){return Oe})),r.d(o,"fromRotation",(function(){return Ie})),r.d(o,"fromScaling",(function(){return Pe})),r.d(o,"fromMat2d",(function(){return Se})),r.d(o,"fromQuat",(function(){return Be})),r.d(o,"normalFromMat4",(function(){return De})),r.d(o,"projection",(function(){return Ue})),r.d(o,"str",(function(){return Ce})),r.d(o,"frob",(function(){return Ve})),r.d(o,"add",(function(){return Ne})),r.d(o,"subtract",(function(){return qe})),r.d(o,"multiplyScalar",(function(){return Ge})),r.d(o,"multiplyScalarAndAdd",(function(){return We})),r.d(o,"exactEquals",(function(){return He})),r.d(o,"equals",(function(){return je})),r.d(o,"mul",(function(){return Xe})),r.d(o,"sub",(function(){return Ye}));var u={};r.r(u),r.d(u,"create",(function(){return Ze})),r.d(u,"clone",(function(){return $e})),r.d(u,"copy",(function(){return Ke})),r.d(u,"fromValues",(function(){return Je})),r.d(u,"set",(function(){return Qe})),r.d(u,"identity",(function(){return et})),r.d(u,"transpose",(function(){return tt})),r.d(u,"invert",(function(){return rt})),r.d(u,"adjoint",(function(){return nt})),r.d(u,"determinant",(function(){return at})),r.d(u,"multiply",(function(){return it})),r.d(u,"translate",(function(){return ot})),r.d(u,"scale",(function(){return ut})),r.d(u,"rotate",(function(){return st})),r.d(u,"rotateX",(function(){return ct})),r.d(u,"rotateY",(function(){return ft})),r.d(u,"rotateZ",(function(){return _t})),r.d(u,"fromTranslation",(function(){return dt})),r.d(u,"fromScaling",(function(){return lt})),r.d(u,"fromRotation",(function(){return ht})),r.d(u,"fromXRotation",(function(){return pt})),r.d(u,"fromYRotation",(function(){return mt})),r.d(u,"fromZRotation",(function(){return bt})),r.d(u,"fromRotationTranslation",(function(){return wt})),r.d(u,"fromQuat2",(function(){return gt})),r.d(u,"getTranslation",(function(){return vt})),r.d(u,"getScaling",(function(){return yt})),r.d(u,"getRotation",(function(){return Mt})),r.d(u,"fromRotationTranslationScale",(function(){return Et})),r.d(u,"fromRotationTranslationScaleOrigin",(function(){return At})),r.d(u,"fromQuat",(function(){return xt})),r.d(u,"frustum",(function(){return kt})),r.d(u,"perspective",(function(){return Tt})),r.d(u,"perspectiveFromFieldOfView",(function(){return Rt})),r.d(u,"ortho",(function(){return Ft})),r.d(u,"lookAt",(function(){return zt})),r.d(u,"targetTo",(function(){return Lt})),r.d(u,"str",(function(){return Ot})),r.d(u,"frob",(function(){return It})),r.d(u,"add",(function(){return Pt})),r.d(u,"subtract",(function(){return St})),r.d(u,"multiplyScalar",(function(){return Bt})),r.d(u,"multiplyScalarAndAdd",(function(){return Dt})),r.d(u,"exactEquals",(function(){return Ut})),r.d(u,"equals",(function(){return Ct})),r.d(u,"mul",(function(){return Vt})),r.d(u,"sub",(function(){return Nt}));var s={};r.r(s),r.d(s,"create",(function(){return qt})),r.d(s,"clone",(function(){return Gt})),r.d(s,"length",(function(){return Wt})),r.d(s,"fromValues",(function(){return Ht})),r.d(s,"copy",(function(){return jt})),r.d(s,"set",(function(){return Xt})),r.d(s,"add",(function(){return Yt})),r.d(s,"subtract",(function(){return Zt})),r.d(s,"multiply",(function(){return $t})),r.d(s,"divide",(function(){return Kt})),r.d(s,"ceil",(function(){return Jt})),r.d(s,"floor",(function(){return Qt})),r.d(s,"min",(function(){return er})),r.d(s,"max",(function(){return tr})),r.d(s,"round",(function(){return rr})),r.d(s,"scale",(function(){return nr})),r.d(s,"scaleAndAdd",(function(){return ar})),r.d(s,"distance",(function(){return ir})),r.d(s,"squaredDistance",(function(){return or})),r.d(s,"squaredLength",(function(){return ur})),r.d(s,"negate",(function(){return sr})),r.d(s,"inverse",(function(){return cr})),r.d(s,"normalize",(function(){return fr})),r.d(s,"dot",(function(){return _r})),r.d(s,"cross",(function(){return dr})),r.d(s,"lerp",(function(){return lr})),r.d(s,"hermite",(function(){return hr})),r.d(s,"bezier",(function(){return pr})),r.d(s,"random",(function(){return mr})),r.d(s,"transformMat4",(function(){return br})),r.d(s,"transformMat3",(function(){return wr})),r.d(s,"transformQuat",(function(){return gr})),r.d(s,"rotateX",(function(){return vr})),r.d(s,"rotateY",(function(){return yr})),r.d(s,"rotateZ",(function(){return Mr})),r.d(s,"angle",(function(){return Er})),r.d(s,"zero",(function(){return Ar})),r.d(s,"str",(function(){return xr})),r.d(s,"exactEquals",(function(){return kr})),r.d(s,"equals",(function(){return Tr})),r.d(s,"sub",(function(){return Fr})),r.d(s,"mul",(function(){return zr})),r.d(s,"div",(function(){return Lr})),r.d(s,"dist",(function(){return Or})),r.d(s,"sqrDist",(function(){return Ir})),r.d(s,"len",(function(){return Pr})),r.d(s,"sqrLen",(function(){return Sr})),r.d(s,"forEach",(function(){return Br}));var c={};r.r(c),r.d(c,"create",(function(){return Dr})),r.d(c,"clone",(function(){return Ur})),r.d(c,"fromValues",(function(){return Cr})),r.d(c,"copy",(function(){return Vr})),r.d(c,"set",(function(){return Nr})),r.d(c,"add",(function(){return qr})),r.d(c,"subtract",(function(){return Gr})),r.d(c,"multiply",(function(){return Wr})),r.d(c,"divide",(function(){return Hr})),r.d(c,"ceil",(function(){return jr})),r.d(c,"floor",(function(){return Xr})),r.d(c,"min",(function(){return Yr})),r.d(c,"max",(function(){return Zr})),r.d(c,"round",(function(){return $r})),r.d(c,"scale",(function(){return Kr})),r.d(c,"scaleAndAdd",(function(){return Jr})),r.d(c,"distance",(function(){return Qr})),r.d(c,"squaredDistance",(function(){return en})),r.d(c,"length",(function(){return tn})),r.d(c,"squaredLength",(function(){return rn})),r.d(c,"negate",(function(){return nn})),r.d(c,"inverse",(function(){return an})),r.d(c,"normalize",(function(){return on})),r.d(c,"dot",(function(){return un})),r.d(c,"cross",(function(){return sn})),r.d(c,"lerp",(function(){return cn})),r.d(c,"random",(function(){return fn})),r.d(c,"transformMat4",(function(){return _n})),r.d(c,"transformQuat",(function(){return dn})),r.d(c,"zero",(function(){return ln})),r.d(c,"str",(function(){return hn})),r.d(c,"exactEquals",(function(){return pn})),r.d(c,"equals",(function(){return mn})),r.d(c,"sub",(function(){return bn})),r.d(c,"mul",(function(){return wn})),r.d(c,"div",(function(){return gn})),r.d(c,"dist",(function(){return vn})),r.d(c,"sqrDist",(function(){return yn})),r.d(c,"len",(function(){return Mn})),r.d(c,"sqrLen",(function(){return En})),r.d(c,"forEach",(function(){return An}));var f={};r.r(f),r.d(f,"create",(function(){return xn})),r.d(f,"identity",(function(){return kn})),r.d(f,"setAxisAngle",(function(){return Tn})),r.d(f,"getAxisAngle",(function(){return Rn})),r.d(f,"getAngle",(function(){return Fn})),r.d(f,"multiply",(function(){return zn})),r.d(f,"rotateX",(function(){return Ln})),r.d(f,"rotateY",(function(){return On})),r.d(f,"rotateZ",(function(){return In})),r.d(f,"calculateW",(function(){return Pn})),r.d(f,"exp",(function(){return Sn})),r.d(f,"ln",(function(){return Bn})),r.d(f,"pow",(function(){return Dn})),r.d(f,"slerp",(function(){return Un})),r.d(f,"random",(function(){return Cn})),r.d(f,"invert",(function(){return Vn})),r.d(f,"conjugate",(function(){return Nn})),r.d(f,"fromMat3",(function(){return qn})),r.d(f,"fromEuler",(function(){return Gn})),r.d(f,"str",(function(){return Wn})),r.d(f,"clone",(function(){return Kn})),r.d(f,"fromValues",(function(){return Jn})),r.d(f,"copy",(function(){return Qn})),r.d(f,"set",(function(){return ea})),r.d(f,"add",(function(){return ta})),r.d(f,"mul",(function(){return ra})),r.d(f,"scale",(function(){return na})),r.d(f,"dot",(function(){return aa})),r.d(f,"lerp",(function(){return ia})),r.d(f,"length",(function(){return oa})),r.d(f,"len",(function(){return ua})),r.d(f,"squaredLength",(function(){return sa})),r.d(f,"sqrLen",(function(){return ca})),r.d(f,"normalize",(function(){return fa})),r.d(f,"exactEquals",(function(){return _a})),r.d(f,"equals",(function(){return da})),r.d(f,"rotationTo",(function(){return la})),r.d(f,"sqlerp",(function(){return ha})),r.d(f,"setAxes",(function(){return pa}));var _={};r.r(_),r.d(_,"create",(function(){return ma})),r.d(_,"clone",(function(){return ba})),r.d(_,"fromValues",(function(){return wa})),r.d(_,"fromRotationTranslationValues",(function(){return ga})),r.d(_,"fromRotationTranslation",(function(){return va})),r.d(_,"fromTranslation",(function(){return ya})),r.d(_,"fromRotation",(function(){return Ma})),r.d(_,"fromMat4",(function(){return Ea})),r.d(_,"copy",(function(){return Aa})),r.d(_,"identity",(function(){return xa})),r.d(_,"set",(function(){return ka})),r.d(_,"getReal",(function(){return Ta})),r.d(_,"getDual",(function(){return Ra})),r.d(_,"setReal",(function(){return Fa})),r.d(_,"setDual",(function(){return za})),r.d(_,"getTranslation",(function(){return La})),r.d(_,"translate",(function(){return Oa})),r.d(_,"rotateX",(function(){return Ia})),r.d(_,"rotateY",(function(){return Pa})),r.d(_,"rotateZ",(function(){return Sa})),r.d(_,"rotateByQuatAppend",(function(){return Ba})),r.d(_,"rotateByQuatPrepend",(function(){return Da})),r.d(_,"rotateAroundAxis",(function(){return Ua})),r.d(_,"add",(function(){return Ca})),r.d(_,"multiply",(function(){return Va})),r.d(_,"mul",(function(){return Na})),r.d(_,"scale",(function(){return qa})),r.d(_,"dot",(function(){return Ga})),r.d(_,"lerp",(function(){return Wa})),r.d(_,"invert",(function(){return Ha})),r.d(_,"conjugate",(function(){return ja})),r.d(_,"length",(function(){return Xa})),r.d(_,"len",(function(){return Ya})),r.d(_,"squaredLength",(function(){return Za})),r.d(_,"sqrLen",(function(){return $a})),r.d(_,"normalize",(function(){return Ka})),r.d(_,"str",(function(){return Ja})),r.d(_,"exactEquals",(function(){return Qa})),r.d(_,"equals",(function(){return ei}));var d={};r.r(d),r.d(d,"create",(function(){return ti})),r.d(d,"clone",(function(){return ri})),r.d(d,"fromValues",(function(){return ni})),r.d(d,"copy",(function(){return ai})),r.d(d,"set",(function(){return ii})),r.d(d,"add",(function(){return oi})),r.d(d,"subtract",(function(){return ui})),r.d(d,"multiply",(function(){return si})),r.d(d,"divide",(function(){return ci})),r.d(d,"ceil",(function(){return fi})),r.d(d,"floor",(function(){return _i})),r.d(d,"min",(function(){return di})),r.d(d,"max",(function(){return li})),r.d(d,"round",(function(){return hi})),r.d(d,"scale",(function(){return pi})),r.d(d,"scaleAndAdd",(function(){return mi})),r.d(d,"distance",(function(){return bi})),r.d(d,"squaredDistance",(function(){return wi})),r.d(d,"length",(function(){return gi})),r.d(d,"squaredLength",(function(){return vi})),r.d(d,"negate",(function(){return yi})),r.d(d,"inverse",(function(){return Mi})),r.d(d,"normalize",(function(){return Ei})),r.d(d,"dot",(function(){return Ai})),r.d(d,"cross",(function(){return xi})),r.d(d,"lerp",(function(){return ki})),r.d(d,"random",(function(){return Ti})),r.d(d,"transformMat2",(function(){return Ri})),r.d(d,"transformMat2d",(function(){return Fi})),r.d(d,"transformMat3",(function(){return zi})),r.d(d,"transformMat4",(function(){return Li})),r.d(d,"rotate",(function(){return Oi})),r.d(d,"angle",(function(){return Ii})),r.d(d,"zero",(function(){return Pi})),r.d(d,"str",(function(){return Si})),r.d(d,"exactEquals",(function(){return Bi})),r.d(d,"equals",(function(){return Di})),r.d(d,"len",(function(){return Ui})),r.d(d,"sub",(function(){return Ci})),r.d(d,"mul",(function(){return Vi})),r.d(d,"div",(function(){return Ni})),r.d(d,"dist",(function(){return qi})),r.d(d,"sqrDist",(function(){return Gi})),r.d(d,"sqrLen",(function(){return Wi})),r.d(d,"forEach",(function(){return Hi}));var l=1e-6,h="undefined"!=typeof Float32Array?Float32Array:Array,p=Math.random;function m(e){h=e}var b=Math.PI/180;function w(e){return e*b}function g(e,t){return Math.abs(e-t)<=l*Math.max(1,Math.abs(e),Math.abs(t))}function v(){var e=new h(4);return h!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function y(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function M(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function E(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e}function A(e,t,r,n){var a=new h(4);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a}function x(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function k(e,t){if(e===t){var r=t[1];e[1]=t[2],e[2]=r}else e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3];return e}function T(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r*i-a*n;return o?(o=1/o,e[0]=i*o,e[1]=-n*o,e[2]=-a*o,e[3]=r*o,e):null}function R(e,t){var r=t[0];return e[0]=t[3],e[1]=-t[1],e[2]=-t[2],e[3]=r,e}function F(e){return e[0]*e[3]-e[2]*e[1]}function z(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=r[0],s=r[1],c=r[2],f=r[3];return e[0]=n*u+i*s,e[1]=a*u+o*s,e[2]=n*c+i*f,e[3]=a*c+o*f,e}function L(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=Math.sin(r),s=Math.cos(r);return e[0]=n*s+i*u,e[1]=a*s+o*u,e[2]=n*-u+i*s,e[3]=a*-u+o*s,e}function O(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=r[0],s=r[1];return e[0]=n*u,e[1]=a*u,e[2]=i*s,e[3]=o*s,e}function I(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e}function P(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e}function S(e){return"mat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function B(e){return Math.hypot(e[0],e[1],e[2],e[3])}function D(e,t,r,n){return e[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-e[2]*r[1],[e,t,r]}function U(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function C(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function V(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function N(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=t[0],u=t[1],s=t[2],c=t[3];return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-u)<=l*Math.max(1,Math.abs(n),Math.abs(u))&&Math.abs(a-s)<=l*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(i-c)<=l*Math.max(1,Math.abs(i),Math.abs(c))}function q(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function G(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var W=z,H=C;function j(){var e=new h(6);return h!=Float32Array&&(e[1]=0,e[2]=0,e[4]=0,e[5]=0),e[0]=1,e[3]=1,e}function X(e){var t=new h(6);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Y(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Z(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function $(e,t,r,n,a,i){var o=new h(6);return o[0]=e,o[1]=t,o[2]=r,o[3]=n,o[4]=a,o[5]=i,o}function K(e,t,r,n,a,i,o){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=o,e}function J(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=r*i-n*a;return s?(s=1/s,e[0]=i*s,e[1]=-n*s,e[2]=-a*s,e[3]=r*s,e[4]=(a*u-i*o)*s,e[5]=(n*o-r*u)*s,e):null}function Q(e){return e[0]*e[3]-e[1]*e[2]}function ee(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=r[0],f=r[1],_=r[2],d=r[3],l=r[4],h=r[5];return e[0]=n*c+i*f,e[1]=a*c+o*f,e[2]=n*_+i*d,e[3]=a*_+o*d,e[4]=n*l+i*h+u,e[5]=a*l+o*h+s,e}function te(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=Math.sin(r),f=Math.cos(r);return e[0]=n*f+i*c,e[1]=a*f+o*c,e[2]=n*-c+i*f,e[3]=a*-c+o*f,e[4]=u,e[5]=s,e}function re(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=r[0],f=r[1];return e[0]=n*c,e[1]=a*c,e[2]=i*f,e[3]=o*f,e[4]=u,e[5]=s,e}function ne(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=r[0],f=r[1];return e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=n*c+i*f+u,e[5]=a*c+o*f+s,e}function ae(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=-r,e[3]=n,e[4]=0,e[5]=0,e}function ie(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=t[1],e[4]=0,e[5]=0,e}function oe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=t[0],e[5]=t[1],e}function ue(e){return"mat2d("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+")"}function se(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],1)}function ce(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e}function fe(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e}function _e(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e}function de(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e}function le(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]}function he(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],u=e[5],s=t[0],c=t[1],f=t[2],_=t[3],d=t[4],h=t[5];return Math.abs(r-s)<=l*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-c)<=l*Math.max(1,Math.abs(n),Math.abs(c))&&Math.abs(a-f)<=l*Math.max(1,Math.abs(a),Math.abs(f))&&Math.abs(i-_)<=l*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(o-d)<=l*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(u-h)<=l*Math.max(1,Math.abs(u),Math.abs(h))}var pe=ee,me=fe;function be(){var e=new h(9);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function we(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function ge(e){var t=new h(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function ve(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function ye(e,t,r,n,a,i,o,u,s){var c=new h(9);return c[0]=e,c[1]=t,c[2]=r,c[3]=n,c[4]=a,c[5]=i,c[6]=o,c[7]=u,c[8]=s,c}function Me(e,t,r,n,a,i,o,u,s,c){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=o,e[6]=u,e[7]=s,e[8]=c,e}function Ee(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Ae(e,t){if(e===t){var r=t[1],n=t[2],a=t[5];e[1]=t[3],e[2]=t[6],e[3]=r,e[5]=t[7],e[6]=n,e[7]=a}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function xe(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=t[6],c=t[7],f=t[8],_=f*o-u*c,d=-f*i+u*s,l=c*i-o*s,h=r*_+n*d+a*l;return h?(h=1/h,e[0]=_*h,e[1]=(-f*n+a*c)*h,e[2]=(u*n-a*o)*h,e[3]=d*h,e[4]=(f*r-a*s)*h,e[5]=(-u*r+a*i)*h,e[6]=l*h,e[7]=(-c*r+n*s)*h,e[8]=(o*r-n*i)*h,e):null}function ke(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=t[6],c=t[7],f=t[8];return e[0]=o*f-u*c,e[1]=a*c-n*f,e[2]=n*u-a*o,e[3]=u*s-i*f,e[4]=r*f-a*s,e[5]=a*i-r*u,e[6]=i*c-o*s,e[7]=n*s-r*c,e[8]=r*o-n*i,e}function Te(e){var t=e[0],r=e[1],n=e[2],a=e[3],i=e[4],o=e[5],u=e[6],s=e[7],c=e[8];return t*(c*i-o*s)+r*(-c*a+o*u)+n*(s*a-i*u)}function Re(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=t[8],d=r[0],l=r[1],h=r[2],p=r[3],m=r[4],b=r[5],w=r[6],g=r[7],v=r[8];return e[0]=d*n+l*o+h*c,e[1]=d*a+l*u+h*f,e[2]=d*i+l*s+h*_,e[3]=p*n+m*o+b*c,e[4]=p*a+m*u+b*f,e[5]=p*i+m*s+b*_,e[6]=w*n+g*o+v*c,e[7]=w*a+g*u+v*f,e[8]=w*i+g*s+v*_,e}function Fe(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=t[8],d=r[0],l=r[1];return e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=u,e[5]=s,e[6]=d*n+l*o+c,e[7]=d*a+l*u+f,e[8]=d*i+l*s+_,e}function ze(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=t[8],d=Math.sin(r),l=Math.cos(r);return e[0]=l*n+d*o,e[1]=l*a+d*u,e[2]=l*i+d*s,e[3]=l*o-d*n,e[4]=l*u-d*a,e[5]=l*s-d*i,e[6]=c,e[7]=f,e[8]=_,e}function Le(e,t,r){var n=r[0],a=r[1];return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=a*t[3],e[4]=a*t[4],e[5]=a*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function Oe(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function Ie(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=-r,e[4]=n,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Pe(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function Se(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function Be(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r+r,u=n+n,s=a+a,c=r*o,f=n*o,_=n*u,d=a*o,l=a*u,h=a*s,p=i*o,m=i*u,b=i*s;return e[0]=1-_-h,e[3]=f-b,e[6]=d+m,e[1]=f+b,e[4]=1-c-h,e[7]=l-p,e[2]=d-m,e[5]=l+p,e[8]=1-c-_,e}function De(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],p=t[13],m=t[14],b=t[15],w=r*u-n*o,g=r*s-a*o,v=r*c-i*o,y=n*s-a*u,M=n*c-i*u,E=a*c-i*s,A=f*p-_*h,x=f*m-d*h,k=f*b-l*h,T=_*m-d*p,R=_*b-l*p,F=d*b-l*m,z=w*F-g*R+v*T+y*k-M*x+E*A;return z?(z=1/z,e[0]=(u*F-s*R+c*T)*z,e[1]=(s*k-o*F-c*x)*z,e[2]=(o*R-u*k+c*A)*z,e[3]=(a*R-n*F-i*T)*z,e[4]=(r*F-a*k+i*x)*z,e[5]=(n*k-r*R-i*A)*z,e[6]=(p*E-m*M+b*y)*z,e[7]=(m*v-h*E-b*g)*z,e[8]=(h*M-p*v+b*w)*z,e):null}function Ue(e,t,r){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/r,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function Ce(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function Ve(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function Ne(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e}function qe(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e}function Ge(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e}function We(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e}function He(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]}function je(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],u=e[5],s=e[6],c=e[7],f=e[8],_=t[0],d=t[1],h=t[2],p=t[3],m=t[4],b=t[5],w=t[6],g=t[7],v=t[8];return Math.abs(r-_)<=l*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-d)<=l*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(a-h)<=l*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(i-p)<=l*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(o-m)<=l*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(u-b)<=l*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(s-w)<=l*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(c-g)<=l*Math.max(1,Math.abs(c),Math.abs(g))&&Math.abs(f-v)<=l*Math.max(1,Math.abs(f),Math.abs(v))}var Xe=Re,Ye=qe;function Ze(){var e=new h(16);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function $e(e){var t=new h(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ke(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Je(e,t,r,n,a,i,o,u,s,c,f,_,d,l,p,m){var b=new h(16);return b[0]=e,b[1]=t,b[2]=r,b[3]=n,b[4]=a,b[5]=i,b[6]=o,b[7]=u,b[8]=s,b[9]=c,b[10]=f,b[11]=_,b[12]=d,b[13]=l,b[14]=p,b[15]=m,b}function Qe(e,t,r,n,a,i,o,u,s,c,f,_,d,l,h,p,m){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=o,e[6]=u,e[7]=s,e[8]=c,e[9]=f,e[10]=_,e[11]=d,e[12]=l,e[13]=h,e[14]=p,e[15]=m,e}function et(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function tt(e,t){if(e===t){var r=t[1],n=t[2],a=t[3],i=t[6],o=t[7],u=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=a,e[13]=o,e[14]=u}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function rt(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],p=t[13],m=t[14],b=t[15],w=r*u-n*o,g=r*s-a*o,v=r*c-i*o,y=n*s-a*u,M=n*c-i*u,E=a*c-i*s,A=f*p-_*h,x=f*m-d*h,k=f*b-l*h,T=_*m-d*p,R=_*b-l*p,F=d*b-l*m,z=w*F-g*R+v*T+y*k-M*x+E*A;return z?(z=1/z,e[0]=(u*F-s*R+c*T)*z,e[1]=(a*R-n*F-i*T)*z,e[2]=(p*E-m*M+b*y)*z,e[3]=(d*M-_*E-l*y)*z,e[4]=(s*k-o*F-c*x)*z,e[5]=(r*F-a*k+i*x)*z,e[6]=(m*v-h*E-b*g)*z,e[7]=(f*E-d*v+l*g)*z,e[8]=(o*R-u*k+c*A)*z,e[9]=(n*k-r*R-i*A)*z,e[10]=(h*M-p*v+b*w)*z,e[11]=(_*v-f*M-l*w)*z,e[12]=(u*x-o*T-s*A)*z,e[13]=(r*T-n*x+a*A)*z,e[14]=(p*g-h*y-m*w)*z,e[15]=(f*y-_*g+d*w)*z,e):null}function nt(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],u=t[5],s=t[6],c=t[7],f=t[8],_=t[9],d=t[10],l=t[11],h=t[12],p=t[13],m=t[14],b=t[15];return e[0]=u*(d*b-l*m)-_*(s*b-c*m)+p*(s*l-c*d),e[1]=-(n*(d*b-l*m)-_*(a*b-i*m)+p*(a*l-i*d)),e[2]=n*(s*b-c*m)-u*(a*b-i*m)+p*(a*c-i*s),e[3]=-(n*(s*l-c*d)-u*(a*l-i*d)+_*(a*c-i*s)),e[4]=-(o*(d*b-l*m)-f*(s*b-c*m)+h*(s*l-c*d)),e[5]=r*(d*b-l*m)-f*(a*b-i*m)+h*(a*l-i*d),e[6]=-(r*(s*b-c*m)-o*(a*b-i*m)+h*(a*c-i*s)),e[7]=r*(s*l-c*d)-o*(a*l-i*d)+f*(a*c-i*s),e[8]=o*(_*b-l*p)-f*(u*b-c*p)+h*(u*l-c*_),e[9]=-(r*(_*b-l*p)-f*(n*b-i*p)+h*(n*l-i*_)),e[10]=r*(u*b-c*p)-o*(n*b-i*p)+h*(n*c-i*u),e[11]=-(r*(u*l-c*_)-o*(n*l-i*_)+f*(n*c-i*u)),e[12]=-(o*(_*m-d*p)-f*(u*m-s*p)+h*(u*d-s*_)),e[13]=r*(_*m-d*p)-f*(n*m-a*p)+h*(n*d-a*_),e[14]=-(r*(u*m-s*p)-o*(n*m-a*p)+h*(n*s-a*u)),e[15]=r*(u*d-s*_)-o*(n*d-a*_)+f*(n*s-a*u),e}function at(e){var t=e[0],r=e[1],n=e[2],a=e[3],i=e[4],o=e[5],u=e[6],s=e[7],c=e[8],f=e[9],_=e[10],d=e[11],l=e[12],h=e[13],p=e[14],m=e[15];return(t*o-r*i)*(_*m-d*p)-(t*u-n*i)*(f*m-d*h)+(t*s-a*i)*(f*p-_*h)+(r*u-n*o)*(c*m-d*l)-(r*s-a*o)*(c*p-_*l)+(n*s-a*u)*(c*h-f*l)}function it(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=t[8],d=t[9],l=t[10],h=t[11],p=t[12],m=t[13],b=t[14],w=t[15],g=r[0],v=r[1],y=r[2],M=r[3];return e[0]=g*n+v*u+y*_+M*p,e[1]=g*a+v*s+y*d+M*m,e[2]=g*i+v*c+y*l+M*b,e[3]=g*o+v*f+y*h+M*w,g=r[4],v=r[5],y=r[6],M=r[7],e[4]=g*n+v*u+y*_+M*p,e[5]=g*a+v*s+y*d+M*m,e[6]=g*i+v*c+y*l+M*b,e[7]=g*o+v*f+y*h+M*w,g=r[8],v=r[9],y=r[10],M=r[11],e[8]=g*n+v*u+y*_+M*p,e[9]=g*a+v*s+y*d+M*m,e[10]=g*i+v*c+y*l+M*b,e[11]=g*o+v*f+y*h+M*w,g=r[12],v=r[13],y=r[14],M=r[15],e[12]=g*n+v*u+y*_+M*p,e[13]=g*a+v*s+y*d+M*m,e[14]=g*i+v*c+y*l+M*b,e[15]=g*o+v*f+y*h+M*w,e}function ot(e,t,r){var n,a,i,o,u,s,c,f,_,d,l,h,p=r[0],m=r[1],b=r[2];return t===e?(e[12]=t[0]*p+t[4]*m+t[8]*b+t[12],e[13]=t[1]*p+t[5]*m+t[9]*b+t[13],e[14]=t[2]*p+t[6]*m+t[10]*b+t[14],e[15]=t[3]*p+t[7]*m+t[11]*b+t[15]):(n=t[0],a=t[1],i=t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=t[8],d=t[9],l=t[10],h=t[11],e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=u,e[5]=s,e[6]=c,e[7]=f,e[8]=_,e[9]=d,e[10]=l,e[11]=h,e[12]=n*p+u*m+_*b+t[12],e[13]=a*p+s*m+d*b+t[13],e[14]=i*p+c*m+l*b+t[14],e[15]=o*p+f*m+h*b+t[15]),e}function ut(e,t,r){var n=r[0],a=r[1],i=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function st(e,t,r,n){var a,i,o,u,s,c,f,_,d,h,p,m,b,w,g,v,y,M,E,A,x,k,T,R,F=n[0],z=n[1],L=n[2],O=Math.hypot(F,z,L);return O<l?null:(F*=O=1/O,z*=O,L*=O,a=Math.sin(r),o=1-(i=Math.cos(r)),u=t[0],s=t[1],c=t[2],f=t[3],_=t[4],d=t[5],h=t[6],p=t[7],m=t[8],b=t[9],w=t[10],g=t[11],v=F*F*o+i,y=z*F*o+L*a,M=L*F*o-z*a,E=F*z*o-L*a,A=z*z*o+i,x=L*z*o+F*a,k=F*L*o+z*a,T=z*L*o-F*a,R=L*L*o+i,e[0]=u*v+_*y+m*M,e[1]=s*v+d*y+b*M,e[2]=c*v+h*y+w*M,e[3]=f*v+p*y+g*M,e[4]=u*E+_*A+m*x,e[5]=s*E+d*A+b*x,e[6]=c*E+h*A+w*x,e[7]=f*E+p*A+g*x,e[8]=u*k+_*T+m*R,e[9]=s*k+d*T+b*R,e[10]=c*k+h*T+w*R,e[11]=f*k+p*T+g*R,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function ct(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[4],o=t[5],u=t[6],s=t[7],c=t[8],f=t[9],_=t[10],d=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*a+c*n,e[5]=o*a+f*n,e[6]=u*a+_*n,e[7]=s*a+d*n,e[8]=c*a-i*n,e[9]=f*a-o*n,e[10]=_*a-u*n,e[11]=d*a-s*n,e}function ft(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],o=t[1],u=t[2],s=t[3],c=t[8],f=t[9],_=t[10],d=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a-c*n,e[1]=o*a-f*n,e[2]=u*a-_*n,e[3]=s*a-d*n,e[8]=i*n+c*a,e[9]=o*n+f*a,e[10]=u*n+_*a,e[11]=s*n+d*a,e}function _t(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],o=t[1],u=t[2],s=t[3],c=t[4],f=t[5],_=t[6],d=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a+c*n,e[1]=o*a+f*n,e[2]=u*a+_*n,e[3]=s*a+d*n,e[4]=c*a-i*n,e[5]=f*a-o*n,e[6]=_*a-u*n,e[7]=d*a-s*n,e}function dt(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function lt(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ht(e,t,r){var n,a,i,o=r[0],u=r[1],s=r[2],c=Math.hypot(o,u,s);return c<l?null:(o*=c=1/c,u*=c,s*=c,n=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=o*o*i+a,e[1]=u*o*i+s*n,e[2]=s*o*i-u*n,e[3]=0,e[4]=o*u*i-s*n,e[5]=u*u*i+a,e[6]=s*u*i+o*n,e[7]=0,e[8]=o*s*i+u*n,e[9]=u*s*i-o*n,e[10]=s*s*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function pt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function mt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function bt(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function wt(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=n+n,s=a+a,c=i+i,f=n*u,_=n*s,d=n*c,l=a*s,h=a*c,p=i*c,m=o*u,b=o*s,w=o*c;return e[0]=1-(l+p),e[1]=_+w,e[2]=d-b,e[3]=0,e[4]=_-w,e[5]=1-(f+p),e[6]=h+m,e[7]=0,e[8]=d+b,e[9]=h-m,e[10]=1-(f+l),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function gt(e,t){var r=new h(3),n=-t[0],a=-t[1],i=-t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=n*n+a*a+i*i+o*o;return _>0?(r[0]=2*(u*o+f*n+s*i-c*a)/_,r[1]=2*(s*o+f*a+c*n-u*i)/_,r[2]=2*(c*o+f*i+u*a-s*n)/_):(r[0]=2*(u*o+f*n+s*i-c*a),r[1]=2*(s*o+f*a+c*n-u*i),r[2]=2*(c*o+f*i+u*a-s*n)),wt(e,t,r),e}function vt(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function yt(e,t){var r=t[0],n=t[1],a=t[2],i=t[4],o=t[5],u=t[6],s=t[8],c=t[9],f=t[10];return e[0]=Math.hypot(r,n,a),e[1]=Math.hypot(i,o,u),e[2]=Math.hypot(s,c,f),e}function Mt(e,t){var r=new h(3);yt(r,t);var n=1/r[0],a=1/r[1],i=1/r[2],o=t[0]*n,u=t[1]*a,s=t[2]*i,c=t[4]*n,f=t[5]*a,_=t[6]*i,d=t[8]*n,l=t[9]*a,p=t[10]*i,m=o+f+p,b=0;return m>0?(b=2*Math.sqrt(m+1),e[3]=.25*b,e[0]=(_-l)/b,e[1]=(d-s)/b,e[2]=(u-c)/b):o>f&&o>p?(b=2*Math.sqrt(1+o-f-p),e[3]=(_-l)/b,e[0]=.25*b,e[1]=(u+c)/b,e[2]=(d+s)/b):f>p?(b=2*Math.sqrt(1+f-o-p),e[3]=(d-s)/b,e[0]=(u+c)/b,e[1]=.25*b,e[2]=(_+l)/b):(b=2*Math.sqrt(1+p-o-f),e[3]=(u-c)/b,e[0]=(d+s)/b,e[1]=(_+l)/b,e[2]=.25*b),e}function Et(e,t,r,n){var a=t[0],i=t[1],o=t[2],u=t[3],s=a+a,c=i+i,f=o+o,_=a*s,d=a*c,l=a*f,h=i*c,p=i*f,m=o*f,b=u*s,w=u*c,g=u*f,v=n[0],y=n[1],M=n[2];return e[0]=(1-(h+m))*v,e[1]=(d+g)*v,e[2]=(l-w)*v,e[3]=0,e[4]=(d-g)*y,e[5]=(1-(_+m))*y,e[6]=(p+b)*y,e[7]=0,e[8]=(l+w)*M,e[9]=(p-b)*M,e[10]=(1-(_+h))*M,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function At(e,t,r,n,a){var i=t[0],o=t[1],u=t[2],s=t[3],c=i+i,f=o+o,_=u+u,d=i*c,l=i*f,h=i*_,p=o*f,m=o*_,b=u*_,w=s*c,g=s*f,v=s*_,y=n[0],M=n[1],E=n[2],A=a[0],x=a[1],k=a[2],T=(1-(p+b))*y,R=(l+v)*y,F=(h-g)*y,z=(l-v)*M,L=(1-(d+b))*M,O=(m+w)*M,I=(h+g)*E,P=(m-w)*E,S=(1-(d+p))*E;return e[0]=T,e[1]=R,e[2]=F,e[3]=0,e[4]=z,e[5]=L,e[6]=O,e[7]=0,e[8]=I,e[9]=P,e[10]=S,e[11]=0,e[12]=r[0]+A-(T*A+z*x+I*k),e[13]=r[1]+x-(R*A+L*x+P*k),e[14]=r[2]+k-(F*A+O*x+S*k),e[15]=1,e}function xt(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r+r,u=n+n,s=a+a,c=r*o,f=n*o,_=n*u,d=a*o,l=a*u,h=a*s,p=i*o,m=i*u,b=i*s;return e[0]=1-_-h,e[1]=f+b,e[2]=d-m,e[3]=0,e[4]=f-b,e[5]=1-c-h,e[6]=l+p,e[7]=0,e[8]=d+m,e[9]=l-p,e[10]=1-c-_,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function kt(e,t,r,n,a,i,o){var u=1/(r-t),s=1/(a-n),c=1/(i-o);return e[0]=2*i*u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*s,e[6]=0,e[7]=0,e[8]=(r+t)*u,e[9]=(a+n)*s,e[10]=(o+i)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*c,e[15]=0,e}function Tt(e,t,r,n,a){var i,o=1/Math.tan(t/2);return e[0]=o/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(i=1/(n-a),e[10]=(a+n)*i,e[14]=2*a*n*i):(e[10]=-1,e[14]=-2*n),e}function Rt(e,t,r,n){var a=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),u=Math.tan(t.rightDegrees*Math.PI/180),s=2/(o+u),c=2/(a+i);return e[0]=s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(o-u)*s*.5,e[9]=(a-i)*c*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function Ft(e,t,r,n,a,i,o){var u=1/(t-r),s=1/(n-a),c=1/(i-o);return e[0]=-2*u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+r)*u,e[13]=(a+n)*s,e[14]=(o+i)*c,e[15]=1,e}function zt(e,t,r,n){var a,i,o,u,s,c,f,_,d,h,p=t[0],m=t[1],b=t[2],w=n[0],g=n[1],v=n[2],y=r[0],M=r[1],E=r[2];return Math.abs(p-y)<l&&Math.abs(m-M)<l&&Math.abs(b-E)<l?et(e):(f=p-y,_=m-M,d=b-E,a=g*(d*=h=1/Math.hypot(f,_,d))-v*(_*=h),i=v*(f*=h)-w*d,o=w*_-g*f,(h=Math.hypot(a,i,o))?(a*=h=1/h,i*=h,o*=h):(a=0,i=0,o=0),u=_*o-d*i,s=d*a-f*o,c=f*i-_*a,(h=Math.hypot(u,s,c))?(u*=h=1/h,s*=h,c*=h):(u=0,s=0,c=0),e[0]=a,e[1]=u,e[2]=f,e[3]=0,e[4]=i,e[5]=s,e[6]=_,e[7]=0,e[8]=o,e[9]=c,e[10]=d,e[11]=0,e[12]=-(a*p+i*m+o*b),e[13]=-(u*p+s*m+c*b),e[14]=-(f*p+_*m+d*b),e[15]=1,e)}function Lt(e,t,r,n){var a=t[0],i=t[1],o=t[2],u=n[0],s=n[1],c=n[2],f=a-r[0],_=i-r[1],d=o-r[2],l=f*f+_*_+d*d;l>0&&(f*=l=1/Math.sqrt(l),_*=l,d*=l);var h=s*d-c*_,p=c*f-u*d,m=u*_-s*f;return(l=h*h+p*p+m*m)>0&&(h*=l=1/Math.sqrt(l),p*=l,m*=l),e[0]=h,e[1]=p,e[2]=m,e[3]=0,e[4]=_*m-d*p,e[5]=d*h-f*m,e[6]=f*p-_*h,e[7]=0,e[8]=f,e[9]=_,e[10]=d,e[11]=0,e[12]=a,e[13]=i,e[14]=o,e[15]=1,e}function Ot(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function It(e){return Math.hypot(e[0],e[1],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Pt(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function St(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function Bt(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function Dt(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function Ut(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Ct(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],u=e[5],s=e[6],c=e[7],f=e[8],_=e[9],d=e[10],h=e[11],p=e[12],m=e[13],b=e[14],w=e[15],g=t[0],v=t[1],y=t[2],M=t[3],E=t[4],A=t[5],x=t[6],k=t[7],T=t[8],R=t[9],F=t[10],z=t[11],L=t[12],O=t[13],I=t[14],P=t[15];return Math.abs(r-g)<=l*Math.max(1,Math.abs(r),Math.abs(g))&&Math.abs(n-v)<=l*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(a-y)<=l*Math.max(1,Math.abs(a),Math.abs(y))&&Math.abs(i-M)<=l*Math.max(1,Math.abs(i),Math.abs(M))&&Math.abs(o-E)<=l*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(u-A)<=l*Math.max(1,Math.abs(u),Math.abs(A))&&Math.abs(s-x)<=l*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(c-k)<=l*Math.max(1,Math.abs(c),Math.abs(k))&&Math.abs(f-T)<=l*Math.max(1,Math.abs(f),Math.abs(T))&&Math.abs(_-R)<=l*Math.max(1,Math.abs(_),Math.abs(R))&&Math.abs(d-F)<=l*Math.max(1,Math.abs(d),Math.abs(F))&&Math.abs(h-z)<=l*Math.max(1,Math.abs(h),Math.abs(z))&&Math.abs(p-L)<=l*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(m-O)<=l*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(b-I)<=l*Math.max(1,Math.abs(b),Math.abs(I))&&Math.abs(w-P)<=l*Math.max(1,Math.abs(w),Math.abs(P))}var Vt=it,Nt=St;function qt(){var e=new h(3);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Gt(e){var t=new h(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Wt(e){var t=e[0],r=e[1],n=e[2];return Math.hypot(t,r,n)}function Ht(e,t,r){var n=new h(3);return n[0]=e,n[1]=t,n[2]=r,n}function jt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Xt(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Yt(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Zt(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function $t(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Kt(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Jt(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Qt(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function er(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function tr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function rr(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function nr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ar(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function ir(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2];return Math.hypot(r,n,a)}function or(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2];return r*r+n*n+a*a}function ur(e){var t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function sr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function cr(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function fr(e,t){var r=t[0],n=t[1],a=t[2],i=r*r+n*n+a*a;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function _r(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function dr(e,t,r){var n=t[0],a=t[1],i=t[2],o=r[0],u=r[1],s=r[2];return e[0]=a*s-i*u,e[1]=i*o-n*s,e[2]=n*u-a*o,e}function lr(e,t,r,n){var a=t[0],i=t[1],o=t[2];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e[2]=o+n*(r[2]-o),e}function hr(e,t,r,n,a,i){var o=i*i,u=o*(2*i-3)+1,s=o*(i-2)+i,c=o*(i-1),f=o*(3-2*i);return e[0]=t[0]*u+r[0]*s+n[0]*c+a[0]*f,e[1]=t[1]*u+r[1]*s+n[1]*c+a[1]*f,e[2]=t[2]*u+r[2]*s+n[2]*c+a[2]*f,e}function pr(e,t,r,n,a,i){var o=1-i,u=o*o,s=i*i,c=u*o,f=3*i*u,_=3*s*o,d=s*i;return e[0]=t[0]*c+r[0]*f+n[0]*_+a[0]*d,e[1]=t[1]*c+r[1]*f+n[1]*_+a[1]*d,e[2]=t[2]*c+r[2]*f+n[2]*_+a[2]*d,e}function mr(e,t){t=t||1;var r=2*p()*Math.PI,n=2*p()-1,a=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*a,e[1]=Math.sin(r)*a,e[2]=n*t,e}function br(e,t,r){var n=t[0],a=t[1],i=t[2],o=r[3]*n+r[7]*a+r[11]*i+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*a+r[8]*i+r[12])/o,e[1]=(r[1]*n+r[5]*a+r[9]*i+r[13])/o,e[2]=(r[2]*n+r[6]*a+r[10]*i+r[14])/o,e}function wr(e,t,r){var n=t[0],a=t[1],i=t[2];return e[0]=n*r[0]+a*r[3]+i*r[6],e[1]=n*r[1]+a*r[4]+i*r[7],e[2]=n*r[2]+a*r[5]+i*r[8],e}function gr(e,t,r){var n=r[0],a=r[1],i=r[2],o=r[3],u=t[0],s=t[1],c=t[2],f=a*c-i*s,_=i*u-n*c,d=n*s-a*u,l=a*d-i*_,h=i*f-n*d,p=n*_-a*f,m=2*o;return f*=m,_*=m,d*=m,l*=2,h*=2,p*=2,e[0]=u+f+l,e[1]=s+_+h,e[2]=c+d+p,e}function vr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[0],i[1]=a[1]*Math.cos(n)-a[2]*Math.sin(n),i[2]=a[1]*Math.sin(n)+a[2]*Math.cos(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function yr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[2]*Math.sin(n)+a[0]*Math.cos(n),i[1]=a[1],i[2]=a[2]*Math.cos(n)-a[0]*Math.sin(n),e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function Mr(e,t,r,n){var a=[],i=[];return a[0]=t[0]-r[0],a[1]=t[1]-r[1],a[2]=t[2]-r[2],i[0]=a[0]*Math.cos(n)-a[1]*Math.sin(n),i[1]=a[0]*Math.sin(n)+a[1]*Math.cos(n),i[2]=a[2],e[0]=i[0]+r[0],e[1]=i[1]+r[1],e[2]=i[2]+r[2],e}function Er(e,t){var r=Ht(e[0],e[1],e[2]),n=Ht(t[0],t[1],t[2]);fr(r,r),fr(n,n);var a=_r(r,n);return a>1?0:a<-1?Math.PI:Math.acos(a)}function Ar(e){return e[0]=0,e[1]=0,e[2]=0,e}function xr(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function kr(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Tr(e,t){var r=e[0],n=e[1],a=e[2],i=t[0],o=t[1],u=t[2];return Math.abs(r-i)<=l*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-o)<=l*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(a-u)<=l*Math.max(1,Math.abs(a),Math.abs(u))}var Rr,Fr=Zt,zr=$t,Lr=Kt,Or=ir,Ir=or,Pr=Wt,Sr=ur,Br=(Rr=qt(),function(e,t,r,n,a,i){var o,u;for(t||(t=3),r||(r=0),u=n?Math.min(n*t+r,e.length):e.length,o=r;o<u;o+=t)Rr[0]=e[o],Rr[1]=e[o+1],Rr[2]=e[o+2],a(Rr,Rr,i),e[o]=Rr[0],e[o+1]=Rr[1],e[o+2]=Rr[2];return e});function Dr(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Ur(e){var t=new h(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Cr(e,t,r,n){var a=new h(4);return a[0]=e,a[1]=t,a[2]=r,a[3]=n,a}function Vr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Nr(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function qr(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function Gr(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function Wr(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e}function Hr(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e}function jr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function Xr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function Yr(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e}function Zr(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e}function $r(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e[3]=Math.round(t[3]),e}function Kr(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function Jr(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}function Qr(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],i=t[3]-e[3];return Math.hypot(r,n,a,i)}function en(e,t){var r=t[0]-e[0],n=t[1]-e[1],a=t[2]-e[2],i=t[3]-e[3];return r*r+n*n+a*a+i*i}function tn(e){var t=e[0],r=e[1],n=e[2],a=e[3];return Math.hypot(t,r,n,a)}function rn(e){var t=e[0],r=e[1],n=e[2],a=e[3];return t*t+r*r+n*n+a*a}function nn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function an(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function on(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r*r+n*n+a*a+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=n*o,e[2]=a*o,e[3]=i*o,e}function un(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function sn(e,t,r,n){var a=r[0]*n[1]-r[1]*n[0],i=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],u=r[1]*n[2]-r[2]*n[1],s=r[1]*n[3]-r[3]*n[1],c=r[2]*n[3]-r[3]*n[2],f=t[0],_=t[1],d=t[2],l=t[3];return e[0]=_*c-d*s+l*u,e[1]=-f*c+d*o-l*i,e[2]=f*s-_*o+l*a,e[3]=-f*u+_*i-d*a,e}function cn(e,t,r,n){var a=t[0],i=t[1],o=t[2],u=t[3];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e[2]=o+n*(r[2]-o),e[3]=u+n*(r[3]-u),e}function fn(e,t){var r,n,a,i,o,u;t=t||1;do{o=(r=2*p()-1)*r+(n=2*p()-1)*n}while(o>=1);do{u=(a=2*p()-1)*a+(i=2*p()-1)*i}while(u>=1);var s=Math.sqrt((1-o)/u);return e[0]=t*r,e[1]=t*n,e[2]=t*a*s,e[3]=t*i*s,e}function _n(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3];return e[0]=r[0]*n+r[4]*a+r[8]*i+r[12]*o,e[1]=r[1]*n+r[5]*a+r[9]*i+r[13]*o,e[2]=r[2]*n+r[6]*a+r[10]*i+r[14]*o,e[3]=r[3]*n+r[7]*a+r[11]*i+r[15]*o,e}function dn(e,t,r){var n=t[0],a=t[1],i=t[2],o=r[0],u=r[1],s=r[2],c=r[3],f=c*n+u*i-s*a,_=c*a+s*n-o*i,d=c*i+o*a-u*n,l=-o*n-u*a-s*i;return e[0]=f*c+l*-o+_*-s-d*-u,e[1]=_*c+l*-u+d*-o-f*-s,e[2]=d*c+l*-s+f*-u-_*-o,e[3]=t[3],e}function ln(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function hn(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function pn(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function mn(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=t[0],u=t[1],s=t[2],c=t[3];return Math.abs(r-o)<=l*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-u)<=l*Math.max(1,Math.abs(n),Math.abs(u))&&Math.abs(a-s)<=l*Math.max(1,Math.abs(a),Math.abs(s))&&Math.abs(i-c)<=l*Math.max(1,Math.abs(i),Math.abs(c))}var bn=Gr,wn=Wr,gn=Hr,vn=Qr,yn=en,Mn=tn,En=rn,An=function(){var e=Dr();return function(t,r,n,a,i,o){var u,s;for(r||(r=4),n||(n=0),s=a?Math.min(a*r+n,t.length):t.length,u=n;u<s;u+=r)e[0]=t[u],e[1]=t[u+1],e[2]=t[u+2],e[3]=t[u+3],i(e,e,o),t[u]=e[0],t[u+1]=e[1],t[u+2]=e[2],t[u+3]=e[3];return t}}();function xn(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function kn(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Tn(e,t,r){r*=.5;var n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e}function Rn(e,t){var r=2*Math.acos(t[3]),n=Math.sin(r/2);return n>l?(e[0]=t[0]/n,e[1]=t[1]/n,e[2]=t[2]/n):(e[0]=1,e[1]=0,e[2]=0),r}function Fn(e,t){var r=aa(e,t);return Math.acos(2*r*r-1)}function zn(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=r[0],s=r[1],c=r[2],f=r[3];return e[0]=n*f+o*u+a*c-i*s,e[1]=a*f+o*s+i*u-n*c,e[2]=i*f+o*c+n*s-a*u,e[3]=o*f-n*u-a*s-i*c,e}function Ln(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],o=t[3],u=Math.sin(r),s=Math.cos(r);return e[0]=n*s+o*u,e[1]=a*s+i*u,e[2]=i*s-a*u,e[3]=o*s-n*u,e}function On(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],o=t[3],u=Math.sin(r),s=Math.cos(r);return e[0]=n*s-i*u,e[1]=a*s+o*u,e[2]=i*s+n*u,e[3]=o*s-a*u,e}function In(e,t,r){r*=.5;var n=t[0],a=t[1],i=t[2],o=t[3],u=Math.sin(r),s=Math.cos(r);return e[0]=n*s+a*u,e[1]=a*s-n*u,e[2]=i*s+o*u,e[3]=o*s-i*u,e}function Pn(e,t){var r=t[0],n=t[1],a=t[2];return e[0]=r,e[1]=n,e[2]=a,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-a*a)),e}function Sn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=Math.sqrt(r*r+n*n+a*a),u=Math.exp(i),s=o>0?u*Math.sin(o)/o:0;return e[0]=r*s,e[1]=n*s,e[2]=a*s,e[3]=u*Math.cos(o),e}function Bn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=Math.sqrt(r*r+n*n+a*a),u=o>0?Math.atan2(o,i)/o:0;return e[0]=r*u,e[1]=n*u,e[2]=a*u,e[3]=.5*Math.log(r*r+n*n+a*a+i*i),e}function Dn(e,t,r){return Bn(e,t),na(e,e,r),Sn(e,e),e}function Un(e,t,r,n){var a,i,o,u,s,c=t[0],f=t[1],_=t[2],d=t[3],h=r[0],p=r[1],m=r[2],b=r[3];return(i=c*h+f*p+_*m+d*b)<0&&(i=-i,h=-h,p=-p,m=-m,b=-b),1-i>l?(a=Math.acos(i),o=Math.sin(a),u=Math.sin((1-n)*a)/o,s=Math.sin(n*a)/o):(u=1-n,s=n),e[0]=u*c+s*h,e[1]=u*f+s*p,e[2]=u*_+s*m,e[3]=u*d+s*b,e}function Cn(e){var t=p(),r=p(),n=p(),a=Math.sqrt(1-t),i=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*r),e[1]=a*Math.cos(2*Math.PI*r),e[2]=i*Math.sin(2*Math.PI*n),e[3]=i*Math.cos(2*Math.PI*n),e}function Vn(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r*r+n*n+a*a+i*i,u=o?1/o:0;return e[0]=-r*u,e[1]=-n*u,e[2]=-a*u,e[3]=i*u,e}function Nn(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function qn(e,t){var r,n=t[0]+t[4]+t[8];if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var i=(a+1)%3,o=(a+2)%3;r=Math.sqrt(t[3*a+a]-t[3*i+i]-t[3*o+o]+1),e[a]=.5*r,r=.5/r,e[3]=(t[3*i+o]-t[3*o+i])*r,e[i]=(t[3*i+a]+t[3*a+i])*r,e[o]=(t[3*o+a]+t[3*a+o])*r}return e}function Gn(e,t,r,n){var a=.5*Math.PI/180;t*=a,r*=a,n*=a;var i=Math.sin(t),o=Math.cos(t),u=Math.sin(r),s=Math.cos(r),c=Math.sin(n),f=Math.cos(n);return e[0]=i*s*f-o*u*c,e[1]=o*u*f+i*s*c,e[2]=o*s*c-i*u*f,e[3]=o*s*f+i*u*c,e}function Wn(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var Hn,jn,Xn,Yn,Zn,$n,Kn=Ur,Jn=Cr,Qn=Vr,ea=Nr,ta=qr,ra=zn,na=Kr,aa=un,ia=cn,oa=tn,ua=oa,sa=rn,ca=sa,fa=on,_a=pn,da=mn,la=(Hn=qt(),jn=Ht(1,0,0),Xn=Ht(0,1,0),function(e,t,r){var n=_r(t,r);return n<-.999999?(dr(Hn,jn,t),Pr(Hn)<1e-6&&dr(Hn,Xn,t),fr(Hn,Hn),Tn(e,Hn,Math.PI),e):n>.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(dr(Hn,t,r),e[0]=Hn[0],e[1]=Hn[1],e[2]=Hn[2],e[3]=1+n,fa(e,e))}),ha=(Yn=xn(),Zn=xn(),function(e,t,r,n,a,i){return Un(Yn,t,a,i),Un(Zn,r,n,i),Un(e,Yn,Zn,2*i*(1-i)),e}),pa=($n=be(),function(e,t,r,n){return $n[0]=r[0],$n[3]=r[1],$n[6]=r[2],$n[1]=n[0],$n[4]=n[1],$n[7]=n[2],$n[2]=-t[0],$n[5]=-t[1],$n[8]=-t[2],fa(e,qn(e,$n))});function ma(){var e=new h(8);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[4]=0,e[5]=0,e[6]=0,e[7]=0),e[3]=1,e}function ba(e){var t=new h(8);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function wa(e,t,r,n,a,i,o,u){var s=new h(8);return s[0]=e,s[1]=t,s[2]=r,s[3]=n,s[4]=a,s[5]=i,s[6]=o,s[7]=u,s}function ga(e,t,r,n,a,i,o){var u=new h(8);u[0]=e,u[1]=t,u[2]=r,u[3]=n;var s=.5*a,c=.5*i,f=.5*o;return u[4]=s*n+c*r-f*t,u[5]=c*n+f*e-s*r,u[6]=f*n+s*t-c*e,u[7]=-s*e-c*t-f*r,u}function va(e,t,r){var n=.5*r[0],a=.5*r[1],i=.5*r[2],o=t[0],u=t[1],s=t[2],c=t[3];return e[0]=o,e[1]=u,e[2]=s,e[3]=c,e[4]=n*c+a*s-i*u,e[5]=a*c+i*o-n*s,e[6]=i*c+n*u-a*o,e[7]=-n*o-a*u-i*s,e}function ya(e,t){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=.5*t[0],e[5]=.5*t[1],e[6]=.5*t[2],e[7]=0,e}function Ma(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function Ea(e,t){var r=xn();Mt(r,t);var n=new h(3);return vt(n,t),va(e,r,n),e}function Aa(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e}function xa(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e[6]=0,e[7]=0,e}function ka(e,t,r,n,a,i,o,u,s){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e[4]=i,e[5]=o,e[6]=u,e[7]=s,e}var Ta=Qn;function Ra(e,t){return e[0]=t[4],e[1]=t[5],e[2]=t[6],e[3]=t[7],e}var Fa=Qn;function za(e,t){return e[4]=t[0],e[5]=t[1],e[6]=t[2],e[7]=t[3],e}function La(e,t){var r=t[4],n=t[5],a=t[6],i=t[7],o=-t[0],u=-t[1],s=-t[2],c=t[3];return e[0]=2*(r*c+i*o+n*s-a*u),e[1]=2*(n*c+i*u+a*o-r*s),e[2]=2*(a*c+i*s+r*u-n*o),e}function Oa(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=.5*r[0],s=.5*r[1],c=.5*r[2],f=t[4],_=t[5],d=t[6],l=t[7];return e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=o*u+a*c-i*s+f,e[5]=o*s+i*u-n*c+_,e[6]=o*c+n*s-a*u+d,e[7]=-n*u-a*s-i*c+l,e}function Ia(e,t,r){var n=-t[0],a=-t[1],i=-t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=u*o+f*n+s*i-c*a,d=s*o+f*a+c*n-u*i,l=c*o+f*i+u*a-s*n,h=f*o-u*n-s*a-c*i;return Ln(e,t,r),n=e[0],a=e[1],i=e[2],o=e[3],e[4]=_*o+h*n+d*i-l*a,e[5]=d*o+h*a+l*n-_*i,e[6]=l*o+h*i+_*a-d*n,e[7]=h*o-_*n-d*a-l*i,e}function Pa(e,t,r){var n=-t[0],a=-t[1],i=-t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=u*o+f*n+s*i-c*a,d=s*o+f*a+c*n-u*i,l=c*o+f*i+u*a-s*n,h=f*o-u*n-s*a-c*i;return On(e,t,r),n=e[0],a=e[1],i=e[2],o=e[3],e[4]=_*o+h*n+d*i-l*a,e[5]=d*o+h*a+l*n-_*i,e[6]=l*o+h*i+_*a-d*n,e[7]=h*o-_*n-d*a-l*i,e}function Sa(e,t,r){var n=-t[0],a=-t[1],i=-t[2],o=t[3],u=t[4],s=t[5],c=t[6],f=t[7],_=u*o+f*n+s*i-c*a,d=s*o+f*a+c*n-u*i,l=c*o+f*i+u*a-s*n,h=f*o-u*n-s*a-c*i;return In(e,t,r),n=e[0],a=e[1],i=e[2],o=e[3],e[4]=_*o+h*n+d*i-l*a,e[5]=d*o+h*a+l*n-_*i,e[6]=l*o+h*i+_*a-d*n,e[7]=h*o-_*n-d*a-l*i,e}function Ba(e,t,r){var n=r[0],a=r[1],i=r[2],o=r[3],u=t[0],s=t[1],c=t[2],f=t[3];return e[0]=u*o+f*n+s*i-c*a,e[1]=s*o+f*a+c*n-u*i,e[2]=c*o+f*i+u*a-s*n,e[3]=f*o-u*n-s*a-c*i,u=t[4],s=t[5],c=t[6],f=t[7],e[4]=u*o+f*n+s*i-c*a,e[5]=s*o+f*a+c*n-u*i,e[6]=c*o+f*i+u*a-s*n,e[7]=f*o-u*n-s*a-c*i,e}function Da(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=r[0],s=r[1],c=r[2],f=r[3];return e[0]=n*f+o*u+a*c-i*s,e[1]=a*f+o*s+i*u-n*c,e[2]=i*f+o*c+n*s-a*u,e[3]=o*f-n*u-a*s-i*c,u=r[4],s=r[5],c=r[6],f=r[7],e[4]=n*f+o*u+a*c-i*s,e[5]=a*f+o*s+i*u-n*c,e[6]=i*f+o*c+n*s-a*u,e[7]=o*f-n*u-a*s-i*c,e}function Ua(e,t,r,n){if(Math.abs(n)<l)return Aa(e,t);var a=Math.hypot(r[0],r[1],r[2]);n*=.5;var i=Math.sin(n),o=i*r[0]/a,u=i*r[1]/a,s=i*r[2]/a,c=Math.cos(n),f=t[0],_=t[1],d=t[2],h=t[3];e[0]=f*c+h*o+_*s-d*u,e[1]=_*c+h*u+d*o-f*s,e[2]=d*c+h*s+f*u-_*o,e[3]=h*c-f*o-_*u-d*s;var p=t[4],m=t[5],b=t[6],w=t[7];return e[4]=p*c+w*o+m*s-b*u,e[5]=m*c+w*u+b*o-p*s,e[6]=b*c+w*s+p*u-m*o,e[7]=w*c-p*o-m*u-b*s,e}function Ca(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e}function Va(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],u=r[4],s=r[5],c=r[6],f=r[7],_=t[4],d=t[5],l=t[6],h=t[7],p=r[0],m=r[1],b=r[2],w=r[3];return e[0]=n*w+o*p+a*b-i*m,e[1]=a*w+o*m+i*p-n*b,e[2]=i*w+o*b+n*m-a*p,e[3]=o*w-n*p-a*m-i*b,e[4]=n*f+o*u+a*c-i*s+_*w+h*p+d*b-l*m,e[5]=a*f+o*s+i*u-n*c+d*w+h*m+l*p-_*b,e[6]=i*f+o*c+n*s-a*u+l*w+h*b+_*m-d*p,e[7]=o*f-n*u-a*s-i*c+h*w-_*p-d*m-l*b,e}var Na=Va;function qa(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e}var Ga=aa;function Wa(e,t,r,n){var a=1-n;return Ga(t,r)<0&&(n=-n),e[0]=t[0]*a+r[0]*n,e[1]=t[1]*a+r[1]*n,e[2]=t[2]*a+r[2]*n,e[3]=t[3]*a+r[3]*n,e[4]=t[4]*a+r[4]*n,e[5]=t[5]*a+r[5]*n,e[6]=t[6]*a+r[6]*n,e[7]=t[7]*a+r[7]*n,e}function Ha(e,t){var r=Za(t);return e[0]=-t[0]/r,e[1]=-t[1]/r,e[2]=-t[2]/r,e[3]=t[3]/r,e[4]=-t[4]/r,e[5]=-t[5]/r,e[6]=-t[6]/r,e[7]=t[7]/r,e}function ja(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=t[7],e}var Xa=oa,Ya=Xa,Za=sa,$a=Za;function Ka(e,t){var r=Za(t);if(r>0){r=Math.sqrt(r);var n=t[0]/r,a=t[1]/r,i=t[2]/r,o=t[3]/r,u=t[4],s=t[5],c=t[6],f=t[7],_=n*u+a*s+i*c+o*f;e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=(u-n*_)/r,e[5]=(s-a*_)/r,e[6]=(c-i*_)/r,e[7]=(f-o*_)/r}return e}function Ja(e){return"quat2("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+")"}function Qa(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]}function ei(e,t){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],u=e[5],s=e[6],c=e[7],f=t[0],_=t[1],d=t[2],h=t[3],p=t[4],m=t[5],b=t[6],w=t[7];return Math.abs(r-f)<=l*Math.max(1,Math.abs(r),Math.abs(f))&&Math.abs(n-_)<=l*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(a-d)<=l*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(i-h)<=l*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-p)<=l*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(u-m)<=l*Math.max(1,Math.abs(u),Math.abs(m))&&Math.abs(s-b)<=l*Math.max(1,Math.abs(s),Math.abs(b))&&Math.abs(c-w)<=l*Math.max(1,Math.abs(c),Math.abs(w))}function ti(){var e=new h(2);return h!=Float32Array&&(e[0]=0,e[1]=0),e}function ri(e){var t=new h(2);return t[0]=e[0],t[1]=e[1],t}function ni(e,t){var r=new h(2);return r[0]=e,r[1]=t,r}function ai(e,t){return e[0]=t[0],e[1]=t[1],e}function ii(e,t,r){return e[0]=t,e[1]=r,e}function oi(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function ui(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function si(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function ci(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function fi(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function _i(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function di(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function li(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}function hi(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e}function pi(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function mi(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function bi(e,t){var r=t[0]-e[0],n=t[1]-e[1];return Math.hypot(r,n)}function wi(e,t){var r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function gi(e){var t=e[0],r=e[1];return Math.hypot(t,r)}function vi(e){var t=e[0],r=e[1];return t*t+r*r}function yi(e,t){return e[0]=-t[0],e[1]=-t[1],e}function Mi(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function Ei(e,t){var r=t[0],n=t[1],a=r*r+n*n;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e}function Ai(e,t){return e[0]*t[0]+e[1]*t[1]}function xi(e,t,r){var n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e}function ki(e,t,r,n){var a=t[0],i=t[1];return e[0]=a+n*(r[0]-a),e[1]=i+n*(r[1]-i),e}function Ti(e,t){t=t||1;var r=2*p()*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e}function Ri(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[2]*a,e[1]=r[1]*n+r[3]*a,e}function Fi(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[2]*a+r[4],e[1]=r[1]*n+r[3]*a+r[5],e}function zi(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[3]*a+r[6],e[1]=r[1]*n+r[4]*a+r[7],e}function Li(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[4]*a+r[12],e[1]=r[1]*n+r[5]*a+r[13],e}function Oi(e,t,r,n){var a=t[0]-r[0],i=t[1]-r[1],o=Math.sin(n),u=Math.cos(n);return e[0]=a*u-i*o+r[0],e[1]=a*o+i*u+r[1],e}function Ii(e,t){var r=e[0],n=e[1],a=t[0],i=t[1],o=r*r+n*n;o>0&&(o=1/Math.sqrt(o));var u=a*a+i*i;u>0&&(u=1/Math.sqrt(u));var s=(r*a+n*i)*o*u;return s>1?0:s<-1?Math.PI:Math.acos(s)}function Pi(e){return e[0]=0,e[1]=0,e}function Si(e){return"vec2("+e[0]+", "+e[1]+")"}function Bi(e,t){return e[0]===t[0]&&e[1]===t[1]}function Di(e,t){var r=e[0],n=e[1],a=t[0],i=t[1];return Math.abs(r-a)<=l*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(n-i)<=l*Math.max(1,Math.abs(n),Math.abs(i))}var Ui=gi,Ci=ui,Vi=si,Ni=ci,qi=bi,Gi=wi,Wi=vi,Hi=function(){var e=ti();return function(t,r,n,a,i,o){var u,s;for(r||(r=2),n||(n=0),s=a?Math.min(a*r+n,t.length):t.length,u=n;u<s;u+=r)e[0]=t[u],e[1]=t[u+1],i(e,e,o),t[u]=e[0],t[u+1]=e[1];return t}}()},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(4),a=self;n.messageManager.onOutgoingMessage.bind(()=>{let e=n.messageManager.getOutgoingMessages();for(let t of e)a.postMessage(t.msg,t.transferables)});let i=e=>{if(e&&e.data&&"wasm"===e.data.t){let t=location.href.startsWith("blob")?e.data.url:r(22);t.default&&(t=t.default),n.launchWorkerServer(t),a.removeEventListener("message",i)}};a.addEventListener("message",i),a.addEventListener("message",e=>{n.messageManager.postIncomingMessage(e.data)})},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(a,i){function o(e){try{s(n.next(e))}catch(e){i(e)}}function u(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,u)}s((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.launchWorkerServer=t.messageManager=void 0;const a=r(5),i=r(9),o=r(10),u=r(13),s=r(1),c=r(15),f=r(16),_=r(0);t.messageManager=new u.MsgManager;let d=0;t.launchWorkerServer=function(e){return n(this,void 0,void 0,(function*(){let r=a.default({locateFile:(t,r)=>t.endsWith("zcv.wasm")?e:r+t,onRuntimeInitialized:()=>{let e=i.getRuntimeObject(r),a=new o.zappar_server(e,(e,r)=>{t.messageManager.postOutgoingMessage({p:e,t:"zappar",d:r},[r])});t.messageManager.postOutgoingMessage("loaded",[]),t.messageManager.onIncomingMessage.bind(i=>{var o;switch(i.t){case"zappar":a.processBuffer(i.d),t.messageManager.postOutgoingMessage({t:"buf",d:i.d},[i.d]);break;case"buf":null===(o=a.serializersByPipelineId.get(i.p))||void 0===o||o.bufferReturn(i.d);break;case"cameraFrameC2S":{let r,n=i,o=a._pipeline_by_instance.get(n.p);o&&(e.pipeline_camera_frame_submit(o,n.d,n.width,n.height,n.token,n.c2d,n.cm,n.userFacing),e.pipeline_frame_update(o),r=e.pipeline_camera_frame_device_attitude(o),a.exploreState());let u={token:n.token,d:n.d,p:n.p,t:"cameraFrameRecycleS2C",att:r};t.messageManager.postOutgoingMessage(u,[n.d]);break}case"streamC2S":{let o=i;!function(e,r,a,i,o,u,c){n(this,void 0,void 0,(function*(){const n=yield a.getReader();for(;;){let a=yield n.read();if(a.done)return void console.log("Stream done");let f=a.value,g=f.allocationSize();g>h&&(l>0&&e._free(l),l=e._malloc(g),h=g),yield f.copyTo(e.HEAPU8.subarray(l,l+h));let v=p;p++;const y=f.visibleRect.width,M=f.visibleRect.height;let E,A=y,x=M;switch(d){case 270:E=new Float32Array([0,1,0,0,-1,0,0,0,0,0,1,0,1,0,0,1]),A=M,x=y;break;case 180:E=new Float32Array([-1,0,0,0,0,-1,0,0,0,0,1,0,1,1,0,1]);break;case 90:E=new Float32Array([0,-1,0,0,1,0,0,0,0,0,1,0,0,1,0,1]),A=M,x=y;break;default:E=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}let k=f.clone();o?s.mat4.fromScaling(m,[-1,1,-1]):s.mat4.identity(m);let T=300*_.profile.dataWidth/320;b[0]=T,b[1]=T,b[2]=.5*_.profile.dataWidth,b[3]=.5*_.profile.dataHeight;const R={token:v,d:k,p:i,t:"videoFrameS2C",userFacing:o,uvTransform:E,w:A,h:x,cameraToDevice:m,cameraModel:b,source:c};t.messageManager.postOutgoingMessage(R,[R.d,R.uvTransform.buffer]);const F=u._pipeline_by_instance.get(i);F&&(r.pipeline_camera_frame_submit_raw_pointer(F,l,g,w(f.format),y,M,v,m,d,b,o),r.pipeline_frame_update(F),u.exploreState()),f.close()}}))}(r,e,o.s,o.p,o.userFacing,a,o.source);break}case"cameraToScreenC2S":d=i.r;break;case"imageBitmapC2S":{let r=i;f.handleImageBitmap(r,e,a,t.messageManager);break}}})}})}))};let l=0,h=0,p=1;const m=s.mat4.create(),b=new Float32Array([300,300,160,120,0,0]);function w(e){switch(e){case"I420":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_I420;case"I420A":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_I420A;case"I422":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_I422;case"I444":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_I444;case"NV12":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_NV12;case"RGBA":case"RGBX":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_RGBA;case"BGRA":case"BGRX":return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_BGRA}return c.frame_pixel_format_t.FRAME_PIXEL_FORMAT_Y}},function(e,t,r){"use strict";r.r(t),function(e){var r,n=(r="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t){var n;t=t||{},n||(n=void 0!==t?t:{});var a,i,o=Object.assign;n.ready=new Promise((function(e,t){a=e,i=t}));var u,s=o({},n),c="./this.program",f=(e,t)=>{throw t},_="";_=self.location.href,r&&(_=r),_=0!==_.indexOf("blob:")?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",u=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)};var d,l,h=n.print||console.log.bind(console),p=n.printErr||console.warn.bind(console);o(n,s),s=null,n.thisProgram&&(c=n.thisProgram),n.quit&&(f=n.quit),n.wasmBinary&&(l=n.wasmBinary);var m=n.noExitRuntime||!0;"object"!=typeof WebAssembly&&Z("no native wasm support detected");var b,w,g=!1;function v(e,t,r,a){var i={string:function(e){var t=0;if(null!=e&&0!==e){var r=1+(e.length<<2);t=vr(r),I(e,E,t,r)}return t},array:function(e){var t=vr(e.length);return M.set(e,t),t}};e=n["_"+e];var o,u=[],s=0;if(a)for(var c=0;c<a.length;c++){var f=i[r[c]];f?(0===s&&(s=wr()),u[c]=f(a[c])):u[c]=a[c]}return r=e.apply(null,u),o=r,0!==s&&gr(s),"string"===t?O(o):"boolean"===t?!!o:o}var y,M,E,A,x,k,T,R,F,z="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function L(e,t,r){var n=t+r;for(r=t;e[r]&&!(r>=n);)++r;if(16<r-t&&e.subarray&&z)return z.decode(e.subarray(t,r));for(n="";t<r;){var a=e[t++];if(128&a){var i=63&e[t++];if(192==(224&a))n+=String.fromCharCode((31&a)<<6|i);else{var o=63&e[t++];65536>(a=224==(240&a)?(15&a)<<12|i<<6|o:(7&a)<<18|i<<12|o<<6|63&e[t++])?n+=String.fromCharCode(a):(a-=65536,n+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else n+=String.fromCharCode(a)}return n}function O(e,t){return e?L(E,e,t):""}function I(e,t,r,n){if(!(0<n))return 0;var a=r;n=r+n-1;for(var i=0;i<e.length;++i){var o=e.charCodeAt(i);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++i)),127>=o){if(r>=n)break;t[r++]=o}else{if(2047>=o){if(r+1>=n)break;t[r++]=192|o>>6}else{if(65535>=o){if(r+2>=n)break;t[r++]=224|o>>12}else{if(r+3>=n)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63}t[r++]=128|o>>6&63}t[r++]=128|63&o}}return t[r]=0,r-a}function P(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);55296<=n&&57343>=n&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),127>=n?++t:t=2047>=n?t+2:65535>=n?t+3:t+4}return t}function S(e){var t=P(e)+1,r=dr(t);return r&&I(e,M,r,t),r}function B(){var e=b.buffer;y=e,n.HEAP8=M=new Int8Array(e),n.HEAP16=A=new Int16Array(e),n.HEAP32=k=new Int32Array(e),n.HEAPU8=E=new Uint8Array(e),n.HEAPU16=x=new Uint16Array(e),n.HEAPU32=T=new Uint32Array(e),n.HEAPF32=R=new Float32Array(e),n.HEAPF64=F=new Float64Array(e)}var D,U=[],C=[],V=[],N=!1;function q(){var e=n.preRun.shift();U.unshift(e)}var G,W=0,H=null,j=null;function X(){W++,n.monitorRunDependencies&&n.monitorRunDependencies(W)}function Y(){if(W--,n.monitorRunDependencies&&n.monitorRunDependencies(W),0==W&&(null!==H&&(clearInterval(H),H=null),j)){var e=j;j=null,e()}}function Z(e){throw n.onAbort&&n.onAbort(e),p(e="Aborted("+e+")"),g=!0,w=1,e=new WebAssembly.RuntimeError(e+". Build with -s ASSERTIONS=1 for more info."),i(e),e}if(n.preloadedImages={},n.preloadedAudios={},!(G="zcv.wasm").startsWith("data:application/octet-stream;base64,")){var $=G;G=n.locateFile?n.locateFile($,_):_+$}var K,J,Q={507176:function(){if(self.crypto&&self.crypto.getRandomValues){var e=new Uint32Array(1);return self.crypto.getRandomValues(e),e[0]}return 9007199254740991*Math.random()},507352:function(e,t){self.respond_ba_request(E.subarray(e,e+t))},507414:function(e,t){self.send_ba_request(E.subarray(e,e+t))}};function ee(e){for(;0<e.length;){var t=e.shift();if("function"==typeof t)t(n);else{var r=t.dd;"number"==typeof r?void 0===t.xc?ne(r)():ne(r)(t.xc):r(void 0===t.xc?null:t.xc)}}}var te,re=[];function ne(e){var t=re[e];return t||(e>=re.length&&(re.length=e+1),re[e]=t=D.get(e)),t}function ae(e){e instanceof yr||"unwind"==e||f(1,e)}function ie(e,t){if(0===e)e=Date.now();else{if(1!==e&&4!==e)return k[hr()>>2]=28,-1;e=te()}return k[t>>2]=e/1e3|0,k[t+4>>2]=e%1e3*1e6|0,0}function oe(e){this.qc=e-16,this.vd=function(e){k[this.qc+4>>2]=e},this.sd=function(e){k[this.qc+8>>2]=e},this.td=function(){k[this.qc>>2]=0},this.rd=function(){M[this.qc+12>>0]=0},this.ud=function(){M[this.qc+13>>0]=0},this.gd=function(e,t){this.vd(e),this.sd(t),this.td(),this.rd(),this.ud()}}function ue(e,t){for(var r=0,n=e.length-1;0<=n;n--){var a=e[n];"."===a?e.splice(n,1):".."===a?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e}function se(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=ue(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function ce(e){var t=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],e||t?(t&&(t=t.substr(0,t.length-1)),e+t):"."}function fe(e){if("/"===e)return"/";var t=(e=(e=se(e)).replace(/\\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)}function _e(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){if("string"!=typeof(t=0<=r?arguments[r]:"/"))throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,t="/"===t.charAt(0)}return(t?"/":"")+(e=ue(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."}te=()=>performance.now();var de=[];function le(e,t){de[e]={input:[],ec:[],pc:t},Ue(e,he)}var he={open:function(e){var t=de[e.node.uc];if(!t)throw new Ae(43);e.dc=t,e.seekable=!1},close:function(e){e.dc.pc.flush(e.dc)},flush:function(e){e.dc.pc.flush(e.dc)},read:function(e,t,r,n){if(!e.dc||!e.dc.pc.Qc)throw new Ae(60);for(var a=0,i=0;i<n;i++){try{var o=e.dc.pc.Qc(e.dc)}catch(e){throw new Ae(29)}if(void 0===o&&0===a)throw new Ae(6);if(null==o)break;a++,t[r+i]=o}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,n){if(!e.dc||!e.dc.pc.Jc)throw new Ae(60);try{for(var a=0;a<n;a++)e.dc.pc.Jc(e.dc,t[r+a])}catch(e){throw new Ae(29)}return n&&(e.node.timestamp=Date.now()),a}},pe={Qc:function(e){if(!e.input.length){var t=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\\n"),!t)return null;e.input=sr(t,!0)}return e.input.shift()},Jc:function(e,t){null===t||10===t?(h(L(e.ec,0)),e.ec=[]):0!=t&&e.ec.push(t)},flush:function(e){e.ec&&0<e.ec.length&&(h(L(e.ec,0)),e.ec=[])}},me={Jc:function(e,t){null===t||10===t?(p(L(e.ec,0)),e.ec=[]):0!=t&&e.ec.push(t)},flush:function(e){e.ec&&0<e.ec.length&&(p(L(e.ec,0)),e.ec=[])}},be={jc:null,lc:function(){return be.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(24576==(61440&r)||4096==(61440&r))throw new Ae(63);return be.jc||(be.jc={dir:{node:{ic:be.$b.ic,kc:be.$b.kc,sc:be.$b.sc,yc:be.$b.yc,Wc:be.$b.Wc,Dc:be.$b.Dc,Xc:be.$b.Xc,Vc:be.$b.Vc,zc:be.$b.zc},stream:{nc:be.bc.nc}},file:{node:{ic:be.$b.ic,kc:be.$b.kc},stream:{nc:be.bc.nc,read:be.bc.read,write:be.bc.write,Lc:be.bc.Lc,Rc:be.bc.Rc,Tc:be.bc.Tc}},link:{node:{ic:be.$b.ic,kc:be.$b.kc,vc:be.$b.vc},stream:{}},Mc:{node:{ic:be.$b.ic,kc:be.$b.kc},stream:De}}),16384==(61440&(r=ze(e,t,r,n)).mode)?(r.$b=be.jc.dir.node,r.bc=be.jc.dir.stream,r.ac={}):32768==(61440&r.mode)?(r.$b=be.jc.file.node,r.bc=be.jc.file.stream,r.cc=0,r.ac=null):40960==(61440&r.mode)?(r.$b=be.jc.link.node,r.bc=be.jc.link.stream):8192==(61440&r.mode)&&(r.$b=be.jc.Mc.node,r.bc=be.jc.Mc.stream),r.timestamp=Date.now(),e&&(e.ac[t]=r,e.timestamp=r.timestamp),r},Id:function(e){return e.ac?e.ac.subarray?e.ac.subarray(0,e.cc):new Uint8Array(e.ac):new Uint8Array(0)},Nc:function(e,t){var r=e.ac?e.ac.length:0;r>=t||(t=Math.max(t,r*(1048576>r?2:1.125)>>>0),0!=r&&(t=Math.max(t,256)),r=e.ac,e.ac=new Uint8Array(t),0<e.cc&&e.ac.set(r.subarray(0,e.cc),0))},pd:function(e,t){if(e.cc!=t)if(0==t)e.ac=null,e.cc=0;else{var r=e.ac;e.ac=new Uint8Array(t),r&&e.ac.set(r.subarray(0,Math.min(t,e.cc))),e.cc=t}},$b:{ic:function(e){var t={};return t.bd=8192==(61440&e.mode)?e.id:1,t.Ic=e.id,t.mode=e.mode,t.nd=1,t.uid=0,t.ed=0,t.uc=e.uc,16384==(61440&e.mode)?t.size=4096:32768==(61440&e.mode)?t.size=e.cc:40960==(61440&e.mode)?t.size=e.link.length:t.size=0,t.Yc=new Date(e.timestamp),t.md=new Date(e.timestamp),t.ad=new Date(e.timestamp),t.Zc=4096,t.$c=Math.ceil(t.size/t.Zc),t},kc:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&be.pd(e,t.size)},sc:function(){throw xe[44]},yc:function(e,t,r,n){return be.createNode(e,t,r,n)},Wc:function(e,t,r){if(16384==(61440&e.mode)){try{var n=Fe(t,r)}catch(e){}if(n)for(var a in n.ac)throw new Ae(55)}delete e.parent.ac[e.name],e.parent.timestamp=Date.now(),e.name=r,t.ac[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},Dc:function(e,t){delete e.ac[t],e.timestamp=Date.now()},Xc:function(e,t){var r,n=Fe(e,t);for(r in n.ac)throw new Ae(55);delete e.ac[t],e.timestamp=Date.now()},Vc:function(e){var t,r=[".",".."];for(t in e.ac)e.ac.hasOwnProperty(t)&&r.push(t);return r},zc:function(e,t,r){return(e=be.createNode(e,t,41471,0)).link=r,e},vc:function(e){if(40960!=(61440&e.mode))throw new Ae(28);return e.link}},bc:{read:function(e,t,r,n,a){var i=e.node.ac;if(a>=e.node.cc)return 0;if(8<(e=Math.min(e.node.cc-a,n))&&i.subarray)t.set(i.subarray(a,a+e),r);else for(n=0;n<e;n++)t[r+n]=i[a+n];return e},write:function(e,t,r,n,a,i){if(t.buffer===M.buffer&&(i=!1),!n)return 0;if((e=e.node).timestamp=Date.now(),t.subarray&&(!e.ac||e.ac.subarray)){if(i)return e.ac=t.subarray(r,r+n),e.cc=n;if(0===e.cc&&0===a)return e.ac=t.slice(r,r+n),e.cc=n;if(a+n<=e.cc)return e.ac.set(t.subarray(r,r+n),a),n}if(be.Nc(e,a+n),e.ac.subarray&&t.subarray)e.ac.set(t.subarray(r,r+n),a);else for(i=0;i<n;i++)e.ac[a+i]=t[r+i];return e.cc=Math.max(e.cc,a+n),n},nc:function(e,t,r){if(1===r?t+=e.position:2===r&&32768==(61440&e.node.mode)&&(t+=e.node.cc),0>t)throw new Ae(28);return t},Lc:function(e,t,r){be.Nc(e.node,t+r),e.node.cc=Math.max(e.node.cc,t+r)},Rc:function(e,t,r,n,a,i){if(0!==t)throw new Ae(28);if(32768!=(61440&e.node.mode))throw new Ae(43);if(e=e.node.ac,2&i||e.buffer!==y){if((0<n||n+r<e.length)&&(e=e.subarray?e.subarray(n,n+r):Array.prototype.slice.call(e,n,n+r)),n=!0,Z(),!(r=void 0))throw new Ae(48);M.set(e,r)}else n=!1,r=e.byteOffset;return{qc:r,Ed:n}},Tc:function(e,t,r,n,a){if(32768!=(61440&e.node.mode))throw new Ae(43);return 2&a||be.bc.write(e,t,0,n,r,!1),0}}},we=null,ge={},ve=[],ye=1,Me=null,Ee=!0,Ae=null,xe={};function ke(e,t){if(t=t||{},!(e=_e("/",e)))return{path:"",node:null};var r,n={Oc:!0,Kc:0};for(r in n)void 0===t[r]&&(t[r]=n[r]);if(8<t.Kc)throw new Ae(32);e=ue(e.split("/").filter((function(e){return!!e})),!1);var a=we;for(n="/",r=0;r<e.length;r++){var i=r===e.length-1;if(i&&t.parent)break;if(a=Fe(a,e[r]),n=se(n+"/"+e[r]),a.tc&&(!i||i&&t.Oc)&&(a=a.tc.root),!i||t.Gc)for(i=0;40960==(61440&a.mode);)if(a=We(n),a=ke(n=_e(ce(n),a),{Kc:t.Kc}).node,40<i++)throw new Ae(32)}return{path:n,node:a}}function Te(e){for(var t;;){if(e===e.parent)return e=e.lc.Sc,t?"/"!==e[e.length-1]?e+"/"+t:e+t:e;t=t?e.name+"/"+t:e.name,e=e.parent}}function Re(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%Me.length}function Fe(e,t){var r;if(r=(r=Ie(e,"x"))?r:e.$b.sc?0:2)throw new Ae(r,e);for(r=Me[Re(e.id,t)];r;r=r.oc){var n=r.name;if(r.parent.id===e.id&&n===t)return r}return e.$b.sc(e,t)}function ze(e,t,r,n){return t=Re((e=new ur(e,t,r,n)).parent.id,e.name),e.oc=Me[t],Me[t]=e}var Le={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090};function Oe(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t}function Ie(e,t){return Ee?0:!t.includes("r")||292&e.mode?t.includes("w")&&!(146&e.mode)||t.includes("x")&&!(73&e.mode)?2:0:2}function Pe(e,t){try{return Fe(e,t),20}catch(e){}return Ie(e,"wx")}function Se(e,t){Je||((Je=function(){}).prototype={});var r,n=new Je;for(r in e)n[r]=e[r];return e=n,t=function(e){for(e=e||0;e<=4096;e++)if(!ve[e])return e;throw new Ae(33)}(t),e.mc=t,ve[t]=e}var Be,De={open:function(e){e.bc=ge[e.node.uc].bc,e.bc.open&&e.bc.open(e)},nc:function(){throw new Ae(70)}};function Ue(e,t){ge[e]={bc:t}}function Ce(e,t){var r="/"===t,n=!t;if(r&&we)throw new Ae(10);if(!r&&!n){var a=ke(t,{Oc:!1});if(t=a.path,(a=a.node).tc)throw new Ae(10);if(16384!=(61440&a.mode))throw new Ae(54)}t={type:e,Md:{},Sc:t,ld:[]},(e=e.lc(t)).lc=t,t.root=e,r?we=e:a&&(a.tc=t,a.lc&&a.lc.ld.push(t))}function Ve(e,t,r){var n=ke(e,{parent:!0}).node;if(!(e=fe(e))||"."===e||".."===e)throw new Ae(28);var a=Pe(n,e);if(a)throw new Ae(a);if(!n.$b.yc)throw new Ae(63);return n.$b.yc(n,e,t,r)}function Ne(e){return Ve(e,16895,0)}function qe(e,t,r){void 0===r&&(r=t,t=438),Ve(e,8192|t,r)}function Ge(e,t){if(!_e(e))throw new Ae(44);var r=ke(t,{parent:!0}).node;if(!r)throw new Ae(44);var n=Pe(r,t=fe(t));if(n)throw new Ae(n);if(!r.$b.zc)throw new Ae(63);r.$b.zc(r,t,e)}function We(e){if(!(e=ke(e).node))throw new Ae(44);if(!e.$b.vc)throw new Ae(28);return _e(Te(e.parent),e.$b.vc(e))}function He(e,t){if(!(e=ke(e,{Gc:!t}).node))throw new Ae(44);if(!e.$b.ic)throw new Ae(63);return e.$b.ic(e)}function je(e){return He(e,!0)}function Xe(e,t,r,a){if(""===e)throw new Ae(44);if("string"==typeof t){var i=Le[t];if(void 0===i)throw Error("Unknown file open mode: "+t);t=i}if(r=64&t?4095&(void 0===r?438:r)|32768:0,"object"==typeof e)var o=e;else{e=se(e);try{o=ke(e,{Gc:!(131072&t)}).node}catch(e){}}if(i=!1,64&t)if(o){if(128&t)throw new Ae(20)}else o=Ve(e,r,0),i=!0;if(!o)throw new Ae(44);if(8192==(61440&o.mode)&&(t&=-513),65536&t&&16384!=(61440&o.mode))throw new Ae(54);if(!i&&(r=o?40960==(61440&o.mode)?32:16384==(61440&o.mode)&&("r"!==Oe(t)||512&t)?31:Ie(o,Oe(t)):44))throw new Ae(r);if(512&t){if(!(r="string"==typeof(r=o)?ke(r,{Gc:!0}).node:r).$b.kc)throw new Ae(63);if(16384==(61440&r.mode))throw new Ae(31);if(32768!=(61440&r.mode))throw new Ae(28);if(i=Ie(r,"w"))throw new Ae(i);r.$b.kc(r,{size:0,timestamp:Date.now()})}return t&=-131713,(a=Se({node:o,path:Te(o),id:o.id,flags:t,mode:o.mode,seekable:!0,position:0,bc:o.bc,$b:o.$b,Ad:[],error:!1},a)).bc.open&&a.bc.open(a),!n.logReadFiles||1&t||(Qe||(Qe={}),e in Qe||(Qe[e]=1)),a}function Ye(e,t,r){if(null===e.mc)throw new Ae(8);if(!e.seekable||!e.bc.nc)throw new Ae(70);if(0!=r&&1!=r&&2!=r)throw new Ae(28);e.position=e.bc.nc(e,t,r),e.Ad=[]}function Ze(){Ae||((Ae=function(e,t){this.node=t,this.qd=function(e){this.hc=e},this.qd(e),this.message="FS error"}).prototype=Error(),Ae.prototype.constructor=Ae,[44].forEach((function(e){xe[e]=new Ae(e),xe[e].stack="<generic error, no stack>"})))}function $e(e,t,r){e=se("/dev/"+e);var n=function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r}(!!t,!!r);Ke||(Ke=64);var a=Ke++<<8|0;Ue(a,{open:function(e){e.seekable=!1},close:function(){r&&r.buffer&&r.buffer.length&&r(10)},read:function(e,r,n,a){for(var i=0,o=0;o<a;o++){try{var u=t()}catch(e){throw new Ae(29)}if(void 0===u&&0===i)throw new Ae(6);if(null==u)break;i++,r[n+o]=u}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,n,a){for(var i=0;i<a;i++)try{r(t[n+i])}catch(e){throw new Ae(29)}return a&&(e.node.timestamp=Date.now()),i}}),qe(e,n,a)}var Ke,Je,Qe,et={};function tt(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&se(t)!==se(Te(e.node)))return-54;throw e}return k[r>>2]=n.bd,k[r+4>>2]=0,k[r+8>>2]=n.Ic,k[r+12>>2]=n.mode,k[r+16>>2]=n.nd,k[r+20>>2]=n.uid,k[r+24>>2]=n.ed,k[r+28>>2]=n.uc,k[r+32>>2]=0,J=[n.size>>>0,(K=n.size,1<=+Math.abs(K)?0<K?(0|Math.min(+Math.floor(K/4294967296),4294967295))>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)],k[r+40>>2]=J[0],k[r+44>>2]=J[1],k[r+48>>2]=4096,k[r+52>>2]=n.$c,k[r+56>>2]=n.Yc.getTime()/1e3|0,k[r+60>>2]=0,k[r+64>>2]=n.md.getTime()/1e3|0,k[r+68>>2]=0,k[r+72>>2]=n.ad.getTime()/1e3|0,k[r+76>>2]=0,J=[n.Ic>>>0,(K=n.Ic,1<=+Math.abs(K)?0<K?(0|Math.min(+Math.floor(K/4294967296),4294967295))>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)],k[r+80>>2]=J[0],k[r+84>>2]=J[1],0}var rt=void 0;function nt(){return k[(rt+=4)-4>>2]}function at(e){if(!(e=ve[e]))throw new Ae(8);return e}var it=[];function ot(e,t){if(!N&&!g)if(t)e();else try{e()}catch(e){ae(e)}}function ut(e,t){setTimeout((function(){ot(e)}),t)}var st,ct,ft,_t=!1,dt=null,lt=0,ht=null,pt=0,mt=0,bt=0,wt=[],gt={},vt=!1,yt=!1,Mt=[];function Et(){function e(){yt=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}if(n.preloadPlugins||(n.preloadPlugins=[]),!St){St=!0;try{Bt=!0}catch(e){Bt=!1,h("warning: no blob constructor, cannot create blobs with mimetypes")}Dt="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Bt?null:h("warning: no BlobBuilder"),Ut="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.Uc||void 0!==Ut||(h("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.Uc=!0),n.preloadPlugins.push({canHandle:function(e){return!n.Uc&&/\\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,a){var i=null;if(Bt)try{(i=new Blob([e],{type:Lt(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:Lt(t)}))}catch(e){!function(e){d||(d={}),d[e]||(d[e]=1,p(e))}("Blob constructor present but fails: "+e+"; falling back to blob builder")}i||((i=new Dt).append(new Uint8Array(e).buffer),i=i.getBlob());var o=Ut.createObjectURL(i),u=new Image;u.onload=()=>{u.complete||Z("Image "+t+" could not be decoded");var a=document.createElement("canvas");a.width=u.width,a.height=u.height,a.getContext("2d").drawImage(u,0,0),n.preloadedImages[t]=a,Ut.revokeObjectURL(o),r&&r(e)},u.onerror=()=>{h("Image "+o+" could not be decoded"),a&&a()},u.src=o}}),n.preloadPlugins.push({canHandle:function(e){return!n.Ld&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,a){function i(a){u||(u=!0,n.preloadedAudios[t]=a,r&&r(e))}function o(){u||(u=!0,n.preloadedAudios[t]=new Audio,a&&a())}var u=!1;if(!Bt)return o();try{var s=new Blob([e],{type:Lt(t)})}catch(e){return o()}s=Ut.createObjectURL(s);var c=new Audio;c.addEventListener("canplaythrough",(function(){i(c)}),!1),c.onerror=function(){if(!u){h("warning: browser could not fully decode audio "+t+", trying slower base64 approach");for(var r="",n=0,a=0,o=0;o<e.length;o++)for(n=n<<8|e[o],a+=8;6<=a;){var s=n>>a-6&63;a-=6,r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[s]}2==a?(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&n)<<4],r+="=="):4==a&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&n)<<2],r+="="),c.src="data:audio/x-"+t.substr(-3)+";base64,"+r,i(c)}},c.src=s,ut((function(){i(c)}),1e4)}});var t=n.canvas;t&&(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock||t.msRequestPointerLock||function(){},t.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},t.exitPointerLock=t.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",e,!1),document.addEventListener("mozpointerlockchange",e,!1),document.addEventListener("webkitpointerlockchange",e,!1),document.addEventListener("mspointerlockchange",e,!1),n.elementPointerLock&&t.addEventListener("click",(function(e){!yt&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),e.preventDefault())}),!1))}}function At(e,t,r,a){if(t&&n.Fc&&e==n.canvas)return n.Fc;var i;if(t){var o={antialias:!1,alpha:!1,kd:1};if(a)for(var u in a)o[u]=a[u];if(void 0!==er&&(i=function(e,t){e.Pc||(e.Pc=e.getContext,e.getContext=function(t,r){return"webgl"==t==(r=e.Pc(t,r))instanceof WebGLRenderingContext?r:null});var r=e.getContext("webgl",t);return r?function(e,t){var r=$t(Zt),n={Jd:r,attributes:t,version:t.kd,Ec:e};return e.canvas&&(e.canvas.Dd=n),Zt[r]=n,(void 0===t.cd||t.cd)&&function(e){if(e||(e=Jt),!e.hd){e.hd=!0;var t=e.Ec;!function(e){var t=e.getExtension("ANGLE_instanced_arrays");t&&(e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,n,a){t.drawArraysInstancedANGLE(e,r,n,a)},e.drawElementsInstanced=function(e,r,n,a,i){t.drawElementsInstancedANGLE(e,r,n,a,i)})}(t),function(e){var t=e.getExtension("OES_vertex_array_object");t&&(e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)})}(t),function(e){var t=e.getExtension("WEBGL_draw_buffers");t&&(e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)})}(t),t.Gd=t.getExtension("EXT_disjoint_timer_query"),t.Kd=t.getExtension("WEBGL_multi_draw"),(t.getSupportedExtensions()||[]).forEach((function(e){e.includes("lose_context")||e.includes("debug")||t.getExtension(e)}))}}(n),r}(r,t):0}(e,o)))var s=Zt[i].Ec}else s=e.getContext("2d");return s?(r&&(t||void 0===nr||Z("cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.Fc=s,t&&(Jt=Zt[i],n.Fc=nr=Jt&&Jt.Ec),n.Od=t,Mt.forEach((function(e){e()})),Et()),s):null}var xt=!1,kt=void 0,Tt=void 0;function Rt(){return!!vt&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)}var Ft=0;function zt(e){if("function"==typeof requestAnimationFrame)requestAnimationFrame(e);else{var t=Date.now();if(0===Ft)Ft=t+1e3/60;else for(;t+2>=Ft;)Ft+=1e3/60;setTimeout(e,Math.max(Ft-t,0))}}function Lt(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]}var Ot=[];function It(){var e=n.canvas;Ot.forEach((function(t){t(e.width,e.height)}))}function Pt(e,t,r){t&&r?(e.Bd=t,e.fd=r):(t=e.Bd,r=e.fd);var a=t,i=r;if(n.forcedAspectRatio&&0<n.forcedAspectRatio&&(a/i<n.forcedAspectRatio?a=Math.round(i*n.forcedAspectRatio):i=Math.round(a/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var o=Math.min(screen.width/a,screen.height/i);a=Math.round(a*o),i=Math.round(i*o)}Tt?(e.width!=a&&(e.width=a),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(a!=t||i!=r?(e.style.setProperty("width",a+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}var St,Bt,Dt,Ut,Ct,Vt=[];function Nt(e,t){T[e>>2]=t,T[e+4>>2]=t/4294967296|0}function qt(e,t,r,n,a){function i(t){var r=0,n=0;t&&(n=v.response?v.response.byteLength:0,r=dr(n),E.set(new Uint8Array(v.response),r)),T[e+12>>2]=r,Nt(e+16,n)}var o=T[e+8>>2];if(o){var u=O(o),s=e+112,c=O(s);c||(c="GET");var f=T[s+52>>2],_=T[s+56>>2],d=!!T[s+60>>2],l=T[s+68>>2],h=T[s+72>>2];o=T[s+76>>2];var p=T[s+80>>2],m=T[s+84>>2];s=T[s+88>>2];var b=!!(1&f),w=!!(2&f);f=!!(64&f),l=l?O(l):void 0,h=h?O(h):void 0;var g=p?O(p):void 0,v=new XMLHttpRequest;if(v.withCredentials=d,v.open(c,u,!f,l,h),f||(v.timeout=_),v.Cd=u,v.responseType="arraybuffer",p&&v.overrideMimeType(g),o)for(;(c=T[o>>2])&&(u=T[o+4>>2]);)o+=8,c=O(c),u=O(u),v.setRequestHeader(c,u);Vt.push(v),T[e+0>>2]=Vt.length,o=m&&s?E.slice(m,m+s):null,v.onload=function(n){i(b&&!w);var a=v.response?v.response.byteLength:0;Nt(e+24,0),a&&Nt(e+32,a),x[e+40>>1]=v.readyState,x[e+42>>1]=v.status,v.statusText&&I(v.statusText,E,e+44,64),200<=v.status&&300>v.status?t&&t(e,v,n):r&&r(e,v,n)},v.onerror=function(t){i(b);var n=v.status;Nt(e+24,0),Nt(e+32,v.response?v.response.byteLength:0),x[e+40>>1]=v.readyState,x[e+42>>1]=n,r&&r(e,v,t)},v.ontimeout=function(t){r&&r(e,v,t)},v.onprogress=function(t){var r=b&&w&&v.response?v.response.byteLength:0,a=0;b&&w&&(a=dr(r),E.set(new Uint8Array(v.response),a)),T[e+12>>2]=a,Nt(e+16,r),Nt(e+24,t.loaded-r),Nt(e+32,t.total),x[e+40>>1]=v.readyState,3<=v.readyState&&0===v.status&&0<t.loaded&&(v.status=200),x[e+42>>1]=v.status,v.statusText&&I(v.statusText,E,e+44,64),n&&n(e,v,t),a&&_r(a)},v.onreadystatechange=function(t){x[e+40>>1]=v.readyState,2<=v.readyState&&(x[e+42>>1]=v.status),a&&a(e,v,t)};try{v.send(o)}catch(t){r&&r(e,v,t)}}else r(e,0,"no url specified!")}function Gt(e,t,r,n){var a=Ct;if(a){var i=T[e+112+64>>2];i||(i=T[e+8>>2]);var o=O(i);try{var u=a.transaction(["FILES"],"readwrite").objectStore("FILES").put(t,o);u.onsuccess=function(){x[e+40>>1]=4,x[e+42>>1]=200,I("OK",E,e+44,64),r(e,0,o)},u.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=413,I("Payload Too Large",E,e+44,64),n(e,0,t)}}catch(t){n(e,0,t)}}else n(e,0,"IndexedDB not available!")}var Wt,Ht={};function jt(){if(!Wt){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(e in Ht)void 0===Ht[e]?delete t[e]:t[e]=Ht[e];var r=[];for(e in t)r.push(e+"="+t[e]);Wt=r}return Wt}var Xt=1,Yt=[],Zt=[];function $t(e){for(var t=Xt++,r=e.length;r<t;r++)e[r]=null;return t}var Kt,Jt,Qt,er={};function tr(e){return 0==e%4&&(0!=e%100||0==e%400)}function rr(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var nr,ar=[31,29,31,30,31,30,31,31,30,31,30,31],ir=[31,28,31,30,31,30,31,31,30,31,30,31];function or(e,t){for(e=new Date(e.getTime());0<t;){var r=e.getMonth(),n=(tr(e.getFullYear())?ar:ir)[r];if(!(t>n-e.getDate())){e.setDate(e.getDate()+t);break}t-=n-e.getDate()+1,e.setDate(1),11>r?e.setMonth(r+1):(e.setMonth(0),e.setFullYear(e.getFullYear()+1))}return e}function ur(e,t,r,n){e||(e=this),this.parent=e,this.lc=e.lc,this.tc=null,this.id=ye++,this.name=t,this.mode=r,this.$b={},this.bc={},this.uc=n}function sr(e,t){var r=Array(P(e)+1);return e=I(e,r,0,r.length),t&&(r.length=e),r}Object.defineProperties(ur.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}}}),Ze(),Me=Array(4096),Ce(be,"/"),Ne("/tmp"),Ne("/home"),Ne("/home/web_user"),function(){Ne("/dev"),Ue(259,{read:function(){return 0},write:function(e,t,r,n){return n}}),qe("/dev/null",259),le(1280,pe),le(1536,me),qe("/dev/tty",1280),qe("/dev/tty1",1536);var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}return function(){Z("randomDevice")}}();$e("random",e),$e("urandom",e),Ne("/dev/shm"),Ne("/dev/shm/tmp")}(),function(){Ne("/proc");var e=Ne("/proc/self");Ne("/proc/self/fd"),Ce({lc:function(){var t=ze(e,"fd",16895,73);return t.$b={sc:function(e,t){var r=ve[+t];if(!r)throw new Ae(8);return(e={parent:null,lc:{Sc:"fake"},$b:{vc:function(){return r.path}}}).parent=e}},t}},"/proc/self/fd")}(),n.requestFullscreen=function(e,t){!function(e,t){function r(){vt=!1;var e=a.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(a.exitFullscreen=Rt,kt&&a.requestPointerLock(),vt=!0,Tt?("undefined"!=typeof SDL&&(k[SDL.screen>>2]=8388608|T[SDL.screen>>2]),Pt(n.canvas),It()):Pt(a)):(e.parentNode.insertBefore(a,e),e.parentNode.removeChild(e),Tt?("undefined"!=typeof SDL&&(k[SDL.screen>>2]=-8388609&T[SDL.screen>>2]),Pt(n.canvas),It()):Pt(a)),n.onFullScreen&&n.onFullScreen(vt),n.onFullscreen&&n.onFullscreen(vt)}void 0===(kt=e)&&(kt=!0),void 0===(Tt=t)&&(Tt=!1);var a=n.canvas;xt||(xt=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var i=document.createElement("div");a.parentNode.insertBefore(i,a),i.appendChild(a),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()}(e,t)},n.requestAnimationFrame=function(e){zt(e)},n.setCanvasSize=function(e,t,r){Pt(n.canvas,e,t),r||It()},n.pauseMainLoop=function(){dt=null,lt++},n.resumeMainLoop=function(){lt++;var t=pt,r=mt,a=ht;ht=null,function(e){function t(){if(r<lt){if(!m)try{Er(w)}catch(e){ae(e)}return!1}return!0}!ht||Z("emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ht=e;var r=lt;_t=!1,ct=function(){if(!g)if(0<wt.length){var r=Date.now(),a=wt.shift();if(a.dd(a.xc),ft){var i=ft,o=0==i%1?i-1:Math.floor(i);ft=a.Fd?o:(8*i+(o+.5))/9}h(\'main loop blocker "\'+a.name+\'" took \'+(Date.now()-r)+" ms"),n.setStatus&&(r=n.statusMessage||"Please wait...",a=ft,i=gt.Hd,a?a<i?n.setStatus(r+" ("+(i-a)+"/"+i+")"):n.setStatus(r):n.setStatus("")),t()&&setTimeout(ct,0)}else t()&&(bt=bt+1|0,1==pt&&1<mt&&0!=bt%mt?dt():(0==pt&&(st=te()),g||n.preMainLoop&&!1===n.preMainLoop()||(ot(e),n.postMainLoop&&n.postMainLoop()),t()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.od&&SDL.audio.od(),dt())))}}(a),function(t,r){if(pt=t,mt=r,ht)if(_t||(_t=!0),0==t)dt=function(){var e=0|Math.max(0,st+r-te());setTimeout(ct,e)};else if(1==t)dt=function(){zt(ct)};else if(2==t){if(void 0===e){var a=[];addEventListener("message",(function(e){"setimmediate"!==e.data&&"setimmediate"!==e.data.target||(e.stopPropagation(),a.shift()())}),!0),e=function(e){a.push(e),void 0===n.setImmediates&&(n.setImmediates=[]),n.setImmediates.push(e),postMessage({target:"setimmediate"})}}dt=function(){e(ct)}}}(t,r),dt()},n.getUserMedia=function(){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(void 0)},n.createContext=function(e,t,r,n){return At(e,t,r,n)},function(e,t){try{var r=indexedDB.open("emscripten_filesystem",1)}catch(e){return void t()}r.onupgradeneeded=function(e){(e=e.target.result).objectStoreNames.contains("FILES")&&e.deleteObjectStore("FILES"),e.createObjectStore("FILES")},r.onsuccess=function(e){!function(e){Ct=e,Y()}(e.target.result)},r.onerror=function(e){t()}}(0,(function(){Ct=!1,Y()})),"undefined"!=typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||X();var cr={y:function(e,t){return ie(e,t)},a:function(e){return dr(e+16)+16},b:function(e,t,r){throw new oe(e).gd(t,r),e},k:function(e,t,r){rt=r;try{var n=at(e);switch(t){case 0:var a=nt();return 0>a?-28:Xe(n.path,n.flags,0,a).mc;case 1:case 2:return 0;case 3:return n.flags;case 4:return a=nt(),n.flags|=a,0;case 5:return a=nt(),A[a+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return k[hr()>>2]=28,-1;default:return-28}}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},E:function(e,t,r){rt=r;try{var n=at(e);switch(t){case 21509:case 21505:return n.dc?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.dc?0:-59;case 21519:if(!n.dc)return-59;var a=nt();return k[a>>2]=0;case 21520:return n.dc?-28:-59;case 21531:if(e=a=nt(),!n.bc.jd)throw new Ae(59);return n.bc.jd(n,t,e);case 21523:case 21524:return n.dc?0:-59;default:Z("bad ioctl syscall "+t)}}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},B:function(e,t){try{return tt(je,e=O(e),t)}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},o:function(e,t,r){rt=r;try{return Xe(O(e),t,r?nt():0).mc}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},C:function(e,t){try{return tt(He,e=O(e),t)}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},w:function(e,t){try{return Ge(e=O(e),t=O(t)),0}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},x:function(e){try{var t=ke(e=O(e),{parent:!0}).node;if(!t)throw new Ae(44);var r=fe(e),n=Fe(t,r);e:{try{var a=Fe(t,r)}catch(e){var i=e.hc;break e}var o=Ie(t,"wx");i=o||(16384==(61440&a.mode)?31:0)}if(i)throw new Ae(i);if(!t.$b.Dc)throw new Ae(63);if(n.tc)throw new Ae(10);t.$b.Dc(t,r);var u=Re(n.parent.id,n.name);if(Me[u]===n)Me[u]=n.oc;else for(var s=Me[u];s;){if(s.oc===n){s.oc=n.oc;break}s=s.oc}return 0}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return-e.hc}},F:function(e){delete Vt[e-1]},c:function(){Z("")},J:ie,K:function(){self.postMessage({t:"gfx"})},q:function(){var e=new URL(location.origin).hostname;if(0===e.length&&(e=new URL(location.href.replace("blob:","")).hostname),/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e))0===e.indexOf("10.")&&(e="10.*"),0===e.indexOf("192.168.")&&(e="192.168.*"),0===e.indexOf("172.")&&(e="172.*"),0===e.indexOf("127.")&&(e="127.*");else{var t=new RegExp("("+String.fromCharCode(92)+".ngrok"+String.fromCharCode(92)+".io)$","i");t.test(e)&&(e="*.ngrok.io"),(t=new RegExp("("+String.fromCharCode(92)+".arweb"+String.fromCharCode(92)+".app)$","i")).test(e)&&(e="*.arweb.app")}t=P(e)+1;var r=dr(t);return I(e,E,r,t+1),r},L:function(){self.postMessage({t:"licerr"})},f:function(e,t,r){var n;for(it.length=0,r>>=2;n=E[t++];)(n=105>n)&&1&r&&r++,it.push(n?F[r++>>1]:k[r]),++r;return Q[e].apply(null,it)},l:function(e,t,r){function n(){ne(e)(t)}0<=r?ut(n,r):function(e){zt((function(){ot(e)}))}(n)},v:function(){return 2147483648},H:function(){return!1},s:function(e,t,r){E.copyWithin(e,t,t+r)},t:function(e){var t=E.length;if(2147483648<(e>>>=0))return!1;for(var r=1;4>=r;r*=2){var n=t*(1+.2/r);n=Math.min(n,e+100663296),0<(n=Math.max(e,n))%65536&&(n+=65536-n%65536);e:{try{b.grow(Math.min(2147483648,n)-y.byteLength+65535>>>16),B();var a=1;break e}catch(e){}a=void 0}if(a)return!0}return!1},G:function(e,t,r,n,a){function i(e,r){Gt(e,r.response,(function(e){ot((function(){d?ne(d)(e):t&&t(e)}),v)}),(function(e){ot((function(){d?ne(d)(e):t&&t(e)}),v)}))}function o(e){ot((function(){p?ne(p)(e):a&&a(e)}),v)}function u(e){ot((function(){l?ne(l)(e):r&&r(e)}),v)}function s(e){ot((function(){h?ne(h)(e):n&&n(e)}),v)}function c(e){ot((function(){d?ne(d)(e):t&&t(e)}),v)}var f=e+112,_=O(f),d=T[f+36>>2],l=T[f+40>>2],h=T[f+44>>2],p=T[f+48>>2],m=T[f+52>>2],b=!!(4&m),w=!!(32&m),g=!!(16&m),v=!!(64&m);if("EM_IDB_STORE"===_)_=T[f+84>>2],Gt(e,E.slice(_,_+T[f+88>>2]),c,u);else if("EM_IDB_DELETE"===_)!function(e,t,r){var n=Ct;if(n){var a=T[e+112+64>>2];a||(a=T[e+8>>2]),a=O(a);try{var i=n.transaction(["FILES"],"readwrite").objectStore("FILES").delete(a);i.onsuccess=function(r){r=r.target.result,T[e+12>>2]=0,Nt(e+16,0),Nt(e+24,0),Nt(e+32,0),x[e+40>>1]=4,x[e+42>>1]=200,I("OK",E,e+44,64),t(e,0,r)},i.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=404,I("Not Found",E,e+44,64),r(e,0,t)}}catch(t){r(e,0,t)}}else r(e,0,"IndexedDB not available!")}(e,c,u);else if(g){if(w)return 0;qt(e,b?i:c,u,s,o)}else!function(e,t,r){var n=Ct;if(n){var a=T[e+112+64>>2];a||(a=T[e+8>>2]),a=O(a);try{var i=n.transaction(["FILES"],"readonly").objectStore("FILES").get(a);i.onsuccess=function(n){if(n.target.result){var a=(n=n.target.result).byteLength||n.length,i=dr(a);E.set(new Uint8Array(n),i),T[e+12>>2]=i,Nt(e+16,a),Nt(e+24,0),Nt(e+32,a),x[e+40>>1]=4,x[e+42>>1]=200,I("OK",E,e+44,64),t(e,0,n)}else x[e+40>>1]=4,x[e+42>>1]=404,I("Not Found",E,e+44,64),r(e,0,"no data")},i.onerror=function(t){x[e+40>>1]=4,x[e+42>>1]=404,I("Not Found",E,e+44,64),r(e,0,t)}}catch(t){r(e,0,t)}}else r(e,0,"IndexedDB not available!")}(e,c,w?u:b?function(e){qt(e,i,u,s,o)}:function(e){qt(e,c,u,s,o)});return e},z:function(e,t){var r=0;return jt().forEach((function(n,a){var i=t+r;for(a=k[e+4*a>>2]=i,i=0;i<n.length;++i)M[a++>>0]=n.charCodeAt(i);M[a>>0]=0,r+=n.length+1})),0},A:function(e,t){var r=jt();k[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),k[t>>2]=n,0},I:function(e){Er(e)},j:function(e){try{var t=at(e);if(null===t.mc)throw new Ae(8);t.Hc&&(t.Hc=null);try{t.bc.close&&t.bc.close(t)}catch(e){throw e}finally{ve[t.mc]=null}return t.mc=null,0}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return e.hc}},D:function(e,t,r,n){try{e:{for(var a=at(e),i=e=0;i<r;i++){var o=k[t+(8*i+4)>>2],u=a,s=k[t+8*i>>2],c=o,f=void 0,_=M;if(0>c||0>f)throw new Ae(28);if(null===u.mc)throw new Ae(8);if(1==(2097155&u.flags))throw new Ae(8);if(16384==(61440&u.node.mode))throw new Ae(31);if(!u.bc.read)throw new Ae(28);var d=void 0!==f;if(d){if(!u.seekable)throw new Ae(70)}else f=u.position;var l=u.bc.read(u,_,s,c,f);d||(u.position+=l);var h=l;if(0>h){var p=-1;break e}if(e+=h,h<o)break}p=e}return k[n>>2]=p,0}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return e.hc}},r:function(e,t,r,n,a){try{var i=at(e);return-9007199254740992>=(e=4294967296*r+(t>>>0))||9007199254740992<=e?-61:(Ye(i,e,n),J=[i.position>>>0,(K=i.position,1<=+Math.abs(K)?0<K?(0|Math.min(+Math.floor(K/4294967296),4294967295))>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)],k[a>>2]=J[0],k[a+4>>2]=J[1],i.Hc&&0===e&&0===n&&(i.Hc=null),0)}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return e.hc}},i:function(e,t,r,n){try{e:{for(var a=at(e),i=e=0;i<r;i++){var o=a,u=k[t+8*i>>2],s=k[t+(8*i+4)>>2],c=void 0,f=M;if(0>s||0>c)throw new Ae(28);if(null===o.mc)throw new Ae(8);if(0==(2097155&o.flags))throw new Ae(8);if(16384==(61440&o.node.mode))throw new Ae(31);if(!o.bc.write)throw new Ae(28);o.seekable&&1024&o.flags&&Ye(o,0,2);var _=void 0!==c;if(_){if(!o.seekable)throw new Ae(70)}else c=o.position;var d=o.bc.write(o,f,u,s,c,void 0);_||(o.position+=d);var l=d;if(0>l){var h=-1;break e}e+=l}h=e}return k[n>>2]=h,0}catch(e){if(void 0===et||!(e instanceof Ae))throw e;return e.hc}},e:function(e){var t=Date.now();return k[e>>2]=t/1e3|0,k[e+4>>2]=t%1e3*1e3|0,0},m:function(e,t){nr.bindTexture(e,Yt[t])},n:function(e,t){for(var r=0;r<e;r++){var n=nr.createTexture(),a=n&&$t(Yt);n?(n.name=a,Yt[a]=n):Kt||(Kt=1282),k[t+4*r>>2]=a}},g:function(e,t,r,n,a,i,o,u,s){var c=nr,f=c.texImage2D;if(s){var _=u-5120;_=1==_?E:4==_?k:6==_?R:5==_||28922==_?T:x;var d=31-Math.clz32(_.BYTES_PER_ELEMENT);s=_.subarray(s>>d,s+a*(n*({5:3,6:4,8:2,29502:3,29504:4}[o-6402]||1)*(1<<d)+4-1&-4)>>d)}else s=null;f.call(c,e,t,r,n,a,i,o,u,s)},h:function(e,t,r){nr.texParameteri(e,t,r)},p:function(e,t){Qt||(Qt=!0,function(){function e(e){return(e=e.toTimeString().match(/\\(([A-Za-z ]+)\\)$/))?e[1]:"GMT"}var t=(new Date).getFullYear(),r=new Date(t,0,1),n=new Date(t,6,1);t=r.getTimezoneOffset();var a=n.getTimezoneOffset(),i=Math.max(t,a);k[br()>>2]=60*i,k[mr()>>2]=Number(t!=a),r=e(r),n=e(n),r=S(r),n=S(n),a<t?(k[pr()>>2]=r,k[pr()+4>>2]=n):(k[pr()>>2]=n,k[pr()+4>>2]=r)}()),e=new Date(1e3*k[e>>2]),k[t>>2]=e.getSeconds(),k[t+4>>2]=e.getMinutes(),k[t+8>>2]=e.getHours(),k[t+12>>2]=e.getDate(),k[t+16>>2]=e.getMonth(),k[t+20>>2]=e.getFullYear()-1900,k[t+24>>2]=e.getDay();var r=new Date(e.getFullYear(),0,1);k[t+28>>2]=(e.getTime()-r.getTime())/864e5|0,k[t+36>>2]=-60*e.getTimezoneOffset();var n=new Date(e.getFullYear(),6,1).getTimezoneOffset();return e=0|(n!=(r=r.getTimezoneOffset())&&e.getTimezoneOffset()==Math.min(r,n)),k[t+32>>2]=e,e=k[pr()+(e?4:0)>>2],k[t+40>>2]=e,t},u:function(e,t,r,n){return function(e,t,r,n){function a(e,t,r){for(e="number"==typeof e?e.toString():e||"";e.length<t;)e=r[0]+e;return e}function i(e,t){return a(e,t,"0")}function o(e,t){function r(e){return 0>e?-1:0<e?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function u(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function s(e){e=or(new Date(e.fc+1900,0,1),e.Cc);var t=new Date(e.getFullYear()+1,0,4),r=u(new Date(e.getFullYear(),0,4));return t=u(t),0>=o(r,e)?0>=o(t,e)?e.getFullYear()+1:e.getFullYear():e.getFullYear()-1}var c=k[n+40>>2];for(var f in n={yd:k[n>>2],xd:k[n+4>>2],Ac:k[n+8>>2],wc:k[n+12>>2],rc:k[n+16>>2],fc:k[n+20>>2],Bc:k[n+24>>2],Cc:k[n+28>>2],Nd:k[n+32>>2],wd:k[n+36>>2],zd:c?O(c):""},r=O(r),c={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"})r=r.replace(new RegExp(f,"g"),c[f]);var _="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),d="January February March April May June July August September October November December".split(" ");for(f in c={"%a":function(e){return _[e.Bc].substring(0,3)},"%A":function(e){return _[e.Bc]},"%b":function(e){return d[e.rc].substring(0,3)},"%B":function(e){return d[e.rc]},"%C":function(e){return i((e.fc+1900)/100|0,2)},"%d":function(e){return i(e.wc,2)},"%e":function(e){return a(e.wc,2," ")},"%g":function(e){return s(e).toString().substring(2)},"%G":function(e){return s(e)},"%H":function(e){return i(e.Ac,2)},"%I":function(e){return 0==(e=e.Ac)?e=12:12<e&&(e-=12),i(e,2)},"%j":function(e){return i(e.wc+rr(tr(e.fc+1900)?ar:ir,e.rc-1),3)},"%m":function(e){return i(e.rc+1,2)},"%M":function(e){return i(e.xd,2)},"%n":function(){return"\\n"},"%p":function(e){return 0<=e.Ac&&12>e.Ac?"AM":"PM"},"%S":function(e){return i(e.yd,2)},"%t":function(){return"\\t"},"%u":function(e){return e.Bc||7},"%U":function(e){var t=new Date(e.fc+1900,0,1),r=0===t.getDay()?t:or(t,7-t.getDay());return 0>o(r,e=new Date(e.fc+1900,e.rc,e.wc))?i(Math.ceil((31-r.getDate()+(rr(tr(e.getFullYear())?ar:ir,e.getMonth()-1)-31)+e.getDate())/7),2):0===o(r,t)?"01":"00"},"%V":function(e){var t=new Date(e.fc+1901,0,4),r=u(new Date(e.fc+1900,0,4));t=u(t);var n=or(new Date(e.fc+1900,0,1),e.Cc);return 0>o(n,r)?"53":0>=o(t,n)?"01":i(Math.ceil((r.getFullYear()<e.fc+1900?e.Cc+32-r.getDate():e.Cc+1-r.getDate())/7),2)},"%w":function(e){return e.Bc},"%W":function(e){var t=new Date(e.fc,0,1),r=1===t.getDay()?t:or(t,0===t.getDay()?1:7-t.getDay()+1);return 0>o(r,e=new Date(e.fc+1900,e.rc,e.wc))?i(Math.ceil((31-r.getDate()+(rr(tr(e.getFullYear())?ar:ir,e.getMonth()-1)-31)+e.getDate())/7),2):0===o(r,t)?"01":"00"},"%y":function(e){return(e.fc+1900).toString().substring(2)},"%Y":function(e){return e.fc+1900},"%z":function(e){var t=0<=(e=e.wd);return e=Math.abs(e)/60,(t?"+":"-")+String("0000"+(e/60*100+e%60)).slice(-4)},"%Z":function(e){return e.zd},"%%":function(){return"%"}})r.includes(f)&&(r=r.replace(new RegExp(f,"g"),c[f](n)));return(f=sr(r,!1)).length>t?0:(M.set(f,e),f.length-1)}(e,t,r,n)},d:function(e){var t=Date.now()/1e3|0;return e&&(k[e>>2]=t),t}},fr=function(){function e(e){n.asm=e.exports,b=n.asm.M,B(),D=n.asm.R,C.unshift(n.asm.N),Y()}var t={a:cr};if(X(),n.instantiateWasm)try{return n.instantiateWasm(t,e)}catch(e){return p("Module.instantiateWasm callback failed with error: "+e),!1}return t=function(e){var t=G;try{e:{try{if(t==G&&l){var r=new Uint8Array(l);break e}if(u){r=u(t);break e}throw"sync fetching of the wasm failed: you can preload it to Module[\'wasmBinary\'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(e){Z(e)}r=void 0}var n=new WebAssembly.Module(r),a=new WebAssembly.Instance(n,e)}catch(t){throw e=t.toString(),p("failed to compile wasm module: "+e),(e.includes("imported Memory")||e.includes("memory import"))&&p("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),t}return[a,n]}(t),e(t[0]),n.asm}();n.___wasm_call_ctors=fr.N,n._zappar_has_initialized=fr.O,n._zappar_invert=fr.P,n._zappar_loaded=fr.Q,n._zappar_pipeline_create=fr.S,n._zappar_pipeline_destroy=fr.T,n._zappar_pipeline_camera_frame_submit=fr.U,n._zappar_pipeline_camera_frame_submit_raw_pointer=fr.V,n._zappar_pipeline_frame_update=fr.W,n._zappar_pipeline_camera_frame_user_data=fr.X,n._zappar_pipeline_camera_model=fr.Y,n._zappar_pipeline_frame_number=fr.Z,n._zappar_pipeline_motion_accelerometer_submit=fr._,n._zappar_pipeline_motion_rotation_rate_submit=fr.$,n._zappar_pipeline_motion_attitude_submit=fr.aa,n._zappar_pipeline_motion_attitude_matrix_submit=fr.ba,n._zappar_pipeline_camera_frame_user_facing=fr.ca,n._zappar_pipeline_camera_frame_texture_matrix=fr.da,n._zappar_pipeline_camera_pose_with_attitude=fr.ea,n._zappar_pipeline_camera_pose_with_origin=fr.fa,n._zappar_pipeline_camera_frame_camera_attitude=fr.ga,n._zappar_pipeline_camera_frame_device_attitude=fr.ha,n._zappar_pipeline_camera_frame_texture_gl=fr.ia,n._zappar_pipeline_camera_frame_upload_gl=fr.ja,n._zappar_pipeline_sequence_record_start=fr.ka,n._zappar_pipeline_sequence_record_stop=fr.la,n._zappar_pipeline_sequence_record_clear=fr.ma,n._zappar_pipeline_sequence_record_device_attitude_matrices_set=fr.na,n._zappar_pipeline_sequence_record_data_size=fr.oa,n._zappar_pipeline_sequence_record_data=fr.pa,n._zappar_pipeline_process_gl=fr.qa,n._zappar_pipeline_camera_pose_default=fr.ra,n._zappar_instant_world_tracker_create=fr.sa,n._zappar_instant_world_tracker_destroy=fr.ta,n._zappar_instant_world_tracker_anchor_pose_set_from_camera_offset_raw=fr.ua,n._zappar_instant_world_tracker_anchor_pose_raw=fr.va,n._zappar_instant_world_tracker_enabled_set=fr.wa,n._zappar_instant_world_tracker_enabled=fr.xa,n._zappar_image_tracker_create=fr.ya,n._zappar_image_tracker_destroy=fr.za,n._zappar_image_tracker_target_load_from_memory=fr.Aa,n.__Z42zappar_image_tracker_target_load_from_fileP23zappar_image_tracker_tiPKc=fr.Ba;var _r=n._free=fr.Ca;n._zappar_image_tracker_anchor_count=fr.Da,n._zappar_image_tracker_anchor_id=fr.Ea,n._zappar_image_tracker_anchor_pose_raw=fr.Fa,n._zappar_image_tracker_enabled_set=fr.Ga,n._zappar_image_tracker_enabled=fr.Ha,n._zappar_image_tracker_target_loaded_version=fr.Ia,n.__Z33zappar_image_tracker_target_countP23zappar_image_tracker_ti=fr.Ja,n.__Z46zappar_image_tracker_target_preview_compressedP23zappar_image_tracker_tii=fr.Ka,n.__Z51zappar_image_tracker_target_preview_compressed_sizeP23zappar_image_tracker_tii=fr.La,n.__Z55zappar_image_tracker_target_preview_compressed_mimetypeP23zappar_image_tracker_tii=fr.Ma,n.__Z40zappar_image_tracker_target_preview_rgbaP23zappar_image_tracker_tii=fr.Na,n.__Z45zappar_image_tracker_target_preview_rgba_sizeP23zappar_image_tracker_tii=fr.Oa,n.__Z46zappar_image_tracker_target_preview_rgba_widthP23zappar_image_tracker_tii=fr.Pa,n.__Z47zappar_image_tracker_target_preview_rgba_heightP23zappar_image_tracker_tii=fr.Qa,n.__Z38zappar_image_tracker_target_radius_topP23zappar_image_tracker_tii=fr.Ra,n.__Z41zappar_image_tracker_target_radius_bottomP23zappar_image_tracker_tii=fr.Sa,n.__Z39zappar_image_tracker_target_side_lengthP23zappar_image_tracker_tii=fr.Ta,n.__Z49zappar_image_tracker_target_physical_scale_factorP23zappar_image_tracker_tii=fr.Ua,n._zappar_face_tracker_create=fr.Va,n._zappar_face_tracker_destroy=fr.Wa,n._zappar_face_tracker_model_load_from_memory=fr.Xa,n._zappar_face_tracker_anchor_count=fr.Ya,n._zappar_face_tracker_anchor_id=fr.Za,n._zappar_face_tracker_anchor_pose_raw=fr._a,n._zappar_face_tracker_anchor_identity_coefficients=fr.$a,n._zappar_face_tracker_anchor_expression_coefficients=fr.ab,n._zappar_face_tracker_enabled_set=fr.bb,n._zappar_face_tracker_enabled=fr.cb,n._zappar_face_tracker_max_faces_set=fr.db,n._zappar_face_tracker_max_faces=fr.eb,n._zappar_face_tracker_model_loaded_version=fr.fb,n._zappar_face_landmark_create=fr.gb,n._zappar_face_landmark_destroy=fr.hb,n.__Z27zappar_face_landmark_updateP23zappar_face_landmark_tiPKfS2_i=fr.ib,n._zappar_face_landmark_anchor_pose=fr.jb,n._zappar_barcode_finder_create=fr.kb,n._zappar_barcode_finder_destroy=fr.lb,n._zappar_barcode_finder_found_number=fr.mb,n._zappar_barcode_finder_found_text=fr.nb,n._zappar_barcode_finder_enabled_set=fr.ob,n._zappar_barcode_finder_enabled=fr.pb,n._zappar_barcode_finder_found_format=fr.qb,n._zappar_barcode_finder_formats=fr.rb,n._zappar_barcode_finder_formats_set=fr.sb;var dr=n._malloc=fr.tb;n._zappar_face_mesh_create=fr.ub,n._zappar_face_mesh_destroy=fr.vb,n.__Z33zappar_face_mesh_load_from_memoryP19zappar_face_mesh_tiPKciiiii=fr.wb,n.__Z29zappar_face_mesh_indices_sizeP19zappar_face_mesh_ti=fr.xb,n.__Z25zappar_face_mesh_uvs_sizeP19zappar_face_mesh_ti=fr.yb,n.__Z30zappar_face_mesh_vertices_sizeP19zappar_face_mesh_ti=fr.zb,n.__Z31zappar_face_mesh_loaded_versionP19zappar_face_mesh_ti=fr.Ab,n.__Z25zappar_face_mesh_verticesP19zappar_face_mesh_ti=fr.Bb,n.__Z20zappar_face_mesh_uvsP19zappar_face_mesh_ti=fr.Cb,n.__Z24zappar_face_mesh_indicesP19zappar_face_mesh_ti=fr.Db,n.__Z23zappar_face_mesh_updateP19zappar_face_mesh_tiPKfS2_i=fr.Eb,n.__Z29zappar_face_mesh_normals_sizeP19zappar_face_mesh_ti=fr.Fb,n.__Z24zappar_face_mesh_normalsP19zappar_face_mesh_ti=fr.Gb,n._zappar_camera_source_create=fr.Hb,n._zappar_camera_source_destroy=fr.Ib,n._zappar_camera_source_start=fr.Jb,n._zappar_camera_source_pause=fr.Kb,n._zappar_camera_default_device_id=fr.Lb,n._zappar_sequence_source_create=fr.Mb,n.__Z28zappar_sequence_source_startP25zappar_sequence_source_ti=fr.Nb,n.__Z39zappar_sequence_source_load_from_memoryP25zappar_sequence_source_tiPKci=fr.Ob,n.__Z28zappar_sequence_source_pauseP25zappar_sequence_source_ti=fr.Pb,n._zappar_sequence_source_destroy=fr.Qb,n._zappar_log_level_set=fr.Rb,n._zappar_log_level=fr.Sb,n._zappar_analytics_project_id_set=fr.Tb;var lr,hr=n.___errno_location=fr.Ub,pr=n.__get_tzname=fr.Vb,mr=n.__get_daylight=fr.Wb,br=n.__get_timezone=fr.Xb,wr=n.stackSave=fr.Yb,gr=n.stackRestore=fr.Zb,vr=n.stackAlloc=fr._b;function yr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Mr(){function e(){if(!lr&&(lr=!0,n.calledRun=!0,!g)){if(n.noFSInit||Be||(Be=!0,Ze(),n.stdin=n.stdin,n.stdout=n.stdout,n.stderr=n.stderr,n.stdin?$e("stdin",n.stdin):Ge("/dev/tty","/dev/stdin"),n.stdout?$e("stdout",null,n.stdout):Ge("/dev/tty","/dev/stdout"),n.stderr?$e("stderr",null,n.stderr):Ge("/dev/tty1","/dev/stderr"),Xe("/dev/stdin",0),Xe("/dev/stdout",1),Xe("/dev/stderr",1)),Ee=!1,ee(C),a(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;){var e=n.postRun.shift();V.unshift(e)}ee(V)}}if(!(0<W)){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)q();ee(U),0<W||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),e()}),1)):e())}}function Er(e){w=e,m||(N=!0),w=e,m||(n.onExit&&n.onExit(e),g=!0),f(e,new yr(e))}if(n.cwrap=function(e,t,r,a){var i=(r=r||[]).every((function(e){return"number"===e}));return"string"!==t&&i&&!a?n["_"+e]:function(){return v(e,t,r,arguments)}},n.setValue=function(e,t,r){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":M[e>>0]=t;break;case"i16":A[e>>1]=t;break;case"i32":k[e>>2]=t;break;case"i64":J=[t>>>0,(K=t,1<=+Math.abs(K)?0<K?(0|Math.min(+Math.floor(K/4294967296),4294967295))>>>0:~~+Math.ceil((K-+(~~K>>>0))/4294967296)>>>0:0)],k[e>>2]=J[0],k[e+4>>2]=J[1];break;case"float":R[e>>2]=t;break;case"double":F[e>>3]=t;break;default:Z("invalid type for setValue: "+r)}},n.getValue=function(e,t){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return M[e>>0];case"i16":return A[e>>1];case"i32":case"i64":return k[e>>2];case"float":return R[e>>2];case"double":return Number(F[e>>3]);default:Z("invalid type for getValue: "+t)}return null},n.UTF8ToString=O,j=function e(){lr||Mr(),lr||(j=e)},n.run=Mr,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);0<n.preInit.length;)n.preInit.pop()();return Mr(),t});t.default=n}.call(this,r(6).setImmediate)},function(e,t,r){(function(e){var n=void 0!==e&&e||"undefined"!=typeof self&&self||window,a=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(a.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(7),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,r(2))},function(e,t,r){(function(e,t){!function(e,r){"use strict";if(!e.setImmediate){var n,a,i,o,u,s=1,c={},f=!1,_=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){h(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){h(e.data)},n=function(e){i.port2.postMessage(e)}):_&&"onreadystatechange"in _.createElement("script")?(a=_.documentElement,n=function(e){var t=_.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,a.removeChild(t),t=null},a.appendChild(t)}):n=function(e){setTimeout(h,0,e)}:(o="setImmediate$"+Math.random()+"$",u=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(o)&&h(+t.data.slice(o.length))},e.addEventListener?e.addEventListener("message",u,!1):e.attachEvent("onmessage",u),n=function(t){e.postMessage(o+t,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var a={callback:e,args:t};return c[s]=a,n(s),s++},d.clearImmediate=l}function l(e){delete c[e]}function h(e){if(f)setTimeout(h,0,e);else{var t=c[e];if(t){f=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(void 0,r)}}(t)}finally{l(e),f=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,r(2),r(8))},function(e,t){var r,n,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function u(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var s,c=[],f=!1,_=-1;function d(){f&&s&&(f=!1,s.length?c=s.concat(c):_=-1,c.length&&l())}function l(){if(!f){var e=u(d);f=!0;for(var t=c.length;t;){for(s=c,c=[];++_<t;)s&&s[_].run();_=-1,t=c.length}s=null,f=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new h(e,t)),1!==c.length||f||u(l)},h.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getRuntimeObject=void 0,t.getRuntimeObject=function(e){let t=e.cwrap("zappar_log_level","number",[]),r=e.cwrap("zappar_log_level_set",null,["number"]),n=e.cwrap("zappar_analytics_project_id_set",null,["string"]),a=e.cwrap("zappar_pipeline_create","number",[]),i=e.cwrap("zappar_pipeline_destroy",null,["number"]),o=e.cwrap("zappar_pipeline_frame_update",null,["number"]),u=e.cwrap("zappar_pipeline_frame_number","number",["number"]),s=e.cwrap("zappar_pipeline_camera_model","number",["number"]),c=e.cwrap("zappar_pipeline_camera_frame_user_data","number",["number"]),f=e.cwrap("zappar_pipeline_camera_frame_submit",null,["number","number","number","number","number","number","number","number","number"]),_=e.cwrap("zappar_pipeline_camera_frame_submit_raw_pointer",null,["number","number","number","number","number","number","number","number","number","number","number"]),d=e.cwrap("zappar_pipeline_camera_frame_camera_attitude","number",["number"]),l=e.cwrap("zappar_pipeline_camera_frame_device_attitude","number",["number"]),h=e.cwrap("zappar_pipeline_motion_accelerometer_submit",null,["number","number","number","number","number"]),p=e.cwrap("zappar_pipeline_motion_rotation_rate_submit",null,["number","number","number","number","number"]),m=e.cwrap("zappar_pipeline_motion_attitude_submit",null,["number","number","number","number","number"]),b=e.cwrap("zappar_pipeline_motion_attitude_matrix_submit",null,["number","number"]),w=e.cwrap("zappar_camera_source_create","number",["number","string"]),g=e.cwrap("zappar_camera_source_destroy",null,["number"]),v=e.cwrap("zappar_sequence_source_create","number",["number"]),y=e.cwrap("zappar_sequence_source_destroy",null,["number"]),M=e.cwrap("zappar_image_tracker_create","number",["number"]),E=e.cwrap("zappar_image_tracker_destroy",null,["number"]),A=e.cwrap("zappar_image_tracker_target_load_from_memory",null,["number","number","number"]),x=e.cwrap("zappar_image_tracker_target_loaded_version","number",["number"]),k=e.cwrap("zappar_image_tracker_enabled","number",["number"]),T=e.cwrap("zappar_image_tracker_enabled_set",null,["number","number"]),R=e.cwrap("zappar_image_tracker_anchor_count","number",["number"]),F=e.cwrap("zappar_image_tracker_anchor_id","string",["number","number"]),z=e.cwrap("zappar_image_tracker_anchor_pose_raw","number",["number","number"]),L=e.cwrap("zappar_face_tracker_create","number",["number"]),O=e.cwrap("zappar_face_tracker_destroy",null,["number"]),I=e.cwrap("zappar_face_tracker_model_load_from_memory",null,["number","number","number"]),P=e.cwrap("zappar_face_tracker_model_loaded_version","number",["number"]),S=e.cwrap("zappar_face_tracker_enabled_set",null,["number","number"]),B=e.cwrap("zappar_face_tracker_enabled","number",["number"]),D=e.cwrap("zappar_face_tracker_max_faces_set",null,["number","number"]),U=e.cwrap("zappar_face_tracker_max_faces","number",["number"]),C=e.cwrap("zappar_face_tracker_anchor_count","number",["number"]),V=e.cwrap("zappar_face_tracker_anchor_id","string",["number","number"]),N=e.cwrap("zappar_face_tracker_anchor_pose_raw","number",["number","number"]),q=e.cwrap("zappar_face_tracker_anchor_identity_coefficients","number",["number","number"]),G=e.cwrap("zappar_face_tracker_anchor_expression_coefficients","number",["number","number"]),W=e.cwrap("zappar_face_mesh_create","number",[]),H=e.cwrap("zappar_face_mesh_destroy",null,["number"]),j=e.cwrap("zappar_face_landmark_create","number",["number"]),X=e.cwrap("zappar_face_landmark_destroy",null,["number"]),Y=e.cwrap("zappar_barcode_finder_create","number",["number"]),Z=e.cwrap("zappar_barcode_finder_destroy",null,["number"]),$=e.cwrap("zappar_barcode_finder_enabled_set",null,["number","number"]),K=e.cwrap("zappar_barcode_finder_enabled","number",["number"]),J=e.cwrap("zappar_barcode_finder_found_number","number",["number"]),Q=e.cwrap("zappar_barcode_finder_found_text","string",["number","number"]),ee=e.cwrap("zappar_barcode_finder_found_format","number",["number","number"]),te=e.cwrap("zappar_barcode_finder_formats","number",["number"]),re=e.cwrap("zappar_barcode_finder_formats_set",null,["number","number"]),ne=e.cwrap("zappar_instant_world_tracker_create","number",["number"]),ae=e.cwrap("zappar_instant_world_tracker_destroy",null,["number"]),ie=e.cwrap("zappar_instant_world_tracker_enabled_set",null,["number","number"]),oe=e.cwrap("zappar_instant_world_tracker_enabled","number",["number"]),ue=e.cwrap("zappar_instant_world_tracker_anchor_pose_raw","number",["number"]),se=e.cwrap("zappar_instant_world_tracker_anchor_pose_set_from_camera_offset_raw",null,["number","number","number","number","number"]),ce=32,fe=e._malloc(ce),_e=(e._malloc(64),new Map),de=(t,r)=>{let n=_e.get(t);return(!n||n[0]<r)&&(n&&e._free(n[1]),n=[r,e._malloc(r)],_e.set(t,n)),n[1]};return{log_level:()=>t(),log_level_set:e=>r(e),analytics_project_id_set:e=>n(e),pipeline_create:()=>a(),pipeline_destroy:()=>{i()},pipeline_frame_update:e=>o(e),pipeline_frame_number:e=>u(e),pipeline_camera_model:t=>{let r=s(t),n=new Float32Array(6);return n.set(e.HEAPF32.subarray(r/4,6+r/4)),r=n,r},pipeline_camera_frame_user_data:e=>c(e),pipeline_camera_frame_submit:(t,r,n,a,i,o,u,s)=>{ce<r.byteLength&&(e._free(fe),ce=r.byteLength,fe=e._malloc(ce));let c=fe,_=r.byteLength;e.HEAPU8.set(new Uint8Array(r),fe);let d=n,l=a,h=i,p=de(4,o.byteLength);e.HEAPF32.set(o,p/4);let m=de(5,u.byteLength);return e.HEAPF32.set(u,m/4),f(t,c,_,d,l,h,p,m,s?1:0)},pipeline_camera_frame_submit_raw_pointer:(t,r,n,a,i,o,u,s,c,f,d)=>{let l=r,h=n,p=a,m=i,b=o,w=u,g=de(6,s.byteLength);e.HEAPF32.set(s,g/4);let v=c,y=de(8,f.byteLength);return e.HEAPF32.set(f,y/4),_(t,l,h,p,m,b,w,g,v,y,d?1:0)},pipeline_camera_frame_camera_attitude:t=>{let r=d(t),n=new Float32Array(16);return n.set(e.HEAPF32.subarray(r/4,16+r/4)),r=n,r},pipeline_camera_frame_device_attitude:t=>{let r=l(t),n=new Float32Array(16);return n.set(e.HEAPF32.subarray(r/4,16+r/4)),r=n,r},pipeline_motion_accelerometer_submit:(e,t,r,n,a)=>h(e,t,r,n,a),pipeline_motion_rotation_rate_submit:(e,t,r,n,a)=>p(e,t,r,n,a),pipeline_motion_attitude_submit:(e,t,r,n,a)=>m(e,t,r,n,a),pipeline_motion_attitude_matrix_submit:(t,r)=>{let n=de(0,r.byteLength);return e.HEAPF32.set(r,n/4),b(t,n)},camera_source_create:(e,t)=>w(e,t),camera_source_destroy:()=>{g()},sequence_source_create:e=>v(e),sequence_source_destroy:()=>{y()},image_tracker_create:e=>M(e),image_tracker_destroy:()=>{E()},image_tracker_target_load_from_memory:(t,r)=>{ce<r.byteLength&&(e._free(fe),ce=r.byteLength,fe=e._malloc(ce));let n=fe,a=r.byteLength;return e.HEAPU8.set(new Uint8Array(r),fe),A(t,n,a)},image_tracker_target_loaded_version:e=>x(e),image_tracker_enabled:e=>{let t=k(e);return t=1===t,t},image_tracker_enabled_set:(e,t)=>T(e,t?1:0),image_tracker_anchor_count:e=>R(e),image_tracker_anchor_id:(e,t)=>F(e,t),image_tracker_anchor_pose_raw:(t,r)=>{let n=z(t,r),a=new Float32Array(16);return a.set(e.HEAPF32.subarray(n/4,16+n/4)),n=a,n},face_tracker_create:e=>L(e),face_tracker_destroy:()=>{O()},face_tracker_model_load_from_memory:(t,r)=>{ce<r.byteLength&&(e._free(fe),ce=r.byteLength,fe=e._malloc(ce));let n=fe,a=r.byteLength;return e.HEAPU8.set(new Uint8Array(r),fe),I(t,n,a)},face_tracker_model_loaded_version:e=>P(e),face_tracker_enabled_set:(e,t)=>S(e,t?1:0),face_tracker_enabled:e=>{let t=B(e);return t=1===t,t},face_tracker_max_faces_set:(e,t)=>D(e,t),face_tracker_max_faces:e=>U(e),face_tracker_anchor_count:e=>C(e),face_tracker_anchor_id:(e,t)=>V(e,t),face_tracker_anchor_pose_raw:(t,r)=>{let n=N(t,r),a=new Float32Array(16);return a.set(e.HEAPF32.subarray(n/4,16+n/4)),n=a,n},face_tracker_anchor_identity_coefficients:(t,r)=>{let n=q(t,r),a=new Float32Array(50);return a.set(e.HEAPF32.subarray(n/4,50+n/4)),n=a,n},face_tracker_anchor_expression_coefficients:(t,r)=>{let n=G(t,r),a=new Float32Array(29);return a.set(e.HEAPF32.subarray(n/4,29+n/4)),n=a,n},face_mesh_create:()=>W(),face_mesh_destroy:()=>{H()},face_landmark_create:e=>j(e),face_landmark_destroy:()=>{X()},barcode_finder_create:e=>Y(e),barcode_finder_destroy:()=>{Z()},barcode_finder_enabled_set:(e,t)=>$(e,t?1:0),barcode_finder_enabled:e=>{let t=K(e);return t=1===t,t},barcode_finder_found_number:e=>J(e),barcode_finder_found_text:(e,t)=>Q(e,t),barcode_finder_found_format:(e,t)=>ee(e,t),barcode_finder_formats:e=>te(e),barcode_finder_formats_set:(e,t)=>re(e,t),instant_world_tracker_create:e=>ne(e),instant_world_tracker_destroy:()=>{ae()},instant_world_tracker_enabled_set:(e,t)=>ie(e,t?1:0),instant_world_tracker_enabled:e=>{let t=oe(e);return t=1===t,t},instant_world_tracker_anchor_pose_raw:t=>{let r=ue(t),n=new Float32Array(16);return n.set(e.HEAPF32.subarray(r/4,16+r/4)),r=n,r},instant_world_tracker_anchor_pose_set_from_camera_offset_raw:(e,t,r,n,a)=>se(e,t,r,n,a)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.zappar_server=void 0;const n=r(11),a=r(12);t.zappar_server=class{constructor(e,t){this._impl=e,this._sender=t,this._deserializer=new a.MessageDeserializer,this.serializersByPipelineId=new Map,this._pipeline_id_by_pipeline_id=new Map,this._pipeline_by_instance=new Map,this._pipeline_id_by_camera_source_id=new Map,this._camera_source_by_instance=new Map,this._pipeline_id_by_sequence_source_id=new Map,this._sequence_source_by_instance=new Map,this._pipeline_id_by_image_tracker_id=new Map,this._image_tracker_by_instance=new Map,this._pipeline_id_by_face_tracker_id=new Map,this._face_tracker_by_instance=new Map,this._pipeline_id_by_face_mesh_id=new Map,this._face_mesh_by_instance=new Map,this._pipeline_id_by_face_landmark_id=new Map,this._face_landmark_by_instance=new Map,this._pipeline_id_by_barcode_finder_id=new Map,this._barcode_finder_by_instance=new Map,this._pipeline_id_by_instant_world_tracker_id=new Map,this._instant_world_tracker_by_instance=new Map}processBuffer(e){this._deserializer.setData(e),this._deserializer.forMessages((e,t)=>{switch(e){case 34:this._impl.log_level_set(t.logLevel());break;case 31:this._impl.analytics_project_id_set(t.string());break;case 27:{let e=t.type(),r=this._impl.pipeline_create();this._pipeline_by_instance.set(e,r),this._pipeline_id_by_pipeline_id.set(e,e),this.serializersByPipelineId.set(e,new n.MessageSerializer(t=>{this._sender(e,t)}));break}case 28:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_destroy(r),this._pipeline_by_instance.delete(e);break}case 9:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_frame_update(r);break}case 8:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_camera_frame_submit(r,t.dataWithLength(),t.int(),t.int(),t.int(),t.matrix4x4(),t.cameraModel(),t.bool());break}case 10:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_accelerometer_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 11:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_rotation_rate_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 12:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_attitude_submit(r,t.timestamp(),t.float(),t.float(),t.float());break}case 13:{let e=t.type(),r=this._pipeline_by_instance.get(e);if(void 0===r)return;this._impl.pipeline_motion_attitude_matrix_submit(r,t.matrix4x4());break}case 29:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=t.string(),i=this._impl.camera_source_create(n,a);this._camera_source_by_instance.set(e,i),this._pipeline_id_by_camera_source_id.set(e,r);break}case 30:{let e=t.type(),r=this._camera_source_by_instance.get(e);if(void 0===r)return;this._impl.camera_source_destroy(r),this._camera_source_by_instance.delete(e);break}case 35:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=this._impl.sequence_source_create(n);this._sequence_source_by_instance.set(e,a),this._pipeline_id_by_sequence_source_id.set(e,r);break}case 36:{let e=t.type(),r=this._sequence_source_by_instance.get(e);if(void 0===r)return;this._impl.sequence_source_destroy(r),this._sequence_source_by_instance.delete(e);break}case 2:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=this._impl.image_tracker_create(n);this._image_tracker_by_instance.set(e,a),this._pipeline_id_by_image_tracker_id.set(e,r);break}case 14:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_destroy(r),this._image_tracker_by_instance.delete(e);break}case 4:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_target_load_from_memory(r,t.dataWithLength());break}case 3:{let e=t.type(),r=this._image_tracker_by_instance.get(e);if(void 0===r)return;this._impl.image_tracker_enabled_set(r,t.bool());break}case 20:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=this._impl.face_tracker_create(n);this._face_tracker_by_instance.set(e,a),this._pipeline_id_by_face_tracker_id.set(e,r);break}case 21:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_destroy(r),this._face_tracker_by_instance.delete(e);break}case 22:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_model_load_from_memory(r,t.dataWithLength());break}case 23:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_enabled_set(r,t.bool());break}case 24:{let e=t.type(),r=this._face_tracker_by_instance.get(e);if(void 0===r)return;this._impl.face_tracker_max_faces_set(r,t.int());break}case 25:{let e=t.type(),r=this._impl.face_mesh_create();this._face_mesh_by_instance.set(e,r);break}case 26:{let e=t.type(),r=this._face_mesh_by_instance.get(e);if(void 0===r)return;this._impl.face_mesh_destroy(r),this._face_mesh_by_instance.delete(e);break}case 32:{let e=t.type(),r=t.faceLandmarkName(),n=this._impl.face_landmark_create(r);this._face_landmark_by_instance.set(e,n);break}case 33:{let e=t.type(),r=this._face_landmark_by_instance.get(e);if(void 0===r)return;this._impl.face_landmark_destroy(r),this._face_landmark_by_instance.delete(e);break}case 16:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=this._impl.barcode_finder_create(n);this._barcode_finder_by_instance.set(e,a),this._pipeline_id_by_barcode_finder_id.set(e,r);break}case 17:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_destroy(r),this._barcode_finder_by_instance.delete(e);break}case 18:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_enabled_set(r,t.bool());break}case 19:{let e=t.type(),r=this._barcode_finder_by_instance.get(e);if(void 0===r)return;this._impl.barcode_finder_formats_set(r,t.barcodeFormat());break}case 5:{let e=t.type(),r=t.type(),n=this._pipeline_by_instance.get(r),a=this._impl.instant_world_tracker_create(n);this._instant_world_tracker_by_instance.set(e,a),this._pipeline_id_by_instant_world_tracker_id.set(e,r);break}case 15:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_destroy(r),this._instant_world_tracker_by_instance.delete(e);break}case 6:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_enabled_set(r,t.bool());break}case 7:{let e=t.type(),r=this._instant_world_tracker_by_instance.get(e);if(void 0===r)return;this._impl.instant_world_tracker_anchor_pose_set_from_camera_offset_raw(r,t.float(),t.float(),t.float(),t.instantTrackerTransformOrientation());break}}})}exploreState(){for(let[e,t]of this._pipeline_by_instance){let r=this._pipeline_id_by_pipeline_id.get(e);if(!r)continue;let n=this.serializersByPipelineId.get(r);n&&(n.sendMessage(7,r=>{r.type(e),r.int(this._impl.pipeline_frame_number(t))}),n.sendMessage(6,r=>{r.type(e),r.cameraModel(this._impl.pipeline_camera_model(t))}),n.sendMessage(5,r=>{r.type(e),r.int(this._impl.pipeline_camera_frame_user_data(t))}),n.sendMessage(11,r=>{r.type(e),r.matrix4x4(this._impl.pipeline_camera_frame_camera_attitude(t))}),n.sendMessage(12,r=>{r.type(e),r.matrix4x4(this._impl.pipeline_camera_frame_device_attitude(t))}))}for(let[e,t]of this._camera_source_by_instance){let t=this._pipeline_id_by_camera_source_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._sequence_source_by_instance){let t=this._pipeline_id_by_sequence_source_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._image_tracker_by_instance){let r=this._pipeline_id_by_image_tracker_id.get(e);if(!r)continue;let n=this.serializersByPipelineId.get(r);if(n){n.sendMessage(19,r=>{r.type(e),r.int(this._impl.image_tracker_target_loaded_version(t))}),n.sendMessage(1,r=>{r.type(e),r.int(this._impl.image_tracker_anchor_count(t))});for(let r=0;r<this._impl.image_tracker_anchor_count(t);r++)n.sendMessage(2,n=>{n.type(e),n.int(r),n.string(this._impl.image_tracker_anchor_id(t,r))});for(let r=0;r<this._impl.image_tracker_anchor_count(t);r++)n.sendMessage(3,n=>{n.type(e),n.int(r),n.matrix4x4(this._impl.image_tracker_anchor_pose_raw(t,r))})}}for(let[e,t]of this._face_tracker_by_instance){let r=this._pipeline_id_by_face_tracker_id.get(e);if(!r)continue;let n=this.serializersByPipelineId.get(r);if(n){n.sendMessage(18,r=>{r.type(e),r.int(this._impl.face_tracker_model_loaded_version(t))}),n.sendMessage(13,r=>{r.type(e),r.int(this._impl.face_tracker_anchor_count(t))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)n.sendMessage(14,n=>{n.type(e),n.int(r),n.string(this._impl.face_tracker_anchor_id(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)n.sendMessage(15,n=>{n.type(e),n.int(r),n.matrix4x4(this._impl.face_tracker_anchor_pose_raw(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)n.sendMessage(16,n=>{n.type(e),n.int(r),n.identityCoefficients(this._impl.face_tracker_anchor_identity_coefficients(t,r))});for(let r=0;r<this._impl.face_tracker_anchor_count(t);r++)n.sendMessage(17,n=>{n.type(e),n.int(r),n.expressionCoefficients(this._impl.face_tracker_anchor_expression_coefficients(t,r))})}}for(let[e,t]of this._face_mesh_by_instance){let t=this._pipeline_id_by_face_mesh_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._face_landmark_by_instance){let t=this._pipeline_id_by_face_landmark_id.get(e);if(!t)continue;this.serializersByPipelineId.get(t)}for(let[e,t]of this._barcode_finder_by_instance){let r=this._pipeline_id_by_barcode_finder_id.get(e);if(!r)continue;let n=this.serializersByPipelineId.get(r);if(n){n.sendMessage(8,r=>{r.type(e),r.int(this._impl.barcode_finder_found_number(t))});for(let r=0;r<this._impl.barcode_finder_found_number(t);r++)n.sendMessage(9,n=>{n.type(e),n.int(r),n.string(this._impl.barcode_finder_found_text(t,r))});for(let r=0;r<this._impl.barcode_finder_found_number(t);r++)n.sendMessage(10,n=>{n.type(e),n.int(r),n.barcodeFormat(this._impl.barcode_finder_found_format(t,r))})}}for(let[e,t]of this._instant_world_tracker_by_instance){let r=this._pipeline_id_by_instant_world_tracker_id.get(e);if(!r)continue;let n=this.serializersByPipelineId.get(r);n&&n.sendMessage(4,r=>{r.type(e),r.matrix4x4(this._impl.instant_world_tracker_anchor_pose_raw(t))})}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageSerializer=void 0;t.MessageSerializer=class{constructor(e){this._messageSender=e,this._freeBufferPool=[],this._buffer=new ArrayBuffer(16),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1,this._timeoutSet=!1,this._appender={int:e=>this.int(e),bool:e=>this.int(e?1:0),float:e=>this.float(e),string:e=>this.string(e),dataWithLength:e=>this.arrayBuffer(e),type:e=>this.int(e),matrix4x4:e=>this.float32ArrayBuffer(e),matrix3x3:e=>this.float32ArrayBuffer(e),identityCoefficients:e=>this.float32ArrayBuffer(e),expressionCoefficients:e=>this.float32ArrayBuffer(e),cameraModel:e=>this.float32ArrayBuffer(e),timestamp:e=>this.double(e),barcodeFormat:e=>this.int(e),faceLandmarkName:e=>this.int(e),instantTrackerTransformOrientation:e=>this.int(e),logLevel:e=>this.int(e)},this._freeBufferPool.push(new ArrayBuffer(16)),this._freeBufferPool.push(new ArrayBuffer(16))}bufferReturn(e){this._freeBufferPool.push(e)}_ensureArrayBuffer(e){let t=4*(this._offset+e+8);if(this._buffer&&this._buffer.byteLength>=t)return;let r=void 0;if(!r){let e=t;e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,r=new ArrayBuffer(e)}let n=this._buffer?this._i32View:void 0;this._buffer=r,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),n&&this._i32View.set(n.subarray(0,this._offset))}sendMessage(e,t){this._ensureArrayBuffer(4),this._startOffset=this._offset,this._i32View[this._offset+1]=e,this._offset+=2,t(this._appender),this._i32View[this._startOffset]=this._offset-this._startOffset,this._startOffset=-1,this._sendOneTime()}_sendOneTime(){!1===this._timeoutSet&&(this._timeoutSet=!0,setTimeout(()=>{this._timeoutSet=!1,this._send()},0))}_send(){0!==this._freeBufferPool.length?(this._i32View[0]=this._offset,this._messageSender(this._buffer),this._buffer=void 0,this._buffer=this._freeBufferPool.pop(),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u8cView=new Uint8ClampedArray(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=1,this._startOffset=-1):this._sendOneTime()}int(e){this._ensureArrayBuffer(1),this._i32View[this._offset]=e,this._offset++}double(e){this._ensureArrayBuffer(2),this._offset%2==1&&this._offset++,this._f64View[this._offset/2]=e,this._offset+=2}float(e){this._ensureArrayBuffer(1),this._f32View[this._offset]=e,this._offset++}int32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t];this._offset+=e.length}float32Array(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._f32View[this._offset+t]=e[t];this._offset+=e.length}booleanArray(e){this._ensureArrayBuffer(e.length);for(let t=0;t<e.length;++t)this._i32View[this._offset+t]=e[t]?1:0;this._offset+=e.length}uint8ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8View.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}arrayBuffer(e){let t=new Uint8Array(e);this.uint8ArrayBuffer(t)}uint8ClampedArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.byteLength,this._offset++,this._u8cView.set(e,4*this._offset),this._offset+=e.byteLength>>2,0!=(3&e.byteLength)&&this._offset++}float32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._f32View.set(e,this._offset),this._offset+=e.length}uint16ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++;let t=2*this._offset;this._u16View.set(e,t),this._offset+=e.length>>1,0!=(1&e.length)&&this._offset++}int32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._i32View.set(e,this._offset),this._offset+=e.length}uint32ArrayBuffer(e){this._ensureArrayBuffer(e.byteLength/4),this._i32View[this._offset]=e.length,this._offset++,this._u32View.set(e,this._offset),this._offset+=e.length}string(e){let t=(new TextEncoder).encode(e);this._ensureArrayBuffer(t.byteLength/4),this._i32View[this._offset]=t.byteLength,this._offset++,this._u8View.set(t,4*this._offset),this._offset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._offset++}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MessageDeserializer=void 0;t.MessageDeserializer=class{constructor(){this._buffer=new ArrayBuffer(0),this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,this._startOffset=-1,this._processor={int:()=>this._i32View[this._startOffset++],bool:()=>1===this._i32View[this._startOffset++],type:()=>this._i32View[this._startOffset++],float:()=>this._f32View[this._startOffset++],timestamp:()=>{this._startOffset%2==1&&this._startOffset++;let e=this._f64View[this._startOffset/2];return this._startOffset+=2,e},string:()=>{let e=this._i32View[this._startOffset++],t=(new TextDecoder).decode(new Uint8Array(this._buffer,4*this._startOffset,e));return this._startOffset+=e>>2,0!=(3&e)&&this._startOffset++,t},dataWithLength:()=>{let e=this._i32View[this._startOffset++],t=new Uint8Array(e);return t.set(this._u8View.subarray(4*this._startOffset,4*this._startOffset+e)),this._startOffset+=t.byteLength>>2,0!=(3&t.byteLength)&&this._startOffset++,t.buffer},matrix4x4:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+16)),this._startOffset+=e,t},matrix3x3:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+9)),this._startOffset+=e,t},identityCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+50)),this._startOffset+=e,t},expressionCoefficients:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+29)),this._startOffset+=e,t},cameraModel:()=>{let e=this._i32View[this._startOffset++],t=new Float32Array(e);return t.set(this._f32View.subarray(this._startOffset,this._startOffset+6)),this._startOffset+=e,t},barcodeFormat:()=>this._i32View[this._startOffset++],faceLandmarkName:()=>this._i32View[this._startOffset++],instantTrackerTransformOrientation:()=>this._i32View[this._startOffset++],logLevel:()=>this._i32View[this._startOffset++]}}setData(e){this._buffer=e,this._i32View=new Int32Array(this._buffer),this._f32View=new Float32Array(this._buffer),this._f64View=new Float64Array(this._buffer),this._u8View=new Uint8Array(this._buffer),this._u16View=new Uint16Array(this._buffer),this._u32View=new Uint32Array(this._buffer),this._offset=0,this._length=0,e.byteLength>=4&&(this._offset=1,this._length=this._i32View[0]),this._startOffset=-1}hasMessage(){return this._offset+1<this._length}forMessages(e){for(;this.hasMessage();){let t=this._i32View[this._offset],r=this._i32View[this._offset+1];this._startOffset=this._offset+2,this._offset+=t,e(r,this._processor)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgManager=void 0;const n=r(14);t.MsgManager=class{constructor(){this.onOutgoingMessage=new n.Event,this.onIncomingMessage=new n.Event1,this._outgoingMessages=[]}postIncomingMessage(e){this.onIncomingMessage.emit(e)}postOutgoingMessage(e,t){this._outgoingMessages.push({msg:e,transferables:t}),this.onOutgoingMessage.emit()}getOutgoingMessages(){let e=this._outgoingMessages;return this._outgoingMessages=[],e}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Event5=t.Event3=t.Event2=t.Event1=t.Event=void 0;t.Event=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(){for(var e=0,t=this._funcs.length;e<t;e++)this._funcs[e]()}};t.Event1=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e){for(var t=0,r=this._funcs.length;t<r;t++)this._funcs[t](e)}};t.Event2=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t){for(var r=0,n=this._funcs.length;r<n;r++)this._funcs[r](e,t)}};t.Event3=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r){for(var n=0,a=this._funcs.length;n<a;n++)this._funcs[n](e,t,r)}};t.Event5=class{constructor(){this._funcs=[]}bind(e){this._funcs.push(e)}unbind(e){let t=this._funcs.indexOf(e);t>-1&&this._funcs.splice(t,1)}emit(e,t,r,n,a){for(var i=0,o=this._funcs.length;i<o;i++)this._funcs[i](e,t,r,n,a)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.frame_pixel_format_t=t.log_level_t=t.instant_world_tracker_transform_orientation_t=t.face_landmark_name_t=t.barcode_format_t=void 0,function(e){e[e.UNKNOWN=131072]="UNKNOWN",e[e.AZTEC=1]="AZTEC",e[e.CODABAR=2]="CODABAR",e[e.CODE_39=4]="CODE_39",e[e.CODE_93=8]="CODE_93",e[e.CODE_128=16]="CODE_128",e[e.DATA_MATRIX=32]="DATA_MATRIX",e[e.EAN_8=64]="EAN_8",e[e.EAN_13=128]="EAN_13",e[e.ITF=256]="ITF",e[e.MAXICODE=512]="MAXICODE",e[e.PDF_417=1024]="PDF_417",e[e.QR_CODE=2048]="QR_CODE",e[e.RSS_14=4096]="RSS_14",e[e.RSS_EXPANDED=8192]="RSS_EXPANDED",e[e.UPC_A=16384]="UPC_A",e[e.UPC_E=32768]="UPC_E",e[e.UPC_EAN_EXTENSION=65536]="UPC_EAN_EXTENSION",e[e.ALL=131071]="ALL"}(t.barcode_format_t||(t.barcode_format_t={})),function(e){e[e.EYE_LEFT=0]="EYE_LEFT",e[e.EYE_RIGHT=1]="EYE_RIGHT",e[e.EAR_LEFT=2]="EAR_LEFT",e[e.EAR_RIGHT=3]="EAR_RIGHT",e[e.NOSE_BRIDGE=4]="NOSE_BRIDGE",e[e.NOSE_TIP=5]="NOSE_TIP",e[e.NOSE_BASE=6]="NOSE_BASE",e[e.LIP_TOP=7]="LIP_TOP",e[e.LIP_BOTTOM=8]="LIP_BOTTOM",e[e.MOUTH_CENTER=9]="MOUTH_CENTER",e[e.CHIN=10]="CHIN",e[e.EYEBROW_LEFT=11]="EYEBROW_LEFT",e[e.EYEBROW_RIGHT=12]="EYEBROW_RIGHT"}(t.face_landmark_name_t||(t.face_landmark_name_t={})),function(e){e[e.WORLD=3]="WORLD",e[e.MINUS_Z_AWAY_FROM_USER=4]="MINUS_Z_AWAY_FROM_USER",e[e.MINUS_Z_HEADING=5]="MINUS_Z_HEADING",e[e.UNCHANGED=6]="UNCHANGED"}(t.instant_world_tracker_transform_orientation_t||(t.instant_world_tracker_transform_orientation_t={})),function(e){e[e.LOG_LEVEL_NONE=0]="LOG_LEVEL_NONE",e[e.LOG_LEVEL_ERROR=1]="LOG_LEVEL_ERROR",e[e.LOG_LEVEL_WARNING=2]="LOG_LEVEL_WARNING",e[e.LOG_LEVEL_VERBOSE=3]="LOG_LEVEL_VERBOSE"}(t.log_level_t||(t.log_level_t={})),function(e){e[e.FRAME_PIXEL_FORMAT_I420=0]="FRAME_PIXEL_FORMAT_I420",e[e.FRAME_PIXEL_FORMAT_I420A=1]="FRAME_PIXEL_FORMAT_I420A",e[e.FRAME_PIXEL_FORMAT_I422=2]="FRAME_PIXEL_FORMAT_I422",e[e.FRAME_PIXEL_FORMAT_I444=3]="FRAME_PIXEL_FORMAT_I444",e[e.FRAME_PIXEL_FORMAT_NV12=4]="FRAME_PIXEL_FORMAT_NV12",e[e.FRAME_PIXEL_FORMAT_RGBA=5]="FRAME_PIXEL_FORMAT_RGBA",e[e.FRAME_PIXEL_FORMAT_BGRA=6]="FRAME_PIXEL_FORMAT_BGRA",e[e.FRAME_PIXEL_FORMAT_Y=7]="FRAME_PIXEL_FORMAT_Y"}(t.frame_pixel_format_t||(t.frame_pixel_format_t={}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleImageBitmap=void 0;const n=r(17),a=r(0),i=r(1);let o,u,s,c;t.handleImageBitmap=function(e,t,r,f){const[_,d]=function(){if(!s||!c){const e=new OffscreenCanvas(1,1);if(c=e.getContext("webgl"),!c)throw new Error("Unable to get offscreen GL context");s=new n.ImageProcessGL(c)}return[s,c]}();if(u||(u=d.createTexture(),d.bindTexture(d.TEXTURE_2D,u),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR)),!u)return;(!o||o.byteLength<a.profile.dataWidth*a.profile.dataHeight)&&(console.log("Generating pixel buffer",a.profile.dataWidth*a.profile.dataHeight),o=new ArrayBuffer(a.profile.dataWidth*a.profile.dataHeight)),_.uploadFrame(u,e.i,e.r,e.userFacing);let l=_.readFrame(u,o),h={t:"imageBitmapS2C",dataWidth:l.dataWidth,dataHeight:l.dataHeight,frame:e.i,userFacing:l.userFacing,uvTransform:l.uvTransform||i.mat4.create(),tokenId:e.tokenId,p:e.p};f.postOutgoingMessage(h,[e.i]);let p=r._pipeline_by_instance.get(e.p);p&&(t.pipeline_camera_frame_submit(p,o,l.dataWidth,l.dataHeight,e.tokenId,e.cameraToDevice,e.cameraModel,l.userFacing),t.pipeline_frame_update(p),r.exploreState())}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImageProcessGL=void 0;const n=r(1),a=r(18),i=r(0),o=r(21);t.ImageProcessGL=class{constructor(e){this._gl=e,this._isPaused=!0,this._hadFrames=!1,this._isUserFacing=!1,this._cameraToScreenRotation=0,this._isUploadFrame=!0,this._computedTransformRotation=-1,this._computedFrontCameraRotation=!1,this._cameraUvTransform=n.mat4.create(),this._framebufferWidth=0,this._framebufferHeight=0,this._framebufferId=null,this._renderTexture=null}resetGLContext(){this._framebufferId=null,this._renderTexture=null,this._vertexBuffer=void 0,this._indexBuffer=void 0,this._greyscaleShader=void 0}destroy(){this.resetGLContext()}uploadFrame(e,t,r,n){let o=this._gl;a.GLStateManager.get(o).push();const u=o.isEnabled(o.SCISSOR_TEST),s=o.isEnabled(o.DEPTH_TEST),c=o.isEnabled(o.BLEND),f=o.isEnabled(o.CULL_FACE),_=o.getParameter(o.ACTIVE_TEXTURE),d=o.getParameter(o.UNPACK_FLIP_Y_WEBGL),l=o.getParameter(o.CURRENT_PROGRAM);o.activeTexture(o.TEXTURE0);const h=o.getParameter(o.TEXTURE_BINDING_2D),p=o.getParameter(o.FRAMEBUFFER_BINDING),m=o.getParameter(o.ARRAY_BUFFER_BINDING),b=o.getParameter(o.ELEMENT_ARRAY_BUFFER_BINDING);o.disable(o.SCISSOR_TEST),o.disable(o.DEPTH_TEST),o.disable(o.BLEND),o.disable(o.CULL_FACE),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),o.bindTexture(o.TEXTURE_2D,e);const w=o.RGBA,g=o.RGBA,v=o.UNSIGNED_BYTE;o.texImage2D(o.TEXTURE_2D,0,w,g,v,t);let y=0,M=0;"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement?(y=t.videoWidth,M=t.videoHeight):(y=t.width,M=t.height),M>y&&(M=[y,y=M][0]),this._updateTransforms(r,n);let E=this._getFramebuffer(o,i.profile.dataWidth/4,i.profile.dataHeight),A=this._getVertexBuffer(o),x=this._getIndexBuffer(o),k=this._getGreyscaleShader(o);const T=o.getVertexAttrib(k.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_SIZE),R=o.getVertexAttrib(k.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_TYPE),F=o.getVertexAttrib(k.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_NORMALIZED),z=o.getVertexAttrib(k.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_STRIDE),L=o.getVertexAttribOffset(k.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_POINTER),O=o.getVertexAttrib(k.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_SIZE),I=o.getVertexAttrib(k.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_TYPE),P=o.getVertexAttrib(k.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_NORMALIZED),S=o.getVertexAttrib(k.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_STRIDE),B=o.getVertexAttribOffset(k.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_POINTER);o.bindFramebuffer(o.FRAMEBUFFER,E),o.viewport(0,0,this._framebufferWidth,this._framebufferHeight),o.clear(o.COLOR_BUFFER_BIT),o.bindBuffer(o.ARRAY_BUFFER,A),o.vertexAttribPointer(k.aVertexPositionLoc,2,o.FLOAT,!1,16,0),o.enableVertexAttribArray(k.aVertexPositionLoc),o.vertexAttribPointer(k.aTextureCoordLoc,2,o.FLOAT,!1,16,8),o.enableVertexAttribArray(k.aTextureCoordLoc),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,x),o.useProgram(k.program),o.uniform1f(k.uTexWidthLoc,i.profile.dataWidth),o.uniformMatrix4fv(k.uUvTransformLoc,!1,this._cameraUvTransform),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,e),o.uniform1i(k.uSamplerLoc,0),o.drawElements(o.TRIANGLES,6,o.UNSIGNED_SHORT,0),o.vertexAttribPointer(k.aVertexPositionLoc,T,R,F,z,L),o.vertexAttribPointer(k.aTextureCoordLoc,O,I,P,S,B),o.bindFramebuffer(o.FRAMEBUFFER,p),o.bindBuffer(o.ARRAY_BUFFER,m),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,b),o.useProgram(l),o.bindTexture(o.TEXTURE_2D,h),o.activeTexture(_),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,d),c&&o.enable(o.BLEND),f&&o.enable(o.CULL_FACE),s&&o.enable(o.DEPTH_TEST),u&&o.enable(o.SCISSOR_TEST)}readFrame(e,t){let r=this._gl,n=new Uint8Array(t),a=this._getFramebuffer(r,i.profile.dataWidth/4,i.profile.dataHeight);const o=r.getParameter(r.FRAMEBUFFER_BINDING);return r.bindFramebuffer(r.FRAMEBUFFER,a),r.readPixels(0,0,this._framebufferWidth,this._framebufferHeight,r.RGBA,r.UNSIGNED_BYTE,n),r.bindFramebuffer(r.FRAMEBUFFER,o),{uvTransform:this._cameraUvTransform,data:t,texture:e,dataWidth:i.profile.dataWidth,dataHeight:i.profile.dataHeight,userFacing:this._computedFrontCameraRotation}}_updateTransforms(e,t){e==this._computedTransformRotation&&t==this._computedFrontCameraRotation||(this._computedTransformRotation=e,this._computedFrontCameraRotation=t,this._cameraUvTransform=this._getCameraUvTransform())}_getCameraUvTransform(){switch(this._computedTransformRotation){case 270:return new Float32Array([0,1,0,0,-1,0,0,0,0,0,1,0,1,0,0,1]);case 180:return new Float32Array([-1,0,0,0,0,-1,0,0,0,0,1,0,1,1,0,1]);case 90:return new Float32Array([0,-1,0,0,1,0,0,0,0,0,1,0,0,1,0,1])}return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}_getFramebuffer(e,t,r){if(this._framebufferWidth===t&&this._framebufferHeight===r&&this._framebufferId)return this._framebufferId;if(this._framebufferId&&(e.deleteFramebuffer(this._framebufferId),this._framebufferId=null),this._renderTexture&&(e.deleteTexture(this._renderTexture),this._renderTexture=null),this._framebufferId=e.createFramebuffer(),!this._framebufferId)throw new Error("Unable to create framebuffer");if(e.bindFramebuffer(e.FRAMEBUFFER,this._framebufferId),this._renderTexture=e.createTexture(),!this._renderTexture)throw new Error("Unable to create render texture");e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._renderTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,r,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameterf(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this._renderTexture,0);let n=e.checkFramebufferStatus(e.FRAMEBUFFER);if(n!==e.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer not complete: "+n.toString());return this._framebufferWidth=t,this._framebufferHeight=r,e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this._framebufferId}_getVertexBuffer(e){if(this._vertexBuffer)return this._vertexBuffer;if(this._vertexBuffer=e.createBuffer(),!this._vertexBuffer)throw new Error("Unable to create vertex buffer");e.bindBuffer(e.ARRAY_BUFFER,this._vertexBuffer);let t=new Float32Array([-1,-1,0,0,-1,1,0,1,1,1,1,1,1,-1,1,0]);return e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW),this._vertexBuffer}_getIndexBuffer(e){if(this._indexBuffer)return this._indexBuffer;if(this._indexBuffer=e.createBuffer(),!this._indexBuffer)throw new Error("Unable to create index buffer");e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._indexBuffer);let t=new Uint16Array([0,1,2,0,2,3]);return e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW),this._indexBuffer}_getGreyscaleShader(e){if(this._greyscaleShader)return this._greyscaleShader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=o.compileShader(e,e.VERTEX_SHADER,u),n=o.compileShader(e,e.FRAGMENT_SHADER,s);e.attachShader(t,r),e.attachShader(t,n),o.linkProgram(e,t);let a=e.getUniformLocation(t,"uTexWidth");if(!a)throw new Error("Unable to get uniform location uTexWidth");let i=e.getUniformLocation(t,"uUvTransform");if(!i)throw new Error("Unable to get uniform location uUvTransform");let c=e.getUniformLocation(t,"uSampler");if(!c)throw new Error("Unable to get uniform location uSampler");return this._greyscaleShader={program:t,aVertexPositionLoc:e.getAttribLocation(t,"aVertexPosition"),aTextureCoordLoc:e.getAttribLocation(t,"aTextureCoord"),uTexWidthLoc:a,uUvTransformLoc:i,uSamplerLoc:c},this._greyscaleShader}};let u="\\n attribute vec4 aVertexPosition;\\n attribute vec2 aTextureCoord;\\n\\n varying highp vec2 vTextureCoord1;\\n varying highp vec2 vTextureCoord2;\\n varying highp vec2 vTextureCoord3;\\n varying highp vec2 vTextureCoord4;\\n\\n uniform float uTexWidth;\\n\\tuniform mat4 uUvTransform;\\n\\n void main(void) {\\n highp vec2 offset1 = vec2(1.5 / uTexWidth, 0);\\n highp vec2 offset2 = vec2(0.5 / uTexWidth, 0);\\n\\n gl_Position = aVertexPosition;\\n vTextureCoord1 = (uUvTransform * vec4(aTextureCoord - offset1, 0, 1)).xy;\\n vTextureCoord2 = (uUvTransform * vec4(aTextureCoord - offset2, 0, 1)).xy;\\n vTextureCoord3 = (uUvTransform * vec4(aTextureCoord + offset2, 0, 1)).xy;\\n vTextureCoord4 = (uUvTransform * vec4(aTextureCoord + offset1, 0, 1)).xy;\\n }\\n",s="\\n varying highp vec2 vTextureCoord1;\\n varying highp vec2 vTextureCoord2;\\n varying highp vec2 vTextureCoord3;\\n varying highp vec2 vTextureCoord4;\\n\\n uniform sampler2D uSampler;\\n\\n const lowp vec3 colorWeights = vec3(77.0 / 256.0, 150.0 / 256.0, 29.0 / 256.0);\\n\\n void main(void) {\\n lowp vec4 outpx;\\n\\n outpx.r = dot(colorWeights, texture2D(uSampler, vTextureCoord1).xyz);\\n outpx.g = dot(colorWeights, texture2D(uSampler, vTextureCoord2).xyz);\\n outpx.b = dot(colorWeights, texture2D(uSampler, vTextureCoord3).xyz);\\n outpx.a = dot(colorWeights, texture2D(uSampler, vTextureCoord4).xyz);\\n\\n gl_FragColor = outpx;\\n }\\n"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GLStateManager=void 0;const n=new Map;class a{constructor(e){this._gl=e,this._viewports=[],this._underlyingViewport=this._gl.viewport,this._viewports.push(this._gl.getParameter(this._gl.VIEWPORT)),this._gl.viewport=(e,t,r,n)=>{this._viewports[this._viewports.length-1]=[e,t,r,n],this._underlyingViewport.call(this._gl,e,t,r,n)}}static get(e){let t=n.get(e);return t||(t=new a(e),n.set(e,t)),t}push(){this._viewports.push(this._viewports[this._viewports.length-1])}pop(){const e=this._viewports.pop(),t=this._viewports[this._viewports.length-1];e&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]||this._underlyingViewport.call(this._gl,t[0],t[1],t[2],t[3])}}t.GLStateManager=a},function(e,t,r){var n;!function(a,i){"use strict";var o="model",u="name",s="type",c="vendor",f="version",_="mobile",d="tablet",l="smarttv",h=function(e){var t={};for(var r in e)t[e[r].toUpperCase()]=e[r];return t},p=function(e,t){return"string"==typeof e&&-1!==m(t).indexOf(m(e))},m=function(e){return e.toLowerCase()},b=function(e,t){if("string"==typeof e)return e=e.replace(/^\\s\\s*/,"").replace(/\\s\\s*$/,""),void 0===t?e:e.substring(0,255)},w=function(e,t){for(var r,n,a,i,o,u,s=0;s<t.length&&!o;){var c=t[s],f=t[s+1];for(r=n=0;r<c.length&&!o;)if(o=c[r++].exec(e))for(a=0;a<f.length;a++)u=o[++n],"object"==typeof(i=f[a])&&i.length>0?2==i.length?"function"==typeof i[1]?this[i[0]]=i[1].call(this,u):this[i[0]]=i[1]:3==i.length?"function"!=typeof i[1]||i[1].exec&&i[1].test?this[i[0]]=u?u.replace(i[1],i[2]):void 0:this[i[0]]=u?i[1].call(this,u,i[2]):void 0:4==i.length&&(this[i[0]]=u?i[3].call(this,u.replace(i[1],i[2])):void 0):this[i]=u||void 0;s+=2}},g=function(e,t){for(var r in t)if("object"==typeof t[r]&&t[r].length>0){for(var n=0;n<t[r].length;n++)if(p(t[r][n],e))return"?"===r?void 0:r}else if(p(t[r],e))return"?"===r?void 0:r;return e},v={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},y={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,"Chrome"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,"Edge"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,"Opera Mini"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,"Opera"]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\\/([-\\w\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,"UCBrowser"]],[/\\bqbcore\\/([\\w\\.]+)/i],[f,[u,"WeChat(Win) Desktop"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,"WeChat"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,"Konqueror"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,"IE"]],[/yabrowser\\/([\\w\\.]+)/i],[f,[u,"Yandex"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,"$1 Secure Browser"],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,"Firefox Focus"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,"Opera Touch"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,"Coc Coc"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,"Dolphin"]],[/coast\\/([\\w\\.]+)/i],[f,[u,"Opera Coast"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,"MIUI Browser"]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,"Firefox"]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,"360 Browser"]],[/(oculus|samsung|sailfish)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,"$1 Browser"],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g," "],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,"Facebook"],f],[/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,"GSA"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,"Chrome Headless"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,"Chrome WebView"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.]+) .*mobile\\/\\w+ (safari)/i],[f,[u,"Mobile Safari"]],[/version\\/([\\w\\.]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,g,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,"Netscape"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,"Firefox Reality"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i],[u,f]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[["architecture","amd64"]],[/(ia32(?=;))/i],[["architecture",m]],[/((?:i[346]|x)86)[;\\)]/i],[["architecture","ia32"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[["architecture","arm64"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[["architecture","armhf"]],[/windows (ce|mobile); ppc;/i],[["architecture","arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[["architecture",/ower/,"",m]],[/(sun4\\w)[;\\)]/i],[["architecture","sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[["architecture",m]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[pt]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[o,[c,"Samsung"],[s,d]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[o,[c,"Samsung"],[s,_]],[/\\((ip(?:hone|od)[\\w ]*);/i],[o,[c,"Apple"],[s,_]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[o,[c,"Apple"],[s,d]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[o,[c,"Huawei"],[s,d]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}-[atu]?[ln][01259x][012359][an]?)\\b(?!.+d\\/s)/i],[o,[c,"Huawei"],[s,_]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[o,/_/g," "],[c,"Xiaomi"],[s,_]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[o,/_/g," "],[c,"Xiaomi"],[s,d]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007)\\b/i],[o,[c,"OPPO"],[s,_]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[o,[c,"Vivo"],[s,_]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[o,[c,"Realme"],[s,_]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[o,[c,"Motorola"],[s,_]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[o,[c,"Motorola"],[s,d]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[o,[c,"LG"],[s,d]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[o,[c,"LG"],[s,_]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[o,[c,"Lenovo"],[s,d]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[o,/_/g," "],[c,"Nokia"],[s,_]],[/(pixel c)\\b/i],[o,[c,"Google"],[s,d]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[o,[c,"Google"],[s,_]],[/droid.+ ([c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[o,[c,"Sony"],[s,_]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[o,"Xperia Tablet"],[c,"Sony"],[s,d]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[o,[c,"OnePlus"],[s,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[o,[c,"Amazon"],[s,d]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[o,/(.+)/g,"Fire Phone $1"],[c,"Amazon"],[s,_]],[/(playbook);[-\\w\\),; ]+(rim)/i],[o,c,[s,d]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[o,[c,"BlackBerry"],[s,_]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[o,[c,"ASUS"],[s,d]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[o,[c,"ASUS"],[s,_]],[/(nexus 9)/i],[o,[c,"HTC"],[s,d]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\\w]*)/i],[c,[o,/_/g," "],[s,_]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[o,[c,"Acer"],[s,d]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[o,[c,"Meizu"],[s,_]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[o,[c,"Sharp"],[s,_]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[c,o,[s,_]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[c,o,[s,d]],[/(surface duo)/i],[o,[c,"Microsoft"],[s,d]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[o,[c,"Fairphone"],[s,_]],[/(u304aa)/i],[o,[c,"AT&T"],[s,_]],[/\\bsie-(\\w*)/i],[o,[c,"Siemens"],[s,_]],[/\\b(rct\\w+) b/i],[o,[c,"RCA"],[s,d]],[/\\b(venue[\\d ]{2,7}) b/i],[o,[c,"Dell"],[s,d]],[/\\b(q(?:mv|ta)\\w+) b/i],[o,[c,"Verizon"],[s,d]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[o,[c,"Barnes & Noble"],[s,d]],[/\\b(tm\\d{3}\\w+) b/i],[o,[c,"NuVision"],[s,d]],[/\\b(k88) b/i],[o,[c,"ZTE"],[s,d]],[/\\b(nx\\d{3}j) b/i],[o,[c,"ZTE"],[s,_]],[/\\b(gen\\d{3}) b.+49h/i],[o,[c,"Swiss"],[s,_]],[/\\b(zur\\d{3}) b/i],[o,[c,"Swiss"],[s,d]],[/\\b((zeki)?tb.*\\b) b/i],[o,[c,"Zeki"],[s,d]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[c,"Dragon Touch"],o,[s,d]],[/\\b(ns-?\\w{0,9}) b/i],[o,[c,"Insignia"],[s,d]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[o,[c,"NextBook"],[s,d]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[c,"Voice"],o,[s,_]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[c,"LvTel"],o,[s,_]],[/\\b(ph-1) /i],[o,[c,"Essential"],[s,_]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[o,[c,"Envizen"],[s,d]],[/\\b(trio[-\\w\\. ]+) b/i],[o,[c,"MachSpeed"],[s,d]],[/\\btu_(1491) b/i],[o,[c,"Rotor"],[s,d]],[/(shield[\\w ]+) b/i],[o,[c,"Nvidia"],[s,d]],[/(sprint) (\\w+)/i],[c,o,[s,_]],[/(kin\\.[onetw]{3})/i],[[o,/\\./g," "],[c,"Microsoft"],[s,_]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[o,[c,"Zebra"],[s,d]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[o,[c,"Zebra"],[s,_]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[c,o,[s,"console"]],[/droid.+; (shield) bui/i],[o,[c,"Nvidia"],[s,"console"]],[/(playstation [345portablevi]+)/i],[o,[c,"Sony"],[s,"console"]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[o,[c,"Microsoft"],[s,"console"]],[/smart-tv.+(samsung)/i],[c,[s,l]],[/hbbtv.+maple;(\\d+)/i],[[o,/^/,"SmartTV"],[c,"Samsung"],[s,l]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[c,"LG"],[s,l]],[/(apple) ?tv/i],[c,[o,"Apple TV"],[s,l]],[/crkey/i],[[o,"Chromecast"],[c,"Google"],[s,l]],[/droid.+aft(\\w)( bui|\\))/i],[o,[c,"Amazon"],[s,l]],[/\\(dtv[\\);].+(aquos)/i],[o,[c,"Sharp"],[s,l]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i],[[c,b],[o,b],[s,l]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[s,l]],[/((pebble))app/i],[c,o,[s,"wearable"]],[/droid.+; (glass) \\d/i],[o,[c,"Google"],[s,"wearable"]],[/droid.+; (wt63?0{2,3})\\)/i],[o,[c,"Zebra"],[s,"wearable"]],[/(quest( 2)?)/i],[o,[c,"Facebook"],[s,"wearable"]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[c,[s,"embedded"]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[o,[s,_]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[o,[s,d]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[s,d]],[/(phone|mobile(?:[;\\/]| safari)|pda(?=.+windows ce))/i],[[s,_]],[/(android[-\\w\\. ]{0,9});.+buil/i],[o,[c,"Generic"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,"EdgeHTML"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,"Blink"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,g,v]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,"Windows"],[f,g,v]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,"."],[u,"iOS"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,"Mac OS"],[f,/_/g,"."]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,"BlackBerry"]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,"Symbian"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,"webOS"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,"Chromecast"]],[/(cros) [\\w]+ ([\\w\\.]+\\w)/i],[[u,"Chromium OS"],f],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,"Solaris"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]},M=function(e,t){if("object"==typeof e&&(t=e,e=void 0),!(this instanceof M))return new M(e,t).getResult();var r=e||(void 0!==a&&a.navigator&&a.navigator.userAgent?a.navigator.userAgent:""),n=t?function(e,t){var r={};for(var n in e)t[n]&&t[n].length%2==0?r[n]=t[n].concat(e[n]):r[n]=e[n];return r}(y,t):y;return this.getBrowser=function(){var e,t={};return t[u]=void 0,t[f]=void 0,w.call(t,r,n.browser),t.major="string"==typeof(e=t.version)?e.replace(/[^\\d\\.]/g,"").split(".")[0]:void 0,t},this.getCPU=function(){var e={architecture:void 0};return w.call(e,r,n.cpu),e},this.getDevice=function(){var e={vendor:void 0,model:void 0,type:void 0};return w.call(e,r,n.device),e},this.getEngine=function(){var e={name:void 0,version:void 0};return w.call(e,r,n.engine),e},this.getOS=function(){var e={name:void 0,version:void 0};return w.call(e,r,n.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r="string"==typeof e&&e.length>255?b(e,255):e,this},this.setUA(r),this};M.VERSION="0.7.30",M.BROWSER=h([u,f,"major"]),M.CPU=h(["architecture"]),M.DEVICE=h([o,c,s,"console",_,l,d,"wearable","embedded"]),M.ENGINE=M.OS=h([u,f]),void 0!==t?(void 0!==e&&e.exports&&(t=e.exports=M),t.UAParser=M):r(20)?void 0===(n=function(){return M}.call(t,r,t,e))||(e.exports=n):void 0!==a&&(a.UAParser=M);var E=void 0!==a&&(a.jQuery||a.Zepto);if(E&&!E.ua){var A=new M;E.ua=A.getResult(),E.ua.get=function(){return A.getUA()},E.ua.set=function(e){A.setUA(e);var t=A.getResult();for(var r in t)E.ua[r]=t[r]}}}("object"==typeof window?window:this)},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.linkProgram=t.compileShader=void 0,t.compileShader=function(e,t,r){let n=e.createShader(t);if(!n)throw new Error("Unable to create shader");e.shaderSource(n,r),e.compileShader(n);let a=e.getShaderInfoLog(n);if(a&&a.trim().length>0)throw new Error("Shader compile error: "+a);return n},t.linkProgram=function(e,t){e.linkProgram(t);let r=e.getProgramInfoLog(t);if(r&&r.trim().length>0)throw new Error("Unable to link: "+r)}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"e9486c1cdadb21608a4f7e2fa3be9517.wasm"}]);',"Worker",void 0,r.p+"zappar-cv.worker.js")}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"e9486c1cdadb21608a4f7e2fa3be9517.wasm"},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.permissionDeniedUI=t.permissionRequestUI=t.permissionRequestMotion=t.permissionRequestCamera=t.permissionRequestAll=t.permissionGrantedAll=t.permissionDeniedAny=t.permissionDeniedMotion=t.permissionDeniedCamera=t.permissionGrantedMotion=t.permissionGrantedCamera=void 0;let i=new(r(11).UAParser),a=!1,o=!1,s=!1,u=!1;function c(){return n(this,void 0,void 0,(function*(){if(navigator.permissions&&navigator.permissions.query)try{let e=yield navigator.permissions.query({name:"camera"});s="denied"===e.state,a="granted"===e.state}catch(e){}}))}function f(){return s||u}function _(){return a&&o}function d(){return n(this,void 0,void 0,(function*(){yield h(),yield l()}))}function l(){return n(this,void 0,void 0,(function*(){try{(yield navigator.mediaDevices.getUserMedia({video:!0})).getTracks().forEach(e=>e.stop()),a=!0,s=!1}catch(e){a=!1,s=!0}}))}function h(){return n(this,void 0,void 0,(function*(){if(window.DeviceOrientationEvent&&window.DeviceOrientationEvent.requestPermission){if("granted"!==(yield window.DeviceOrientationEvent.requestPermission()))return o=!1,u=!0,!1}o=!0,u=!1}))}window.DeviceOrientationEvent&&window.DeviceOrientationEvent.requestPermission||(o=!0),c(),t.permissionGrantedCamera=function(){return a},t.permissionGrantedMotion=function(){return o},t.permissionDeniedCamera=function(){return s},t.permissionDeniedMotion=function(){return u},t.permissionDeniedAny=f,t.permissionGrantedAll=_,t.permissionRequestAll=d,t.permissionRequestCamera=l,t.permissionRequestMotion=h,t.permissionRequestUI=function(){return n(this,void 0,void 0,(function*(){if(yield c(),_())return!0;let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n max-width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Almost there...</div>\n <div class="zappar-text">In order to provide this augmented reality experience, we need access to your device\'s camera and motion sensors.</div>\n <button id="zappar-permission-request-button">Grant Access</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-request-button");return yield new Promise(r=>{null==t||t.addEventListener("click",()=>n(this,void 0,void 0,(function*(){for(yield d(),e.remove();;){if(yield new Promise(e=>requestAnimationFrame(()=>e())),f())return void r(!1);if(_())return void r(!0)}})))})}))},t.permissionDeniedUI=function(){switch(i.getBrowser().name){case"Chrome":!function(){let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Permission is Needed</div>\n <div class="zappar-text">Permission to access your device\'s camera and motion sensors is necessary for this experience.<br/><br/>To grant access, please tap the ! button in the address bar of your browser, then "Site settings", and finally "Clear and reset". You can then reload the page to try again.</div>\n <button id="zappar-permission-reload-button">Reload</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-reload-button");null==t||t.addEventListener("click",()=>window.location.reload())}();break;default:!function(){let e=document.createElement("div");e.classList.add("zappar-permission-request"),e.innerHTML='\n <style>\n .zappar-permission-request {\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n z-index: 1000;\n background-color: rgba(0, 0, 0, 0.9);\n font-family: sans-serif;\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n .zappar-inner {\n max-width: 400px;\n text-align: center;\n }\n .zappar-title {\n font-size: 20px;\n }\n .zappar-text {\n font-size: 14px;\n padding: 15px;\n }\n .zappar-inner > button {\n background: none;\n outline: none;\n border: 2px solid white;\n border-radius: 10px;\n color: white;\n padding: 10px 40px;\n text-transform: uppercase;\n }\n </style>\n <div class="zappar-inner">\n <div class="zappar-title">Permission is Needed</div>\n <div class="zappar-text">Permission to access your device\'s camera and motion sensors is necessary for this experience. Please reload the page to try again.</div>\n <button id="zappar-permission-reload-button">Reload</button>\n </div>\n',document.body.append(e);let t=e.querySelector("#zappar-permission-reload-button");null==t||t.addEventListener("click",()=>window.location.reload())}()}}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceMesh=t.getFaceMesh=t.destroyFaceMesh=t.createFaceMesh=void 0;const n=r(1),i=r(0);let a=1,o=new Map;t.createFaceMesh=function(){let e=a++;return o.set(e,new s),i.zcout("face_mesh_t initialized"),e},t.destroyFaceMesh=function(e){o.delete(e)},t.getFaceMesh=function(e){return o.get(e)};class s{constructor(){this.render_mean_=new Float32Array,this.render_identity_=new Float32Array(50),this.render_expression_=new Float32Array(29),this.render_uvs_=new Float32Array,this.render_indices_=new Uint16Array,this.vertices_=new Float32Array,this.normals_=new Float32Array,this.normalsCalculated_=!1,this.modelVersion_=-1,this.mirrored_=!1}loadFromMemory(e,t,r,n,i){let a=0,o=new Uint16Array(e),s=new Int32Array(e),u=new Float32Array(e),c=()=>{let e=s[a++]*s[a++],t=u.subarray(a,a+e);return a+=e,t},f=()=>{let e=s[a++],t=o.subarray(2*a,2*a+e);return a+=e/2,t};this.render_mean_=c(),this.render_identity_=c(),this.render_expression_=c(),this.render_uvs_=c();let _=f(),d=a<s.length?f():new Uint16Array,l=a<s.length?f():new Uint16Array,h=a<s.length?f():new Uint16Array,m=a<s.length?f():new Uint16Array;if(t||r||n||i){let e=_.length;t&&(e+=d.length),r&&(e+=l.length),n&&(e+=h.length),i&&(e+=m.length),this.render_indices_=new Uint16Array(e),this.render_indices_.set(_,0);let a=_.length;t&&(this.render_indices_.set(d,a),a+=d.length),r&&(this.render_indices_.set(l,a),a+=l.length),n&&(this.render_indices_.set(h,a),a+=h.length),i&&(this.render_indices_.set(m,a),a+=m.length)}else this.render_indices_=_;this.vertices_=new Float32Array(this.render_mean_),this.normals_=new Float32Array(this.vertices_.length),this.modelVersion_++}getVertices(){return this.vertices_}getUVs(){return this.render_uvs_}getIndices(){if(this.mirrored_){if(!this.render_indices_reversed){this.render_indices_reversed=new Uint16Array(this.render_indices_.length);for(let e=0;e<this.render_indices_.length;e+=3)this.render_indices_reversed[e]=this.render_indices_[e+2],this.render_indices_reversed[e+1]=this.render_indices_[e+1],this.render_indices_reversed[e+2]=this.render_indices_[e]}return this.render_indices_reversed}return this.render_indices_}getNormals(){return this.normalsCalculated_||this.calculateNormals(),this.normals_}getModelVersion(){return this.modelVersion_}getLandmarkDataForVertex(e){let t=[this.render_mean_[3*e],this.render_mean_[3*e+1],this.render_mean_[3*e+2]],r=[];for(let t=0;t<50;t++)r.push(this.render_identity_[3*e*50+t]),r.push(this.render_identity_[50*(3*e+1)+t]),r.push(this.render_identity_[50*(3*e+2)+t]);let n=[];for(let t=0;t<29;t++)n.push(this.render_expression_[3*e*29+t]),n.push(this.render_expression_[29*(3*e+1)+t]),n.push(this.render_expression_[29*(3*e+2)+t]);return{mean:t,identity:r,expression:n}}update(e,t,r){if(0!==this.render_mean_.length&&0!==this.render_identity_.length&&0!==this.render_expression_.length){this.mirrored_=r,this.vertices_.set(this.render_mean_);for(let t=0;t<e.length;t++)for(let r=0;r<this.vertices_.length;r++)this.vertices_[r]+=e[t]*this.render_identity_[r*e.length+t];for(let e=0;e<t.length;e++)for(let r=0;r<this.vertices_.length;r++)this.vertices_[r]+=t[e]*this.render_expression_[r*t.length+e];if(r)for(let e=0;e<this.vertices_.length;e+=3)this.vertices_[e]*=-1;this.normalsCalculated_=!1}}calculateNormals(){let e=this.getIndices(),t=this.vertices_,r=new Float32Array(e.length);if(!t)return;let i=e.length,a=this.normals_,o=new Float32Array([0,0,0]),s=new Float32Array([0,0,0]),u=new Float32Array([0,0,0]);for(let a=0;a<i;a+=3){let i=3*e[a],c=3*e[a+1],f=3*e[a+2];o[0]=t[c]-t[i],o[1]=t[c+1]-t[i+1],o[2]=t[c+2]-t[i+2],s[0]=t[f]-t[i],s[1]=t[f+1]-t[i+1],s[2]=t[f+2]-t[i+2],n.vec3.cross(u,o,s);let _=n.vec3.length(u);r[a]=u[0]/_,r[a+1]=u[1]/_,r[a+2]=u[2]/_}a.fill(0);for(let t=0;t<i;t+=3){let n=3*e[t],i=3*e[t+1],o=3*e[t+2];a[n]+=r[t],a[n+1]+=r[t+1],a[n+2]+=r[t+2],a[i]+=r[t],a[i+1]+=r[t+1],a[i+2]+=r[t+2],a[o]+=r[t],a[o+1]+=r[t+1],a[o+2]+=r[t+2]}let c=a.length/3;for(let e=0;e<c;e++){let t=3*e;o[0]=a[t],o[1]=a[t+1],o[2]=a[t+2],n.vec3.normalize(s,o),a[t]=s[0],a[t+1]=s[1],a[t+2]=s[2]}this.normalsCalculated_=!0}}t.FaceMesh=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.cameraFrameTextureMatrix=t.CameraDraw=void 0;const n=r(4),i=r(1);let a=i.mat4.create();t.CameraDraw=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._vbo=void 0,this._shader&&this._gl.deleteProgram(this._shader.prog),this._shader=void 0}_generate(e,t){if(this._vbo)return this._vbo;if(this._vbo||(this._vbo=e.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");let r=new Float32Array([-1,-1,0,0,0,-1,1,0,0,1,1,-1,0,1,0,1,-1,0,1,0,-1,1,0,0,1,1,1,0,1,1]);return e.bindBuffer(e.ARRAY_BUFFER,this._vbo),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),this._vbo}drawCameraFrame(e,t,r,n){if(!r.texture)return;let i=this._gl;i.disable(i.DEPTH_TEST),i.disable(i.SCISSOR_TEST),i.disable(i.CULL_FACE),i.disable(i.BLEND);let o=this._getCameraShader(i),s=this._generate(i,r);i.activeTexture(i.TEXTURE0),i.useProgram(o.prog),i.uniformMatrix4fv(o.unif_skinTexTransform,!1,u(r.dataWidth,r.dataHeight,e,t,r.uvTransform||a,n)),i.uniform1i(o.unif_skinSampler,0),i.bindTexture(i.TEXTURE_2D,r.texture),i.bindBuffer(i.ARRAY_BUFFER,s),i.vertexAttribPointer(o.attr_position,3,i.FLOAT,!1,20,0),i.enableVertexAttribArray(o.attr_position),i.vertexAttribPointer(o.attr_texCoord,2,i.FLOAT,!1,20,12),i.enableVertexAttribArray(o.attr_texCoord),i.drawArrays(i.TRIANGLES,0,6),i.disableVertexAttribArray(o.attr_position),i.disableVertexAttribArray(o.attr_texCoord),i.bindTexture(i.TEXTURE_2D,null),i.bindBuffer(i.ARRAY_BUFFER,null),i.useProgram(null)}_getCameraShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,o),i=n.compileShader(e,e.FRAGMENT_SHADER,s);e.attachShader(t,r),e.attachShader(t,i),n.linkProgram(e,t);let a=e.getUniformLocation(t,"skinTexTransform");if(!a)throw new Error("Unable to get uniform location skinTexTransform");let u=e.getUniformLocation(t,"skinSampler");if(!u)throw new Error("Unable to get uniform location skinSampler");return this._shader={prog:t,unif_skinTexTransform:a,unif_skinSampler:u,attr_position:e.getAttribLocation(t,"position"),attr_texCoord:e.getAttribLocation(t,"texCoord")},this._shader}};let o="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nattribute vec4 position;\nattribute vec4 texCoord;\nvarying vec4 skinTexVarying;\nuniform mat4 skinTexTransform;\n\nvoid main()\n{\n gl_Position = position;\n skinTexVarying = skinTexTransform * texCoord;\n}",s="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying vec4 skinTexVarying;\nuniform lowp sampler2D skinSampler;\n\nvoid main()\n{\n gl_FragColor = texture2DProj(skinSampler, skinTexVarying);\n}";function u(e,t,r,n,a,o){let s=i.mat4.create(),u=i.mat4.create();i.mat4.fromTranslation(u,[-.5,-.5,0]),i.mat4.multiply(s,u,s),o&&(i.mat4.fromScaling(u,[-1,1,1]),i.mat4.multiply(s,u,s)),i.mat4.fromRotation(u,-1*function(){if(window.screen.orientation)switch(window.screen.orientation.type){case"portrait-primary":return 270;case"landscape-secondary":return 180;case"portrait-secondary":return 90;default:return 0}else if(void 0!==window.orientation)switch(window.orientation){case 0:return 270;case 90:return 0;case 180:return 90;case-90:return 180}return 0}()*Math.PI/180,[0,0,1]),i.mat4.multiply(s,u,s);let c=i.vec3.create();c[0]=r,c[1]=n,c[2]=0,i.vec3.transformMat4(c,c,u);let f=Math.abs(c[0]),_=Math.abs(c[1]);i.mat4.fromScaling(u,[1,-1,1]),i.mat4.multiply(s,u,s);let d=f/_,l=e/t;return d>l?i.mat4.fromScaling(u,[1,l/d,1]):i.mat4.fromScaling(u,[d/l,1,1]),i.mat4.multiply(s,u,s),i.mat4.fromTranslation(u,[.5,.5,0]),i.mat4.multiply(s,u,s),i.mat4.multiply(s,a,s),s}t.cameraFrameTextureMatrix=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceDraw=void 0;const n=r(4);t.FaceDraw=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._normalbo&&this._gl.deleteBuffer(this._normalbo),this._ibo&&this._gl.deleteBuffer(this._ibo),this._shader&&this._gl.deleteProgram(this._shader.prog),this._vbo=void 0,this._normalbo=void 0,this._ibo=void 0,this._shader=void 0}_generateIBO(e,t){if(this._ibo&&this._lastIndices===e)return this._ibo;if(this._lastIndices=e,this._ibo||(this._ibo=t.createBuffer()),!this._ibo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this._ibo),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),this._ibo}_generateVBO(e,t){if(this._vbo||(this._vbo=t.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._vbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._vbo}_generateNormalBO(e,t){if(this._normalbo||(this._normalbo=t.createBuffer()),!this._normalbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._normalbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._normalbo}drawFace(e,t){let r=this._gl,n=this._getShader(r),i=this._generateVBO(t.getVertices(),r),a=this._generateNormalBO(t.getNormals(),r),o=this._generateIBO(t.getIndices(),r);r.enable(r.DEPTH_TEST),r.enable(r.CULL_FACE),r.useProgram(n.prog),r.uniformMatrix4fv(n.unif_matrix,!1,e),r.bindBuffer(r.ARRAY_BUFFER,i),r.vertexAttribPointer(n.attr_position,3,r.FLOAT,!1,12,0),r.enableVertexAttribArray(n.attr_position),r.bindBuffer(r.ARRAY_BUFFER,a),r.vertexAttribPointer(n.attr_normal,3,r.FLOAT,!1,12,0),r.enableVertexAttribArray(n.attr_normal),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,o),r.drawElements(r.TRIANGLES,t.getIndices().length,r.UNSIGNED_SHORT,0),r.disableVertexAttribArray(n.attr_position),r.disableVertexAttribArray(n.attr_normal),r.bindBuffer(r.ARRAY_BUFFER,null),r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,null)}_getShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,i),o=n.compileShader(e,e.FRAGMENT_SHADER,a);e.attachShader(t,r),e.attachShader(t,o),n.linkProgram(e,t);let s=e.getUniformLocation(t,"matrix");if(!s)throw new Error("Unable to get uniform location mattrix");return this._shader={prog:t,unif_matrix:s,attr_position:e.getAttribLocation(t,"position"),attr_normal:e.getAttribLocation(t,"normal")},this._shader}};let i="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 matrix;\nattribute vec4 position;\nattribute vec3 normal;\nvarying highp vec3 vnormal;\n\nvoid main()\n{\n gl_Position = matrix * position;\n vnormal = normal;\n}",a="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying vec4 skinTexVarying;\nvarying highp vec3 vnormal;\nuniform lowp sampler2D skinSampler;\n\nvoid main()\n{\n vec3 normal2 = 0.5 * vnormal + 0.5;\n gl_FragColor = vec4(normal2.x , normal2.y, normal2.z, 1.0);\n}"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceDrawProject=void 0;const n=r(4);t.FaceDrawProject=class{constructor(e){this._gl=e}dispose(){this._vbo&&this._gl.deleteBuffer(this._vbo),this._uvbo&&this._gl.deleteBuffer(this._uvbo),this._ibo&&this._gl.deleteBuffer(this._ibo),this._shader&&this._gl.deleteProgram(this._shader.prog),this._vbo=void 0,this._uvbo=void 0,this._ibo=void 0,this._shader=void 0}_generateIBO(e,t){if(this._ibo&&this._lastIndices===e)return this._ibo;if(this._lastIndices=e,this._ibo||(this._ibo=t.createBuffer()),!this._ibo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this._ibo),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.STATIC_DRAW),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null),this._ibo}_generateVBO(e,t){if(this._vbo||(this._vbo=t.createBuffer()),!this._vbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._vbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._vbo}_generateUVBO(e,t){if(this._uvbo||(this._uvbo=t.createBuffer()),!this._uvbo)throw new Error("Unable to create buffer object");return t.bindBuffer(t.ARRAY_BUFFER,this._uvbo),t.bufferData(t.ARRAY_BUFFER,e,t.STREAM_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),this._uvbo}drawFace(e,t,r,n,i,a){let o=this._gl,s=this._getShader(o),u=this._generateVBO(t,o),c=this._generateUVBO(n,o),f=this._generateIBO(i,o);o.enable(o.DEPTH_TEST),o.enable(o.CULL_FACE),o.useProgram(s.prog),o.uniformMatrix4fv(s.unif_matrix,!1,e),o.uniformMatrix4fv(s.unif_uvmatrix,!1,r),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,a),o.uniform1i(s.unif_sampler,0),o.bindBuffer(o.ARRAY_BUFFER,u),o.vertexAttribPointer(s.attr_position,3,o.FLOAT,!1,12,0),o.enableVertexAttribArray(s.attr_position),o.bindBuffer(o.ARRAY_BUFFER,c),o.vertexAttribPointer(s.attr_uv,3,o.FLOAT,!1,12,0),o.enableVertexAttribArray(s.attr_uv),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,f),o.drawElements(o.TRIANGLES,6912,o.UNSIGNED_SHORT,0),o.disableVertexAttribArray(s.attr_position),o.disableVertexAttribArray(s.attr_uv),o.bindBuffer(o.ARRAY_BUFFER,null),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,null)}_getShader(e){if(this._shader)return this._shader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=n.compileShader(e,e.VERTEX_SHADER,i),o=n.compileShader(e,e.FRAGMENT_SHADER,a);e.attachShader(t,r),e.attachShader(t,o),n.linkProgram(e,t);let s=e.getUniformLocation(t,"matrix");if(!s)throw new Error("Unable to get uniform location matrix");let u=e.getUniformLocation(t,"uvmatrix");if(!u)throw new Error("Unable to get uniform location matrix");let c=e.getUniformLocation(t,"uSampler");if(!c)throw new Error("Unable to get uniform location sampler");return this._shader={prog:t,unif_matrix:s,unif_sampler:c,unif_uvmatrix:u,attr_position:e.getAttribLocation(t,"position"),attr_uv:e.getAttribLocation(t,"uv"),attr_texturecoord:e.getAttribLocation(t,"aTextureCoord")},this._shader}};let i="\n#ifndef GL_ES\n#define highp\n#define mediump\n#define lowp\n#endif\n\nuniform mat4 matrix;\nuniform mat4 uvmatrix;\nattribute vec4 position;\nattribute vec3 normal;\nattribute vec3 uv;\n\n// varying highp vec3 vnormal;\n\nvarying highp vec2 vTextureCoord;\nvarying highp float vAlpha;\n\nvoid main()\n{\n gl_Position = matrix * position;\n vec4 ret = uvmatrix * vec4(uv.x, uv.y, uv.z, 1.0);\n ret.x /= ret.w * 2.0;\n ret.y /= ret.w * 2.0;\n ret.x += 0.5;\n ret.y += 0.0;\n vAlpha = 1.0;\n vTextureCoord = ret.xy;\n}",a="\n#define highp mediump\n#ifdef GL_ES\n // define default precision for float, vec, mat.\n precision highp float;\n#else\n#define highp\n#define mediump\n#define lowp\n#endif\n\nvarying highp vec2 vTextureCoord;\nvarying highp vec3 vnormal;\nvarying highp float vAlpha;\nuniform lowp sampler2D uSampler;\n\nvoid main()\n{\n // vec3 normal2 = 0.5 * vnormal + 0.5;\n vec4 p = texture2D(uSampler, vTextureCoord);\n p.a = vAlpha;\n gl_FragColor = p; // vec4(normal2.x , normal2.y, normal2.z, 1.0);\n}"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImageProcessGL=void 0;const n=r(1),i=r(34),a=r(3),o=r(4);t.ImageProcessGL=class{constructor(e){this._gl=e,this._isPaused=!0,this._hadFrames=!1,this._isUserFacing=!1,this._cameraToScreenRotation=0,this._isUploadFrame=!0,this._computedTransformRotation=-1,this._computedFrontCameraRotation=!1,this._cameraUvTransform=n.mat4.create(),this._framebufferWidth=0,this._framebufferHeight=0,this._framebufferId=null,this._renderTexture=null}resetGLContext(){this._framebufferId=null,this._renderTexture=null,this._vertexBuffer=void 0,this._indexBuffer=void 0,this._greyscaleShader=void 0}destroy(){this.resetGLContext()}uploadFrame(e,t,r,n){let o=this._gl;i.GLStateManager.get(o).push();const s=o.isEnabled(o.SCISSOR_TEST),u=o.isEnabled(o.DEPTH_TEST),c=o.isEnabled(o.BLEND),f=o.isEnabled(o.CULL_FACE),_=o.getParameter(o.ACTIVE_TEXTURE),d=o.getParameter(o.UNPACK_FLIP_Y_WEBGL),l=o.getParameter(o.CURRENT_PROGRAM);o.activeTexture(o.TEXTURE0);const h=o.getParameter(o.TEXTURE_BINDING_2D),m=o.getParameter(o.FRAMEBUFFER_BINDING),p=o.getParameter(o.ARRAY_BUFFER_BINDING),b=o.getParameter(o.ELEMENT_ARRAY_BUFFER_BINDING);o.disable(o.SCISSOR_TEST),o.disable(o.DEPTH_TEST),o.disable(o.BLEND),o.disable(o.CULL_FACE),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),o.bindTexture(o.TEXTURE_2D,e);const g=o.RGBA,v=o.RGBA,w=o.UNSIGNED_BYTE;o.texImage2D(o.TEXTURE_2D,0,g,v,w,t);let y=0,M=0;"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement?(y=t.videoWidth,M=t.videoHeight):(y=t.width,M=t.height),M>y&&(M=[y,y=M][0]),this._updateTransforms(r,n);let E=this._getFramebuffer(o,a.profile.dataWidth/4,a.profile.dataHeight),A=this._getVertexBuffer(o),x=this._getIndexBuffer(o),T=this._getGreyscaleShader(o);const R=o.getVertexAttrib(T.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_SIZE),k=o.getVertexAttrib(T.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_TYPE),F=o.getVertexAttrib(T.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_NORMALIZED),S=o.getVertexAttrib(T.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_STRIDE),L=o.getVertexAttribOffset(T.aVertexPositionLoc,o.VERTEX_ATTRIB_ARRAY_POINTER),I=o.getVertexAttrib(T.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_SIZE),P=o.getVertexAttrib(T.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_TYPE),O=o.getVertexAttrib(T.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_NORMALIZED),z=o.getVertexAttrib(T.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_STRIDE),U=o.getVertexAttribOffset(T.aTextureCoordLoc,o.VERTEX_ATTRIB_ARRAY_POINTER);o.bindFramebuffer(o.FRAMEBUFFER,E),o.viewport(0,0,this._framebufferWidth,this._framebufferHeight),o.clear(o.COLOR_BUFFER_BIT),o.bindBuffer(o.ARRAY_BUFFER,A),o.vertexAttribPointer(T.aVertexPositionLoc,2,o.FLOAT,!1,16,0),o.enableVertexAttribArray(T.aVertexPositionLoc),o.vertexAttribPointer(T.aTextureCoordLoc,2,o.FLOAT,!1,16,8),o.enableVertexAttribArray(T.aTextureCoordLoc),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,x),o.useProgram(T.program),o.uniform1f(T.uTexWidthLoc,a.profile.dataWidth),o.uniformMatrix4fv(T.uUvTransformLoc,!1,this._cameraUvTransform),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,e),o.uniform1i(T.uSamplerLoc,0),o.drawElements(o.TRIANGLES,6,o.UNSIGNED_SHORT,0),o.vertexAttribPointer(T.aVertexPositionLoc,R,k,F,S,L),o.vertexAttribPointer(T.aTextureCoordLoc,I,P,O,z,U),o.bindFramebuffer(o.FRAMEBUFFER,m),o.bindBuffer(o.ARRAY_BUFFER,p),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,b),o.useProgram(l),o.bindTexture(o.TEXTURE_2D,h),o.activeTexture(_),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,d),c&&o.enable(o.BLEND),f&&o.enable(o.CULL_FACE),u&&o.enable(o.DEPTH_TEST),s&&o.enable(o.SCISSOR_TEST)}readFrame(e,t){let r=this._gl,n=new Uint8Array(t),i=this._getFramebuffer(r,a.profile.dataWidth/4,a.profile.dataHeight);const o=r.getParameter(r.FRAMEBUFFER_BINDING);return r.bindFramebuffer(r.FRAMEBUFFER,i),r.readPixels(0,0,this._framebufferWidth,this._framebufferHeight,r.RGBA,r.UNSIGNED_BYTE,n),r.bindFramebuffer(r.FRAMEBUFFER,o),{uvTransform:this._cameraUvTransform,data:t,texture:e,dataWidth:a.profile.dataWidth,dataHeight:a.profile.dataHeight,userFacing:this._computedFrontCameraRotation}}_updateTransforms(e,t){e==this._computedTransformRotation&&t==this._computedFrontCameraRotation||(this._computedTransformRotation=e,this._computedFrontCameraRotation=t,this._cameraUvTransform=this._getCameraUvTransform())}_getCameraUvTransform(){switch(this._computedTransformRotation){case 270:return new Float32Array([0,1,0,0,-1,0,0,0,0,0,1,0,1,0,0,1]);case 180:return new Float32Array([-1,0,0,0,0,-1,0,0,0,0,1,0,1,1,0,1]);case 90:return new Float32Array([0,-1,0,0,1,0,0,0,0,0,1,0,0,1,0,1])}return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}_getFramebuffer(e,t,r){if(this._framebufferWidth===t&&this._framebufferHeight===r&&this._framebufferId)return this._framebufferId;if(this._framebufferId&&(e.deleteFramebuffer(this._framebufferId),this._framebufferId=null),this._renderTexture&&(e.deleteTexture(this._renderTexture),this._renderTexture=null),this._framebufferId=e.createFramebuffer(),!this._framebufferId)throw new Error("Unable to create framebuffer");if(e.bindFramebuffer(e.FRAMEBUFFER,this._framebufferId),this._renderTexture=e.createTexture(),!this._renderTexture)throw new Error("Unable to create render texture");e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._renderTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,r,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameterf(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this._renderTexture,0);let n=e.checkFramebufferStatus(e.FRAMEBUFFER);if(n!==e.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer not complete: "+n.toString());return this._framebufferWidth=t,this._framebufferHeight=r,e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this._framebufferId}_getVertexBuffer(e){if(this._vertexBuffer)return this._vertexBuffer;if(this._vertexBuffer=e.createBuffer(),!this._vertexBuffer)throw new Error("Unable to create vertex buffer");e.bindBuffer(e.ARRAY_BUFFER,this._vertexBuffer);let t=new Float32Array([-1,-1,0,0,-1,1,0,1,1,1,1,1,1,-1,1,0]);return e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW),this._vertexBuffer}_getIndexBuffer(e){if(this._indexBuffer)return this._indexBuffer;if(this._indexBuffer=e.createBuffer(),!this._indexBuffer)throw new Error("Unable to create index buffer");e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._indexBuffer);let t=new Uint16Array([0,1,2,0,2,3]);return e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW),this._indexBuffer}_getGreyscaleShader(e){if(this._greyscaleShader)return this._greyscaleShader;let t=e.createProgram();if(!t)throw new Error("Unable to create program");let r=o.compileShader(e,e.VERTEX_SHADER,s),n=o.compileShader(e,e.FRAGMENT_SHADER,u);e.attachShader(t,r),e.attachShader(t,n),o.linkProgram(e,t);let i=e.getUniformLocation(t,"uTexWidth");if(!i)throw new Error("Unable to get uniform location uTexWidth");let a=e.getUniformLocation(t,"uUvTransform");if(!a)throw new Error("Unable to get uniform location uUvTransform");let c=e.getUniformLocation(t,"uSampler");if(!c)throw new Error("Unable to get uniform location uSampler");return this._greyscaleShader={program:t,aVertexPositionLoc:e.getAttribLocation(t,"aVertexPosition"),aTextureCoordLoc:e.getAttribLocation(t,"aTextureCoord"),uTexWidthLoc:i,uUvTransformLoc:a,uSamplerLoc:c},this._greyscaleShader}};let s="\n attribute vec4 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n varying highp vec2 vTextureCoord1;\n varying highp vec2 vTextureCoord2;\n varying highp vec2 vTextureCoord3;\n varying highp vec2 vTextureCoord4;\n\n uniform float uTexWidth;\n\tuniform mat4 uUvTransform;\n\n void main(void) {\n highp vec2 offset1 = vec2(1.5 / uTexWidth, 0);\n highp vec2 offset2 = vec2(0.5 / uTexWidth, 0);\n\n gl_Position = aVertexPosition;\n vTextureCoord1 = (uUvTransform * vec4(aTextureCoord - offset1, 0, 1)).xy;\n vTextureCoord2 = (uUvTransform * vec4(aTextureCoord - offset2, 0, 1)).xy;\n vTextureCoord3 = (uUvTransform * vec4(aTextureCoord + offset2, 0, 1)).xy;\n vTextureCoord4 = (uUvTransform * vec4(aTextureCoord + offset1, 0, 1)).xy;\n }\n",u="\n varying highp vec2 vTextureCoord1;\n varying highp vec2 vTextureCoord2;\n varying highp vec2 vTextureCoord3;\n varying highp vec2 vTextureCoord4;\n\n uniform sampler2D uSampler;\n\n const lowp vec3 colorWeights = vec3(77.0 / 256.0, 150.0 / 256.0, 29.0 / 256.0);\n\n void main(void) {\n lowp vec4 outpx;\n\n outpx.r = dot(colorWeights, texture2D(uSampler, vTextureCoord1).xyz);\n outpx.g = dot(colorWeights, texture2D(uSampler, vTextureCoord2).xyz);\n outpx.b = dot(colorWeights, texture2D(uSampler, vTextureCoord3).xyz);\n outpx.a = dot(colorWeights, texture2D(uSampler, vTextureCoord4).xyz);\n\n gl_FragColor = outpx;\n }\n"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GLStateManager=void 0;const n=new Map;class i{constructor(e){this._gl=e,this._viewports=[],this._underlyingViewport=this._gl.viewport,this._viewports.push(this._gl.getParameter(this._gl.VIEWPORT)),this._gl.viewport=(e,t,r,n)=>{this._viewports[this._viewports.length-1]=[e,t,r,n],this._underlyingViewport.call(this._gl,e,t,r,n)}}static get(e){let t=n.get(e);return t||(t=new i(e),n.set(e,t)),t}push(){this._viewports.push(this._viewports[this._viewports.length-1])}pop(){const e=this._viewports.pop(),t=this._viewports[this._viewports.length-1];e&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]||this._underlyingViewport.call(this._gl,t[0],t[1],t[2],t[3])}}t.GLStateManager=i},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ImageBitmapCameraSource=void 0;const i=r(3),a=r(2),o=r(8),s=r(5),u=r(0),c=r(7),f=r(1);class _ extends o.Source{constructor(e,t,r){super(),this._impl=e,this._pipeline=t,this._deviceId=r,this._currentStream=null,this._activeDeviceId=null,this._isPaused=!0,this._isUserFacing=!1,this._hadFrames=!1,this._canvas=new OffscreenCanvas(640,480),this._context=this._canvas.getContext("2d"),this._lastFrameTime=-1,this._video=document.createElement("video"),this._cameraToDeviceTransform=f.mat4.create(),this._cameraToDeviceTransformUserFacing=f.mat4.create(),this._cameraModel=new Float32Array([300,300,160,120,0,0]),this._hasStartedOrientation=!1,this._deviceMotionListener=e=>{let t=a.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.accelerationIncludingGravity&&null!==e.accelerationIncludingGravity.x&&null!==e.accelerationIncludingGravity.y&&null!==e.accelerationIncludingGravity.z&&t.motionAccelerometerSubmit(r,e.accelerationIncludingGravity.x*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.y*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.z*i.profile.deviceMotionMutliplier),null===e.rotationRate||null===e.rotationRate.alpha||null===e.rotationRate.beta||null===e.rotationRate.gamma||this._hasStartedOrientation?this._hasStartedOrientation||this._startDeviceOrientation():(e.timeStamp,t.motionRotationRateSubmit(r,e.rotationRate.alpha*Math.PI/-180,e.rotationRate.beta*Math.PI/-180,e.rotationRate.gamma*Math.PI/-180))},u.zcout("Using ImageBitmap camera source"),f.mat4.fromScaling(this._cameraToDeviceTransformUserFacing,[-1,1,-1]),this._video.muted=!0,this._video.setAttribute("playsinline",""),this._video.setAttribute("webkit-playsinline",""),i.profile.videoElementInDOM&&(this._video.style.width="0px",this._video.style.height="0px",document.body.appendChild(this._video)),this._video.addEventListener("loadedmetadata",()=>{this._hadFrames=!0})}destroy(){this.pause(),c.deleteCameraSource(this._impl)}_stop(){if(!this._currentStream)return;this._currentStream.getTracks().forEach(e=>e.stop()),this._currentStream=null}pause(){this._isPaused=!0;let e=a.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0),this._stopDeviceMotion(),this._syncCamera()}start(){var e;let t=a.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this),this._isPaused=!1,this._startDeviceMotion(),this._syncCamera()}_getConstraints(){return n(this,void 0,void 0,(function*(){let e,t;this._deviceId!==_.DEFAULT_DEVICE_ID&&this._deviceId!==_.USER_DEFAULT_DEVICE_ID?e=this._deviceId:t=this._deviceId===_.DEFAULT_DEVICE_ID?"environment":"user";let r={audio:!1,video:{facingMode:t,width:i.profile.videoWidth,height:i.profile.videoHeight,frameRate:i.profile.requestHighFrameRate?60:void 0,deviceId:e}};if(e)return r;if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return r;let n=yield navigator.mediaDevices.enumerateDevices(),a=!1;return n=n.filter(e=>{if("videoinput"!==e.kind)return!1;if(e.getCapabilities){a=!0;let r=e.getCapabilities();if(r&&r.facingMode&&r.facingMode.indexOf("user"===t?"user":"environment")<0)return!1}return!0}),a&&0!==n.length?("object"==typeof r.video&&(u.zcout("choosing device ID",n[n.length-1].deviceId),r.video.deviceId=n[n.length-1].deviceId),r):r}))}getFrame(e){var t,r;if(!this._context)return;if(!this._hadFrames)return;if(e)return;let n=performance.now();if(n<this._lastFrameTime+25)return;this._lastFrameTime=n,this._canvas.width!==this._video.videoWidth&&(this._canvas.width=this._video.videoWidth),this._canvas.height!==this._video.videoHeight&&(this._canvas.height=this._video.videoHeight),this._context.drawImage(this._video,0,0);const o=this._canvas.transferToImageBitmap();let u=s.cameraRotationForScreenOrientation(!1),c=a.Pipeline.get(this._pipeline);if(!c)return;let f=300*i.profile.dataWidth/320;this._cameraModel[0]=f,this._cameraModel[1]=f,this._cameraModel[2]=.5*i.profile.dataWidth,this._cameraModel[3]=.5*i.profile.dataHeight;let _=c.registerToken({dataWidth:this._canvas.width,dataHeight:this._canvas.height,texture:void 0,userFacing:this._isUserFacing,cameraSource:this,cameraModel:this._cameraModel.slice(),cameraToDevice:this._isUserFacing?this._cameraToDeviceTransformUserFacing:this._cameraToDeviceTransform});null===(r=null===(t=a.Pipeline.get(this._pipeline))||void 0===t?void 0:t.sendImageBitmapToWorker)||void 0===r||r.call(t,o,u,this._isUserFacing,_,this._cameraModel,this._isUserFacing?this._cameraToDeviceTransformUserFacing:this._cameraToDeviceTransform)}_getUserMedia(){return n(this,void 0,void 0,(function*(){let e=yield this._getConstraints();return navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?yield navigator.mediaDevices.getUserMedia(e):yield new Promise((t,r)=>{navigator.getUserMedia(e,t,r)})}))}_syncCamera(){return n(this,void 0,void 0,(function*(){if(this._currentStream&&this._isPaused)this._stop();else if(this._currentStream&&this._activeDeviceId!==this._deviceId&&this._stop(),!this._isPaused){if(this._activeDeviceId=this._deviceId,this._currentStream=yield this._getUserMedia(),this._isPaused)return void(yield this._syncCamera());if(this._isUserFacing=!1,this._currentStream){let e=this._currentStream.getVideoTracks();e.length>0&&(this._isUserFacing="user"===e[0].getSettings().facingMode)}this._video.src="",this._video.loop=!1,this._video.muted=!0,this._video.srcObject=this._currentStream,this._video.play()}}))}_startDeviceOrientation(){this._hasStartedOrientation||(this._hasStartedOrientation=!0,window.addEventListener("deviceorientation",e=>{let t=a.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.alpha&&null!==e.beta&&null!==e.gamma&&t.motionAttitudeSubmit(r,e.alpha,e.beta,e.gamma)}))}_startDeviceMotion(){window.addEventListener("devicemotion",this._deviceMotionListener,!1)}_stopDeviceMotion(){window.removeEventListener("devicemotion",this._deviceMotionListener)}uploadGL(e){const t=a.Pipeline.get(this._pipeline),r=null==t?void 0:t.glContext;if(!e||e.texture||!e.frame||!t||!r)return;let n=t.getVideoTexture();n&&(r.bindTexture(r.TEXTURE_2D,n),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e.frame),r.bindTexture(r.TEXTURE_2D,null),e.texture=n,e.frame.close(),delete e.frame)}}t.ImageBitmapCameraSource=_,_.USER_DEFAULT_DEVICE_ID="Simulated User Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b",_.DEFAULT_DEVICE_ID="Simulated Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b"},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{u(n.next(e))}catch(e){a(e)}}function s(e){try{u(n.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}u((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.MSTPCameraSource=void 0;const i=r(3),a=r(2),o=r(8),s=r(5),u=r(0),c=r(7);class f extends o.Source{constructor(e,t,r){super(),this._impl=e,this._pipeline=t,this._deviceId=r,this._currentStream=null,this._activeDeviceId=null,this._isPaused=!0,this._isUserFacing=!1,this._cameraToScreenRotation=0,this._hasStartedOrientation=!1,this._deviceMotionListener=e=>{let t=a.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.accelerationIncludingGravity&&null!==e.accelerationIncludingGravity.x&&null!==e.accelerationIncludingGravity.y&&null!==e.accelerationIncludingGravity.z&&t.motionAccelerometerSubmit(r,e.accelerationIncludingGravity.x*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.y*i.profile.deviceMotionMutliplier,e.accelerationIncludingGravity.z*i.profile.deviceMotionMutliplier),null===e.rotationRate||null===e.rotationRate.alpha||null===e.rotationRate.beta||null===e.rotationRate.gamma||this._hasStartedOrientation?this._hasStartedOrientation||this._startDeviceOrientation():(e.timeStamp,t.motionRotationRateSubmit(r,e.rotationRate.alpha*Math.PI/-180,e.rotationRate.beta*Math.PI/-180,e.rotationRate.gamma*Math.PI/-180))},u.zcout("Using MSTP camera source")}destroy(){this.pause(),c.deleteCameraSource(this._impl)}_stop(){if(!this._currentStream)return;this._currentStream.getTracks().forEach(e=>e.stop()),this._currentStream=null}pause(){this._isPaused=!0;let e=a.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0),this._stopDeviceMotion(),this._syncCamera()}start(){var e;let t=a.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this),this._isPaused=!1,this._startDeviceMotion(),this._syncCamera()}_getConstraints(){return n(this,void 0,void 0,(function*(){let e,t;this._deviceId!==f.DEFAULT_DEVICE_ID&&this._deviceId!==f.USER_DEFAULT_DEVICE_ID?e=this._deviceId:t=this._deviceId===f.DEFAULT_DEVICE_ID?"environment":"user";let r={audio:!1,video:{facingMode:t,width:i.profile.videoWidth,height:i.profile.videoHeight,frameRate:i.profile.requestHighFrameRate?60:30,deviceId:e}};if(e)return r;if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return r;let n=yield navigator.mediaDevices.enumerateDevices(),a=!1;return n=n.filter(e=>{if("videoinput"!==e.kind)return!1;if(e.getCapabilities){a=!0;let r=e.getCapabilities();if(r&&r.facingMode&&r.facingMode.indexOf("user"===t?"user":"environment")<0)return!1}return!0}),a&&0!==n.length?("object"==typeof r.video&&(u.zcout("choosing device ID",n[n.length-1].deviceId),r.video.deviceId=n[n.length-1].deviceId),r):r}))}getFrame(e){var t,r;let n=s.cameraRotationForScreenOrientation(!1);n!=this._cameraToScreenRotation&&(null===(r=null===(t=a.Pipeline.get(this._pipeline))||void 0===t?void 0:t.sendCameraToScreenRotationToWorker)||void 0===r||r.call(t,n),this._cameraToScreenRotation=n)}_getUserMedia(){return n(this,void 0,void 0,(function*(){let e=yield this._getConstraints();return navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?yield navigator.mediaDevices.getUserMedia(e):yield new Promise((t,r)=>{navigator.getUserMedia(e,t,r)})}))}_syncCamera(){return n(this,void 0,void 0,(function*(){if(this._currentStream&&this._isPaused)this._stop();else if(this._currentStream&&this._activeDeviceId!==this._deviceId&&this._stop(),!this._isPaused){if(this._activeDeviceId=this._deviceId,this._currentStream=yield this._getUserMedia(),this._isPaused)return void(yield this._syncCamera());if(this._isUserFacing=!1,this._currentStream){let e=this._currentStream.getVideoTracks();if(e.length>0){this._isUserFacing="user"===e[0].getSettings().facingMode;let t=new MediaStreamTrackProcessor({track:e[0]}),r=a.Pipeline.get(this._pipeline);r&&r.sendCameraStreamToWorker(this._impl,t.readable,this._isUserFacing)}}}}))}_startDeviceOrientation(){this._hasStartedOrientation||(this._hasStartedOrientation=!0,window.addEventListener("deviceorientation",e=>{let t=a.Pipeline.get(this._pipeline);if(!t)return;let r=void 0!==e.timeStamp&&null!==e.timeStamp?e.timeStamp:performance.now();null!==e.alpha&&null!==e.beta&&null!==e.gamma&&t.motionAttitudeSubmit(r,e.alpha,e.beta,e.gamma)}))}_startDeviceMotion(){window.addEventListener("devicemotion",this._deviceMotionListener,!1)}_stopDeviceMotion(){window.removeEventListener("devicemotion",this._deviceMotionListener)}uploadGL(e){const t=a.Pipeline.get(this._pipeline),r=null==t?void 0:t.glContext;if(!e||e.texture||!e.frame||!t||!r)return;let n=t.getVideoTexture();n&&(r.bindTexture(r.TEXTURE_2D,n),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e.frame),r.bindTexture(r.TEXTURE_2D,null),e.texture=n,e.frame.close(),delete e.frame)}}t.MSTPCameraSource=f,f.USER_DEFAULT_DEVICE_ID="Simulated User Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b",f.DEFAULT_DEVICE_ID="Simulated Default Device ID: a908df7f-5661-4d20-b227-a1c15d2fdb4b"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceLandmark=t.getFaceLandmark=t.destroyFaceLandmark=t.createFaceLandmark=void 0;const n=r(1),i=r(38),a=r(0);let o=1,s=new Map;t.createFaceLandmark=function(e){let t=o++;return s.set(t,new u(e)),a.zcout("face_landmark_t initialized"),t},t.destroyFaceLandmark=function(e){s.delete(e)},t.getFaceLandmark=function(e){return s.get(e)};class u{constructor(e){this._name=e,this.anchor_pose=n.mat4.create()}_getVertex(e,t,r){let n=r.mean.slice();for(let t=0;t<50;t++)n[0]+=e[t]*r.identity[3*t+0],n[1]+=e[t]*r.identity[3*t+1],n[2]+=e[t]*r.identity[3*t+2];for(let e=0;e<29;e++)n[0]+=t[e]*r.expression[3*e+0],n[1]+=t[e]*r.expression[3*e+1],n[2]+=t[e]*r.expression[3*e+2];return n}update(e,t,r){let a,o=i.landmarkData[this._name.toString()];if(o){if(Array.isArray(o)){a=this._getVertex(e,t,o[0]);let r=this._getVertex(e,t,o[1]);a[0]=.5*(a[0]+r[0]),a[1]=.5*(a[1]+r[1]),a[2]=.5*(a[2]+r[2])}else a=this._getVertex(e,t,o);r&&(a[0]*=-1),n.mat4.fromTranslation(this.anchor_pose,a)}}}t.FaceLandmark=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.landmarkData=void 0,t.landmarkData={0:[{mean:[.235,.2344,.7305],identity:[.008,.0087,.0024,-.0026,6e-4,-.0022,5e-4,.0033,.0026,.0017,-.0055,-8e-4,.0011,.0059,0,2e-4,.001,-.001,-.0044,-.0011,-1e-4,.0024,.0019,-9e-4,4e-4,-.0015,0,.0038,.0013,3e-4,.002,-.0021,.0018,.0023,.0011,.0012,-.0011,-.0017,9e-4,-.0012,-8e-4,7e-4,-.0017,.0029,-.0029,8e-4,-.0027,8e-4,-.0017,4e-4,9e-4,-.001,-3e-4,8e-4,-.0016,-3e-4,-7e-4,.0016,-9e-4,.0021,-5e-4,.0011,-.0024,-1e-4,6e-4,1e-4,-.0026,-4e-4,-3e-4,-9e-4,5e-4,3e-4,-8e-4,-.001,-4e-4,-8e-4,.0022,-.0014,-1e-4,-.0023,0,-.0018,7e-4,-.0036,.0017,.0017,-.0018,-2e-4,-4e-4,-9e-4,-8e-4,3e-4,.0012,9e-4,-4e-4,-.0016,5e-4,-.0013,.0011,.0023,.0029,.0024,.0017,-.0027,-4e-4,-.001,-.0018,-.0015,-.001,.001,-.0013,-1e-4,-2e-4,7e-4,3e-4,3e-4,-.0016,9e-4,-.0021,4e-4,.0014,.002,-7e-4,-4e-4,2e-4,-4e-4,-6e-4,-9e-4,.0015,4e-4,-4e-4,5e-4,-.0015,9e-4,3e-4,3e-4,-2e-4,-8e-4,-9e-4,.0023,4e-4,1e-4,-4e-4,-1e-4,7e-4,2e-4,.001,1e-4,-.0029,-5e-4],expression:[0,3e-4,.0052,-7e-4,-.0051,-.0103,0,.0019,.0027,-.0054,.0135,.035,-5e-4,-6e-4,.0025,-.0045,-.0557,-.003,-.0191,-.1199,.0548,-.0036,-.0682,-.0167,2e-4,-.0085,-.0085,.0044,.0041,-.0568,.0044,.179,.0065,-.0017,-.1006,.0036,-.0267,-.3279,.0301,-.0011,-.0173,-.001,.0046,.2808,.0207,.0162,.238,-.0225,.0017,.1041,.0203,5e-4,.0161,.0031,-.0436,.6504,.0873,-.0099,.1039,.0048,-.0254,.2534,-.0042,.003,-.0106,-.0153,-.0118,.0252,9e-4,-.0071,.0099,.007,-.0724,.0461,-.0235,.0833,.004,.0141,-.0219,.0132,-.0042,-.0179,.0045,-.0215,.3638,.0054,-.0445]},{mean:[.2358,.1466,.7183],identity:[.0077,.0093,1e-4,-.0022,0,-.0041,5e-4,.0022,.0028,.0018,-.0038,-.0013,.001,.0044,-2e-4,0,.0017,-.0016,-.0043,-2e-4,-1e-4,.0023,9e-4,5e-4,-7e-4,-4e-4,-.0017,.003,7e-4,6e-4,.0011,-.0018,5e-4,.0018,-8e-4,4e-4,-.0023,-6e-4,-3e-4,-.0015,-.0014,-1e-4,-.0018,.0027,-.0026,3e-4,-.0031,.0011,-.0026,-.0011,.0012,-.0013,-2e-4,7e-4,-.0021,.0021,4e-4,.0012,-.001,.002,-3e-4,2e-4,-.0026,-3e-4,.001,1e-4,-.0018,-.001,9e-4,-.0011,.001,4e-4,-8e-4,-7e-4,-.001,-3e-4,7e-4,-5e-4,-6e-4,-.0019,-5e-4,-.002,7e-4,-.0027,.0014,.0013,6e-4,-5e-4,-3e-4,-3e-4,-.001,0,.0019,1e-4,6e-4,-.0012,4e-4,-9e-4,4e-4,.0025,3e-4,.0024,.0017,-9e-4,-.0015,-.0015,-.001,-.0023,-.001,-5e-4,-4e-4,8e-4,9e-4,7e-4,2e-4,7e-4,-9e-4,9e-4,-.0013,1e-4,9e-4,2e-4,6e-4,-6e-4,-8e-4,-4e-4,-7e-4,8e-4,.0019,3e-4,.0015,2e-4,-.0015,-3e-4,0,6e-4,3e-4,6e-4,-6e-4,2e-4,5e-4,-4e-4,.0012,-4e-4,2e-4,-8e-4,6e-4,-4e-4,2e-4,-.0021],expression:[-.0034,.0054,.0069,.004,6e-4,-.0104,-3e-4,.0036,.0025,.0065,.0296,.0208,-9e-4,.0154,.0029,-.0167,.0124,.004,-.0102,.0351,.028,-.019,.0146,-.0035,-.0023,-.0069,-.0051,-.01,.0262,-.028,.0112,.082,.023,-.0019,-.066,-.0104,-.0408,.0164,.0075,-.0074,.0367,.0041,.0517,-.0207,.0045,.0291,-.0672,-.0129,.0345,-.1558,-.0106,.0037,-.0437,-.0021,.0854,-.1121,.0187,.0041,.0072,.0011,.0193,-.0143,-.0119,.005,-.02,-.0122,-.008,.0527,.0036,-.006,.0222,.007,-.0429,.046,-.0046,.0226,-.0059,.0202,-.0173,.0087,0,-.0067,-.0095,-.0153,.1506,-.0017,.0021]}],1:[{mean:[-.2271,.2323,.7319],identity:[-.0084,.0097,.0018,.0041,2e-4,-.002,-.0012,.0036,.0019,-9e-4,-.0063,-.001,-3e-4,.0053,6e-4,1e-4,5e-4,-.0015,.0044,-.0025,-.0015,-.002,.0016,-6e-4,2e-4,-.0013,0,-.0022,2e-4,2e-4,-.0025,-.0014,.0015,8e-4,2e-4,.0012,6e-4,-6e-4,.0017,0,3e-4,-1e-4,.0024,.0025,-.0029,-.0015,-.0015,1e-4,.0031,-.0016,7e-4,.0019,6e-4,.002,9e-4,.001,-.0014,-.002,-.0015,.0029,1e-4,5e-4,-.0023,8e-4,-.0011,.0019,.0017,-3e-4,-.0011,-3e-4,.0011,-8e-4,.0019,-.0022,1e-4,.0015,.0017,-8e-4,-.0011,-.0022,3e-4,.0022,6e-4,-.003,-2e-4,0,-.0017,-2e-4,0,1e-4,4e-4,.0012,.0019,-.0014,4e-4,-.0017,-.0012,-.0011,.0021,-.0029,.0026,.0018,-.0023,-.0029,1e-4,.0014,-.0019,-4e-4,-4e-4,.0023,-.0016,0,-9e-4,.0014,-.0015,.0015,-.0016,-.0011,-.0022,1e-4,-.0018,.0027,-.0013,4e-4,-1e-4,-5e-4,.0011,-2e-4,.0015,5e-4,-9e-4,-1e-4,.0029,6e-4,0,-3e-4,7e-4,-8e-4,-5e-4,.0025,3e-4,2e-4,-8e-4,-1e-4,3e-4,0,.0014,2e-4,-.0024,1e-4],expression:[-.0025,-9e-4,.006,.004,-.0027,-.0113,-8e-4,.001,.0031,-.0016,.0144,.0382,-3e-4,-5e-4,.0035,-.0044,-.0511,-.0014,-7e-4,-.1007,.0582,-6e-4,-.0606,-.0165,5e-4,-.0087,-.0093,.0036,.0057,-.0576,-.0039,.1488,.0127,.0016,-.0666,-9e-4,-.0153,.3162,-.0445,-.0021,.0023,.0043,-.0033,.2382,.0063,-.0217,.167,-.039,.0097,-.1144,-.0189,-.0145,.6831,.0632,-.0012,-.1959,-.0133,4e-4,.1108,-3e-4,.0062,.2593,-.0161,-.0018,-.0051,-.012,.0162,.016,-.0022,-.0052,-.0201,.0101,.0115,.0365,-.024,-.0059,.0188,-.0336,.0352,.0224,-.0229,.0146,.0086,-.0273,-.0032,.0103,-.0112]},{mean:[-.2288,.1541,.7202],identity:[-.0082,.0101,2e-4,.0036,-7e-4,-.0037,-8e-4,.0024,.0022,-.0013,-.0045,-.0013,-6e-4,.0045,-4e-4,4e-4,.0012,-.0014,.0042,-.001,-7e-4,-.0019,3e-4,-2e-4,.0012,-4e-4,-.0012,-.0018,-4e-4,-1e-4,-.0014,-.0012,1e-4,1e-4,-.0017,.001,.0015,-1e-4,6e-4,1e-4,0,-6e-4,.0028,.0021,-.0025,-.002,-.0015,7e-4,.0028,-.0023,9e-4,.0013,1e-4,.0016,.0012,.0032,-6e-4,-.0013,-.0011,.0021,3e-4,-5e-4,-.0024,4e-4,-4e-4,.0014,.0015,-8e-4,-3e-4,3e-4,.0017,-6e-4,.002,-.0018,-3e-4,9e-4,1e-4,2e-4,-6e-4,-.0015,-4e-4,.0022,7e-4,-.0023,0,-2e-4,-2e-4,-3e-4,-1e-4,6e-4,-2e-4,6e-4,.0022,-3e-4,.0013,-.0014,-5e-4,-3e-4,.0013,-.0027,6e-4,.0025,-.0023,-8e-4,-.0013,.0017,-9e-4,-.0019,1e-4,8e-4,-7e-4,-4e-4,0,.001,-.001,.0019,-8e-4,-.0015,-6e-4,-2e-4,-.0011,8e-4,1e-4,9e-4,-8e-4,-4e-4,6e-4,7e-4,.0021,-4e-4,7e-4,-5e-4,.0021,-7e-4,-4e-4,-9e-4,8e-4,3e-4,1e-4,3e-4,1e-4,9e-4,.001,-5e-4,5e-4,-.001,.001,4e-4,-5e-4,-.0012],expression:[8e-4,.0037,.0078,-4e-4,5e-4,-.012,-2e-4,-.0046,.0033,-.0089,.0295,.0221,-.0024,-.0084,.0013,.0057,.0125,.0049,-.0036,.0373,.0285,.0115,.0135,-.0035,.0048,.0108,-.0033,.0106,.0281,-.0301,-.0082,.0803,.0244,-7e-4,-.0725,-.0105,-.0247,-.0036,-.0143,-.0045,-.029,2e-4,-.0303,.0093,-.0021,-.0196,-.0754,-.0211,.0326,.1246,.006,-.0804,-.1499,.0109,.0182,-.0029,-.0014,-.0035,.0072,-8e-4,-.0152,-.0108,-.0166,-.0073,-.0144,-.0095,.0101,.047,-.0018,-.004,-.0189,.0027,.0104,.0298,-.0042,-.0096,.0191,-.0217,.0228,.0226,-.0105,.0047,-.0048,-.0172,.0061,-.0043,-.0016]}],2:{mean:[.5396,.2028,.2496],identity:[.0204,.0146,-.0182,-.0052,.0158,-.0038,-.0025,-.0108,-.006,.0085,-.0044,.0029,.0042,.001,.0095,.0015,-.0034,-.0064,-.0057,7e-4,.0026,7e-4,.0037,-6e-4,.0037,.0026,.0024,5e-4,-.0019,-.0013,.003,-.0028,.0018,-9e-4,.002,-.0047,.004,-.003,.0031,-.0027,-.0026,-.0017,.0016,.0014,-4e-4,.0021,-.002,0,.0017,7e-4,-4e-4,-7e-4,-.0018,-9e-4,2e-4,-.0012,1e-4,-5e-4,-.0011,4e-4,2e-4,.0011,1e-4,8e-4,.0017,-.0013,.0025,.0017,.001,2e-4,3e-4,5e-4,-4e-4,-1e-4,-5e-4,7e-4,-.0022,-.0029,6e-4,-8e-4,-6e-4,6e-4,-5e-4,5e-4,.0013,3e-4,-5e-4,-.003,7e-4,2e-4,.0016,-4e-4,0,0,4e-4,1e-4,.0014,.0012,1e-4,4e-4,-1e-4,8e-4,9e-4,4e-4,-4e-4,9e-4,-2e-4,.001,9e-4,4e-4,1e-4,7e-4,7e-4,.001,-.0017,-8e-4,2e-4,.0017,-3e-4,-1e-4,4e-4,5e-4,7e-4,5e-4,-1e-4,-6e-4,-1e-4,1e-4,-3e-4,-7e-4,-2e-4,-5e-4,0,-3e-4,3e-4,8e-4,-2e-4,-3e-4,5e-4,1e-4,-7e-4,-.001,-2e-4,3e-4,4e-4,-1e-4,7e-4,0,4e-4,4e-4],expression:[1e-4,-4e-4,1e-4,0,5e-4,2e-4,0,0,3e-4,-2e-4,3e-4,5e-4,-1e-4,2e-4,8e-4,1e-4,-2e-4,-5e-4,-3e-4,6e-4,5e-4,0,1e-4,2e-4,1e-4,-1e-4,-6e-4,-2e-4,5e-4,0,-4e-4,4e-4,.0016,4e-4,-4e-4,-.0015,0,1e-4,1e-4,-3e-4,3e-4,.0019,-2e-4,7e-4,4e-4,4e-4,-8e-4,-.0015,.0013,-.0016,-.0069,4e-4,-6e-4,-.0019,0,-1e-4,5e-4,-3e-4,2e-4,.0014,-3e-4,6e-4,.0011,4e-4,-3e-4,-.0032,-6e-4,8e-4,.0025,-3e-4,3e-4,.0015,-1e-4,1e-4,3e-4,-1e-4,0,0,-3e-4,4e-4,.0019,1e-4,0,-8e-4,-1e-4,1e-4,5e-4]},3:{mean:[-.5464,.2141,.26],identity:[-.0207,.0172,-.0176,.0068,.0148,-.0051,.0042,-.0101,-.0058,-.0087,-.0059,.0045,-.0056,.0017,.0097,-.0048,-.004,-.0044,.0019,2e-4,.0041,-.0052,.0041,2e-4,-.0027,6e-4,.002,-.0027,-.0033,-6e-4,-.004,9e-4,-.0012,-1e-4,-.0026,.0021,-.003,-.0025,.0052,.0025,.0022,-1e-4,-8e-4,.0013,.001,4e-4,.0018,.0014,6e-4,-5e-4,-.0015,-.0039,.0014,-1e-4,8e-4,-2e-4,6e-4,-5e-4,-.0038,-.0012,-.0018,-3e-4,.001,9e-4,.0012,.0024,-.0024,-7e-4,-.0016,-.0016,3e-4,-.001,-.0014,-.0014,.001,-3e-4,-7e-4,-.0012,3e-4,6e-4,3e-4,-5e-4,3e-4,.0012,6e-4,-8e-4,4e-4,4e-4,8e-4,-2e-4,-.0014,3e-4,0,.0023,-3e-4,-.0012,-.0013,.0011,-2e-4,-.0014,-1e-4,.0014,0,3e-4,3e-4,-8e-4,-5e-4,-7e-4,-7e-4,-2e-4,3e-4,5e-4,2e-4,-1e-4,.0011,-.0014,1e-4,-.0015,-1e-4,-3e-4,0,-.001,-1e-4,-8e-4,8e-4,-8e-4,-2e-4,-.0011,-3e-4,-4e-4,1e-4,-2e-4,3e-4,-7e-4,0,3e-4,1e-4,-8e-4,5e-4,1e-4,4e-4,.0014,-6e-4,-.001,-3e-4,-2e-4,1e-4,-1e-4,-1e-4,7e-4],expression:[-3e-4,-1e-4,6e-4,4e-4,0,-7e-4,0,-3e-4,-2e-4,-4e-4,.0012,8e-4,1e-4,-5e-4,-7e-4,-4e-4,0,1e-4,-4e-4,.0017,7e-4,0,1e-4,3e-4,0,4e-4,4e-4,5e-4,1e-4,-.001,-7e-4,.0022,.0026,5e-4,-.0024,-.0023,0,1e-4,3e-4,0,-.0013,-.0015,6e-4,.0014,8e-4,-2e-4,-.0025,-.0023,-3e-4,.0049,.006,-2e-4,-7e-4,-2e-4,0,-.0019,-.0018,-2e-4,.0017,.0017,3e-4,.0015,7e-4,1e-4,-.0023,-.0036,2e-4,.0023,.0017,0,-5e-4,-3e-4,-3e-4,4e-4,2e-4,-1e-4,-3e-4,-5e-4,1e-4,.0018,.0025,1e-4,-6e-4,-.0011,0,1e-4,1e-4]},4:{mean:[.0018,.1864,.853],identity:[-.0011,.0134,.0085,9e-4,-.0025,-7e-4,-3e-4,.0033,4e-4,-5e-4,-.0047,-.002,7e-4,.0026,-.0069,-1e-4,.0036,.0072,5e-4,-8e-4,-.0047,4e-4,-8e-4,-.001,0,2e-4,-.0036,-2e-4,-.001,-.0048,-1e-4,.0018,.0044,-7e-4,-2e-4,.0043,3e-4,.002,-.0031,0,-7e-4,.0013,0,.0037,.0033,-.0016,-.0012,.002,-1e-4,-.0027,.0051,5e-4,8e-4,7e-4,-.0017,.0054,.0023,-3e-4,.0032,1e-4,0,7e-4,-5e-4,-.0011,2e-4,8e-4,0,-.0033,-8e-4,-7e-4,7e-4,.0033,5e-4,-3e-4,.0029,-1e-4,-.0024,-.0011,-.002,-.0015,-.0019,2e-4,7e-4,.0031,6e-4,.0012,0,0,-.0021,0,-9e-4,-.0011,-.0011,-2e-4,.0015,.001,.0013,8e-4,.001,-3e-4,9e-4,.0027,-2e-4,-.0011,-.0011,6e-4,7e-4,2e-4,1e-4,-5e-4,-.0022,.0011,-.0014,9e-4,3e-4,2e-4,0,-6e-4,-4e-4,-.0011,-7e-4,.001,-.0012,6e-4,-.0012,-.0015,3e-4,-9e-4,-.0013,-.0013,7e-4,.001,-.0011,-.0013,.0015,4e-4,1e-4,4e-4,-1e-4,-.0016,-.0016,9e-4,-7e-4,-.0024,5e-4,-1e-4,-.0017,-2e-4,3e-4,-9e-4],expression:[-.0017,.0019,.0097,.003,-.0103,-.0093,9e-4,6e-4,.0023,-.0017,-.0204,.0376,.0033,-.0034,.0033,-.0026,-.0322,.0396,-.0032,-.0947,.0942,-7e-4,-.0175,.0266,-.001,-6e-4,.0016,.0025,.0157,-.0142,-.0022,.037,.015,.0021,-.0102,-.0107,.0036,.0055,-.0051,.0021,3e-4,-3e-4,4e-4,-.0177,.0074,-6e-4,-.0357,.0149,-.0066,9e-4,.0013,-.0031,.0016,.0095,.002,.0052,.0035,-3e-4,.0053,-.0082,.002,.0022,-.0071,-.0011,5e-4,.0055,.0011,3e-4,-.0126,-4e-4,3e-4,-.0023,-.0015,.0059,.0063,-.0042,-.0023,.0055,.0019,.0017,-.0075,6e-4,-8e-4,.0018,.0012,.0012,-5e-4]},5:{mean:[-.002,-.0469,1.0039],identity:[-.0017,.0018,.0156,6e-4,-.0038,5e-4,4e-4,.0013,.002,-4e-4,-.0015,-.0051,5e-4,-7e-4,-.0055,-1e-4,-9e-4,.008,-2e-4,.0036,-.0053,4e-4,-.0026,-.0016,7e-4,9e-4,-.009,-3e-4,7e-4,-.0084,.0015,.0021,.0032,-.0015,.0018,.0046,-3e-4,-4e-4,-1e-4,8e-4,-.0044,-7e-4,-8e-4,7e-4,.0048,-.0024,-3e-4,.0024,2e-4,-.0051,.0058,-6e-4,.0028,.0018,-.0021,.0035,.0057,.0011,.0065,0,-2e-4,.0011,.003,-.0027,8e-4,7e-4,3e-4,-.0039,-.002,-2e-4,-.0015,.0034,.0012,-.0025,.0024,-2e-4,4e-4,-.0042,-.0024,-.001,-.0023,.0016,-7e-4,.0039,1e-4,-5e-4,.0018,3e-4,-2e-4,-9e-4,-.0015,3e-4,-7e-4,-1e-4,-2e-4,.0023,.0032,.002,-.0013,.0013,-.0038,.0045,1e-4,-.0031,1e-4,.0019,-1e-4,.0016,.0013,0,-.002,.0023,2e-4,.0011,.0018,-.0024,6e-4,-.0017,.002,-8e-4,-.0021,7e-4,.0011,8e-4,4e-4,-.001,.0012,2e-4,-6e-4,-.0027,-5e-4,.001,-9e-4,1e-4,-1e-4,8e-4,-.0011,.0022,-.001,-5e-4,-.0011,.0016,-.0015,8e-4,-3e-4,9e-4,.0013,-7e-4,-7e-4,-2e-4],expression:[-.0018,-.0168,.0088,.0389,.1026,.0414,.2201,-.0262,-.0016,-.0017,.0612,-.0298,-.0323,.0093,.0013,-.005,.2207,.1315,-4e-4,.0858,-.0303,-.0133,.015,-.008,.1454,.0114,.0177,-.0077,.1022,.0356,-.0023,.1088,.0232,.003,-.0706,.0347,-1e-4,.004,-.0011,.0397,-.0096,-.0033,.0029,-.01,-.0083,-6e-4,-.0135,.0016,-.0087,-.0019,.0022,-.004,-.0087,.0105,8e-4,-.005,.0069,.0028,.0409,-.0391,.003,.0103,.0051,.0026,.0776,-.0083,-.0062,-.0567,.0268,.0175,.0017,.0156,-.0043,.0299,-.0395,-.0015,.0051,-.0148,.0125,.0035,.0603,.0109,-.0645,-.0257,.002,6e-4,-8e-4]},6:{mean:[-6e-4,-.1542,.8789],identity:[-7e-4,-.0032,.01,0,-.0027,.0031,6e-4,5e-4,-6e-4,-3e-4,.0013,-.0049,-2e-4,-.002,-.0046,8e-4,-.0011,.0054,2e-4,.0043,-.0027,3e-4,-.0022,-.0019,8e-4,.0032,-.0069,0,4e-4,-.0071,.0016,.0027,.0039,-.0017,9e-4,.0031,-1e-4,-5e-4,-4e-4,7e-4,-.0026,-.0012,-5e-4,6e-4,2e-4,-.0014,-.0013,.0019,-2e-4,-.0053,.0031,-6e-4,.0016,.0023,-.0013,.0021,.0029,8e-4,.0052,0,4e-4,0,.0037,-.0026,3e-4,.002,-2e-4,-.0024,4e-4,-4e-4,-.0012,8e-4,7e-4,-.0023,5e-4,0,.0014,-.0022,-.0016,0,-.0012,8e-4,-7e-4,.0014,-6e-4,-.0012,-3e-4,2e-4,.0012,-3e-4,-.002,-1e-4,1e-4,-2e-4,-.0016,9e-4,.002,.0019,0,6e-4,-.0022,.0016,1e-4,-.0017,-.0013,.001,9e-4,-1e-4,.0011,3e-4,-7e-4,.0014,8e-4,.0013,.0011,-.002,0,-.0015,.0014,.001,-.0015,7e-4,3e-4,.001,-1e-4,.0012,7e-4,6e-4,-4e-4,-.0013,-.0012,-9e-4,-.0011,2e-4,-5e-4,5e-4,4e-4,2e-4,1e-4,0,5e-4,5e-4,-.0014,.0015,-9e-4,5e-4,.0014,-8e-4,-8e-4,.0012],expression:[8e-4,.0481,.1653,.0784,.1008,-.3992,.5088,-.02,.0542,.001,.3723,-.0151,-.0986,.0283,-.0033,-.0121,.2634,.1202,.0036,-.0529,-.0245,-.0297,-.1085,.0495,.3264,.0083,4e-4,-.0314,.1459,-.1142,-.003,1e-4,.1154,-.0035,-.0285,-.0184,-1e-4,.0012,.0035,.079,-.0103,.0043,.011,-.004,-.0774,-.0047,-.023,.0284,-.0048,-.001,.0149,-.0039,.0046,.0528,-6e-4,.0063,.0376,.0096,.0558,-.0295,0,-.0311,-.0634,.0062,.0176,-.0154,-.0109,-.1149,.0192,.0326,.0121,.0237,.0034,.0262,-.0778,.0014,-.0045,-.0203,.0077,.0588,.0575,.008,-.0557,-.0095,.0032,.0054,-.0042]},7:{mean:[.0038,-.2927,.833],identity:[6e-4,-.0109,.0073,-6e-4,-.0044,.0017,-1e-4,-.0022,-6e-4,-3e-4,.0065,-.0014,-6e-4,-.0051,-.0046,3e-4,-.0029,.003,2e-4,.0038,-6e-4,0,-.0012,6e-4,-4e-4,.0053,-.0075,-2e-4,-7e-4,-.0063,.0014,.0026,.0019,-.0022,.0018,.0028,-1e-4,-.0012,.0011,9e-4,.0019,-.0019,-1e-4,.0012,-.0022,-3e-4,-.0012,4e-4,-8e-4,3e-4,-3e-4,0,.0017,.0021,-4e-4,.0012,.0022,-3e-4,.0026,-3e-4,4e-4,-.0026,.0032,-.0019,3e-4,.0015,1e-4,-.0015,.0013,-1e-4,1e-4,-.0029,0,-2e-4,-.0028,-7e-4,.0019,-3e-4,-2e-4,.0012,9e-4,4e-4,-.001,-.002,-.0016,.0011,-1e-4,3e-4,.0021,2e-4,-.0014,-9e-4,-1e-4,0,-2e-4,-.001,.0015,.0018,1e-4,7e-4,8e-4,.0017,.001,-9e-4,1e-4,4e-4,.0023,-1e-4,.0012,1e-4,-8e-4,2e-4,.0018,6e-4,3e-4,1e-4,.0012,-3e-4,.002,-6e-4,0,-1e-4,-.0022,4e-4,5e-4,.0011,2e-4,-.0013,-.0023,6e-4,6e-4,-5e-4,-5e-4,9e-4,2e-4,2e-4,.0011,-3e-4,.0011,.0015,.0011,3e-4,2e-4,8e-4,-4e-4,-8e-4,3e-4,0,.0012,-1e-4],expression:[.026,.1107,.3257,.1917,.3206,-1.1348,1.0791,-.035,.1549,-.0103,.6953,1e-4,-.3262,.068,.0219,-.0044,.3643,.2178,.0168,-.2478,-.1321,-.0414,-.3782,-.0617,.5088,-.0031,-.0311,-.0497,.0948,-.385,.0148,-.2224,-.1415,-.0074,.0863,-.203,3e-4,-.0081,.0057,.1164,-.0039,.0015,-.0024,.0505,.1532,.0039,-.0148,-.0753,.0163,.0058,-.0339,.0036,.0252,-.0569,-.0041,.0163,-.0361,.0035,-.018,.1266,0,-.0163,-.0046,.0133,-.1656,.2134,.0191,.0057,.0734,.0681,.0039,-.0144,.029,-.074,-.046,.0122,.0072,-.0162,-.0349,-.1234,.0212,-.0355,.0535,.1218,.0043,-.024,.0016]},8:{mean:[-.0018,-.3037,.8491],identity:[2e-4,-.0112,.0077,-4e-4,-.0044,.0024,1e-4,-.0021,-4e-4,-4e-4,.0066,-.002,-4e-4,-.0052,-.0044,3e-4,-.0032,.0039,4e-4,.0042,-3e-4,2e-4,-.0012,-2e-4,-2e-4,.0052,-.0083,-1e-4,-8e-4,-.0056,.0017,.0024,.0019,-.0023,.002,.0027,-2e-4,-.0013,.002,9e-4,.0017,-.0028,-2e-4,.0012,-.0026,0,-.0016,2e-4,-5e-4,3e-4,-.001,-1e-4,.0016,.0016,-3e-4,.0012,.0012,-3e-4,.0027,-3e-4,3e-4,-.0026,.0037,-.0017,1e-4,.0016,1e-4,-.0015,.0024,1e-4,2e-4,-.0039,0,-3e-4,-.0033,-6e-4,.0017,-4e-4,-4e-4,.0012,.0018,2e-4,-.0012,-.002,-.0017,.0013,-.001,3e-4,.0021,4e-4,-.0012,-6e-4,-2e-4,0,-4e-4,-9e-4,.0016,.0017,4e-4,7e-4,7e-4,.001,9e-4,-8e-4,5e-4,5e-4,.0023,.001,.0013,2e-4,-4e-4,2e-4,.0017,8e-4,3e-4,-1e-4,9e-4,-4e-4,.0019,-5e-4,3e-4,0,-.0025,3e-4,3e-4,.0011,1e-4,-.0015,-.001,7e-4,7e-4,-7e-4,-7e-4,8e-4,0,1e-4,.0013,-4e-4,.0012,.0014,.0017,4e-4,2e-4,3e-4,-3e-4,-9e-4,1e-4,0,.001,-4e-4],expression:[-.0092,2.8809,1.416,.2018,1.1982,-.9351,1.4492,-.1902,.1749,.0305,-.167,-.1572,-.7354,-.0492,.0115,.0608,.2971,.1179,.0046,-.0997,-.0041,-.0104,.3379,-.1854,.009,.0366,-.0583,.0269,-.0029,-.4175,-8e-4,.1794,.0752,-.0135,.1158,.1234,5e-4,.003,-.0032,.1034,-.0504,-.0055,-.0076,-.0772,.224,.0047,.0229,-.1044,.0162,-.0161,-.0241,-.0083,-.1388,-.0434,-.0125,-.0997,-.0327,-.0111,.1576,-.3911,.0199,.2522,.142,.0059,-.0721,-.0045,.031,-.1136,-.1685,.0641,.0142,.0312,.0426,-.1366,.1011,.0101,-.0157,.0018,-.0103,-.0344,.0907,.0016,.1168,-.0806,.0104,-.0057,.0111]},9:[{mean:[.0038,-.2927,.833],identity:[6e-4,-.0109,.0073,-6e-4,-.0044,.0017,-1e-4,-.0022,-6e-4,-3e-4,.0065,-.0014,-6e-4,-.0051,-.0046,3e-4,-.0029,.003,2e-4,.0038,-6e-4,0,-.0012,6e-4,-4e-4,.0053,-.0075,-2e-4,-7e-4,-.0063,.0014,.0026,.0019,-.0022,.0018,.0028,-1e-4,-.0012,.0011,9e-4,.0019,-.0019,-1e-4,.0012,-.0022,-3e-4,-.0012,4e-4,-8e-4,3e-4,-3e-4,0,.0017,.0021,-4e-4,.0012,.0022,-3e-4,.0026,-3e-4,4e-4,-.0026,.0032,-.0019,3e-4,.0015,1e-4,-.0015,.0013,-1e-4,1e-4,-.0029,0,-2e-4,-.0028,-7e-4,.0019,-3e-4,-2e-4,.0012,9e-4,4e-4,-.001,-.002,-.0016,.0011,-1e-4,3e-4,.0021,2e-4,-.0014,-9e-4,-1e-4,0,-2e-4,-.001,.0015,.0018,1e-4,7e-4,8e-4,.0017,.001,-9e-4,1e-4,4e-4,.0023,-1e-4,.0012,1e-4,-8e-4,2e-4,.0018,6e-4,3e-4,1e-4,.0012,-3e-4,.002,-6e-4,0,-1e-4,-.0022,4e-4,5e-4,.0011,2e-4,-.0013,-.0023,6e-4,6e-4,-5e-4,-5e-4,9e-4,2e-4,2e-4,.0011,-3e-4,.0011,.0015,.0011,3e-4,2e-4,8e-4,-4e-4,-8e-4,3e-4,0,.0012,-1e-4],expression:[.026,.1107,.3257,.1917,.3206,-1.1348,1.0791,-.035,.1549,-.0103,.6953,1e-4,-.3262,.068,.0219,-.0044,.3643,.2178,.0168,-.2478,-.1321,-.0414,-.3782,-.0617,.5088,-.0031,-.0311,-.0497,.0948,-.385,.0148,-.2224,-.1415,-.0074,.0863,-.203,3e-4,-.0081,.0057,.1164,-.0039,.0015,-.0024,.0505,.1532,.0039,-.0148,-.0753,.0163,.0058,-.0339,.0036,.0252,-.0569,-.0041,.0163,-.0361,.0035,-.018,.1266,0,-.0163,-.0046,.0133,-.1656,.2134,.0191,.0057,.0734,.0681,.0039,-.0144,.029,-.074,-.046,.0122,.0072,-.0162,-.0349,-.1234,.0212,-.0355,.0535,.1218,.0043,-.024,.0016]},{mean:[-.0018,-.3037,.8491],identity:[2e-4,-.0112,.0077,-4e-4,-.0044,.0024,1e-4,-.0021,-4e-4,-4e-4,.0066,-.002,-4e-4,-.0052,-.0044,3e-4,-.0032,.0039,4e-4,.0042,-3e-4,2e-4,-.0012,-2e-4,-2e-4,.0052,-.0083,-1e-4,-8e-4,-.0056,.0017,.0024,.0019,-.0023,.002,.0027,-2e-4,-.0013,.002,9e-4,.0017,-.0028,-2e-4,.0012,-.0026,0,-.0016,2e-4,-5e-4,3e-4,-.001,-1e-4,.0016,.0016,-3e-4,.0012,.0012,-3e-4,.0027,-3e-4,3e-4,-.0026,.0037,-.0017,1e-4,.0016,1e-4,-.0015,.0024,1e-4,2e-4,-.0039,0,-3e-4,-.0033,-6e-4,.0017,-4e-4,-4e-4,.0012,.0018,2e-4,-.0012,-.002,-.0017,.0013,-.001,3e-4,.0021,4e-4,-.0012,-6e-4,-2e-4,0,-4e-4,-9e-4,.0016,.0017,4e-4,7e-4,7e-4,.001,9e-4,-8e-4,5e-4,5e-4,.0023,.001,.0013,2e-4,-4e-4,2e-4,.0017,8e-4,3e-4,-1e-4,9e-4,-4e-4,.0019,-5e-4,3e-4,0,-.0025,3e-4,3e-4,.0011,1e-4,-.0015,-.001,7e-4,7e-4,-7e-4,-7e-4,8e-4,0,1e-4,.0013,-4e-4,.0012,.0014,.0017,4e-4,2e-4,3e-4,-3e-4,-9e-4,1e-4,0,.001,-4e-4],expression:[-.0092,2.8809,1.416,.2018,1.1982,-.9351,1.4492,-.1902,.1749,.0305,-.167,-.1572,-.7354,-.0492,.0115,.0608,.2971,.1179,.0046,-.0997,-.0041,-.0104,.3379,-.1854,.009,.0366,-.0583,.0269,-.0029,-.4175,-8e-4,.1794,.0752,-.0135,.1158,.1234,5e-4,.003,-.0032,.1034,-.0504,-.0055,-.0076,-.0772,.224,.0047,.0229,-.1044,.0162,-.0161,-.0241,-.0083,-.1388,-.0434,-.0125,-.0997,-.0327,-.0111,.1576,-.3911,.0199,.2522,.142,.0059,-.0721,-.0045,.031,-.1136,-.1685,.0641,.0142,.0312,.0426,-.1366,.1011,.0101,-.0157,.0018,-.0103,-.0344,.0907,.0016,.1168,-.0806,.0104,-.0057,.0111]}],10:{mean:[-.007,-.6338,.7695],identity:[1e-4,-.0296,.0089,-6e-4,-.0073,-.0065,-1e-4,-.0029,-.0031,-2e-4,.0128,.0065,0,-.0116,-.014,-1e-4,-.0037,-.0052,-5e-4,.0028,.003,-4e-4,.0041,.0015,6e-4,.0088,-.0076,-.0011,-.0015,-.0073,7e-4,-.0011,.0019,-.0011,-5e-4,.0031,-1e-4,-.0018,9e-4,.0018,.0038,.0068,-4e-4,-1e-4,.0061,.0024,.0024,-.0066,-6e-4,.0051,.0014,.002,.005,-.0035,1e-4,-.0034,-.004,-7e-4,.001,-8e-4,1e-4,-5e-4,-.0021,2e-4,.0045,-.0043,-.0012,-.0024,-.0014,6e-4,.0034,.0027,-8e-4,-.0053,.0014,1e-4,.0013,-.0018,6e-4,-.0015,.0029,-2e-4,-.0035,1e-4,-.002,.0012,.0048,.0011,1e-4,-2e-4,-3e-4,-.0012,.0033,6e-4,.002,-.0033,4e-4,.0028,2e-4,8e-4,-1e-4,-.0018,8e-4,.0017,1e-4,9e-4,8e-4,3e-4,.0019,-.001,.001,-7e-4,-.0013,0,1e-4,.0032,-1e-4,1e-4,.0011,-4e-4,5e-4,-7e-4,.0018,-3e-4,2e-4,7e-4,8e-4,-.0014,7e-4,.0015,-6e-4,-1e-4,-4e-4,.0019,-9e-4,-6e-4,-6e-4,-.0012,2e-4,-.0012,-8e-4,4e-4,6e-4,-.0011,3e-4,9e-4,-4e-4,6e-4,-7e-4,-4e-4],expression:[-.0603,2.0527,1.9014,.1025,.6143,.3804,.7881,-.1023,-.0764,.0454,-.2487,-.5073,-.6704,-.031,-.0181,.0466,.0651,-.0726,-.0033,-.0022,.2944,.0101,.1669,-.5225,-.4685,.0236,.0079,.011,.2173,.4529,.0121,-.2104,-.0673,.0225,-.4023,.0317,-9e-4,.0076,-.0032,.0333,.0523,.0129,-.001,-.0319,-.0139,.0015,-.0044,.0247,-5e-4,.0161,.0061,.0074,.0776,-.0176,.007,.055,-.017,.0052,-.1819,.0294,-.0161,-.0337,.0226,-.008,-.0297,.1967,-.0095,.0383,.2039,.0434,.0271,-.0064,-.0037,-.0294,-.024,.0024,-.0137,-.0209,-.0031,.0628,.1003,-.0126,-.056,-.0097,-.0012,-.0041,.0162]},11:{mean:[.2505,.3833,.7793],identity:[.0098,.012,.0077,-6e-4,-3e-4,0,1e-4,.0082,-7e-4,.0019,-.0036,-.0012,2e-4,.0119,-.0039,.001,1e-4,.0031,-.0036,-.0059,-7e-4,.0026,.0028,-.0011,9e-4,-.0032,8e-4,.0029,.0043,3e-4,.0025,-9e-4,.0047,.0016,.0022,.0018,-.001,.0025,-.003,-.001,.0033,.0034,4e-4,-.0052,.0024,-2e-4,.001,-.0014,-6e-4,.0038,-.0015,-6e-4,-.001,-.0011,-4e-4,-.001,4e-4,-7e-4,.0036,-8e-4,-2e-4,-.0019,5e-4,3e-4,-6e-4,-.0024,-.0017,-.0014,6e-4,-4e-4,-.0031,-.0013,-6e-4,.0042,2e-4,-2e-4,-.002,-3e-4,8e-4,.0018,-5e-4,-6e-4,-2e-4,-6e-4,.0025,.0019,.001,8e-4,-.0015,-.0012,-1e-4,-6e-4,-4e-4,.0023,-.001,6e-4,-2e-4,-.001,0,-9e-4,-.002,-.0011,1e-4,0,-1e-4,5e-4,6e-4,9e-4,-6e-4,5e-4,8e-4,-1e-4,-2e-4,-.0017,-6e-4,-4e-4,4e-4,-6e-4,.0012,4e-4,3e-4,-7e-4,3e-4,-2e-4,6e-4,1e-4,5e-4,-.0019,-6e-4,4e-4,7e-4,-1e-4,1e-4,5e-4,.001,-6e-4,-.002,-7e-4,-5e-4,5e-4,3e-4,7e-4,.0014,0,5e-4,-5e-4,-2e-4,3e-4,-6e-4,-1e-4],expression:[-9e-4,-3e-4,.0032,-.003,-.0034,-.0031,.0014,0,4e-4,-.0139,-.0764,.0275,-.002,-.0089,.0031,-.0503,-.0771,.038,-.1323,-.3523,.1368,-.0474,-.0564,.0296,-.0045,.007,-.0013,.0153,.1259,-.0464,.0866,.2175,-.0786,-.0413,-.1248,.0448,-.1777,-.4607,.1782,-5e-4,-.005,.0016,.0629,.1506,-.0624,.0545,.2576,-.0864,-.0231,-.0552,.0244,-.0136,-.0359,.0169,-.1158,-.2996,.1214,-.0235,-.0354,.0165,-.0745,-.1079,.0475,-.0116,-.0039,.0012,.0013,-.0108,-8e-4,.0044,-.0027,-1e-4,-.0694,.0363,.0071,.1462,-.136,.0047,.009,-.0177,.0038,-.0271,.0118,.0011,-.0399,-.0111,.0123]},12:{mean:[-.2981,.3828,.7563],identity:[-.0116,.014,.0054,.0018,5e-4,0,-4e-4,.0068,-.0013,-.0019,-.0048,-5e-4,5e-4,.0108,-.0036,-.0029,-.0018,.0029,.0043,-.0077,6e-4,-.0017,.002,-.0011,-.0014,-.0035,.0015,-.0024,.0011,4e-4,-.0048,2e-4,.0029,-1e-4,-1e-4,.003,.0019,.0035,-.0016,-4e-4,.0039,.0019,1e-4,-.0064,.004,3e-4,.002,-.0021,.0017,.0011,-.001,.0026,.0025,-5e-4,2e-4,-3e-4,-5e-4,-7e-4,9e-4,-4e-4,-.001,-.0022,.001,9e-4,-.0014,7e-4,.0011,-.001,-5e-4,-8e-4,-.0017,-.0021,9e-4,.0036,5e-4,4e-4,-.0031,6e-4,-.0015,.0027,2e-4,1e-4,-.0011,2e-4,-.0011,-.0018,4e-4,-.0013,-2e-4,7e-4,9e-4,-3e-4,.001,-.0021,8e-4,6e-4,-9e-4,4e-4,-7e-4,8e-4,-.002,-.0013,0,7e-4,-.0012,-1e-4,.0014,.0014,-1e-4,.0013,6e-4,6e-4,-.0014,-.0015,-9e-4,1e-4,1e-4,9e-4,7e-4,0,1e-4,-.001,-4e-4,0,-5e-4,1e-4,-3e-4,4e-4,-5e-4,-1e-4,-.0011,2e-4,0,1e-4,8e-4,8e-4,0,-7e-4,-8e-4,0,2e-4,-1e-4,.001,3e-4,4e-4,-2e-4,0,5e-4,.0018,-1e-4],expression:[0,-4e-4,.0028,.0036,-8e-4,-.0026,-.0015,-8e-4,3e-4,.0075,-.0608,.025,.0019,-.0076,.0033,.0379,-.0437,.0335,.0964,-.2452,.1233,.0368,-.0251,.0253,.0033,.0097,-.0021,-.0095,.1171,-.0475,-.064,.1548,-.0718,.0228,-.0831,.0343,-.1924,.6206,-.2771,.0021,-.0143,.0056,-.0705,.2522,-.1116,-.0692,.4229,-.1592,-.0093,.05,-.0185,.0948,-.3196,.1437,-.0184,.0194,-.0131,.0205,-.0353,.0201,.0676,-.135,.0672,.0137,-.0311,.0118,3e-4,-.0077,-2e-4,-.0151,4e-4,-.0058,.029,-.0139,.0163,.1324,.1819,-.0039,.0406,.0501,.0017,.0331,.0161,.0062,-.0235,-.0446,.0047]}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={incompatible:()=>!("function"==typeof Promise&&"object"==typeof WebAssembly&&!!(navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices&&navigator.mediaDevices.getUserMedia)),incompatible_ui:()=>{const e=document.createElement("div");e.append(function(){let e=document.createElement("div"),t="a recent web browser";navigator.userAgent.match(/Android/i)?(t="Chrome for Android",window.location.href="googlechrome://navigate?url="+encodeURI(window.location.href),setTimeout(()=>{window.location.href="samsunginternet://open?url="+encodeURI(window.location.href)},2e3)):navigator.userAgent.match(/iPhone|iPod|iPad/i)&&(t="Safari",e.classList.add("zee-launcher-browser-safari")),e.classList.add("zee-launcher-unsupported"),e.innerHTML=`\n <style>.zee-launcher-unsupported {\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n align-items: center;\n }\n .zee-launcher-browser-logo {\n background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 210 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%23ffffff' stroke-width='2'%3E%3Cg transform='translate(83 146.5)'%3E%3Cpath d='m55.146 88.785l-32.039-49.472c19.962-24.947 49.904-38.684 80.517-38.81 17.739-0.12642 35.855 4.4246 52.336 13.99 18.2 10.619 32.039 25.874 40.846 43.404l-86.095-4.5511c-24.365-1.4327-47.556 12.347-55.565 35.439zm13.797 16.224c0 19.468 15.684 35.229 35.059 35.229 19.374 0 35.059-15.76 35.059-35.229 0-19.468-15.684-35.229-35.059-35.229-19.374 0-35.059 15.718-35.059 35.229zm132.06-37.588l-58.585 3.034c15.894 18.668 16.145 45.595 2.7678 66.243l-47.01 72.648c19.5 1.0535 39.588-3.2447 57.788-13.864 45.039-26.126 63.282-80.908 45.039-128.06zm-144.93 57.647l-39.126-77.326c-10.694 16.434-16.942 36.156-16.942 57.267 0 52.253 38.078 95.53 87.856 103.2l26.713-52.59c-24.155 4.5511-47.472-8.765-58.501-30.551z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A");\n width: 211px;\n height: 211px;\n margin-bottom: 25%;\n margin-top: -60px;\n background-repeat: no-repeat;\n }\n .zee-launcher-browser-safari .zee-launcher-browser-logo {\n background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 211 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='m180 251.86c0-4.0385 2.9377-7.855 7.2552-7.855 3.9614 0 7.7448 2.8402 7.7448 7.145 0 4.0385-2.8487 7.855-7.1662 7.855-4.0059 0-7.8338-2.9734-7.8338-7.145zm112-0.35503c0 57.728-46.772 104.5-104.5 104.5s-104.5-46.772-104.5-104.5 46.772-104.5 104.5-104.5 104.5 46.772 104.5 104.5zm-12-1c0-51.649-41.851-93.5-93.5-93.5s-93.5 41.851-93.5 93.5 41.851 93.5 93.5 93.5 93.5-41.851 93.5-93.5zm-30.624 40.983c0 1.5095 5.4495 4.2768 6.8328 5.1154-11.486 17.401-29.26 29.938-49.423 34.928l-1.8444-7.757c-0.12576-1.0482-0.79646-1.174-1.7606-1.174-0.79646 0-1.2576 1.174-1.1737 1.7611l1.8444 7.8828c-5.5753 1.174-11.234 1.7611-16.935 1.7611-15.217 0-30.182-4.2768-43.177-12.202 0.71263-1.174 5.1141-7.5474 5.1141-8.4698 0-0.79666-0.71263-1.5095-1.5091-1.5095-1.6348 0-5.1141 6.9603-6.1621 8.344-17.522-11.615-30.182-29.602-35.044-50.148l8.0066-1.761c0.92222-0.25158 1.1737-0.92246 1.1737-1.7611 0-0.79667-1.1737-1.2579-1.8444-1.174l-7.8389 1.803c-1.048-5.3251-1.6348-10.692-1.6348-16.143 0-15.556 4.4015-30.86 12.66-43.984 1.1737 0.71281 6.749 4.5284 7.6712 4.5284 0.79646 0 1.5091-0.58702 1.5091-1.3837 0-1.6353-6.1621-4.7381-7.5455-5.7024 11.821-17.275 29.805-29.728 50.219-34.34l1.7606 7.757c0.25152 0.92246 0.92222 1.174 1.7606 1.174 0.83838 0 1.2576-1.174 1.1737-1.8449l-1.7606-7.6732c5.1141-0.92246 10.312-1.5095 15.552-1.5095 15.552 0 30.727 4.4026 43.973 12.663-0.79646 1.174-4.5273 6.6249-4.5273 7.5474 0 0.79667 0.58687 1.5095 1.3833 1.5095 1.6348 0 4.7369-6.0379 5.5753-7.4216 17.187 11.615 29.469 29.351 34.248 49.561l-6.4975 1.3837c-1.048 0.25158-1.1737 0.92246-1.1737 1.8449 0 0.79667 1.1737 1.2579 1.7606 1.174l6.6232-1.5095c1.048 5.3251 1.6348 10.776 1.6348 16.227 0 15.221-4.1919 30.189-12.073 43.062-1.1737-0.58702-6.0364-4.0672-6.9586-4.0672-0.8803 0-1.5929 0.71281-1.5929 1.5095zm-14.876-98.483c-5.2178 4.88-53.863 49.48-55.228 51.8l-38.772 64.2c5.0974-4.76 53.863-49.6 55.108-51.72l38.892-64.28z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");\n }\n .zee-launcher-unsupported-message {\n text-align: center;\n width: 250px;\n font-family: sans-serif;\n color: #ffffff;\n }\n .zee-launcher-unsupported-message-copy {\n border: 1px solid #ffffff;\n border-radius: 5px;\n margin-top: 10px;\n }\n #zee-launcher-unsupported-message-input {\n border: none;\n padding: 10px;\n border-radius: 0px;\n border-right: 1px solid #344B60;\n height: 40px;\n color: #ffffff;\n background-color: black;\n box-sizing: border-box;\n width: calc(100% - 65px);\n margin-left: 5px;\n }\n #zee-launcher-unsupported-message-button {\n background: none;\n border: none;\n outline: none;\n text-transform: uppercase;\n color: #ffffff;\n height: 40px;\n display: inline-block;\n width: 59px;\n }\n .zee-launcher-unsupported-message-before-copy {\n height: 100px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n }\n .zee-launcher-unsupported-message-copied .zee-launcher-unsupported-message-before-copy {\n display: none;\n }\n .zee-launcher-unsupported-message-after-copy {\n display: none;\n }\n .zee-launcher-unsupported-message-copied .zee-launcher-unsupported-message-after-copy {\n height: 100px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: 20px;\n }\n </style>\n <div class="zee-launcher-browser-logo"></div>\n <div class="zee-launcher-unsupported-message">Open with ${t} to access this content.</div>\n <div class="zee-launcher-unsupported-message-before-copy">\n <div class="zee-launcher-unsupported-message ">Tap below to copy the address for easy pasting into ${t}.</div>\n <div class="zee-launcher-unsupported-message-copy"><input id="zee-launcher-unsupported-message-input" type="text/"><button id="zee-launcher-unsupported-message-button">Copy</button></div>\n </div>\n <div class="zee-launcher-unsupported-message zee-launcher-unsupported-message-after-copy">COPIED! Now paste into ${t}'s address bar to experience the content.</div>\n `;let r=e.querySelector("#zee-launcher-unsupported-message-input")||document.createElement("input");r.value=window.location.href;let n=()=>{if(navigator.userAgent.match(/iPhone|iPod|iPad/i)){let e=document.createRange();e.selectNodeContents(r);let t=window.getSelection();if(!t)return;t.removeAllRanges(),t.addRange(e),r.setSelectionRange(0,999999999)}else r.select();document.execCommand("copy"),r.blur(),e.classList.toggle("zee-launcher-unsupported-message-copied",!0)};return(e.querySelector("#zee-launcher-unsupported-message-button")||document.createElement("button")).addEventListener("click",n),r.addEventListener("click",n),e}()),Object.assign(e.style,{position:"fixed",width:"100%",height:"100%",top:"0px",left:"0px",zIndex:1001,backgroundColor:"rgba(0, 0, 0, 0.9)",fontFamily:"sans-serif",color:"white",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),e.classList.add("zee_launcher_compatibility"),document.body.append(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SequenceSource=void 0;const n=r(0),i=r(13),a=r(8),o=r(2),s=r(1);let u=1,c=new Map;class f extends a.Source{constructor(e,t){super(),this._impl=e,this._pipeline=t,this._packetNumber=0,this._motionUpdatesQueued=0,this._motionUpdatesSent=0,this._minFrameGapMs=0,this._lastUpdateTime=0}static create(e){let t=u++;return c.set(t,new f(t,e)),n.zcout("sequence_source_source_t initialized"),t}static get(e){return c.get(e)}loadFromMemory(e){try{this._decoder=new i.SequenceDecoder(e),this._packetNumber=0,this._lastUpdateTime=0}catch(e){n.zcerr("Unable to decode sequence:",e)}}maxPlaybackFpsSet(e){this._minFrameGapMs=e<=0?0:1e3/e}getFrame(e){let t=o.Pipeline.get(this._pipeline);if(!t)return;if(!this._decoder)return;if(this._submitMotionUpdates(t),this._motionUpdatesQueued>this._motionUpdatesSent)return;if(e)return;let r=performance.now();if(r<this._lastUpdateTime+this._minFrameGapMs)return;if(this._packetNumber>=this._decoder.numberPackets)return;let n=this._decoder.dataByPacket.get(this._packetNumber);if(n.type!=i.SequenceRecorderPacketType.CAMERA_FRAME)return;this._packetNumber++;let a=t.cameraPixelArrays.pop();for(;a&&a.byteLength!==n.greyscale.byteLength;)a=t.cameraPixelArrays.pop();a||(a=new ArrayBuffer(n.greyscale.byteLength)),new Uint8Array(a).set(n.greyscale),this._lastUpdateTime=r;let u={data:a,cameraSourceData:n.greyscale,cameraModel:n.cameraModel,cameraToDevice:n.cameraToDevice,dataWidth:n.width,dataHeight:n.height,texture:void 0,userFacing:n.userFacing,uvTransform:s.mat4.create(),cameraSource:this};this._submitMotionUpdates(t);const c=t.registerToken(u);t.sendDataToWorker(u.data||new ArrayBuffer(0),c,u.dataWidth,u.dataHeight,u.userFacing,u.cameraToDevice,u.cameraModel)}destroy(){c.delete(this._impl),this.pause()}start(){var e;let t=o.Pipeline.get(this._pipeline);t&&t.currentCameraSource!==this&&(null===(e=t.currentCameraSource)||void 0===e||e.pause(),t.currentCameraSource=this)}pause(){let e=o.Pipeline.get(this._pipeline);e&&e.currentCameraSource===this&&(e.currentCameraSource=void 0)}uploadGL(e){let t=o.Pipeline.get(this._pipeline);if(!t)return;let r=null==t?void 0:t.glContext;r&&(e.texture||(e.texture=t.getVideoTexture()),e.texture&&e.cameraSourceData&&(r.bindTexture(r.TEXTURE_2D,e.texture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.LUMINANCE,e.dataWidth,e.dataHeight,0,r.LUMINANCE,r.UNSIGNED_BYTE,new Uint8Array(e.cameraSourceData)),r.bindTexture(r.TEXTURE_2D,null)))}_submitMotionUpdates(e){let t=!1;for(;this._packetNumber<this._decoder.numberPackets;){let r=this._decoder.dataByPacket.get(this._packetNumber);if(r.type==i.SequenceRecorderPacketType.CAMERA_FRAME)break;switch(r.type){case i.SequenceRecorderPacketType.ACCELEROMETER:e.motionAccelerometerSubmit(r.t,r.x,r.y,r.z),t=!0;break;case i.SequenceRecorderPacketType.ROTATION_RATE:e.motionRotationRateSubmit(r.t,r.x,r.y,r.z),t=!0;break;case i.SequenceRecorderPacketType.ATTITUDE:e.motionAttitudeSubmit(r.t,r.x,r.y,r.z),t=!0;break;case i.SequenceRecorderPacketType.ATTITUDE_MATRIX:e.motionAttitudeMatrix(r.attitude),t=!0}this._packetNumber++}t&&(this._motionUpdatesQueued++,setTimeout(()=>{this._motionUpdatesSent++},0))}}t.SequenceSource=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.gfx=void 0,t.gfx='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="250" height="80.408" viewBox="0 0 250 80.408"><defs><filter id="a" x="0" y="1.182" width="250" height="79.226" filterUnits="userSpaceOnUse"><feOffset dy="3" input="SourceAlpha"/><feGaussianBlur stdDeviation="3" result="b"/><feFlood flood-opacity="0.161"/><feComposite operator="in" in2="b"/><feComposite in="SourceGraphic"/></filter><filter id="c" x="6.929" y="0" width="111.975" height="40.988" filterUnits="userSpaceOnUse"><feOffset dy="3" input="SourceAlpha"/><feGaussianBlur stdDeviation="3" result="d"/><feFlood flood-opacity="0.161"/><feComposite operator="in" in2="d"/><feComposite in="SourceGraphic"/></filter></defs><g transform="translate(-26.873 -414.029)"><g transform="translate(44 423.332)"><g transform="translate(0 0.635)" style="isolation:isolate"><g transform="translate(0 0)"><g transform="matrix(1, 0, 0, 1, -17.13, -9.94)" filter="url(#a)"><path d="M55.766,44.97V11.8h8.272v2.6h.089a8.258,8.258,0,0,1,7.046-3.357,11.4,11.4,0,0,1,8.5,3.686,12.667,12.667,0,0,1,3.278,8.622,12.509,12.509,0,0,1-3.25,8.57,11.353,11.353,0,0,1-8.429,3.6,9.533,9.533,0,0,1-7.229-2.95V43.378l-8.269,1.594h0Zm8-21.671a4.958,4.958,0,0,0,5.319,5.15A4.957,4.957,0,0,0,74.4,23.3a5.321,5.321,0,0,0-10.638,0ZM16.105,18.412H2.752V11.038H30.9L14.887,37.16H38.22L0,44.534ZM131.469,38.45a.761.761,0,0,1-.484-.166.582.582,0,0,1-.228-.419l-.553-3.586a12.243,12.243,0,0,1-1.782-.721l-2.789,2.084a.718.718,0,0,1-.5.176.688.688,0,0,1-.495-.214,25.864,25.864,0,0,1-3.264-3.274.754.754,0,0,1,.018-.9c.2-.277.543-.713,1.01-1.3.483-.6.832-1.05,1.068-1.374a9.614,9.614,0,0,1-.811-1.929l-3.62-.527a.631.631,0,0,1-.416-.243.728.728,0,0,1-.159-.458V21.283a.743.743,0,0,1,.159-.448.6.6,0,0,1,.376-.253l3.68-.546a9.511,9.511,0,0,1,.772-1.792c-.523-.733-1.235-1.638-2.117-2.69a.731.731,0,0,1-.2-.467.82.82,0,0,1,.178-.449,19.577,19.577,0,0,1,1.949-2.095c.953-.924,1.582-1.393,1.87-1.393a.861.861,0,0,1,.515.195l2.729,2.084a11.551,11.551,0,0,1,1.8-.741,31.446,31.446,0,0,1,.573-3.623.666.666,0,0,1,.712-.546h4.392a.757.757,0,0,1,.485.166.58.58,0,0,1,.228.419l.553,3.584a12.576,12.576,0,0,1,1.782.722l2.809-2.085a.641.641,0,0,1,.475-.176.776.776,0,0,1,.5.195,27.035,27.035,0,0,1,3.264,3.313.625.625,0,0,1,.139.429.742.742,0,0,1-.159.447c-.2.271-.525.7-1.008,1.3-.467.581-.827,1.043-1.069,1.373a11.8,11.8,0,0,1,.812,1.91l3.62.545a.626.626,0,0,1,.416.244.736.736,0,0,1,.158.457v4.325a.755.755,0,0,1-.158.449.6.6,0,0,1-.4.253l-3.66.545a12.692,12.692,0,0,1-.772,1.774c.465.653,1.177,1.559,2.117,2.688a.751.751,0,0,1,.2.488.648.648,0,0,1-.178.448,19.638,19.638,0,0,1-1.958,2.1c-.947.918-1.573,1.384-1.861,1.384a.976.976,0,0,1-.515-.176l-2.731-2.1a11.361,11.361,0,0,1-1.8.741,31.849,31.849,0,0,1-.573,3.625.668.668,0,0,1-.713.546Zm-1.385-18.491a4.935,4.935,0,0,0,0,7.053,5.12,5.12,0,0,0,7.163,0,4.931,4.931,0,0,0,0-7.053,5.117,5.117,0,0,0-7.163,0Zm69.969,14.868a18.523,18.523,0,0,1-4.932-2.073l1.705-6.1A13.441,13.441,0,0,0,200.779,29a12.14,12.14,0,0,0,4.344.818,4.644,4.644,0,0,0,2.351-.482,1.538,1.538,0,0,0,.806-1.4q0-1.5-3.25-2.242-1.061-.246-1.705-.425a12.335,12.335,0,0,1-5.358-2.589,5.5,5.5,0,0,1-1.671-4.157,6.323,6.323,0,0,1,2.547-5.267,10.993,10.993,0,0,1,6.9-1.972,21.351,21.351,0,0,1,4.552.5,25.439,25.439,0,0,1,4.736,1.557l-1.705,5.491a14.244,14.244,0,0,0-3.319-1.636,10.6,10.6,0,0,0-3.364-.561,4.227,4.227,0,0,0-2.121.426,1.357,1.357,0,0,0-.714,1.232q0,1.211,3.227,2.04.737.2,1.106.291,4.264,1.187,5.935,2.79a5.728,5.728,0,0,1,1.67,4.337A6.781,6.781,0,0,1,213,33.37a11.48,11.48,0,0,1-7.259,2.14A22.577,22.577,0,0,1,200.053,34.827ZM30.568,31.834a12.566,12.566,0,0,1-3.292-8.59,12.567,12.567,0,0,1,3.247-8.568,11.3,11.3,0,0,1,8.423-3.638,9.519,9.519,0,0,1,7.217,3V11.8h8.264V34.735H46.163V32.186h-.09c-1.32,2.071-3.951,3.308-7.038,3.308A11.412,11.412,0,0,1,30.568,31.834Zm5.245-8.545a4.95,4.95,0,0,0,5.312,5.141,4.95,4.95,0,0,0,5.312-5.141A5.023,5.023,0,0,0,41.125,18.1,5.023,5.023,0,0,0,35.813,23.289Zm69.2,11.554-3.527-10.452q-.282-.892-.505-1.8t-.412-1.8a30.821,30.821,0,0,1-.917,3.454l-.047.16L96.1,34.842H90.176l-9.925-23.1h8.632l3.552,10.223q.4,1.12.634,1.955t.377,1.635a23.558,23.558,0,0,1,.917-3.179q.093-.274.141-.411l3.528-10.223h5.056l3.5,10.2.07.183a20.724,20.724,0,0,1,.988,3.43q.141-.732.364-1.532t.647-2.058l3.574-10.223h8.678l-9.971,23.1Zm80.154-.092-8.587-9.841v9.841h-7.888V1.5L176.583,0V22.28l8.272-9.665h9.96L184.584,23.266l11.156,11.485Zm-35.09,0V11.782h8.272v3.761h.091a8.131,8.131,0,0,1,7.546-4.074h1.593V19.3a6.8,6.8,0,0,0-3.5-.761c-4.593,0-5.728,3-5.728,6.941v9.268Z" transform="translate(17.13 15.31)"/></g><g transform="matrix(1, 0, 0, 1, -17.13, -9.94)" filter="url(#c)"><path d="M3.576-12.852v-4.3H6.628a2.867,2.867,0,0,1,1.945.55A2.034,2.034,0,0,1,9.188-15a2.06,2.06,0,0,1-.615,1.608,2.784,2.784,0,0,1-1.945.542ZM2.017-18.464V-6.748H3.576v-4.792H7.153a3.569,3.569,0,0,0,2.683-.9A3.478,3.478,0,0,0,10.747-15a3.45,3.45,0,0,0-.911-2.552,3.638,3.638,0,0,0-2.683-.911Zm11.421,7.483a4.221,4.221,0,0,1,.205-1.37,2.957,2.957,0,0,1,.566-1.009,2.411,2.411,0,0,1,.845-.624A2.515,2.515,0,0,1,16.08-14.2a2.515,2.515,0,0,1,1.026.213,2.411,2.411,0,0,1,.845.624,2.957,2.957,0,0,1,.566,1.009,4.221,4.221,0,0,1,.205,1.37,4.221,4.221,0,0,1-.205,1.37,2.867,2.867,0,0,1-.566,1,2.457,2.457,0,0,1-.845.615,2.515,2.515,0,0,1-1.026.213,2.515,2.515,0,0,1-1.026-.213,2.457,2.457,0,0,1-.845-.615,2.867,2.867,0,0,1-.566-1A4.221,4.221,0,0,1,13.438-10.981Zm-1.477,0a5.573,5.573,0,0,0,.263,1.739,3.97,3.97,0,0,0,.788,1.4,3.623,3.623,0,0,0,1.3.935,4.4,4.4,0,0,0,1.772.336A4.381,4.381,0,0,0,17.86-6.9a3.641,3.641,0,0,0,1.288-.935,3.97,3.97,0,0,0,.788-1.4,5.573,5.573,0,0,0,.263-1.739,5.65,5.65,0,0,0-.263-1.748,3.96,3.96,0,0,0-.788-1.411,3.729,3.729,0,0,0-1.288-.944,4.29,4.29,0,0,0-1.78-.345,4.3,4.3,0,0,0-1.772.345,3.71,3.71,0,0,0-1.3.944,3.96,3.96,0,0,0-.788,1.411A5.65,5.65,0,0,0,11.961-10.981Zm18.28,4.234,2.708-8.484H31.5L29.6-8.29h-.033L27.8-15.231H26.27L24.564-8.29h-.033l-1.92-6.941H21.068l2.724,8.484H25.3l1.707-6.744h.033l1.723,6.744ZM40.169-11.8H35.3a2.905,2.905,0,0,1,.213-.927A2.473,2.473,0,0,1,36-13.492a2.255,2.255,0,0,1,.747-.517,2.429,2.429,0,0,1,.976-.189,2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,40.169-11.8Zm1.346,2.363H40.136a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.105,5.105,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,41.515-9.439Zm1.526-5.793v8.484h1.395v-3.774a5.8,5.8,0,0,1,.164-1.452,2.784,2.784,0,0,1,.525-1.075,2.251,2.251,0,0,1,.952-.673,3.945,3.945,0,0,1,1.428-.23v-1.477a3.135,3.135,0,0,0-1.871.459,3.779,3.779,0,0,0-1.247,1.526h-.033v-1.789ZM54.15-11.8H49.276a2.905,2.905,0,0,1,.213-.927,2.473,2.473,0,0,1,.492-.763,2.255,2.255,0,0,1,.747-.517A2.429,2.429,0,0,1,51.7-14.2a2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,54.15-11.8ZM55.5-9.439H54.117a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.1,5.1,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,55.5-9.439Zm2.593-1.477a5.581,5.581,0,0,1,.131-1.214,3.212,3.212,0,0,1,.427-1.05,2.221,2.221,0,0,1,.788-.738,2.4,2.4,0,0,1,1.2-.279,2.589,2.589,0,0,1,1.231.271,2.389,2.389,0,0,1,.829.714,2.985,2.985,0,0,1,.468,1.026,4.889,4.889,0,0,1,.148,1.206,4.919,4.919,0,0,1-.139,1.165,3.053,3.053,0,0,1-.451,1.026,2.4,2.4,0,0,1-.8.73,2.4,2.4,0,0,1-1.2.279,2.491,2.491,0,0,1-1.173-.263,2.332,2.332,0,0,1-.82-.706,3.122,3.122,0,0,1-.476-1.009A4.338,4.338,0,0,1,58.088-10.916Zm6.564,4.168V-18.464H63.257V-14.1h-.033a2.247,2.247,0,0,0-.566-.632,3.216,3.216,0,0,0-.714-.41,3.583,3.583,0,0,0-.755-.222,4.132,4.132,0,0,0-.706-.066,3.861,3.861,0,0,0-1.7.353,3.487,3.487,0,0,0-1.214.952,4.018,4.018,0,0,0-.722,1.4,5.985,5.985,0,0,0-.238,1.707,5.8,5.8,0,0,0,.246,1.707,4.218,4.218,0,0,0,.73,1.411,3.529,3.529,0,0,0,1.214.968,3.827,3.827,0,0,0,1.715.361,4.135,4.135,0,0,0,1.625-.312A2.053,2.053,0,0,0,63.224-7.9h.033v1.149Zm6.761-11.716V-6.748h1.395V-7.88h.033a2.247,2.247,0,0,0,.566.632,2.982,2.982,0,0,0,.714.4,3.874,3.874,0,0,0,.763.213,4.193,4.193,0,0,0,.7.066,3.94,3.94,0,0,0,1.7-.345,3.4,3.4,0,0,0,1.214-.944,4.018,4.018,0,0,0,.722-1.4,5.985,5.985,0,0,0,.238-1.707,5.8,5.8,0,0,0-.246-1.707,4.312,4.312,0,0,0-.73-1.419,3.488,3.488,0,0,0-1.214-.976,3.827,3.827,0,0,0-1.715-.361,4.043,4.043,0,0,0-1.625.32,2.088,2.088,0,0,0-1.083,1.026h-.033v-4.381Zm6.564,7.4a5.581,5.581,0,0,1-.131,1.214,3.212,3.212,0,0,1-.427,1.05,2.243,2.243,0,0,1-.779.738,2.385,2.385,0,0,1-1.206.279A2.589,2.589,0,0,1,74.2-8.052a2.389,2.389,0,0,1-.829-.714,2.985,2.985,0,0,1-.468-1.026A4.889,4.889,0,0,1,72.758-11a4.919,4.919,0,0,1,.139-1.165,3.053,3.053,0,0,1,.451-1.026,2.4,2.4,0,0,1,.8-.73,2.4,2.4,0,0,1,1.2-.279,2.491,2.491,0,0,1,1.173.263,2.332,2.332,0,0,1,.82.706,3.122,3.122,0,0,1,.476,1.009A4.338,4.338,0,0,1,77.976-11.063Zm6.449,5.448a8.871,8.871,0,0,1-.484,1.05,2.871,2.871,0,0,1-.525.7,1.782,1.782,0,0,1-.64.394,2.462,2.462,0,0,1-.812.123,3.721,3.721,0,0,1-.492-.033A2.324,2.324,0,0,1,81-3.5v-1.28a2.342,2.342,0,0,0,.418.139,1.765,1.765,0,0,0,.4.057,1.2,1.2,0,0,0,.714-.205,1.255,1.255,0,0,0,.435-.583L83.539-6.8l-3.364-8.434h1.575L84.228-8.29h.033l2.379-6.941h1.477Z" transform="translate(17.85 28.4)"/></g></g></g><g transform="translate(0 0)"><g transform="translate(0 5.371)"><path d="M11.76,24.456A11.41,11.41,0,0,1,3.292,20.8,12.564,12.564,0,0,1,0,12.206,12.569,12.569,0,0,1,3.246,3.638,11.307,11.307,0,0,1,11.67,0a9.519,9.519,0,0,1,7.217,3V.759h8.264V23.7H18.887V21.148H18.8C17.478,23.219,14.846,24.456,11.76,24.456ZM13.849,7.064A5.023,5.023,0,0,0,8.537,12.25a4.95,4.95,0,0,0,5.312,5.141A4.95,4.95,0,0,0,19.16,12.25,5.023,5.023,0,0,0,13.849,7.064Z" transform="translate(27.277 11.038)" fill="#fff"/><path d="M0,33.931V.758H8.271v2.6H8.36A8.258,8.258,0,0,1,15.406,0,11.4,11.4,0,0,1,23.9,3.686a12.665,12.665,0,0,1,3.278,8.622,12.508,12.508,0,0,1-3.25,8.57,11.351,11.351,0,0,1-8.429,3.6,9.535,9.535,0,0,1-7.229-2.95V32.337L0,33.931ZM13.317,7.07A5.028,5.028,0,0,0,8,12.259a4.957,4.957,0,0,0,5.319,5.15,4.957,4.957,0,0,0,5.319-5.15A5.028,5.028,0,0,0,13.317,7.07Z" transform="translate(55.766 11.041)" fill="#fff"/><path d="M22.836,0l3.5,10.2.07.183a20.748,20.748,0,0,1,.988,3.43q.141-.731.364-1.532t.647-2.058L31.985,0h8.678L30.691,23.1H24.764L21.237,12.647q-.282-.891-.505-1.8t-.412-1.8A30.927,30.927,0,0,1,19.4,12.51l-.047.16L15.851,23.1H9.925L0,0H8.631l3.552,10.223q.4,1.121.635,1.955t.377,1.635a23.522,23.522,0,0,1,.917-3.179q.093-.274.141-.411L17.78,0h5.056" transform="translate(80.251 11.743)" fill="#fff"/><path d="M0,34.75V1.5L7.888,0V22.28l8.272-9.665H26.12L15.889,23.266,27.045,34.75H16.475L7.888,24.91v9.84H0" transform="translate(168.695 0)" fill="#fff"/><path d="M0,21.47l1.705-6.1a13.453,13.453,0,0,0,3.952,2.342A12.145,12.145,0,0,0,10,18.534a4.643,4.643,0,0,0,2.351-.482,1.539,1.539,0,0,0,.807-1.4q0-1.5-3.25-2.241-1.06-.246-1.705-.426A12.325,12.325,0,0,1,2.846,11.4,5.5,5.5,0,0,1,1.176,7.239,6.324,6.324,0,0,1,3.722,1.972,11,11,0,0,1,10.624,0a21.365,21.365,0,0,1,4.551.5,25.45,25.45,0,0,1,4.736,1.558l-1.706,5.49a14.24,14.24,0,0,0-3.319-1.636,10.6,10.6,0,0,0-3.364-.56A4.22,4.22,0,0,0,9.4,5.782a1.356,1.356,0,0,0-.714,1.233q0,1.211,3.227,2.04.737.2,1.106.291,4.264,1.188,5.935,2.79a5.728,5.728,0,0,1,1.671,4.337,6.782,6.782,0,0,1-2.743,5.614,11.478,11.478,0,0,1-7.259,2.14,22.565,22.565,0,0,1-5.693-.683A18.517,18.517,0,0,1,0,21.47" transform="translate(195.121 11.284)" fill="#fff"/><path d="M8.273,4.075h.091A8.13,8.13,0,0,1,15.909,0H17.5V7.834A6.8,6.8,0,0,0,14,7.074c-4.593,0-5.728,3-5.728,6.941v9.268H0V.313H8.273V4.075" transform="translate(150.08 11.469)" fill="#fff"/><path d="M17.392,29.929H13a.76.76,0,0,1-.485-.166.579.579,0,0,1-.227-.419l-.553-3.586a12.3,12.3,0,0,1-1.781-.721L7.163,27.123a.719.719,0,0,1-.495.176.687.687,0,0,1-.495-.214A25.873,25.873,0,0,1,2.91,23.81a.753.753,0,0,1,.019-.9c.2-.277.542-.713,1.009-1.3.483-.6.832-1.05,1.068-1.374a9.591,9.591,0,0,1-.811-1.929l-3.62-.526a.63.63,0,0,1-.416-.243A.729.729,0,0,1,0,17.089V12.762a.746.746,0,0,1,.159-.448.6.6,0,0,1,.376-.253l3.68-.546a9.5,9.5,0,0,1,.772-1.792C4.464,8.991,3.752,8.085,2.87,7.034a.732.732,0,0,1-.2-.468.82.82,0,0,1,.179-.449A19.622,19.622,0,0,1,4.8,4.023C5.751,3.1,6.38,2.631,6.668,2.631a.859.859,0,0,1,.515.194L9.913,4.91a11.536,11.536,0,0,1,1.8-.741A31.372,31.372,0,0,1,12.287.546.665.665,0,0,1,13,0h4.392a.755.755,0,0,1,.485.166.581.581,0,0,1,.229.419l.553,3.584a12.543,12.543,0,0,1,1.781.722L23.25,2.807a.641.641,0,0,1,.475-.176.775.775,0,0,1,.495.194,27.092,27.092,0,0,1,3.264,3.313.625.625,0,0,1,.139.429.745.745,0,0,1-.159.448c-.2.271-.525.695-1.008,1.3-.467.581-.827,1.043-1.069,1.373a11.784,11.784,0,0,1,.812,1.91l3.62.545a.625.625,0,0,1,.416.244.736.736,0,0,1,.157.458v4.325a.754.754,0,0,1-.157.449.606.606,0,0,1-.4.253l-3.66.545a12.628,12.628,0,0,1-.772,1.774c.465.654,1.177,1.559,2.117,2.688a.752.752,0,0,1,.2.488.648.648,0,0,1-.177.448,19.641,19.641,0,0,1-1.959,2.1c-.947.918-1.573,1.384-1.86,1.384a.978.978,0,0,1-.515-.176l-2.731-2.1a11.429,11.429,0,0,1-1.8.741,32.016,32.016,0,0,1-.573,3.624A.668.668,0,0,1,17.392,29.929ZM15.2,9.976a4.938,4.938,0,0,0-3.582,1.463,4.935,4.935,0,0,0,0,7.053,5.12,5.12,0,0,0,7.163,0,4.932,4.932,0,0,0,0-7.053A4.938,4.938,0,0,0,15.2,9.976Z" transform="translate(118.47 8.521)" fill="#fff"/><path d="M0,33.5,16.106,7.374H2.752V0H30.9L14.887,26.122H38.22L0,33.5" transform="translate(0 11.038)" fill="#fff"/></g><path d="M3.576-12.852v-4.3H6.628a2.867,2.867,0,0,1,1.945.55A2.034,2.034,0,0,1,9.188-15a2.06,2.06,0,0,1-.615,1.608,2.784,2.784,0,0,1-1.945.542ZM2.017-18.464V-6.748H3.576v-4.792H7.153a3.569,3.569,0,0,0,2.683-.9A3.478,3.478,0,0,0,10.747-15a3.45,3.45,0,0,0-.911-2.552,3.638,3.638,0,0,0-2.683-.911Zm11.421,7.483a4.221,4.221,0,0,1,.205-1.37,2.957,2.957,0,0,1,.566-1.009,2.411,2.411,0,0,1,.845-.624A2.515,2.515,0,0,1,16.08-14.2a2.515,2.515,0,0,1,1.026.213,2.411,2.411,0,0,1,.845.624,2.957,2.957,0,0,1,.566,1.009,4.221,4.221,0,0,1,.205,1.37,4.221,4.221,0,0,1-.205,1.37,2.867,2.867,0,0,1-.566,1,2.457,2.457,0,0,1-.845.615,2.515,2.515,0,0,1-1.026.213,2.515,2.515,0,0,1-1.026-.213,2.457,2.457,0,0,1-.845-.615,2.867,2.867,0,0,1-.566-1A4.221,4.221,0,0,1,13.438-10.981Zm-1.477,0a5.573,5.573,0,0,0,.263,1.739,3.97,3.97,0,0,0,.788,1.4,3.623,3.623,0,0,0,1.3.935,4.4,4.4,0,0,0,1.772.336A4.381,4.381,0,0,0,17.86-6.9a3.641,3.641,0,0,0,1.288-.935,3.97,3.97,0,0,0,.788-1.4,5.573,5.573,0,0,0,.263-1.739,5.65,5.65,0,0,0-.263-1.748,3.96,3.96,0,0,0-.788-1.411,3.729,3.729,0,0,0-1.288-.944,4.29,4.29,0,0,0-1.78-.345,4.3,4.3,0,0,0-1.772.345,3.71,3.71,0,0,0-1.3.944,3.96,3.96,0,0,0-.788,1.411A5.65,5.65,0,0,0,11.961-10.981Zm18.28,4.234,2.708-8.484H31.5L29.6-8.29h-.033L27.8-15.231H26.27L24.564-8.29h-.033l-1.92-6.941H21.068l2.724,8.484H25.3l1.707-6.744h.033l1.723,6.744ZM40.169-11.8H35.3a2.905,2.905,0,0,1,.213-.927A2.473,2.473,0,0,1,36-13.492a2.255,2.255,0,0,1,.747-.517,2.429,2.429,0,0,1,.976-.189,2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,40.169-11.8Zm1.346,2.363H40.136a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.105,5.105,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,41.515-9.439Zm1.526-5.793v8.484h1.395v-3.774a5.8,5.8,0,0,1,.164-1.452,2.784,2.784,0,0,1,.525-1.075,2.251,2.251,0,0,1,.952-.673,3.945,3.945,0,0,1,1.428-.23v-1.477a3.135,3.135,0,0,0-1.871.459,3.779,3.779,0,0,0-1.247,1.526h-.033v-1.789ZM54.15-11.8H49.276a2.905,2.905,0,0,1,.213-.927,2.473,2.473,0,0,1,.492-.763,2.255,2.255,0,0,1,.747-.517A2.429,2.429,0,0,1,51.7-14.2a2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,54.15-11.8ZM55.5-9.439H54.117a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.1,5.1,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,55.5-9.439Zm2.593-1.477a5.581,5.581,0,0,1,.131-1.214,3.212,3.212,0,0,1,.427-1.05,2.221,2.221,0,0,1,.788-.738,2.4,2.4,0,0,1,1.2-.279,2.589,2.589,0,0,1,1.231.271,2.389,2.389,0,0,1,.829.714,2.985,2.985,0,0,1,.468,1.026,4.889,4.889,0,0,1,.148,1.206,4.919,4.919,0,0,1-.139,1.165,3.053,3.053,0,0,1-.451,1.026,2.4,2.4,0,0,1-.8.73,2.4,2.4,0,0,1-1.2.279,2.491,2.491,0,0,1-1.173-.263,2.332,2.332,0,0,1-.82-.706,3.122,3.122,0,0,1-.476-1.009A4.338,4.338,0,0,1,58.088-10.916Zm6.564,4.168V-18.464H63.257V-14.1h-.033a2.247,2.247,0,0,0-.566-.632,3.216,3.216,0,0,0-.714-.41,3.583,3.583,0,0,0-.755-.222,4.132,4.132,0,0,0-.706-.066,3.861,3.861,0,0,0-1.7.353,3.487,3.487,0,0,0-1.214.952,4.018,4.018,0,0,0-.722,1.4,5.985,5.985,0,0,0-.238,1.707,5.8,5.8,0,0,0,.246,1.707,4.218,4.218,0,0,0,.73,1.411,3.529,3.529,0,0,0,1.214.968,3.827,3.827,0,0,0,1.715.361,4.135,4.135,0,0,0,1.625-.312A2.053,2.053,0,0,0,63.224-7.9h.033v1.149Zm6.761-11.716V-6.748h1.395V-7.88h.033a2.247,2.247,0,0,0,.566.632,2.982,2.982,0,0,0,.714.4,3.874,3.874,0,0,0,.763.213,4.193,4.193,0,0,0,.7.066,3.94,3.94,0,0,0,1.7-.345,3.4,3.4,0,0,0,1.214-.944,4.018,4.018,0,0,0,.722-1.4,5.985,5.985,0,0,0,.238-1.707,5.8,5.8,0,0,0-.246-1.707,4.312,4.312,0,0,0-.73-1.419,3.488,3.488,0,0,0-1.214-.976,3.827,3.827,0,0,0-1.715-.361,4.043,4.043,0,0,0-1.625.32,2.088,2.088,0,0,0-1.083,1.026h-.033v-4.381Zm6.564,7.4a5.581,5.581,0,0,1-.131,1.214,3.212,3.212,0,0,1-.427,1.05,2.243,2.243,0,0,1-.779.738,2.385,2.385,0,0,1-1.206.279A2.589,2.589,0,0,1,74.2-8.052a2.389,2.389,0,0,1-.829-.714,2.985,2.985,0,0,1-.468-1.026A4.889,4.889,0,0,1,72.758-11a4.919,4.919,0,0,1,.139-1.165,3.053,3.053,0,0,1,.451-1.026,2.4,2.4,0,0,1,.8-.73,2.4,2.4,0,0,1,1.2-.279,2.491,2.491,0,0,1,1.173.263,2.332,2.332,0,0,1,.82.706,3.122,3.122,0,0,1,.476,1.009A4.338,4.338,0,0,1,77.976-11.063Zm6.449,5.448a8.871,8.871,0,0,1-.484,1.05,2.871,2.871,0,0,1-.525.7,1.782,1.782,0,0,1-.64.394,2.462,2.462,0,0,1-.812.123,3.721,3.721,0,0,1-.492-.033A2.324,2.324,0,0,1,81-3.5v-1.28a2.342,2.342,0,0,0,.418.139,1.765,1.765,0,0,0,.4.057,1.2,1.2,0,0,0,.714-.205,1.255,1.255,0,0,0,.435-.583L83.539-6.8l-3.364-8.434h1.575L84.228-8.29h.033l2.379-6.941h1.477Z" transform="translate(0.722 18.464)" fill="#fff"/></g></g></g></svg>'},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ImageTracker=void 0;const n=r(43);let i=new Map;const a=new TextDecoder;class o{constructor(e,t){this._client=e,this._impl=t,this._targets=[]}static create(e,t){let r=t.image_tracker_create(e);return i.set(r,new o(t,r)),r}static get(e){return i.get(e)}destroy(){this._client.image_tracker_destroy(this._impl),i.delete(this._impl)}loadFromMemory(e){this._targets.push({data:e}),this._client.image_tracker_target_load_from_memory(this._impl,e)}targetCount(){return this._targets.length}getTargetInfo(e){let t=this._targets[e];if(t&&t.info)return t.info;t.info={topRadius:-1,bottomRadius:-1,sideLength:-1,physicalScaleFactor:-1};try{const e=new n.RiffReader(t.data,!1),r=e.find("IMG ");if(r){let n="image/png";const i=e.find("IMGM");i&&(n=a.decode(i.data)),t.info.preview={mimeType:n,compressed:r.data}}const i=e.find("ODLE");if(i){const e=a.decode(i.data);this._parseOdle(e,t.info)}}catch(e){}return t.info}_parseOdle(e,t){let r=0,n="0";if([n,r]=s(r,e),"3"===n){let n="0";if([n,r]=s(r,e),"0"!==n&&"1"!==n)return;let i="0";[i,r]=s(r,e);const a=parseInt(i);if(isNaN(a)||a<1)return;let o="";if([o,r]=s(r,e),0!==o.length)return;let u="";[u,r]=s(r,e);const c=u.split(" ");if(c.length<7)return;t.physicalScaleFactor=parseFloat(c[6]),isNaN(t.physicalScaleFactor)&&(t.physicalScaleFactor=-1),c.length>=8&&(t.topRadius=parseFloat(c[7]),isNaN(t.topRadius)&&(t.topRadius=-1),t.bottomRadius=t.topRadius),c.length>=9&&(t.bottomRadius=parseFloat(c[8]),isNaN(t.bottomRadius)&&(t.bottomRadius=-1)),c.length>=10&&(t.sideLength=parseFloat(c[9]),isNaN(t.sideLength)&&(t.sideLength=-1))}}getDecodedPreview(e){const t=this.getTargetInfo(e);if(!t.preview)return new Image;const r=new Blob([t.preview.compressed],{type:t.preview.mimeType}),n=new Image;return n.src=URL.createObjectURL(r),n}}function s(e,t){let r=t.indexOf("\n",e);return[t.substring(e,r>=0?r:void 0).replace("\r",""),r+1]}t.ImageTracker=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RiffReader=void 0;const n=new TextDecoder;t.RiffReader=class{constructor(e,t=!1){this._data=e,this._paddingBytes=t,this.truncatedChunks=!1,this._view=new DataView(this._data),this.root=this._parse()}_parse(){if("RIFF"!==n.decode(this._data.slice(0,4)))throw new Error("Not a valid ZPT file");return this._parseChunk(0)}_parseChunk(e){const t=n.decode(this._data.slice(e,e+4)),r=this._view.getUint32(e+4,!0),i=new Uint8Array(this._data,e+8,r);let a,o;if(i.byteLength!==r&&(this.truncatedChunks=!0),"RIFF"===t||"LIST"===t){o=n.decode(this._data.slice(e+8,e+12)),a=[];let t=4;for(;t<i.byteLength-1;){const r=this._parseChunk(e+8+t);a.push(r),t+=r.data.byteLength+8,this._paddingBytes&&1&r.data.byteLength&&t++}}return{ident:t,data:i,subident:o,subchunks:a}}find(e,t=this.root){if(t.ident===e)return t;if(t.subchunks)for(let r of t.subchunks){const t=this.find(e,r);if(t)return t}}has(e){return void 0!==this.find(e)}}},function(e,t,r){"use strict";r.r(t),t.default=r.p+"f7b62a3a53b5c9b3222ba8dc53cb8b11.zbin"},function(e,t,r){"use strict";r.r(t),t.default=r.p+"482727c0e7dd40d73f5aae47f238ad61.zbin"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VERSION=void 0,t.VERSION="0.4.0-beta.10"}])}));