@react-three/drei 9.74.13 → 9.74.15

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 (189) hide show
  1. package/core/CatmullRomLine.js +0 -2
  2. package/core/Cloud.js +0 -3
  3. package/core/CubeCamera.js +0 -1
  4. package/core/CubicBezierLine.js +0 -2
  5. package/core/Environment.js +0 -1
  6. package/core/Example.js +0 -6
  7. package/core/FaceControls.cjs.js +1 -1
  8. package/core/FaceControls.js +0 -2
  9. package/core/FaceLandmarker.cjs.js +1 -1
  10. package/core/FaceLandmarker.js +3 -4
  11. package/core/Facemesh.js +0 -2
  12. package/core/GizmoHelper.js +0 -3
  13. package/core/GizmoViewcube.js +0 -4
  14. package/core/GizmoViewport.js +0 -4
  15. package/core/Gltf.js +0 -4
  16. package/core/MeshDiscardMaterial.js +0 -2
  17. package/core/MeshDistortMaterial.js +1 -2
  18. package/core/MeshReflectorMaterial.js +0 -1
  19. package/core/MeshRefractionMaterial.js +0 -2
  20. package/core/MeshTransmissionMaterial.js +0 -1
  21. package/core/OrthographicCamera.js +0 -1
  22. package/core/PerspectiveCamera.js +0 -1
  23. package/core/QuadraticBezierLine.js +0 -2
  24. package/core/Reflector.js +0 -1
  25. package/core/SpotLight.js +1 -2
  26. package/core/Stage.js +0 -7
  27. package/core/Text3D.js +0 -1
  28. package/core/Wireframe.js +0 -1
  29. package/core/index.cjs.js +1 -1
  30. package/core/index.js +1 -0
  31. package/core/useKTX2.js +0 -1
  32. package/core/useMatcapTexture.js +0 -2
  33. package/core/useNormalTexture.js +0 -1
  34. package/index.cjs.js +1 -1
  35. package/materials/DiscardMaterial.js +0 -1
  36. package/materials/MeshRefractionMaterial.js +1 -1
  37. package/native/index.cjs.js +1 -1
  38. package/native/index.js +1 -0
  39. package/package.json +2 -2
  40. package/web/Loader.js +0 -2
  41. package/web/index.cjs.js +1 -1
  42. package/web/index.js +1 -0
  43. package/web/pivotControls/AxisArrow.js +0 -3
  44. package/web/pivotControls/AxisRotator.js +0 -3
  45. package/web/pivotControls/PlaneSlider.js +0 -3
  46. package/web/pivotControls/index.js +0 -5
  47. package/src/core/AccumulativeShadows.js +0 -311
  48. package/src/core/AdaptiveDpr.js +0 -28
  49. package/src/core/AdaptiveEvents.js +0 -20
  50. package/src/core/ArcballControls.js +0 -67
  51. package/src/core/AsciiRenderer.js +0 -60
  52. package/src/core/BBAnchor.js +0 -37
  53. package/src/core/Backdrop.js +0 -36
  54. package/src/core/BakeShadows.js +0 -16
  55. package/src/core/Billboard.js +0 -41
  56. package/src/core/Bounds.js +0 -245
  57. package/src/core/CameraControls.js +0 -92
  58. package/src/core/CameraShake.js +0 -61
  59. package/src/core/CatmullRomLine.js +0 -44
  60. package/src/core/Caustics.js +0 -375
  61. package/src/core/Center.js +0 -66
  62. package/src/core/Clone.js +0 -102
  63. package/src/core/Cloud.js +0 -59
  64. package/src/core/ComputedAttribute.js +0 -34
  65. package/src/core/ContactShadows.js +0 -114
  66. package/src/core/CubeCamera.js +0 -43
  67. package/src/core/CubicBezierLine.js +0 -28
  68. package/src/core/CurveModifier.js +0 -34
  69. package/src/core/Decal.js +0 -92
  70. package/src/core/Detailed.js +0 -34
  71. package/src/core/DeviceOrientationControls.js +0 -51
  72. package/src/core/Edges.js +0 -36
  73. package/src/core/Effects.js +0 -93
  74. package/src/core/Environment.js +0 -132
  75. package/src/core/Example.js +0 -42
  76. package/src/core/FaceControls.js +0 -315
  77. package/src/core/FaceLandmarker.js +0 -43
  78. package/src/core/Facemesh.js +0 -4545
  79. package/src/core/FirstPersonControls.js +0 -38
  80. package/src/core/Float.js +0 -36
  81. package/src/core/FlyControls.js +0 -55
  82. package/src/core/GizmoHelper.js +0 -111
  83. package/src/core/GizmoViewcube.js +0 -152
  84. package/src/core/GizmoViewport.js +0 -152
  85. package/src/core/Gltf.js +0 -20
  86. package/src/core/GradientTexture.js +0 -33
  87. package/src/core/Grid.js +0 -112
  88. package/src/core/Hud.js +0 -58
  89. package/src/core/Image.js +0 -119
  90. package/src/core/Instances.js +0 -215
  91. package/src/core/Lightformer.js +0 -51
  92. package/src/core/Line.js +0 -68
  93. package/src/core/MapControls.js +0 -64
  94. package/src/core/MarchingCubes.js +0 -76
  95. package/src/core/Mask.js +0 -42
  96. package/src/core/MeshDiscardMaterial.js +0 -15
  97. package/src/core/MeshDistortMaterial.js +0 -79
  98. package/src/core/MeshPortalMaterial.js +0 -381
  99. package/src/core/MeshReflectorMaterial.js +0 -182
  100. package/src/core/MeshRefractionMaterial.js +0 -79
  101. package/src/core/MeshTransmissionMaterial.js +0 -395
  102. package/src/core/MeshWobbleMaterial.js +0 -65
  103. package/src/core/OrbitControls.js +0 -82
  104. package/src/core/OrthographicCamera.js +0 -77
  105. package/src/core/PerformanceMonitor.js +0 -121
  106. package/src/core/PerspectiveCamera.js +0 -73
  107. package/src/core/PointMaterial.js +0 -36
  108. package/src/core/PointerLockControls.js +0 -90
  109. package/src/core/Points.js +0 -227
  110. package/src/core/PositionalAudio.js +0 -51
  111. package/src/core/Preload.js +0 -45
  112. package/src/core/QuadraticBezierLine.js +0 -44
  113. package/src/core/Reflector.js +0 -182
  114. package/src/core/RenderTexture.js +0 -96
  115. package/src/core/Resize.js +0 -39
  116. package/src/core/RoundedBox.js +0 -52
  117. package/src/core/Sampler.js +0 -85
  118. package/src/core/ScreenQuad.js +0 -24
  119. package/src/core/ScreenSpace.js +0 -25
  120. package/src/core/Segments.js +0 -102
  121. package/src/core/Shadow.js +0 -42
  122. package/src/core/Sky.js +0 -39
  123. package/src/core/Sparkles.js +0 -139
  124. package/src/core/SpotLight.js +0 -231
  125. package/src/core/SpriteAnimator.js +0 -342
  126. package/src/core/Stage.js +0 -135
  127. package/src/core/Stars.js +0 -108
  128. package/src/core/Stats.js +0 -30
  129. package/src/core/Svg.js +0 -59
  130. package/src/core/Text.js +0 -58
  131. package/src/core/Text3D.js +0 -76
  132. package/src/core/TrackballControls.js +0 -72
  133. package/src/core/Trail.js +0 -161
  134. package/src/core/TransformControls.js +0 -106
  135. package/src/core/Wireframe.js +0 -185
  136. package/src/core/meshBounds.js +0 -38
  137. package/src/core/shaderMaterial.js +0 -39
  138. package/src/core/shapes.js +0 -68
  139. package/src/core/softShadows.js +0 -161
  140. package/src/core/useAnimations.js +0 -56
  141. package/src/core/useAspect.js +0 -10
  142. package/src/core/useBVH.js +0 -90
  143. package/src/core/useBoxProjectedEnv.js +0 -98
  144. package/src/core/useCamera.js +0 -27
  145. package/src/core/useContextBridge.js +0 -21
  146. package/src/core/useCubeCamera.js +0 -49
  147. package/src/core/useCubeTexture.js +0 -18
  148. package/src/core/useDepthBuffer.js +0 -38
  149. package/src/core/useDetectGPU.js +0 -6
  150. package/src/core/useEnvironment.js +0 -48
  151. package/src/core/useFBO.js +0 -53
  152. package/src/core/useFBX.js +0 -12
  153. package/src/core/useFont.js +0 -20
  154. package/src/core/useGLTF.js +0 -37
  155. package/src/core/useHelper.js +0 -31
  156. package/src/core/useIntersect.js +0 -39
  157. package/src/core/useKTX2.js +0 -38
  158. package/src/core/useMatcapTexture.js +0 -45
  159. package/src/core/useNormalTexture.js +0 -30
  160. package/src/core/useProgress.js +0 -50
  161. package/src/core/useTexture.js +0 -35
  162. package/src/core/useTrailTexture.js +0 -164
  163. package/src/core/useVideoTexture.js +0 -41
  164. package/src/helpers/environment-assets.js +0 -14
  165. package/src/helpers/useEffectfulState.js +0 -18
  166. package/src/materials/BlurPass.js +0 -75
  167. package/src/materials/ConvolutionMaterial.js +0 -99
  168. package/src/materials/DiscardMaterial.js +0 -5
  169. package/src/materials/MeshReflectorMaterial.js +0 -290
  170. package/src/materials/MeshRefractionMaterial.js +0 -171
  171. package/src/materials/SpotLightMaterial.js +0 -111
  172. package/src/materials/WireframeMaterial.js +0 -235
  173. package/src/web/CycleRaycast.js +0 -97
  174. package/src/web/Html.js +0 -417
  175. package/src/web/KeyboardControls.js +0 -101
  176. package/src/web/Loader.js +0 -98
  177. package/src/web/PresentationControls.js +0 -86
  178. package/src/web/ScrollControls.js +0 -246
  179. package/src/web/Select.js +0 -175
  180. package/src/web/View.js +0 -206
  181. package/src/web/pivotControls/AxisArrow.js +0 -202
  182. package/src/web/pivotControls/AxisRotator.js +0 -235
  183. package/src/web/pivotControls/PlaneSlider.js +0 -211
  184. package/src/web/pivotControls/context.js +0 -5
  185. package/src/web/pivotControls/index.js +0 -223
  186. package/src/web/useCursor.js +0 -12
  187. /package/{src/helpers → helpers}/glsl/DefaultSpotlightShadowShadows.glsl.js +0 -0
  188. /package/{src/helpers → helpers}/glsl/distort.vert.glsl.js +0 -0
  189. /package/{src/index.js → index.js} +0 -0
package/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _extends=require("@babel/runtime/helpers/extends"),React=require("react"),ReactDOM=require("react-dom/client"),THREE=require("three"),FIBER=require("@react-three/fiber"),create$1=require("zustand"),mergeRefs=require("react-merge-refs"),maath=require("maath"),three=require("@react-spring/three"),react=require("@use-gesture/react"),middleware=require("zustand/middleware"),threeStdlib=require("three-stdlib"),shallow=require("zustand/shallow"),troikaThreeText=require("troika-three-text"),suspendReact=require("suspend-react"),meshline=require("meshline"),pick=require("lodash.pick"),omit=require("lodash.omit"),CameraControlsImpl=require("camera-controls"),StatsImpl=require("stats.js"),detectGpu=require("detect-gpu"),threeMeshBvh=require("three-mesh-bvh"),Composer=require("react-composer"),clamp=require("lodash.clamp");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var _extends__default=_interopDefaultLegacy(_extends),React__namespace=_interopNamespace(React),ReactDOM__namespace=_interopNamespace(ReactDOM),THREE__namespace=_interopNamespace(THREE),FIBER__namespace=_interopNamespace(FIBER),create__default=_interopDefaultLegacy(create$1),mergeRefs__default=_interopDefaultLegacy(mergeRefs),shallow__default=_interopDefaultLegacy(shallow),pick__default=_interopDefaultLegacy(pick),omit__default=_interopDefaultLegacy(omit),CameraControlsImpl__default=_interopDefaultLegacy(CameraControlsImpl),StatsImpl__default=_interopDefaultLegacy(StatsImpl),Composer__default=_interopDefaultLegacy(Composer),clamp__default=_interopDefaultLegacy(clamp);const v1=new THREE.Vector3,v2=new THREE.Vector3,v3=new THREE.Vector3;function defaultCalculatePosition(e,t,r){const o=v1.setFromMatrixPosition(e.matrixWorld);o.project(t);const a=r.width/2,n=r.height/2;return[o.x*a+a,-o.y*n+n]}function isObjectBehindCamera(e,t){const r=v1.setFromMatrixPosition(e.matrixWorld),o=v2.setFromMatrixPosition(t.matrixWorld),a=r.sub(o),n=t.getWorldDirection(v3);return a.angleTo(n)>Math.PI/2}function isObjectVisible(e,t,r,o){const a=v1.setFromMatrixPosition(e.matrixWorld),n=a.clone();n.project(t),r.setFromCamera(n,t);const i=r.intersectObjects(o,!0);if(i.length){const e=i[0].distance;return a.distanceTo(r.ray.origin)<e}return!0}function objectScale(e,t){if(t instanceof THREE.OrthographicCamera)return t.zoom;if(t instanceof THREE.PerspectiveCamera){const r=v1.setFromMatrixPosition(e.matrixWorld),o=v2.setFromMatrixPosition(t.matrixWorld),a=t.fov*Math.PI/180,n=r.distanceTo(o);return 1/(2*Math.tan(a/2)*n)}return 1}function objectZIndex(e,t,r){if(t instanceof THREE.PerspectiveCamera||t instanceof THREE.OrthographicCamera){const o=v1.setFromMatrixPosition(e.matrixWorld),a=v2.setFromMatrixPosition(t.matrixWorld),n=o.distanceTo(a),i=(r[1]-r[0])/(t.far-t.near),s=r[1]-i*t.far;return Math.round(i*n+s)}}const epsilon=e=>Math.abs(e)<1e-10?0:e;function getCSSMatrix(e,t,r=""){let o="matrix3d(";for(let r=0;16!==r;r++)o+=epsilon(t[r]*e.elements[r])+(15!==r?",":")");return r+o}const getCameraCSSMatrix=(multipliers=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>getCSSMatrix(e,multipliers));var multipliers;const getObjectCSSMatrix=(e,t)=>{return getCSSMatrix(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r};function isRefObject$1(e){return e&&"object"==typeof e&&"current"in e}const Html=React__namespace.forwardRef((({children:e,eps:t=.001,style:r,className:o,prepend:a,center:n,fullscreen:i,portal:s,distanceFactor:p,sprite:d=!1,transform:l=!1,occlude:c,onOcclude:u,castShadow:g,receiveShadow:m,material:f,geometry:h,zIndexRange:y=[16777271,0],calculatePosition:_=defaultCalculatePosition,as:b="div",wrapperClass:R,pointerEvents:v="auto",...E},M)=>{const{gl:O,camera:F,scene:x,size:T,raycaster:S,events:k,viewport:C}=FIBER.useThree(),[B]=React__namespace.useState((()=>document.createElement(b))),w=React__namespace.useRef(),L=React__namespace.useRef(null),A=React__namespace.useRef(0),D=React__namespace.useRef([0,0]),I=React__namespace.useRef(null),z=React__namespace.useRef(null),P=(null==s?void 0:s.current)||k.connected||O.domElement.parentNode,j=React__namespace.useRef(null),G=React__namespace.useRef(!1),N=React__namespace.useMemo((()=>c&&"blending"!==c||Array.isArray(c)&&c.length&&isRefObject$1(c[0])),[c]);React__namespace.useLayoutEffect((()=>{const e=O.domElement;c&&"blending"===c?(e.style.zIndex=`${Math.floor(y[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)}),[c]),React__namespace.useLayoutEffect((()=>{if(L.current){const e=w.current=ReactDOM__namespace.createRoot(B);if(x.updateMatrixWorld(),l)B.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=_(L.current,F,T);B.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return P&&(a?P.prepend(B):P.appendChild(B)),()=>{P&&P.removeChild(B),e.unmount()}}}),[P,l]),React__namespace.useLayoutEffect((()=>{R&&(B.className=R)}),[R]);const W=React__namespace.useMemo((()=>l?{position:"absolute",top:0,left:0,width:T.width,height:T.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:n?"translate3d(-50%,-50%,0)":"none",...i&&{top:-T.height/2,left:-T.width/2,width:T.width,height:T.height},...r}),[r,n,i,T,l]),H=React__namespace.useMemo((()=>({position:"absolute",pointerEvents:v})),[v]);React__namespace.useLayoutEffect((()=>{var t,a;(G.current=!1,l)?null==(t=w.current)||t.render(React__namespace.createElement("div",{ref:I,style:W},React__namespace.createElement("div",{ref:z,style:H},React__namespace.createElement("div",{ref:M,className:o,style:r,children:e})))):null==(a=w.current)||a.render(React__namespace.createElement("div",{ref:M,style:W,className:o,children:e}))}));const U=React__namespace.useRef(!0);FIBER.useFrame((e=>{if(L.current){F.updateMatrixWorld(),L.current.updateWorldMatrix(!0,!1);const e=l?D.current:_(L.current,F,T);if(l||Math.abs(A.current-F.zoom)>t||Math.abs(D.current[0]-e[0])>t||Math.abs(D.current[1]-e[1])>t){const t=isObjectBehindCamera(L.current,F);let r=!1;N&&("blending"!==c?r=[x]:Array.isArray(c)&&(r=c.map((e=>e.current))));const o=U.current;if(r){const e=isObjectVisible(L.current,F,S,r);U.current=e&&!t}else U.current=!t;o!==U.current&&(u?u(!U.current):B.style.display=U.current?"block":"none");const a=Math.floor(y[0]/2),n=c?N?[y[0],a]:[a-1,0]:y;if(B.style.zIndex=`${objectZIndex(L.current,F,n)}`,l){const[e,t]=[T.width/2,T.height/2],r=F.projectionMatrix.elements[5]*t,{isOrthographicCamera:o,top:a,left:n,bottom:i,right:s}=F,l=getCameraCSSMatrix(F.matrixWorldInverse),c=o?`scale(${r})translate(${epsilon(-(s+n)/2)}px,${epsilon((a+i)/2)}px)`:`translateZ(${r}px)`;let u=L.current.matrixWorld;d&&(u=F.matrixWorldInverse.clone().transpose().copyPosition(u).scale(L.current.scale),u.elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),B.style.width=T.width+"px",B.style.height=T.height+"px",B.style.perspective=o?"":`${r}px`,I.current&&z.current&&(I.current.style.transform=`${c}${l}translate(${e}px,${t}px)`,z.current.style.transform=getObjectCSSMatrix(u,1/((p||10)/400)))}else{const t=void 0===p?1:objectScale(L.current,F)*p;B.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}D.current=e,A.current=F.zoom}}if(!N&&j.current&&!G.current)if(l){if(I.current){const e=I.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){const{isOrthographicCamera:t}=F;if(t||h)E.scale&&(Array.isArray(E.scale)?E.scale instanceof THREE.Vector3?j.current.scale.copy(E.scale.clone().divideScalar(1)):j.current.scale.set(1/E.scale[0],1/E.scale[1],1/E.scale[2]):j.current.scale.setScalar(1/E.scale));else{const t=(p||10)/400,r=e.clientWidth*t,o=e.clientHeight*t;j.current.scale.set(r,o,1)}G.current=!0}}}else{const t=B.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){const e=1/C.factor,r=t.clientWidth*e,o=t.clientHeight*e;j.current.scale.set(r,o,1),G.current=!0}j.current.lookAt(e.camera.position)}}));const V=React__namespace.useMemo((()=>({vertexShader:l?void 0:'\n /*\n This shader is from the THREE\'s SpriteMaterial.\n We need to turn the backing plane into a Sprite\n (make it always face the camera) if "transfrom" \n is false. \n */\n #include <common>\n\n void main() {\n vec2 center = vec2(0., 1.);\n float rotation = 0.0;\n \n // This is somewhat arbitrary, but it seems to work well\n // Need to figure out how to derive this dynamically if it even matters\n float size = 0.03;\n\n vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n vec2 scale;\n scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n }\n ',fragmentShader:"\n void main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n "})),[l]);return React__namespace.createElement("group",_extends__default.default({},E,{ref:L}),c&&!N&&React__namespace.createElement("mesh",{castShadow:g,receiveShadow:m,ref:j},h||React__namespace.createElement("planeGeometry",null),f||React__namespace.createElement("shaderMaterial",{side:THREE.DoubleSide,vertexShader:V.vertexShader,fragmentShader:V.fragmentShader})))}));function CycleRaycast({onChanged:e,portal:t,preventDefault:r=!0,scroll:o=!0,keyCode:a=9}){const n=React__namespace.useRef(0),i=FIBER.useThree((e=>e.setEvents)),s=FIBER.useThree((e=>e.get)),p=FIBER.useThree((e=>e.gl));return React__namespace.useEffect((()=>{var d;let l,c=[];const u=s().events.filter,g=null!==(d=null==t?void 0:t.current)&&void 0!==d?d:p.domElement.parentNode,m=()=>g&&e&&e(c,Math.round(n.current)%c.length);i({filter:(e,t)=>{let r=[...e];r.length===c.length&&c.every((e=>r.map((e=>e.object.uuid)).includes(e.object.uuid)))||(n.current=0,c=r,m()),u&&(r=u(r,t));for(let e=0;e<Math.round(n.current)%r.length;e++){const e=r.shift();r=[...r,e]}return r}});const f=e=>{var t,r;n.current=e(n.current),null==(t=s().events.handlers)||t.onPointerCancel(void 0),null==(r=s().events.handlers)||r.onPointerMove(l),m()},h=e=>{(e.keyCode||e.which===a)&&(r&&e.preventDefault(),c.length>1&&f((e=>e+1)))},y=e=>{r&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),c.length>1&&f((e=>Math.abs(e-t)))},_=e=>l=e;return document.addEventListener("pointermove",_,{passive:!0}),o&&document.addEventListener("wheel",y),void 0!==a&&document.addEventListener("keydown",h),()=>{i({filter:u}),void 0!==a&&document.removeEventListener("keydown",h),o&&document.removeEventListener("wheel",y),document.removeEventListener("pointermove",_)}}),[p,s,i,r,o,a]),null}function useCursor(e,t="pointer",r="auto"){React__namespace.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=r}}),[e])}let saveLastTotalLoaded=0;const useProgress=create__default.default((e=>(THREE.DefaultLoadingManager.onStart=(t,r,o)=>{e({active:!0,item:t,loaded:r,total:o,progress:(r-saveLastTotalLoaded)/(o-saveLastTotalLoaded)*100})},THREE.DefaultLoadingManager.onLoad=()=>{e({active:!1})},THREE.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),THREE.DefaultLoadingManager.onProgress=(t,r,o)=>{r===o&&(saveLastTotalLoaded=o),e({active:!0,item:t,loaded:r,total:o,progress:(r-saveLastTotalLoaded)/(o-saveLastTotalLoaded)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),defaultDataInterpolation=e=>`Loading ${e.toFixed(2)}%`;function Loader({containerStyles:e,innerStyles:t,barStyles:r,dataStyles:o,dataInterpolation:a=defaultDataInterpolation,initialState:n=(e=>e)}){const{active:i,progress:s}=useProgress(),p=React__namespace.useRef(0),d=React__namespace.useRef(0),l=React__namespace.useRef(null),[c,u]=React__namespace.useState(n(i));React__namespace.useEffect((()=>{let e;return i!==c&&(e=setTimeout((()=>u(i)),300)),()=>clearTimeout(e)}),[c,i]);const g=React__namespace.useCallback((()=>{l.current&&(p.current+=(s-p.current)/2,(p.current>.95*s||100===s)&&(p.current=s),l.current.innerText=a(p.current),p.current<s&&(d.current=requestAnimationFrame(g)))}),[a,s]);return React__namespace.useEffect((()=>(g(),()=>cancelAnimationFrame(d.current))),[g]),c?React__namespace.createElement("div",{style:{...styles.container,opacity:i?1:0,...e}},React__namespace.createElement("div",null,React__namespace.createElement("div",{style:{...styles.inner,...t}},React__namespace.createElement("div",{style:{...styles.bar,transform:`scaleX(${s/100})`,...r}}),React__namespace.createElement("span",{ref:l,style:{...styles.data,...o}})))):null}const styles={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}},context$7=React__namespace.createContext(null);function useScroll(){return React__namespace.useContext(context$7)}function ScrollControls({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:o,pages:a=1,distance:n=1,damping:i=.25,maxSpeed:s=1/0,style:p={},children:d}){const{get:l,setEvents:c,gl:u,size:g,invalidate:m,events:f}=FIBER.useThree(),[h]=React__namespace.useState((()=>document.createElement("div"))),[y]=React__namespace.useState((()=>document.createElement("div"))),[_]=React__namespace.useState((()=>document.createElement("div"))),b=u.domElement.parentNode,R=React__namespace.useRef(0),v=React__namespace.useMemo((()=>{const t={el:h,eps:e,fill:y,fixed:_,horizontal:o,damping:i,offset:0,delta:0,scroll:R,pages:a,range(e,t,r=0){const o=e-r,a=o+t+2*r;return this.offset<o?0:this.offset>a?1:(this.offset-o)/(a-o)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const o=e-r,a=o+t+2*r;return this.offset>=o&&this.offset<=a}};return t}),[e,i,o,a]);React__namespace.useEffect((()=>{h.style.position="absolute",h.style.width="100%",h.style.height="100%",h.style[o?"overflowX":"overflowY"]="auto",h.style[o?"overflowY":"overflowX"]="hidden",h.style.top="0px",h.style.left="0px";for(const e in p)h.style[e]=p[e];_.style.position="sticky",_.style.top="0px",_.style.left="0px",_.style.width="100%",_.style.height="100%",_.style.overflow="hidden",h.appendChild(_),y.style.height=o?"100%":a*n*100+"%",y.style.width=o?a*n*100+"%":"100%",y.style.pointerEvents="none",h.appendChild(y),b.appendChild(h),h[o?"scrollLeft":"scrollTop"]=1;const e=f.connected||u.domElement;requestAnimationFrame((()=>null==f.connect?void 0:f.connect(h)));const t=l().events.compute;return c({compute(e,t){const{left:r,top:o}=b.getBoundingClientRect(),a=e.clientX-r,n=e.clientY-o;t.pointer.set(a/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{b.removeChild(h),c({compute:t}),null==f.connect||f.connect(e)}}),[a,n,o,h,y,_,b]),React__namespace.useEffect((()=>{if(f.connected===h){const e=g[o?"width":"height"],a=h[o?"scrollWidth":"scrollHeight"],n=a-e;let i=0,s=!0,p=!0;const d=()=>{if(t&&!p&&(m(),i=h[o?"scrollLeft":"scrollTop"],R.current=i/n,r)){if(!s)if(i>=n){const e=1-v.offset;h[o?"scrollLeft":"scrollTop"]=1,R.current=v.offset=-e,s=!0}else if(i<=0){const e=1+v.offset;h[o?"scrollLeft":"scrollTop"]=a,R.current=v.offset=e,s=!0}s&&setTimeout((()=>s=!1),40)}};h.addEventListener("scroll",d,{passive:!0}),requestAnimationFrame((()=>p=!1));const l=e=>h.scrollLeft+=e.deltaY/2;return o&&h.addEventListener("wheel",l,{passive:!0}),()=>{h.removeEventListener("scroll",d),o&&h.removeEventListener("wheel",l)}}}),[h,f,g,r,v,m,o,t]);let E=0;return FIBER.useFrame(((t,r)=>{E=v.offset,maath.easing.damp(v,"offset",R.current,i,r,s,void 0,e),maath.easing.damp(v,"delta",Math.abs(E-v.offset),i,r,s,void 0,e),v.delta>e&&m()})),React__namespace.createElement(context$7.Provider,{value:v},d)}const ScrollCanvas=React__namespace.forwardRef((({children:e},t)=>{const r=React__namespace.useRef(null),o=useScroll(),{width:a,height:n}=FIBER.useThree((e=>e.viewport));return FIBER.useFrame((()=>{r.current.position.x=o.horizontal?-a*(o.pages-1)*o.offset:0,r.current.position.y=o.horizontal?0:n*(o.pages-1)*o.offset})),React__namespace.createElement("group",{ref:mergeRefs__default.default([t,r])},e)})),ScrollHtml=React__namespace.forwardRef((({children:e,style:t,...r},o)=>{const a=useScroll(),n=React__namespace.useRef(null),{width:i,height:s}=FIBER.useThree((e=>e.size)),p=React__namespace.useContext(FIBER.context),d=React__namespace.useMemo((()=>ReactDOM__namespace.createRoot(a.fixed)),[a.fixed]);return FIBER.useFrame((()=>{a.delta>a.eps&&(n.current.style.transform=`translate3d(${a.horizontal?-i*(a.pages-1)*a.offset:0}px,${a.horizontal?0:s*(a.pages-1)*-a.offset}px,0)`)})),d.render(React__namespace.createElement("div",_extends__default.default({ref:mergeRefs__default.default([o,n]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),React__namespace.createElement(context$7.Provider,{value:a},React__namespace.createElement(FIBER.context.Provider,{value:p},e)))),null})),Scroll=React__namespace.forwardRef((({html:e,...t},r)=>{const o=e?ScrollHtml:ScrollCanvas;return React__namespace.createElement(o,_extends__default.default({ref:r},t))}));function PresentationControls({enabled:e=!0,snap:t,global:r,domElement:o,cursor:a=!0,children:n,speed:i=1,rotation:s=[0,0,0],zoom:p=1,polar:d=[0,Math.PI/2],azimuth:l=[-1/0,1/0],config:c={mass:1,tension:170,friction:26}}){const u=FIBER.useThree((e=>e.events)),g=FIBER.useThree((e=>e.gl)),m=o||u.connected||g.domElement,{size:f}=FIBER.useThree(),h=React__namespace.useMemo((()=>[s[0]+d[0],s[0]+d[1]]),[s[0],d[0],d[1]]),y=React__namespace.useMemo((()=>[s[1]+l[0],s[1]+l[1]]),[s[1],l[0],l[1]]),_=React__namespace.useMemo((()=>[THREE.MathUtils.clamp(s[0],...h),THREE.MathUtils.clamp(s[1],...y),s[2]]),[s[0],s[1],s[2],h,y]),[b,R]=three.useSpring((()=>({scale:1,rotation:_,config:c})));React__namespace.useEffect((()=>{R.start({scale:1,rotation:_,config:c})}),[_]),React__namespace.useEffect((()=>{if(r&&a&&e)return m.style.cursor="grab",g.domElement.style.cursor="",()=>{m.style.cursor="default",g.domElement.style.cursor="default"}}),[r,a,m,e]);const v=react.useGesture({onHover:({last:t})=>{a&&!r&&e&&(m.style.cursor=t?"auto":"grab")},onDrag:({down:r,delta:[o,n],memo:[s,d]=b.rotation.animation.to||_})=>{if(!e)return[n,o];a&&(m.style.cursor=r?"grabbing":"grab"),o=THREE.MathUtils.clamp(d+o/f.width*Math.PI*i,...y),n=THREE.MathUtils.clamp(s+n/f.height*Math.PI*i,...h);const l=t&&!r&&"boolean"!=typeof t?t:c;return R.start({scale:r&&n>h[1]/2?p:1,rotation:t&&!r?_:[n,o,0],config:e=>"scale"===e?{...l,friction:3*l.friction}:l}),[n,o]}},{target:r?m:void 0});return React__namespace.createElement(three.a.group,_extends__default.default({},null==v?void 0:v(),b),n)}const context$6=React__namespace.createContext(null);function KeyboardControls({map:e,children:t,onChange:r,domElement:o}){const a=e.map((e=>e.name+e.keys)).join("-"),n=React__namespace.useMemo((()=>create__default.default(middleware.subscribeWithSelector((()=>e.reduce(((e,t)=>({...e,[t.name]:!1})),{}))))),[a]),i=React__namespace.useMemo((()=>[n.subscribe,n.getState,n]),[a]),s=n.setState;return React__namespace.useEffect((()=>{const t=e.map((({name:e,keys:t,up:o})=>({keys:t,up:o,fn:t=>{s({[e]:t}),r&&r(e,t,i[1]())}}))).reduce(((e,{keys:t,fn:r,up:o=!0})=>(t.forEach((t=>e[t]={fn:r,pressed:!1,up:o})),e)),{}),a=({key:e,code:r})=>{const o=t[e]||t[r];if(!o)return;const{fn:a,pressed:n,up:i}=o;o.pressed=!0,!i&&n||a(!0)},n=({key:e,code:r})=>{const o=t[e]||t[r];if(!o)return;const{fn:a,up:n}=o;o.pressed=!1,n&&a(!1)},p=o||window;return p.addEventListener("keydown",a,{passive:!0}),p.addEventListener("keyup",n,{passive:!0}),()=>{p.removeEventListener("keydown",a),p.removeEventListener("keyup",n)}}),[o,a]),React__namespace.createElement(context$6.Provider,{value:i,children:t})}function useKeyboardControls(e){const[t,r,o]=React__namespace.useContext(context$6);return e?o(e):[t,r]}const context$5=React__namespace.createContext([]);function Select({box:e,multiple:t,children:r,onChange:o,onChangePointerUp:a,border:n="1px solid #55aaff",backgroundColor:i="rgba(75, 160, 255, 0.1)",filter:s=(e=>e),...p}){const[d,l]=React__namespace.useState(!1),{setEvents:c,camera:u,raycaster:g,gl:m,controls:f,size:h,get:y}=FIBER.useThree(),[_,b]=React__namespace.useState(!1),[R,v]=React__namespace.useReducer(((e,{object:t,shift:r})=>void 0===t?[]:Array.isArray(t)?t:r?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);React__namespace.useEffect((()=>{d?null==o||o(R):null==a||a(R)}),[R,d]);const E=React__namespace.useCallback((e=>{e.stopPropagation(),v({object:s([e.object])[0],shift:t&&e.shiftKey})}),[]),M=React__namespace.useCallback((e=>!_&&v({})),[_]),O=React__namespace.useRef(null);return React__namespace.useEffect((()=>{if(!e||!t)return;const r=new threeStdlib.SelectionBox(u,O.current),o=document.createElement("div");o.style.pointerEvents="none",o.style.border=n,o.style.backgroundColor=i,o.style.position="fixed";const a=new THREE__namespace.Vector2,p=new THREE__namespace.Vector2,d=new THREE__namespace.Vector2,g=y().events.enabled,_=null==f?void 0:f.enabled;let b=!1;function R(e,t){const{offsetX:r,offsetY:o}=e,{width:a,height:n}=h;t.set(r/a*2-1,-o/n*2+1)}function E(e){e.shiftKey&&(!function(e){var t;f&&(f.enabled=!1),c({enabled:!1}),l(b=!0),null==(t=m.domElement.parentElement)||t.appendChild(o),o.style.left=`${e.clientX}px`,o.style.top=`${e.clientY}px`,o.style.width="0px",o.style.height="0px",a.x=e.clientX,a.y=e.clientY}(e),R(e,r.startPoint))}let M=[];function F(e){if(b){!function(e){d.x=Math.max(a.x,e.clientX),d.y=Math.max(a.y,e.clientY),p.x=Math.min(a.x,e.clientX),p.y=Math.min(a.y,e.clientY),o.style.left=`${p.x}px`,o.style.top=`${p.y}px`,o.style.width=d.x-p.x+"px",o.style.height=d.y-p.y+"px"}(e),R(e,r.endPoint);const t=r.select().sort((e=>e.uuid)).filter((e=>e.isMesh));shallow__default.default(t,M)||(M=t,v({object:s(t)}))}}function x(e){var t;b&&b&&(f&&(f.enabled=_),c({enabled:g}),l(b=!1),null==(t=o.parentElement)||t.removeChild(o))}return document.addEventListener("pointerdown",E,{passive:!0}),document.addEventListener("pointermove",F,{passive:!0,capture:!0}),document.addEventListener("pointerup",x,{passive:!0}),()=>{document.removeEventListener("pointerdown",E),document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",x)}}),[h.width,h.height,g,u,f,m]),React__namespace.createElement("group",_extends__default.default({ref:O,onClick:E,onPointerOver:()=>b(!0),onPointerOut:()=>b(!1),onPointerMissed:M},p),React__namespace.createElement(context$5.Provider,{value:R},r))}function useSelect(){return React__namespace.useContext(context$5)}const Billboard=React__namespace.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:r=!1,lockZ:o=!1,...a},n){const i=React__namespace.useRef();return FIBER.useFrame((({camera:a})=>{if(!e||!i.current)return;const n=i.current.rotation.clone();a.getWorldQuaternion(i.current.quaternion),t&&(i.current.rotation.x=n.x),r&&(i.current.rotation.y=n.y),o&&(i.current.rotation.z=n.z)})),React__namespace.createElement("group",_extends__default.default({ref:mergeRefs__default.default([i,n])},a))})),ScreenSpace=React__namespace.forwardRef((({children:e,depth:t=-1,...r},o)=>{const a=React__namespace.useRef(null);return FIBER.useFrame((({camera:e})=>{a.current.quaternion.copy(e.quaternion),a.current.position.copy(e.position)})),React__namespace.createElement("group",_extends__default.default({ref:mergeRefs__default.default([o,a])},r),React__namespace.createElement("group",{"position-z":-t},e))})),Line=React__namespace.forwardRef((function({points:e,color:t="black",vertexColors:r,linewidth:o,lineWidth:a,segments:n,dashed:i,...s},p){const d=FIBER.useThree((e=>e.size)),l=React__namespace.useMemo((()=>n?new threeStdlib.LineSegments2:new threeStdlib.Line2),[n]),[c]=React__namespace.useState((()=>new threeStdlib.LineMaterial)),u=React__namespace.useMemo((()=>{const t=n?new threeStdlib.LineSegmentsGeometry:new threeStdlib.LineGeometry,o=e.map((e=>{const t=Array.isArray(e);return e instanceof THREE.Vector3?[e.x,e.y,e.z]:e instanceof THREE.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(t.setPositions(o.flat()),r){const e=r.map((e=>e instanceof THREE.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,n,r]);return React__namespace.useLayoutEffect((()=>{l.computeLineDistances()}),[e,l]),React__namespace.useLayoutEffect((()=>{i?c.defines.USE_DASH="":delete c.defines.USE_DASH,c.needsUpdate=!0}),[i,c]),React__namespace.useEffect((()=>()=>u.dispose()),[u]),React__namespace.createElement("primitive",_extends__default.default({object:l,ref:p},s),React__namespace.createElement("primitive",{object:u,attach:"geometry"}),React__namespace.createElement("primitive",_extends__default.default({object:c,attach:"material",color:t,vertexColors:Boolean(r),resolution:[d.width,d.height],linewidth:null!=o?o:a,dashed:i},s)))})),v=new THREE.Vector3,QuadraticBezierLine=React__namespace.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:r,segments:o=20,...a},n){const i=React__namespace.useRef(null),[s]=React__namespace.useState((()=>new THREE.QuadraticBezierCurve3(void 0,void 0,void 0))),p=React__namespace.useCallback(((e,t,r,o=20)=>(e instanceof THREE.Vector3?s.v0.copy(e):s.v0.set(...e),t instanceof THREE.Vector3?s.v2.copy(t):s.v2.set(...t),r instanceof THREE.Vector3?s.v1.copy(r):Array.isArray(r)?s.v1.set(...r):s.v1.copy(s.v0.clone().add(s.v2.clone().sub(s.v0)).add(v.set(0,s.v0.y-s.v2.y,0))),s.getPoints(o))),[]);React__namespace.useLayoutEffect((()=>{i.current.setPoints=(e,t,r)=>{const o=p(e,t,r);i.current.geometry&&i.current.geometry.setPositions(o.map((e=>e.toArray())).flat())}}),[]);const d=React__namespace.useMemo((()=>p(e,t,r,o)),[e,t,r,o]);return React__namespace.createElement(Line,_extends__default.default({ref:mergeRefs__default.default([i,n]),points:d},a))})),CubicBezierLine=React__namespace.forwardRef((function({start:e,end:t,midA:r,midB:o,segments:a=20,...n},i){const s=React__namespace.useMemo((()=>{const n=e instanceof THREE.Vector3?e:new THREE.Vector3(...e),i=t instanceof THREE.Vector3?t:new THREE.Vector3(...t),s=r instanceof THREE.Vector3?r:new THREE.Vector3(...r),p=o instanceof THREE.Vector3?o:new THREE.Vector3(...o);return new THREE.CubicBezierCurve3(n,s,p,i).getPoints(a)}),[e,t,r,o,a]);return React__namespace.createElement(Line,_extends__default.default({ref:i,points:s},n))})),CatmullRomLine=React__namespace.forwardRef((function({points:e,closed:t=!1,curveType:r="centripetal",tension:o=.5,segments:a=20,vertexColors:n,...i},s){const p=React__namespace.useMemo((()=>{const a=e.map((e=>e instanceof THREE.Vector3?e:new THREE.Vector3(...e)));return new THREE.CatmullRomCurve3(a,t,r,o)}),[e,t,r,o]),d=React__namespace.useMemo((()=>p.getPoints(a)),[p,a]),l=React__namespace.useMemo((()=>{if(!n||n.length<2)return;if(n.length===a+1)return n;const e=n.map((e=>e instanceof THREE.Color?e:new THREE.Color(...e)));t&&e.push(e[0].clone());const r=[e[0]],o=a/(e.length-1);for(let t=1;t<a;t++){const a=t%o/o,n=Math.floor(t/o);r.push(e[n].clone().lerp(e[n+1],a))}return r.push(e[e.length-1]),r}),[n,a]);return React__namespace.createElement(Line,_extends__default.default({ref:s,points:d,vertexColors:l},i))})),PositionalAudio=React__namespace.forwardRef((({url:e,distance:t=1,loop:r=!0,autoplay:o,...a},n)=>{const i=React__namespace.useRef(),s=FIBER.useThree((({camera:e})=>e)),[p]=React__namespace.useState((()=>new THREE.AudioListener)),d=FIBER.useLoader(THREE.AudioLoader,e);return React__namespace.useEffect((()=>{const e=i.current;e&&(e.setBuffer(d),e.setRefDistance(t),e.setLoop(r),o&&!e.isPlaying&&e.play())}),[d,s,t,r]),React__namespace.useEffect((()=>{const e=i.current;return s.add(p),()=>{s.remove(p),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),React__namespace.createElement("positionalAudio",_extends__default.default({ref:mergeRefs__default.default([i,n]),args:[p]},a))})),Text=React__namespace.forwardRef((({sdfGlyphSize:e=64,anchorX:t="center",anchorY:r="middle",font:o,fontSize:a=1,children:n,characters:i,onSync:s,...p},d)=>{const l=FIBER.useThree((({invalidate:e})=>e)),[c]=React__namespace.useState((()=>new troikaThreeText.Text)),[u,g]=React__namespace.useMemo((()=>{const e=[];let t="";return React__namespace.Children.forEach(n,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[n]);return suspendReact.suspend((()=>new Promise((e=>troikaThreeText.preloadFont({font:o,characters:i},e)))),["troika-text",o,i]),React__namespace.useLayoutEffect((()=>{c.sync((()=>{l(),s&&s(c)}))})),React__namespace.useEffect((()=>()=>c.dispose()),[c]),React__namespace.createElement("primitive",_extends__default.default({object:c,ref:d,font:o,text:g,anchorX:t,anchorY:r,fontSize:a,sdfGlyphSize:e},p),u)}));let fontLoader=null;async function loader(e){fontLoader||(fontLoader=new threeStdlib.FontLoader);let t="string"==typeof e?await(await fetch(e)).json():e;return fontLoader.parse(t)}function useFont(e){return suspendReact.suspend(loader,[e])}useFont.preload=e=>suspendReact.preload(loader,[e]),useFont.clear=e=>suspendReact.clear([e]);const types=["string","number"],getTextFromChildren=e=>{let t="";const r=[];return React__namespace.Children.forEach(e,(e=>{types.includes(typeof e)?t+=e+"":r.push(e)})),[t,...r]},Text3D=React__namespace.forwardRef((({font:e,letterSpacing:t=0,lineHeight:r=1,size:o=1,height:a=.2,bevelThickness:n=.1,bevelSize:i=.01,bevelEnabled:s=!1,bevelOffset:p=0,bevelSegments:d=4,curveSegments:l=8,smooth:c,children:u,...g},m)=>{React__namespace.useMemo((()=>FIBER.extend({RenamedTextGeometry:threeStdlib.TextGeometry})),[]);const f=React__namespace.useRef(null),h=useFont(e),y=React.useMemo((()=>({font:h,size:o,height:a,bevelThickness:n,bevelSize:i,bevelEnabled:s,bevelSegments:d,bevelOffset:p,curveSegments:l,letterSpacing:t,lineHeight:r})),[h,o,a,n,i,s,d,p,l,t,r]),[_,...b]=React.useMemo((()=>getTextFromChildren(u)),[u]),R=React__namespace.useMemo((()=>[_,y]),[_,y]);return React__namespace.useLayoutEffect((()=>{c&&(f.current.geometry=threeStdlib.mergeVertices(f.current.geometry,c),f.current.geometry.computeVertexNormals())}),[R,c]),React__namespace.useImperativeHandle(m,(()=>f.current),[]),React__namespace.createElement("mesh",_extends__default.default({},g,{ref:f}),React__namespace.createElement("renamedTextGeometry",{args:R}),b)})),isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},Effects=React__namespace.forwardRef((({children:e,multisamping:t=8,renderIndex:r=1,disableRender:o,disableGamma:a,disableRenderPass:n,depthBuffer:i=!0,stencilBuffer:s=!1,anisotropy:p=1,encoding:d,type:l,...c},u)=>{React__namespace.useMemo((()=>FIBER.extend({EffectComposer:threeStdlib.EffectComposer,RenderPass:threeStdlib.RenderPass,ShaderPass:threeStdlib.ShaderPass})),[]);const g=React__namespace.useRef(),{scene:m,camera:f,gl:h,size:y,viewport:_}=FIBER.useThree(),[b]=React__namespace.useState((()=>{const e=new THREE.WebGLRenderTarget(y.width,y.height,{type:l||THREE.HalfFloatType,format:THREE.RGBAFormat,depthBuffer:i,stencilBuffer:s,anisotropy:p});return l===THREE.UnsignedByteType&&null!=d&&("colorSpace"in e?e.texture.colorSpace=d:e.texture.encoding=d),e.samples=t,e}));React__namespace.useEffect((()=>{var e,t;null==(e=g.current)||e.setSize(y.width,y.height),null==(t=g.current)||t.setPixelRatio(_.dpr)}),[h,y,_.dpr]),FIBER.useFrame((()=>{var e;o||null==(e=g.current)||e.render()}),r);const R=[];return n||R.push(React__namespace.createElement("renderPass",{key:"renderpass",attach:`passes-${R.length}`,args:[m,f]})),a||R.push(React__namespace.createElement("shaderPass",{attach:`passes-${R.length}`,key:"gammapass",args:[threeStdlib.GammaCorrectionShader]})),React__namespace.Children.forEach(e,(e=>{e&&R.push(React__namespace.cloneElement(e,{key:R.length,attach:`passes-${R.length}`}))})),React__namespace.createElement("effectComposer",_extends__default.default({ref:mergeRefs__default.default([u,g]),args:[h,b]},c),R)}));function GradientTexture({stops:e,colors:t,size:r=1024,...o}){const a=React__namespace.useMemo((()=>{const o=document.createElement("canvas"),a=o.getContext("2d");o.width=16,o.height=r;const n=a.createLinearGradient(0,0,0,r);let i=e.length;for(;i--;)n.addColorStop(e[i],t[i]);return a.fillStyle=n,a.fillRect(0,0,16,r),o}),[e]);return React__namespace.createElement("canvasTexture",_extends__default.default({args:[a],attach:"map"},o))}function shaderMaterial(e,t,r,o){const a=class extends THREE__namespace.ShaderMaterial{constructor(a={}){const n=Object.entries(e);super({uniforms:n.reduce(((e,[t,r])=>({...e,...THREE__namespace.UniformsUtils.clone({[t]:{value:r}})})),{}),vertexShader:t,fragmentShader:r}),this.key="",n.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),Object.assign(this,a),o&&o(this)}};return a.key=THREE__namespace.MathUtils.generateUUID(),a}const IsObject=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function useTexture(e,t){const r=FIBER.useThree((e=>e.gl)),o=FIBER.useLoader(THREE.TextureLoader,IsObject(e)?Object.values(e):e);if(React.useLayoutEffect((()=>{null==t||t(o)}),[t]),React.useEffect((()=>{(Array.isArray(o)?o:[o]).forEach(r.initTexture)}),[r,o]),IsObject(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:o[t.indexOf(e)]}))),r}return o}useTexture.preload=e=>FIBER.useLoader.preload(THREE.TextureLoader,e),useTexture.clear=e=>FIBER.useLoader.clear(THREE.TextureLoader,e);const ImageMaterialImpl=shaderMaterial({color:new THREE__namespace.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0,opacity:1},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n uniform float opacity;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity), grayscale);\n \n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }\n"),ImageBase=React__namespace.forwardRef((({children:e,color:t,segments:r=1,scale:o=1,zoom:a=1,grayscale:n=0,opacity:i=1,texture:s,toneMapped:p,transparent:d,...l},c)=>{FIBER.extend({ImageMaterial:ImageMaterialImpl});const u=Array.isArray(o)?[o[0],o[1]]:[o,o],g=[s.image.width,s.image.height];return React__namespace.createElement("mesh",_extends__default.default({ref:c,scale:Array.isArray(o)?[...o,1]:o},l),React__namespace.createElement("planeGeometry",{args:[1,1,r,r]}),React__namespace.createElement("imageMaterial",{color:t,map:s,zoom:a,grayscale:n,opacity:i,scale:u,imageBounds:g,toneMapped:p,transparent:d}),e)})),ImageWithUrl=React__namespace.forwardRef((({url:e,...t},r)=>{const o=useTexture(e);return React__namespace.createElement(ImageBase,_extends__default.default({},t,{texture:o,ref:r}))})),ImageWithTexture=React__namespace.forwardRef((({url:e,...t},r)=>React__namespace.createElement(ImageBase,_extends__default.default({},t,{ref:r})))),Image=React__namespace.forwardRef(((e,t)=>{if(e.url)return React__namespace.createElement(ImageWithUrl,_extends__default.default({},e,{ref:t}));if(e.texture)return React__namespace.createElement(ImageWithTexture,_extends__default.default({},e,{ref:t}));throw new Error("<Image /> requires a url or texture")})),Edges=React__namespace.forwardRef((({userData:e,children:t,geometry:r,threshold:o=15,color:a="black",...n},i)=>{const s=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{const e=s.current.parent;if(e){const t=r||e.geometry;t===s.current.userData.currentGeom&&o===s.current.userData.currentThreshold||(s.current.userData.currentGeom=t,s.current.userData.currentThreshold=o,s.current.geometry=new THREE__namespace.EdgesGeometry(t,o))}})),React__namespace.useImperativeHandle(i,(()=>s.current)),React__namespace.createElement("lineSegments",_extends__default.default({ref:s,raycast:()=>null},n),t||React__namespace.createElement("lineBasicMaterial",{color:a}))})),defaults={width:.2,length:1,decay:1,local:!1,stride:0,interval:1},shiftLeft=(e,t=1)=>(e.set(e.subarray(t)),e.fill(-1/0,-t),e);function useTrail(e,t){const{length:r,local:o,decay:a,interval:n,stride:i}={...defaults,...t},s=React__namespace.useRef(),[p]=React__namespace.useState((()=>new THREE.Vector3));React__namespace.useLayoutEffect((()=>{e&&(s.current=Float32Array.from({length:10*r*3},((t,r)=>e.position.getComponent(r%3))))}),[r,e]);const d=React__namespace.useRef(new THREE.Vector3),l=React__namespace.useRef(0);return FIBER.useFrame((()=>{if(e&&s.current){if(0===l.current){let t;o?t=e.position:(e.getWorldPosition(p),t=p);const r=1*a;for(let e=0;e<r;e++)t.distanceTo(d.current)<i||(shiftLeft(s.current,3),s.current.set(t.toArray(),s.current.length-3));d.current.copy(t)}l.current++,l.current=l.current%n}})),s}const Trail=React__namespace.forwardRef(((e,t)=>{const{children:r}=e,{width:o,length:a,decay:n,local:i,stride:s,interval:p}={...defaults,...e},{color:d="hotpink",attenuation:l,target:c}=e,u=FIBER.useThree((e=>e.size)),g=FIBER.useThree((e=>e.scene)),m=React__namespace.useRef(null),[f,h]=React__namespace.useState(null),y=useTrail(f,{length:a,decay:n,local:i,stride:s,interval:p});React__namespace.useEffect((()=>{const e=(null==c?void 0:c.current)||m.current.children.find((e=>e instanceof THREE.Object3D));e&&h(e)}),[y,c]);const _=React__namespace.useMemo((()=>new meshline.MeshLineGeometry),[]),b=React__namespace.useMemo((()=>{var e;const t=new meshline.MeshLineMaterial({lineWidth:.1*o,color:d,sizeAttenuation:1,resolution:new THREE.Vector2(u.width,u.height)});let a;if(r)if(Array.isArray(r))a=r.find((e=>{const t=e;return"string"==typeof t.type&&"meshLineMaterial"===t.type}));else{const e=r;"string"==typeof e.type&&"meshLineMaterial"===e.type&&(a=e)}return"object"==typeof(null==(e=a)?void 0:e.props)&&t.setValues(a.props),t}),[o,d,u,r]);return React__namespace.useEffect((()=>{b.uniforms.resolution.value.set(u.width,u.height)}),[u]),FIBER.useFrame((()=>{y.current&&_.setPoints(y.current,l)})),React__namespace.createElement("group",null,FIBER.createPortal(React__namespace.createElement("mesh",{ref:t,geometry:_,material:b}),g),React__namespace.createElement("group",{ref:m},r))}));function useSurfaceSampler(e,t=16,r,o,a){const[n,i]=React__namespace.useState((()=>{const e=Array.from({length:t},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new THREE.InstancedBufferAttribute(Float32Array.from(e),16)}));return React__namespace.useLayoutEffect((()=>{if(void 0===e.current)return;const s=new threeStdlib.MeshSurfaceSampler(e.current);o&&s.setWeightAttribute(o),s.build();const p=new THREE.Vector3,d=new THREE.Vector3,l=new THREE.Color,c=new THREE.Object3D;e.current.updateMatrixWorld(!0);for(let o=0;o<t;o++)s.sample(p,d,l),"function"==typeof r?r({dummy:c,sampledMesh:e.current,position:p,normal:d,color:l},o):c.position.copy(p),c.updateMatrix(),null!=a&&a.current&&a.current.setMatrixAt(o,c.matrix),c.matrix.toArray(n.array,16*o);null!=a&&a.current&&(a.current.instanceMatrix.needsUpdate=!0),n.needsUpdate=!0,i(n.clone())}),[e,a,o,t,r]),n}function Sampler({children:e,weight:t,transform:r,instances:o,mesh:a,count:n=16,...i}){const s=React__namespace.useRef(null),p=React__namespace.useRef(null),d=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{var e,t;p.current=null!==(e=null==o?void 0:o.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),d.current=null!==(t=null==a?void 0:a.current)&&void 0!==t?t:s.current.children.find((e=>"Mesh"===e.type))}),[e,null==a?void 0:a.current,null==o?void 0:o.current]),useSurfaceSampler(d,n,r,t,p),React__namespace.createElement("group",_extends__default.default({ref:s},i),e)}const ComputedAttribute=({compute:e,name:t,...r})=>{const[o]=React__namespace.useState((()=>new THREE.BufferAttribute(new Float32Array(0),1))),a=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{if(a.current){var t;const r=null!==(t=a.current.parent)&&void 0!==t?t:a.current.__r3f.parent,o=e(r);a.current.copy(o)}}),[e]),React__namespace.createElement("primitive",_extends__default.default({ref:a,object:o,attach:`attributes-${t}`},r))};function createSpread(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:r,inject:o,castShadow:a,receiveShadow:n}){let i=pick__default.default(e,t);return r&&(i.geometry&&"materialsOnly"!==r&&(i.geometry=i.geometry.clone()),i.material&&"geometriesOnly"!==r&&(i.material=i.material.clone())),o&&(i="function"==typeof o?{...i,children:o(e)}:React__namespace.isValidElement(o)?{...i,children:o}:{...i,...o}),e instanceof THREE__namespace.Mesh&&(a&&(i.castShadow=!0),n&&(i.receiveShadow=!0)),i}const Clone=React__namespace.forwardRef((({isChild:e=!1,object:t,children:r,deep:o,castShadow:a,receiveShadow:n,inject:i,keys:s,...p},d)=>{var l;const c={keys:s,deep:o,inject:i,castShadow:a,receiveShadow:n};if(t=React__namespace.useMemo((()=>{if(!1===e&&!Array.isArray(t)){let e=!1;if(t.traverse((t=>{t.isSkinnedMesh&&(e=!0)})),e)return threeStdlib.SkeletonUtils.clone(t)}return t}),[t,e]),Array.isArray(t))return React__namespace.createElement("group",_extends__default.default({},p,{ref:d}),t.map((e=>React__namespace.createElement(Clone,_extends__default.default({key:e.uuid,object:e},c)))),r);const{children:u,...g}=createSpread(t,c),m=t.type[0].toLowerCase()+t.type.slice(1);return React__namespace.createElement(m,_extends__default.default({},g,p,{ref:d}),(null==(l=t)?void 0:l.children).map((e=>"Bone"===e.type?React__namespace.createElement("primitive",_extends__default.default({key:e.uuid,object:e},c)):React__namespace.createElement(Clone,_extends__default.default({key:e.uuid,object:e},c,{isChild:!0})))),r,u)})),globalContext$1=React__namespace.createContext(null),MarchingCubes=React__namespace.forwardRef((({resolution:e=28,maxPolyCount:t=1e4,enableUvs:r=!1,enableColors:o=!1,children:a,...n},i)=>{const s=React__namespace.useRef(null),p=React__namespace.useMemo((()=>new threeStdlib.MarchingCubes(e,null,r,o,t)),[e,t,r,o]),d=React__namespace.useMemo((()=>({getParent:()=>s})),[]);return FIBER.useFrame((()=>{p.update(),p.reset()}),-1),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("primitive",_extends__default.default({object:p,ref:mergeRefs__default.default([s,i])},n),React__namespace.createElement(globalContext$1.Provider,{value:d},a)))})),MarchingCube=React__namespace.forwardRef((({strength:e=.5,subtract:t=12,color:r,...o},a)=>{const{getParent:n}=React__namespace.useContext(globalContext$1),i=React__namespace.useMemo((()=>n()),[n]),s=React__namespace.useRef(),p=new THREE__namespace.Vector3;return FIBER.useFrame((o=>{i.current&&s.current&&(s.current.getWorldPosition(p),i.current.addBall(.5+.5*p.x,.5+.5*p.y,.5+.5*p.z,e,t,r))})),React__namespace.createElement("group",_extends__default.default({ref:mergeRefs__default.default([a,s])},o))})),MarchingPlane=React__namespace.forwardRef((({planeType:e="x",strength:t=.5,subtract:r=12,...o},a)=>{const{getParent:n}=React__namespace.useContext(globalContext$1),i=React__namespace.useMemo((()=>n()),[n]),s=React__namespace.useRef(),p=React__namespace.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return FIBER.useFrame((()=>{i.current&&s.current&&i.current[p](t,r)})),React__namespace.createElement("group",_extends__default.default({ref:mergeRefs__default.default([a,s])},o))}));function isArray$1(e){return Array.isArray(e)}function vecToArray(e=[0,0,0]){return isArray$1(e)?e:e instanceof THREE__namespace.Vector3||e instanceof THREE__namespace.Euler?[e.x,e.y,e.z]:[e,e,e]}const Decal=React__namespace.forwardRef((function({debug:e,mesh:t,children:r,position:o,rotation:a,scale:n,...i},s){const p=React__namespace.useRef(null);React__namespace.useImperativeHandle(s,(()=>p.current));const d=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{const e=(null==t?void 0:t.current)||p.current.parent,r=p.current;if(!(e instanceof THREE__namespace.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const i={position:new THREE__namespace.Vector3,rotation:new THREE__namespace.Euler,scale:new THREE__namespace.Vector3(1,1,1)};if(e){FIBER.applyProps(i,{position:o,scale:n});const t=e.matrixWorld.clone();if(e.matrixWorld.identity(),a&&"number"!=typeof a)FIBER.applyProps(i,{rotation:a});else{const t=new THREE__namespace.Object3D;t.position.copy(i.position),t.lookAt(e.position),"number"==typeof a&&t.rotateZ(a),FIBER.applyProps(i,{rotation:t.rotation})}return r.geometry=new threeStdlib.DecalGeometry(e,i.position,i.rotation,i.scale),d.current&&FIBER.applyProps(d.current,i),e.matrixWorld=t,()=>{r.geometry.dispose()}}}),[t,...vecToArray(o),...vecToArray(n),...vecToArray(a)]),React__namespace.createElement("mesh",{ref:p},r||React__namespace.createElement("meshStandardMaterial",_extends__default.default({transparent:!0,polygonOffset:!0,polygonOffsetFactor:-10},i)),e&&React__namespace.createElement("mesh",{ref:d},React__namespace.createElement("boxGeometry",null),React__namespace.createElement("meshNormalMaterial",{wireframe:!0}),React__namespace.createElement("axesHelper",null)))})),Svg=React.forwardRef((function({src:e,skipFill:t,skipStrokes:r,fillMaterial:o,strokeMaterial:a,fillMeshProps:n,strokeMeshProps:i,...s},p){const d=FIBER.useLoader(threeStdlib.SVGLoader,e.startsWith("<svg")?`data:image/svg+xml;utf8,${e}`:e),l=React.useMemo((()=>r?[]:d.paths.map((e=>{var t;return void 0===(null==(t=e.userData)?void 0:t.style.stroke)||"none"===e.userData.style.stroke?null:e.subPaths.map((t=>threeStdlib.SVGLoader.pointsToStroke(t.getPoints(),e.userData.style)))}))),[d,r]);return React.useEffect((()=>()=>l.forEach((e=>e&&e.map((e=>e.dispose()))))),[l]),React__namespace.createElement("object3D",_extends__default.default({ref:p},s),React__namespace.createElement("object3D",{scale:[1,-1,1]},d.paths.map(((e,s)=>{var p,d;return React__namespace.createElement(React.Fragment,{key:s},!t&&void 0!==(null==(p=e.userData)?void 0:p.style.fill)&&"none"!==e.userData.style.fill&&threeStdlib.SVGLoader.createShapes(e).map(((t,r)=>React__namespace.createElement("mesh",_extends__default.default({key:r},n),React__namespace.createElement("shapeGeometry",{args:[t]}),React__namespace.createElement("meshBasicMaterial",_extends__default.default({color:e.userData.style.fill,opacity:e.userData.style.fillOpacity,transparent:!0,side:THREE.DoubleSide,depthWrite:!1},o))))),!r&&void 0!==(null==(d=e.userData)?void 0:d.style.stroke)&&"none"!==e.userData.style.stroke&&e.subPaths.map(((t,r)=>React__namespace.createElement("mesh",_extends__default.default({key:r,geometry:l[s][r]},i),React__namespace.createElement("meshBasicMaterial",_extends__default.default({color:e.userData.style.stroke,opacity:e.userData.style.strokeOpacity,transparent:!0,side:THREE.DoubleSide,depthWrite:!1},a))))))}))))}));let dracoLoader=null;function extensions(e,t,r){return o=>{r&&r(o),e&&(dracoLoader||(dracoLoader=new threeStdlib.DRACOLoader),dracoLoader.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.5.5/"),o.setDRACOLoader(dracoLoader)),t&&o.setMeshoptDecoder("function"==typeof threeStdlib.MeshoptDecoder?threeStdlib.MeshoptDecoder():threeStdlib.MeshoptDecoder)}}function useGLTF(e,t=!0,r=!0,o){return FIBER.useLoader(threeStdlib.GLTFLoader,e,extensions(t,r,o))}useGLTF.preload=(e,t=!0,r=!0,o)=>FIBER.useLoader.preload(threeStdlib.GLTFLoader,e,extensions(t,r,o)),useGLTF.clear=e=>FIBER.useLoader.clear(threeStdlib.GLTFLoader,e);const Gltf=React__namespace.forwardRef((({src:e,...t},r)=>{const{scene:o}=useGLTF(e);return React__namespace.createElement(Clone,_extends__default.default({ref:r},t,{object:o}))}));function AsciiRenderer({renderIndex:e=1,bgColor:t="black",fgColor:r="white",characters:o=" .:-+*=%@#",invert:a=!0,color:n=!1,resolution:i=.15}){const{size:s,gl:p,scene:d,camera:l}=FIBER.useThree(),c=React__namespace.useMemo((()=>{const e=new threeStdlib.AsciiEffect(p,o,{invert:a,color:n,resolution:i});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[o,a,n,i]);return React__namespace.useLayoutEffect((()=>{c.domElement.style.color=r,c.domElement.style.backgroundColor=t}),[r,t]),React__namespace.useEffect((()=>(p.domElement.style.opacity="0",p.domElement.parentNode.appendChild(c.domElement),()=>{p.domElement.style.opacity="1",p.domElement.parentNode.removeChild(c.domElement)})),[c]),React__namespace.useEffect((()=>{c.setSize(s.width,s.height)}),[c,s]),FIBER.useFrame((e=>{c.render(d,l)}),e),React__namespace.createElement(React__namespace.Fragment,null)}function useFBO(e,t,r){const o=FIBER.useThree((e=>e.size)),a=FIBER.useThree((e=>e.viewport)),n="number"==typeof e?e:o.width*a.dpr,i="number"==typeof t?t:o.height*a.dpr,s=("number"==typeof e?r:e)||{},{samples:p=0,depth:d,...l}=s,c=React__namespace.useMemo((()=>{const e=new THREE__namespace.WebGLRenderTarget(n,i,{minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,type:THREE__namespace.HalfFloatType,...l});return d&&(e.depthTexture=new THREE__namespace.DepthTexture(n,i,THREE__namespace.FloatType)),e.samples=p,e}),[]);return React__namespace.useLayoutEffect((()=>{c.setSize(n,i),p&&(c.samples=p)}),[p,c,n,i]),React__namespace.useEffect((()=>()=>c.dispose()),[]),c}const isFunction$1=e=>"function"==typeof e,OrthographicCamera=React__namespace.forwardRef((({envMap:e,resolution:t=256,frames:r=1/0,children:o,makeDefault:a,...n},i)=>{const s=FIBER.useThree((({set:e})=>e)),p=FIBER.useThree((({camera:e})=>e)),d=FIBER.useThree((({size:e})=>e)),l=React__namespace.useRef(null),c=React__namespace.useRef(null),u=useFBO(t);React__namespace.useLayoutEffect((()=>{n.manual||l.current.updateProjectionMatrix()}),[d,n]),React__namespace.useLayoutEffect((()=>{l.current.updateProjectionMatrix()})),React__namespace.useLayoutEffect((()=>{if(a){const e=p;return s((()=>({camera:l.current}))),()=>s((()=>({camera:e})))}}),[l,a,s]);let g=0,m=null;const f=isFunction$1(o);return FIBER.useFrame((t=>{f&&(r===1/0||g<r)&&(c.current.visible=!1,t.gl.setRenderTarget(u),m=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,l.current),t.scene.background=m,t.gl.setRenderTarget(null),c.current.visible=!0,g++)})),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("orthographicCamera",_extends__default.default({left:d.width/-2,right:d.width/2,top:d.height/2,bottom:d.height/-2,ref:mergeRefs__default.default([l,i])},n),!f&&o),React__namespace.createElement("group",{ref:c},f&&o(u.texture)))})),isFunction=e=>"function"==typeof e,PerspectiveCamera=React__namespace.forwardRef((({envMap:e,resolution:t=256,frames:r=1/0,makeDefault:o,children:a,...n},i)=>{const s=FIBER.useThree((({set:e})=>e)),p=FIBER.useThree((({camera:e})=>e)),d=FIBER.useThree((({size:e})=>e)),l=React__namespace.useRef(null),c=React__namespace.useRef(null),u=useFBO(t);React__namespace.useLayoutEffect((()=>{n.manual||(l.current.aspect=d.width/d.height)}),[d,n]),React__namespace.useLayoutEffect((()=>{l.current.updateProjectionMatrix()}));let g=0,m=null;const f=isFunction(a);return FIBER.useFrame((t=>{f&&(r===1/0||g<r)&&(c.current.visible=!1,t.gl.setRenderTarget(u),m=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,l.current),t.scene.background=m,t.gl.setRenderTarget(null),c.current.visible=!0,g++)})),React__namespace.useLayoutEffect((()=>{if(o){const e=p;return s((()=>({camera:l.current}))),()=>s((()=>({camera:e})))}}),[l,o,s]),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("perspectiveCamera",_extends__default.default({ref:mergeRefs__default.default([l,i])},n),!f&&a),React__namespace.createElement("group",{ref:c},f&&a(u.texture)))}));function useCubeCamera({resolution:e=256,near:t=.1,far:r=1e3,envMap:o,fog:a}={}){const n=FIBER.useThree((({gl:e})=>e)),i=FIBER.useThree((({scene:e})=>e)),s=React.useMemo((()=>{const t=new THREE.WebGLCubeRenderTarget(e);return t.texture.type=THREE.HalfFloatType,t}),[e]);React.useEffect((()=>()=>{s.dispose()}),[s]);const p=React.useMemo((()=>new THREE__namespace.CubeCamera(t,r,s)),[t,r,s]);let d,l;const c=React__namespace.useCallback((()=>{d=i.fog,l=i.background,i.background=o||l,i.fog=a||d,p.update(n,i),i.fog=d,i.background=l}),[n,i,p]);return{fbo:s,camera:p,update:c}}function CubeCamera({children:e,frames:t=1/0,resolution:r,near:o,far:a,envMap:n,fog:i,...s}){const p=React__namespace.useRef(),{fbo:d,camera:l,update:c}=useCubeCamera({resolution:r,near:o,far:a,envMap:n,fog:i});let u=0;return FIBER.useFrame((()=>{p.current&&(t===1/0||u<t)&&(p.current.visible=!1,c(),p.current.visible=!0,u++)})),React__namespace.createElement("group",s,React__namespace.createElement("primitive",{object:l}),React__namespace.createElement("group",{ref:p},e(d.texture)))}const DeviceOrientationControls=React__namespace.forwardRef(((e,t)=>{const{camera:r,onChange:o,makeDefault:a,...n}=e,i=FIBER.useThree((e=>e.camera)),s=FIBER.useThree((e=>e.invalidate)),p=FIBER.useThree((e=>e.get)),d=FIBER.useThree((e=>e.set)),l=r||i,[c]=React__namespace.useState((()=>new threeStdlib.DeviceOrientationControls(l)));return React__namespace.useEffect((()=>{const e=e=>{s(),o&&o(e)};return null==c||null==c.addEventListener||c.addEventListener("change",e),()=>null==c||null==c.removeEventListener?void 0:c.removeEventListener("change",e)}),[o,c,s]),FIBER.useFrame((()=>null==c?void 0:c.update()),-1),React__namespace.useEffect((()=>{const e=c;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[c]),React__namespace.useEffect((()=>{if(a){const e=p().controls;return d({controls:c}),()=>d({controls:e})}}),[a,c]),c?React__namespace.createElement("primitive",_extends__default.default({ref:t,object:c},n)):null})),FlyControls=React__namespace.forwardRef((({domElement:e,...t},r)=>{const{onChange:o,makeDefault:a,...n}=t,i=FIBER.useThree((e=>e.invalidate)),s=FIBER.useThree((e=>e.camera)),p=FIBER.useThree((e=>e.gl)),d=FIBER.useThree((e=>e.events)),l=FIBER.useThree((e=>e.get)),c=FIBER.useThree((e=>e.set)),u=e||d.connected||p.domElement,g=React__namespace.useMemo((()=>new threeStdlib.FlyControls(s)),[s]);return React__namespace.useEffect((()=>(g.connect(u),()=>{g.dispose()})),[u,g,i]),React__namespace.useEffect((()=>{const e=e=>{i(),o&&o(e)};return null==g.addEventListener||g.addEventListener("change",e),()=>null==g.removeEventListener?void 0:g.removeEventListener("change",e)}),[o,i]),React__namespace.useEffect((()=>{if(a){const e=l().controls;return c({controls:g}),()=>c({controls:e})}}),[a,g]),FIBER.useFrame(((e,t)=>g.update(t))),React__namespace.createElement("primitive",_extends__default.default({ref:r,object:g,args:[s,u]},n))})),MapControls=React__namespace.forwardRef(((e={enableDamping:!0},t)=>{const{domElement:r,camera:o,makeDefault:a,onChange:n,onStart:i,onEnd:s,...p}=e,d=FIBER.useThree((e=>e.invalidate)),l=FIBER.useThree((e=>e.camera)),c=FIBER.useThree((e=>e.gl)),u=FIBER.useThree((e=>e.events)),g=FIBER.useThree((e=>e.set)),m=FIBER.useThree((e=>e.get)),f=r||u.connected||c.domElement,h=o||l,y=React__namespace.useMemo((()=>new threeStdlib.MapControls(h)),[h]);return React__namespace.useEffect((()=>{y.connect(f);const e=e=>{d(),n&&n(e)};return y.addEventListener("change",e),i&&y.addEventListener("start",i),s&&y.addEventListener("end",s),()=>{y.dispose(),y.removeEventListener("change",e),i&&y.removeEventListener("start",i),s&&y.removeEventListener("end",s)}}),[n,i,s,y,d,f]),React__namespace.useEffect((()=>{if(a){const e=m().controls;return g({controls:y}),()=>g({controls:e})}}),[a,y]),FIBER.useFrame((()=>y.update()),-1),React__namespace.createElement("primitive",_extends__default.default({ref:t,object:y,enableDamping:!0},p))})),OrbitControls=React__namespace.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:o,enableDamping:a=!0,keyEvents:n=!1,onChange:i,onStart:s,onEnd:p,...d},l)=>{const c=FIBER.useThree((e=>e.invalidate)),u=FIBER.useThree((e=>e.camera)),g=FIBER.useThree((e=>e.gl)),m=FIBER.useThree((e=>e.events)),f=FIBER.useThree((e=>e.setEvents)),h=FIBER.useThree((e=>e.set)),y=FIBER.useThree((e=>e.get)),_=FIBER.useThree((e=>e.performance)),b=t||u,R=o||m.connected||g.domElement,v=React__namespace.useMemo((()=>new threeStdlib.OrbitControls(b)),[b]);return FIBER.useFrame((()=>{v.enabled&&v.update()}),-1),React__namespace.useEffect((()=>(n&&v.connect(!0===n?R:n),v.connect(R),()=>{v.dispose()})),[n,R,r,v,c]),React__namespace.useEffect((()=>{const e=e=>{c(),r&&_.regress(),i&&i(e)},t=e=>{s&&s(e)},o=e=>{p&&p(e)};return v.addEventListener("change",e),v.addEventListener("start",t),v.addEventListener("end",o),()=>{v.removeEventListener("start",t),v.removeEventListener("end",o),v.removeEventListener("change",e)}}),[i,s,p,v,c,f]),React__namespace.useEffect((()=>{if(e){const e=y().controls;return h({controls:v}),()=>h({controls:e})}}),[e,v]),React__namespace.createElement("primitive",_extends__default.default({ref:l,object:v,enableDamping:a},d))})),TrackballControls=React__namespace.forwardRef((({makeDefault:e,camera:t,domElement:r,regress:o,onChange:a,onStart:n,onEnd:i,...s},p)=>{const{invalidate:d,camera:l,gl:c,events:u,set:g,get:m,performance:f,viewport:h}=FIBER.useThree(),y=t||l,_=r||u.connected||c.domElement,b=React__namespace.useMemo((()=>new threeStdlib.TrackballControls(y)),[y]);return FIBER.useFrame((()=>{b.enabled&&b.update()}),-1),React__namespace.useEffect((()=>(b.connect(_),()=>{b.dispose()})),[_,o,b,d]),React__namespace.useEffect((()=>{const e=e=>{d(),o&&f.regress(),a&&a(e)};return b.addEventListener("change",e),n&&b.addEventListener("start",n),i&&b.addEventListener("end",i),()=>{n&&b.removeEventListener("start",n),i&&b.removeEventListener("end",i),b.removeEventListener("change",e)}}),[a,n,i,b,d]),React__namespace.useEffect((()=>{b.handleResize()}),[h]),React__namespace.useEffect((()=>{if(e){const e=m().controls;return g({controls:b}),()=>g({controls:e})}}),[e,b]),React__namespace.createElement("primitive",_extends__default.default({ref:p,object:b},s))})),ArcballControls=React.forwardRef((({camera:e,makeDefault:t,regress:r,domElement:o,onChange:a,onStart:n,onEnd:i,...s},p)=>{const d=FIBER.useThree((e=>e.invalidate)),l=FIBER.useThree((e=>e.camera)),c=FIBER.useThree((e=>e.gl)),u=FIBER.useThree((e=>e.events)),g=FIBER.useThree((e=>e.set)),m=FIBER.useThree((e=>e.get)),f=FIBER.useThree((e=>e.performance)),h=e||l,y=o||u.connected||c.domElement,_=React.useMemo((()=>new threeStdlib.ArcballControls(h)),[h]);return FIBER.useFrame((()=>{_.enabled&&_.update()}),-1),React.useEffect((()=>(_.connect(y),()=>{_.dispose()})),[y,r,_,d]),React.useEffect((()=>{const e=e=>{d(),r&&f.regress(),a&&a(e)};return _.addEventListener("change",e),n&&_.addEventListener("start",n),i&&_.addEventListener("end",i),()=>{_.removeEventListener("change",e),n&&_.removeEventListener("start",n),i&&_.removeEventListener("end",i)}}),[a,n,i]),React.useEffect((()=>{if(t){const e=m().controls;return g({controls:_}),()=>g({controls:e})}}),[t,_]),React__namespace.createElement("primitive",_extends__default.default({ref:p,object:_},s))})),TransformControls=React__namespace.forwardRef((({children:e,domElement:t,onChange:r,onMouseDown:o,onMouseUp:a,onObjectChange:n,object:i,makeDefault:s,...p},d)=>{const l=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:c,...u}=p,g=pick__default.default(u,l),m=omit__default.default(u,l),f=FIBER.useThree((e=>e.controls)),h=FIBER.useThree((e=>e.gl)),y=FIBER.useThree((e=>e.events)),_=FIBER.useThree((e=>e.camera)),b=FIBER.useThree((e=>e.invalidate)),R=FIBER.useThree((e=>e.get)),v=FIBER.useThree((e=>e.set)),E=c||_,M=t||y.connected||h.domElement,O=React__namespace.useMemo((()=>new threeStdlib.TransformControls(E,M)),[E,M]),F=React__namespace.useRef();React__namespace.useLayoutEffect((()=>(i?O.attach(i instanceof THREE__namespace.Object3D?i:i.current):F.current instanceof THREE__namespace.Object3D&&O.attach(F.current),()=>{O.detach()})),[i,e,O]),React__namespace.useEffect((()=>{if(f){const e=e=>f.enabled=!e.value;return O.addEventListener("dragging-changed",e),()=>O.removeEventListener("dragging-changed",e)}}),[O,f]);const x=React__namespace.useRef(),T=React__namespace.useRef(),S=React__namespace.useRef(),k=React__namespace.useRef();return React__namespace.useLayoutEffect((()=>{x.current=r}),[r]),React__namespace.useLayoutEffect((()=>{T.current=o}),[o]),React__namespace.useLayoutEffect((()=>{S.current=a}),[a]),React__namespace.useLayoutEffect((()=>{k.current=n}),[n]),React__namespace.useEffect((()=>{const e=e=>{b(),null==x.current||x.current(e)},t=e=>null==T.current?void 0:T.current(e),r=e=>null==S.current?void 0:S.current(e),o=e=>null==k.current?void 0:k.current(e);return O.addEventListener("change",e),O.addEventListener("mouseDown",t),O.addEventListener("mouseUp",r),O.addEventListener("objectChange",o),()=>{O.removeEventListener("change",e),O.removeEventListener("mouseDown",t),O.removeEventListener("mouseUp",r),O.removeEventListener("objectChange",o)}}),[b,O]),React__namespace.useEffect((()=>{if(s){const e=R().controls;return v({controls:O}),()=>v({controls:e})}}),[s,O]),O?React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("primitive",_extends__default.default({ref:d,object:O},g)),React__namespace.createElement("group",_extends__default.default({ref:F},m),e)):null})),PointerLockControls=React__namespace.forwardRef((({domElement:e,selector:t,onChange:r,onLock:o,onUnlock:a,enabled:n=!0,makeDefault:i,...s},p)=>{const{camera:d,...l}=s,c=FIBER.useThree((e=>e.setEvents)),u=FIBER.useThree((e=>e.gl)),g=FIBER.useThree((e=>e.camera)),m=FIBER.useThree((e=>e.invalidate)),f=FIBER.useThree((e=>e.events)),h=FIBER.useThree((e=>e.get)),y=FIBER.useThree((e=>e.set)),_=d||g,b=e||f.connected||u.domElement,[R]=React__namespace.useState((()=>new threeStdlib.PointerLockControls(_)));return React__namespace.useEffect((()=>{if(n){R.connect(b);const e=h().events.compute;return c({compute(e,t){const r=t.size.width/2,o=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-o/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{R.disconnect(),c({compute:e})}}}),[n,R]),React__namespace.useEffect((()=>{const e=e=>{m(),r&&r(e)};R.addEventListener("change",e),o&&R.addEventListener("lock",o),a&&R.addEventListener("unlock",a);const n=()=>R.lock(),i=t?Array.from(document.querySelectorAll(t)):[document];return i.forEach((e=>e&&e.addEventListener("click",n))),()=>{R.removeEventListener("change",e),o&&R.addEventListener("lock",o),a&&R.addEventListener("unlock",a),i.forEach((e=>e?e.removeEventListener("click",n):void 0))}}),[r,o,a,t,R,m]),React__namespace.useEffect((()=>{if(i){const e=h().controls;return y({controls:R}),()=>y({controls:e})}}),[i,R]),React__namespace.createElement("primitive",_extends__default.default({ref:p,object:R},l))})),FirstPersonControls=React__namespace.forwardRef((({domElement:e,makeDefault:t,...r},o)=>{const a=FIBER.useThree((e=>e.camera)),n=FIBER.useThree((e=>e.gl)),i=FIBER.useThree((e=>e.events)),s=FIBER.useThree((e=>e.get)),p=FIBER.useThree((e=>e.set)),d=e||i.connected||n.domElement,[l]=React__namespace.useState((()=>new threeStdlib.FirstPersonControls(a,d)));return React__namespace.useEffect((()=>{if(t){const e=s().controls;return p({controls:l}),()=>p({controls:e})}}),[t,l]),FIBER.useFrame(((e,t)=>{l.update(t)}),-1),l?React__namespace.createElement("primitive",_extends__default.default({ref:o,object:l},r)):null})),CameraControls=React.forwardRef(((e,t)=>{React.useMemo((()=>{CameraControlsImpl__default.default.install({THREE:THREE__namespace}),FIBER.extend({CameraControlsImpl:CameraControlsImpl__default.default})}),[]);const{camera:r,domElement:o,makeDefault:a,onStart:n,onEnd:i,onChange:s,regress:p,...d}=e,l=FIBER.useThree((e=>e.camera)),c=FIBER.useThree((e=>e.gl)),u=FIBER.useThree((e=>e.invalidate)),g=FIBER.useThree((e=>e.events)),m=FIBER.useThree((e=>e.setEvents)),f=FIBER.useThree((e=>e.set)),h=FIBER.useThree((e=>e.get)),y=FIBER.useThree((e=>e.performance)),_=r||l,b=o||g.connected||c.domElement,R=React.useMemo((()=>new CameraControlsImpl__default.default(_)),[_]);return FIBER.useFrame(((e,t)=>{R.enabled&&R.update(t)}),-1),React.useEffect((()=>(R.connect(b),()=>{R.disconnect()})),[b,R]),React__namespace.useEffect((()=>{const e=e=>{u(),p&&y.regress(),s&&s(e)},t=e=>{n&&n(e)},r=e=>{i&&i(e)};return R.addEventListener("update",e),R.addEventListener("controlstart",t),R.addEventListener("controlend",r),R.addEventListener("control",e),R.addEventListener("transitionstart",e),R.addEventListener("wake",e),()=>{R.removeEventListener("update",e),R.removeEventListener("controlstart",t),R.removeEventListener("controlend",r),R.removeEventListener("control",e),R.removeEventListener("transitionstart",e),R.removeEventListener("wake",e)}}),[R,n,i,u,m,p,s]),React.useEffect((()=>{if(a){const e=h().controls;return f({controls:R}),()=>f({controls:e})}}),[a,R]),React__namespace.createElement("primitive",_extends__default.default({ref:t,object:R},d))}));function useVideoTexture(e,t){const{unsuspend:r,start:o,crossOrigin:a,muted:n,loop:i,...s}={unsuspend:"loadedmetadata",crossOrigin:"Anonymous",muted:!0,loop:!0,start:!0,playsInline:!0,...t},p=FIBER.useThree((e=>e.gl)),d=suspendReact.suspend((()=>new Promise(((t,o)=>{const d=Object.assign(document.createElement("video"),{src:"string"==typeof e&&e||void 0,srcObject:e instanceof MediaStream&&e||void 0,crossOrigin:a,loop:i,muted:n,...s}),l=new THREE__namespace.VideoTexture(d);"colorSpace"in l?l.colorSpace=p.outputColorSpace:l.encoding=p.outputEncoding,d.addEventListener(r,(()=>t(l)))}))),[e]);return React.useEffect((()=>{o&&d.image.play()}),[d,o]),d}const defaultLookAt=new THREE__namespace.Vector3(0,0,-1),normal=function(){const e=new THREE__namespace.Vector3,t=new THREE__namespace.Vector3,r=new THREE__namespace.Vector3,o=new THREE__namespace.Vector3,a=new THREE__namespace.Vector3;return function(n,i,s,p){return e.copy(n),t.copy(i),r.copy(s),o.copy(t).sub(e),a.copy(r).sub(e),p.crossVectors(a,o).normalize()}}();function mean$1(e,t){return e.clone().add(t).multiplyScalar(.5)}const Facemesh=React__namespace.forwardRef((({points:e=FacemeshDatas.SAMPLE_FACELANDMARKER_RESULT.faceLandmarks[0],face:t,facialTransformationMatrix:r,faceBlendshapes:o,offset:a,offsetScalar:n=80,width:i,height:s,depth:p=1,verticalTri:d=[159,386,152],origin:l,eyes:c=!0,eyesAsOrigin:u=!1,debug:g=!1,children:m,...f},h)=>{var y;t&&(e=t.keypoints,console.warn("Facemesh `face` prop is deprecated: use `points` instead"));const _=React__namespace.useRef(null),b=React__namespace.useRef(null),R=React__namespace.useRef(null),v=React__namespace.useRef(null),E=React__namespace.useRef(null),M=React__namespace.useRef(null),O=React__namespace.useRef(null),[F]=React__namespace.useState((()=>new THREE__namespace.Vector3)),[x]=React__namespace.useState((()=>new THREE__namespace.Object3D)),[T]=React__namespace.useState((()=>new THREE__namespace.Quaternion)),[S]=React__namespace.useState((()=>new THREE__namespace.Vector3)),{invalidate:k}=FIBER.useThree();React__namespace.useEffect((()=>{var e;null==(e=E.current)||e.geometry.setIndex(FacemeshDatas.TRIANGULATION)}),[]);const[C]=React__namespace.useState((()=>new THREE__namespace.Vector3));React__namespace.useEffect((()=>{var t,m;const f=null==(t=E.current)?void 0:t.geometry;if(!f)return;var h,y;(f.setFromPoints(e),f.setDrawRange(0,FacemeshDatas.TRIANGULATION.length),r)?(x.matrix.fromArray(r.data),x.matrix.decompose(x.position,x.quaternion,x.scale),x.rotation.y*=-1,x.rotation.z*=-1,T.setFromEuler(x.rotation),a?(x.position.y*=-1,x.position.z*=-1,null==(h=_.current)||h.position.copy(x.position.divideScalar(n))):null==(y=_.current)||y.position.set(0,0,0)):(normal(e[d[0]],e[d[1]],e[d[2]],F),T.setFromUnitVectors(defaultLookAt,F));const B=T.clone().invert();if(f.computeBoundingBox(),g&&k(),f.center(),f.applyQuaternion(B),null==(m=v.current)||m.setRotationFromQuaternion(T),c)if(o){if(M.current&&O.current&&R.current)if(u){const e=M.current._computeSphere(f),t=O.current._computeSphere(f),r=mean$1(e.center,t.center);l=r.negate(),M.current._update(f,o,e),O.current._update(f,o,t)}else M.current._update(f,o),O.current._update(f,o)}else console.warn("Facemesh `eyes` option only works if `faceBlendshapes` is provided: skipping.");if(R.current){if(void 0!==l)if("number"==typeof l){const e=f.getAttribute("position");S.set(-e.getX(l),-e.getY(l),-e.getZ(l))}else l.isVector3&&S.copy(l);else S.setScalar(0);R.current.position.copy(S)}if(b.current){let e=1;(i||s||p)&&(f.boundingBox.getSize(C),i&&(e=i/C.x),s&&(e=s/C.y),p&&(e=p/C.z)),b.current.scale.setScalar(1!==e?e:1)}f.computeVertexNormals(),f.attributes.position.needsUpdate=!0}),[e,r,o,x,a,n,i,s,p,d,l,c,g,k,F,T,C,S]);const B=React__namespace.useMemo((()=>({outerRef:v,meshRef:E,eyeRightRef:M,eyeLeftRef:O})),[]);React__namespace.useImperativeHandle(h,(()=>B),[B]);const[w]=React__namespace.useState((()=>new THREE__namespace.Vector3)),L=null==(y=E.current)?void 0:y.geometry.boundingBox,A=(null==L?void 0:L.getSize(w).z)||1;return React__namespace.createElement("group",f,React__namespace.createElement("group",{ref:_},React__namespace.createElement("group",{ref:v},React__namespace.createElement("group",{ref:b},g?React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("axesHelper",{args:[A]}),React__namespace.createElement(Line,{points:[[0,0,0],[0,0,-A]],color:65535})):null,React__namespace.createElement("group",{ref:R},c&&o&&React__namespace.createElement("group",{name:"eyes"},React__namespace.createElement(FacemeshEye,{side:"left",ref:M,debug:g}),React__namespace.createElement(FacemeshEye,{side:"right",ref:O,debug:g})),React__namespace.createElement("mesh",{ref:E,name:"face"},m,g?React__namespace.createElement(React__namespace.Fragment,null,L&&React__namespace.createElement("box3Helper",{args:[L]})):null))))))})),FacemeshEyeDefaults={contourLandmarks:{right:[33,133,159,145,153],left:[263,362,386,374,380]},blendshapes:{right:[14,16,18,12],left:[13,15,17,11]},color:{right:"red",left:"#00ff00"},fov:{horizontal:100,vertical:90}},FacemeshEye=React__namespace.forwardRef((({side:e,debug:t=!0},r)=>{const o=React__namespace.useRef(null),a=React__namespace.useRef(null),[n]=React__namespace.useState((()=>new THREE__namespace.Sphere)),i=React__namespace.useCallback((t=>{const r=t.getAttribute("position"),o=FacemeshEyeDefaults.contourLandmarks[e].map((e=>new THREE__namespace.Vector3(r.getX(e),r.getY(e),r.getZ(e))));return n.center.set(0,0,0),o.forEach((e=>n.center.add(e))),n.center.divideScalar(o.length),n.radius=o[0].sub(o[1]).length()/2,n}),[n,e]),[s]=React__namespace.useState((()=>new THREE__namespace.Euler)),p=React__namespace.useCallback(((t,r,n)=>{var p;o.current&&(null!==(p=n)&&void 0!==p||(n=i(t)),o.current.position.copy(n.center),o.current.scale.setScalar(n.radius));if(r&&a.current){const t=FacemeshEyeDefaults.blendshapes[e],o=r.categories[t[0]].score,n=r.categories[t[1]].score,i=r.categories[t[2]].score,p=r.categories[t[3]].score,d=.5*(FacemeshEyeDefaults.fov.horizontal*THREE__namespace.MathUtils.DEG2RAD)*(p-i),l=.5*(FacemeshEyeDefaults.fov.vertical*THREE__namespace.MathUtils.DEG2RAD)*(o-n)*("left"===e?1:-1);s.set(d,l,0),a.current.setRotationFromEuler(s)}}),[i,e,s]),d=React__namespace.useMemo((()=>({eyeMeshRef:o,irisDirRef:a,_computeSphere:i,_update:p})),[i,p]);React__namespace.useImperativeHandle(r,(()=>d),[d]);const l=FacemeshEyeDefaults.color[e];return React__namespace.createElement("group",null,React__namespace.createElement("group",{ref:o},t&&React__namespace.createElement("axesHelper",null),React__namespace.createElement("group",{ref:a},React__namespace.createElement(React__namespace.Fragment,null,t&&React__namespace.createElement(Line,{points:[[0,0,0],[0,0,-2]],lineWidth:1,color:l})))))})),FacemeshDatas={TRIANGULATION:[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],SAMPLE_FACE:{keypoints:[{x:356.2804412841797,y:295.1960563659668,z:-23.786449432373047,name:"lips"},{x:354.8859405517578,y:264.69520568847656,z:-36.718435287475586},{x:355.2180862426758,y:275.3360366821289,z:-21.183712482452393},{x:347.349853515625,y:242.4400234222412,z:-25.093655586242676},{x:354.40135955810547,y:256.67933464050293,z:-38.23572635650635},{x:353.7689971923828,y:247.54886627197266,z:-34.5475435256958},{x:352.1288299560547,y:227.34312057495117,z:-13.095386028289795},{x:303.5013198852539,y:234.67002868652344,z:12.500141859054565,name:"rightEye"},{x:351.09378814697266,y:211.87547206878662,z:-6.413471698760986},{x:350.7115936279297,y:202.1251630783081,z:-6.413471698760986},{x:348.33667755126953,y:168.7741756439209,z:6.483500003814697,name:"faceOval"},{x:356.4806365966797,y:299.2995357513428,z:-23.144519329071045},{x:356.5511703491211,y:302.66146659851074,z:-21.020312309265137},{x:356.6239547729492,y:304.1536331176758,z:-18.137459754943848,name:"lips"},{x:356.5807342529297,y:305.1840591430664,z:-18.767719268798828,name:"lips"},{x:356.8241500854492,y:308.25711250305176,z:-20.16829490661621},{x:357.113037109375,y:312.26277351379395,z:-22.10575819015503},{x:357.34962463378906,y:317.1123218536377,z:-21.837315559387207,name:"lips"},{x:357.6658630371094,y:325.51036834716797,z:-16.27002477645874},{x:355.0201416015625,y:269.36279296875,z:-33.73054027557373},{x:348.5237503051758,y:270.33411026000977,z:-24.93025302886963},{x:279.97331619262695,y:213.24176788330078,z:47.759642601013184,name:"faceOval"},{x:322.66529083251953,y:238.5027265548706,z:5.535193085670471},{x:316.0983657836914,y:239.94489669799805,z:5.777376294136047},{x:309.9431610107422,y:240.24518966674805,z:7.510589361190796},{x:301.31994247436523,y:237.86138534545898,z:13.118728399276733},{x:328.14266204833984,y:235.80496788024902,z:6.646900177001953},{x:313.7326431274414,y:222.11161136627197,z:3.9887237548828125},{x:320.45196533203125,y:221.87729358673096,z:4.601476192474365},{x:307.35679626464844,y:223.63793849945068,z:5.932023525238037},{x:303.0031204223633,y:226.3743782043457,z:8.479321002960205},{x:296.80023193359375,y:242.94299125671387,z:15.931552648544312},{x:332.2352981567383,y:340.77341079711914,z:-10.165848731994629},{x:301.38587951660156,y:233.46447944641113,z:14.764405488967896,name:"rightEye"},{x:279.0147018432617,y:244.37155723571777,z:45.77549457550049},{x:289.60548400878906,y:239.1807460784912,z:23.191204071044922},{x:320.32257080078125,y:267.1292781829834,z:-4.954537749290466},{x:347.64583587646484,y:294.4955062866211,z:-23.062820434570312,name:"lips"},{x:349.28138732910156,y:303.1095886230469,z:-20.238323211669922},{x:338.9453125,y:298.19186210632324,z:-19.456336498260498,name:"lips"},{x:333.36788177490234,y:302.6706790924072,z:-14.776077270507812,name:"lips"},{x:342.89188385009766,y:304.3561363220215,z:-17.752301692962646},{x:337.7375030517578,y:306.0098361968994,z:-13.410515785217285},{x:325.6159210205078,y:316.22995376586914,z:-6.681914925575256},{x:349.0104675292969,y:264.9818515777588,z:-36.274919509887695},{x:347.7138900756836,y:257.5664806365967,z:-37.67549514770508},{x:291.79357528686523,y:218.88171672821045,z:11.578094959259033,name:"rightEyebrow"},{x:332.2689437866211,y:247.56946563720703,z:-3.3730539679527283},{x:332.0074462890625,y:267.1201229095459,z:-19.969879388809204},{x:331.27952575683594,y:263.6967658996582,z:-17.47218608856201},{x:301.04373931884766,y:269.56552505493164,z:3.61815482378006},{x:347.4863815307617,y:249.0706443786621,z:-32.633421421051025},{x:307.26118087768555,y:208.2646894454956,z:1.1591226607561111,name:"rightEyebrow"},{x:297.91919708251953,y:212.22604751586914,z:5.914516448974609,name:"rightEyebrow"},{x:285.1651382446289,y:197.98450469970703,z:36.391637325286865,name:"faceOval"},{x:337.04097747802734,y:211.25229835510254,z:-4.548954665660858},{x:326.5912628173828,y:223.16698551177979,z:6.670243740081787},{x:320.05664825439453,y:309.5834255218506,z:-4.055835008621216},{x:289.6866226196289,y:314.617395401001,z:53.875489234924316,name:"faceOval"},{x:337.4256896972656,y:270.8755302429199,z:-17.67060160636902},{x:343.69922637939453,y:273.0000400543213,z:-18.756048679351807},{x:327.4242401123047,y:309.22399520874023,z:-4.703601002693176,name:"lips"},{x:330.37220001220703,y:308.3323001861572,z:-6.442649960517883},{x:293.87027740478516,y:207.7961826324463,z:9.821539521217346,name:"rightEyebrow"},{x:332.11437225341797,y:271.22812271118164,z:-16.64351224899292},{x:320.1197814941406,y:207.40366458892822,z:-2.48164564371109,name:"rightEyebrow"},{x:318.59575271606445,y:201.07443809509277,z:-3.110446035861969,name:"rightEyebrow"},{x:310.72303771972656,y:175.75075149536133,z:13.328815698623657,name:"faceOval"},{x:289.67578887939453,y:202.29835510253906,z:21.370456218719482},{x:315.30879974365234,y:187.35260009765625,z:5.0304025411605835},{x:287.8936767578125,y:216.54793739318848,z:17.81065821647644,name:"rightEyebrow"},{x:283.9391899108887,y:215.01142501831055,z:32.04984903335571},{x:348.35330963134766,y:299.4155788421631,z:-22.47924566268921},{x:341.1790466308594,y:301.8221855163574,z:-18.977805376052856},{x:335.69713592529297,y:304.4266891479492,z:-14.682706594467163},{x:339.4615173339844,y:272.3654365539551,z:-16.38674020767212},{x:328.99600982666016,y:308.86685371398926,z:-5.616893768310547},{x:332.00313568115234,y:309.1875743865967,z:-10.335084199905396},{x:331.0068130493164,y:307.9274368286133,z:-6.681914925575256,name:"lips"},{x:341.13792419433594,y:266.4876937866211,z:-26.56425952911377},{x:339.02950286865234,y:305.6663703918457,z:-12.33674168586731,name:"lips"},{x:344.22935485839844,y:304.9452781677246,z:-15.161235332489014,name:"lips"},{x:350.1844024658203,y:304.374303817749,z:-17.5305438041687,name:"lips"},{x:348.52630615234375,y:325.9562301635742,z:-16.164982318878174},{x:348.6581802368164,y:317.1624183654785,z:-21.510512828826904,name:"lips"},{x:348.9766311645508,y:312.1923065185547,z:-21.708929538726807},{x:349.2427444458008,y:308.0660820007324,z:-19.643079042434692},{x:349.67491149902344,y:305.42747497558594,z:-18.16080331802368,name:"lips"},{x:337.95589447021484,y:306.6535949707031,z:-12.803598642349243,name:"lips"},{x:337.06878662109375,y:307.63169288635254,z:-14.274203777313232},{x:335.77449798583984,y:309.8449516296387,z:-15.698124170303345},{x:334.6099090576172,y:312.7997016906738,z:-14.764405488967896,name:"lips"},{x:327.2330856323242,y:293.80866050720215,z:-11.864047050476074},{x:280.97679138183594,y:279.79928970336914,z:68.90834331512451,name:"faceOval"},{x:355.13843536376953,y:271.7875671386719,z:-25.350427627563477},{x:334.7235870361328,y:307.4656391143799,z:-9.302158951759338,name:"lips"},{x:333.5293960571289,y:307.89782524108887,z:-10.200862884521484},{x:346.29688262939453,y:276.4256286621094,z:-19.748122692108154},{x:335.16246795654297,y:276.22097969055176,z:-12.313398122787476},{x:345.09132385253906,y:274.7082996368408,z:-19.304605722427368},{x:325.4267883300781,y:252.95130729675293,z:-1.6661019623279572},{x:315.347843170166,y:259.05200958251953,z:-.25604281574487686},{x:330.44933319091797,y:267.7570152282715,z:-14.017432928085327},{x:294.96768951416016,y:185.26001930236816,z:23.903164863586426,name:"faceOval"},{x:299.63531494140625,y:192.7913761138916,z:12.640198469161987},{x:304.5452117919922,y:202.4142837524414,z:3.244667649269104,name:"rightEyebrow"},{x:331.6915512084961,y:320.0467872619629,z:-10.632705688476562},{x:334.5911407470703,y:201.27566814422607,z:-6.133356094360352,name:"rightEyebrow"},{x:331.4815902709961,y:185.44180870056152,z:.6627205014228821},{x:328.05816650390625,y:170.8385467529297,z:7.358860373497009,name:"faceOval"},{x:304.49764251708984,y:239.76297855377197,z:10.387605428695679},{x:290.6382179260254,y:248.85257720947266,z:19.03616428375244},{x:331.5682601928711,y:233.20727348327637,z:7.837390303611755},{x:295.5115509033203,y:228.9834451675415,z:14.41426157951355},{x:336.94332122802734,y:241.8259334564209,z:-5.27842104434967},{x:336.2792205810547,y:262.7049922943115,z:-26.12074375152588},{x:284.4102478027344,y:255.3262710571289,z:25.467140674591064},{x:295.1420593261719,y:253.02655220031738,z:12.430112361907959},{x:303.5196113586426,y:254.20703887939453,z:6.139191389083862},{x:315.73450088500977,y:251.64799690246582,z:3.3788898587226868},{x:324.69661712646484,y:247.56494522094727,z:2.3328344523906708},{x:331.57970428466797,y:243.02241325378418,z:1.1423448473215103},{x:345.6210708618164,y:229.9976634979248,z:-10.825285911560059},{x:286.26644134521484,y:270.37991523742676,z:21.708929538726807},{x:290.2525520324707,y:228.4921360015869,z:17.71728754043579},{x:351.65367126464844,y:269.3400764465332,z:-33.450424671173096},{x:333.1378936767578,y:253.88388633728027,z:-7.230473756790161},{x:277.8318977355957,y:246.95331573486328,z:68.20805549621582,name:"faceOval"},{x:336.6680908203125,y:238.10003757476807,z:.7688578963279724},{x:329.95800018310547,y:269.18323516845703,z:-7.207130789756775},{x:299.17491912841797,y:234.13324356079102,z:15.95489501953125},{x:335.61729431152344,y:258.71752738952637,z:-23.016133308410645},{x:284.1079330444336,y:297.0343494415283,z:63.25934886932373,name:"faceOval"},{x:331.44542694091797,y:230.6892442703247,z:9.92658257484436,name:"rightEye"},{x:341.41536712646484,y:253.01264762878418,z:-29.038610458374023},{x:303.5472869873047,y:327.5896739959717,z:16.725212335586548},{x:304.7756576538086,y:337.4389457702637,z:27.38126277923584,name:"faceOval"},{x:280.80501556396484,y:275.32050132751465,z:45.0752067565918},{x:295.43582916259766,y:318.4501647949219,z:26.2608003616333},{x:281.4303207397461,y:228.7355661392212,z:40.94350814819336},{x:331.2549591064453,y:349.4216537475586,z:-7.376367449760437},{x:352.4247741699219,y:271.7330074310303,z:-24.953596591949463},{x:327.5672912597656,y:260.41900634765625,z:-5.456410646438599},{x:284.5432472229004,y:241.7647933959961,z:29.668869972229004},{x:310,y:235.66174507141113,z:8.502663969993591,name:"rightEye"},{x:315.7071113586426,y:235.7572603225708,z:6.938687562942505,name:"rightEye"},{x:330.41088104248047,y:311.04143142700195,z:-9.325502514839172,name:"lips"},{x:288.5377502441406,y:285.31983375549316,z:21.837315559387207},{x:344.55039978027344,y:359.4300842285156,z:-6.705257892608643,name:"faceOval"},{x:323.41880798339844,y:351.67362213134766,z:7.802375555038452,name:"faceOval"},{x:314.64088439941406,y:346.11894607543945,z:16.36339783668518,name:"faceOval"},{x:349.4945526123047,y:184.8434829711914,z:-.21847527474164963},{x:359.24694061279297,y:359.8348903656006,z:-8.403456211090088,name:"faceOval"},{x:321.26182556152344,y:234.64492321014404,z:6.90950870513916,name:"rightEye"},{x:326.318359375,y:232.90250301361084,z:8.029969334602356,name:"rightEye"},{x:329.6211624145508,y:231.6195774078369,z:9.722331762313843,name:"rightEye"},{x:285.9398078918457,y:228.2351303100586,z:24.650139808654785},{x:325.79288482666016,y:227.88007736206055,z:7.469738721847534,name:"rightEye"},{x:320.1699447631836,y:227.5934886932373,z:6.168370842933655,name:"rightEye"},{x:314.85408782958984,y:227.85282611846924,z:6.2675780057907104,name:"rightEye"},{x:309.3084907531738,y:229.1516876220703,z:7.7031683921813965,name:"rightEye"},{x:305.5621337890625,y:230.92366218566895,z:9.722331762313843,name:"rightEye"},{x:277.8681945800781,y:228.5354232788086,z:59.71122741699219,name:"faceOval"},{x:306.1444664001465,y:235.1954698562622,z:10.603528022766113,name:"rightEye"},{x:355.4478454589844,y:281.96210861206055,z:-20.565123558044434},{x:333.02661895751953,y:288.0105400085449,z:-14.72939133644104},{x:337.15728759765625,y:269.2059516906738,z:-19.8414945602417},{x:345.9898376464844,y:283.5453128814697,z:-20.4834246635437},{x:351.48963928222656,y:219.98916149139404,z:-7.0378947257995605},{x:312.39574432373047,y:336.50628089904785,z:8.671900033950806},{x:321.32152557373047,y:343.1755256652832,z:.9067271649837494},{x:343.78379821777344,y:353.2975959777832,z:-14.355905055999756},{x:296.8791389465332,y:327.91497230529785,z:41.01353645324707,name:"faceOval"},{x:329.6939468383789,y:229.27897453308105,z:8.934508562088013,name:"rightEye"},{x:341.6905212402344,y:241.4073657989502,z:-14.589333534240723},{x:359.03079986572266,y:353.48859786987305,z:-15.803166627883911},{x:333.1861877441406,y:356.43213272094727,z:-1.0234417766332626,name:"faceOval"},{x:283.97483825683594,y:291.4318656921387,z:41.94725513458252},{x:343.33770751953125,y:305.830135345459,z:-15.756480693817139,name:"lips"},{x:342.40283966064453,y:307.7453899383545,z:-17.4021577835083},{x:341.53621673583984,y:311.0595703125,z:-19.047834873199463},{x:340.9107208251953,y:315.4837703704834,z:-18.5576331615448,name:"lips"},{x:339.1478729248047,y:323.42233657836914,z:-14.367576837539673},{x:333.3201599121094,y:307.4406337738037,z:-9.617288708686829},{x:331.2411117553711,y:306.9811820983887,z:-9.669809937477112},{x:329.23255920410156,y:306.0508346557617,z:-9.582273960113525,name:"lips"},{x:322.4586486816406,y:301.33323669433594,z:-7.720675468444824},{x:297.1712112426758,y:286.9552803039551,z:8.240055441856384},{x:341.3060760498047,y:235.4432201385498,z:-7.504753470420837},{x:336.9318389892578,y:224.3451976776123,z:5.829898118972778},{x:332.65323638916016,y:226.70403957366943,z:8.105834126472473},{x:334.67357635498047,y:306.4397621154785,z:-8.981193900108337,name:"lips"},{x:297.4601936340332,y:306.29210472106934,z:15.476365089416504},{x:342.9119110107422,y:222.37077713012695,z:-2.754466235637665},{x:335.4629898071289,y:332.20250129699707,z:-11.823196411132812},{x:353.2412338256836,y:240.56339263916016,z:-27.147831916809082},{x:346.3080596923828,y:236.41446590423584,z:-18.452589511871338},{x:352.6475143432617,y:234.1420555114746,z:-19.748122692108154},{x:337.3209762573242,y:253.39937210083008,z:-16.024924516677856},{x:358.6122131347656,y:344.90861892700195,z:-18.592647314071655},{x:358.1117248535156,y:334.64990615844727,z:-17.49552845954895},{x:346.4450454711914,y:335.0321102142334,z:-16.32838249206543},{x:319.17640686035156,y:320.2833938598633,z:-3.276764452457428},{x:325.2540588378906,y:276.2369728088379,z:-6.460157036781311},{x:326.7214584350586,y:327.3939514160156,z:-7.417217493057251},{x:310.7190132141113,y:277.2265148162842,z:-3.5452082753181458},{x:319.78355407714844,y:284.8238182067871,z:-6.4543211460113525},{x:305.773983001709,y:290.83580017089844,z:.06907138042151928},{x:344.4001770019531,y:344.85408782958984,z:-16.946970224380493},{x:333.1879425048828,y:258.74256134033203,z:-11.90489649772644},{x:313.80598068237305,y:327.08919525146484,z:2.2277912497520447},{x:322.9637908935547,y:334.6819496154785,z:-3.3643004298210144},{x:313.4055519104004,y:311.2166690826416,z:-1.1175429821014404},{x:291.0865783691406,y:298.2831001281738,z:22.467575073242188},{x:305.6580924987793,y:313.3707904815674,z:5.561453700065613},{x:288.23760986328125,y:305.9941864013672,z:36.765122413635254},{x:315.10692596435547,y:296.26991271972656,z:-4.604393839836121},{x:337.50518798828125,y:247.5944423675537,z:-10.597691535949707},{x:338.8450622558594,y:265.47778129577637,z:-27.778091430664062},{x:334.25254821777344,y:269.0671920776367,z:-20.938611030578613},{x:341.64512634277344,y:259.6387195587158,z:-32.189905643463135},{x:331.44081115722656,y:219.0976095199585,z:4.207563698291779},{x:320.56339263916016,y:216.49658203125,z:2.930997312068939},{x:311.21912002563477,y:216.57853603363037,z:2.9674705862998962},{x:303.46256256103516,y:218.54614734649658,z:5.357203483581543},{x:297.99999237060547,y:222.505202293396,z:9.325502514839172},{x:294.93839263916016,y:236.39654159545898,z:18.534289598464966},{x:278.87489318847656,y:259.7095584869385,z:45.68212032318115},{x:300.3782653808594,y:245.38593292236328,z:12.278382778167725},{x:307.06348419189453,y:246.36857986450195,z:8.164191246032715},{x:315.5229187011719,y:245.3949737548828,z:5.503097176551819},{x:323.71395111083984,y:242.75178909301758,z:4.6335723996162415},{x:330.2785873413086,y:239.34658527374268,z:4.937030673027039},{x:334.6982192993164,y:236.0460376739502,z:4.823233783245087},{x:279.3412208557129,y:263.5196113586426,z:70.91583728790283,name:"faceOval"},{x:334.65972900390625,y:271.6648578643799,z:-17.775644063949585},{x:342.05677032470703,y:246.99846267700195,z:-20.84523916244507},{x:344.0357971191406,y:264.5701503753662,z:-32.936880588531494},{x:348.25531005859375,y:268.6645030975342,z:-30.695960521697998},{x:344.12227630615234,y:266.34212493896484,z:-29.808926582336426},{x:337.12318420410156,y:274.2556858062744,z:-15.768152475357056},{x:349.49047088623047,y:269.071683883667,z:-32.51670837402344},{x:350.1683044433594,y:271.4691352844238,z:-24.93025302886963},{x:333.9634704589844,y:230.56639194488525,z:8.89949381351471},{x:338.2147979736328,y:231.4807891845703,z:4.6715047955513},{x:340.4712677001953,y:231.74463272094727,z:-.34996166825294495},{x:303.28975677490234,y:232.24980354309082,z:11.916568279266357,name:"rightEye"},{x:299.4649124145508,y:229.53842639923096,z:12.325069904327393},{x:359.09618377685547,y:241.77349090576172,z:-24.650139808654785},{x:399.46216583251953,y:229.89503860473633,z:15.919880867004395,name:"leftEye"},{x:361.38919830322266,y:269.6129894256592,z:-24.510080814361572},{x:416.9973373413086,y:206.0895538330078,z:53.26857566833496,name:"faceOval"},{x:381.32179260253906,y:235.5476474761963,z:7.6214683055877686},{x:387.8068542480469,y:236.25958442687988,z:8.345099091529846},{x:393.95751953125,y:235.8660364151001,z:10.475142002105713},{x:401.84600830078125,y:232.77019500732422,z:16.760226488113403},{x:375.70568084716797,y:233.48456382751465,z:8.234220147132874},{x:388.17752838134766,y:218.94717693328857,z:6.810300946235657},{x:381.64928436279297,y:219.2656660079956,z:6.711093783378601},{x:394.4760513305664,y:219.66821193695068,z:9.173773527145386},{x:398.8843536376953,y:221.8837022781372,z:12.03328251838684},{x:406.5454864501953,y:237.12156772613525,z:19.7131085395813},{x:383.87447357177734,y:337.6932907104492,z:-8.631049990653992},{x:401.2682342529297,y:228.5916566848755,z:18.359217643737793,name:"leftEye"},{x:422.0449447631836,y:236.73934936523438,z:51.16771221160889},{x:412.69153594970703,y:232.80198097229004,z:27.52131938934326},{x:387.3497772216797,y:263.298397064209,z:-2.8609684109687805},{x:364.5124053955078,y:293.39221000671387,z:-22.397546768188477,name:"lips"},{x:363.62987518310547,y:302.1291446685791,z:-19.643079042434692},{x:373.2334518432617,y:295.8647060394287,z:-18.125789165496826,name:"lips"},{x:378.83365631103516,y:299.5177745819092,z:-13.153743743896484,name:"lips"},{x:369.91477966308594,y:302.5704002380371,z:-16.65518283843994},{x:374.9167251586914,y:303.5416603088379,z:-11.963253021240234},{x:387.58888244628906,y:312.2716999053955,z:-4.680258631706238},{x:360.6635284423828,y:264.31986808776855,z:-35.94811677932739},{x:361.04564666748047,y:256.8225860595703,z:-37.278664112091064},{x:408.3855438232422,y:213.52088928222656,z:15.756480693817139,name:"leftEyebrow"},{x:373.2946014404297,y:245.38101196289062,z:-1.9316278398036957},{x:376.83860778808594,y:264.3721103668213,z:-18.510947227478027},{x:376.9546127319336,y:261.0010528564453,z:-15.989909172058105},{x:406.1498260498047,y:263.5030174255371,z:7.072908878326416},{x:360.07205963134766,y:248.3631706237793,z:-32.16656446456909},{x:393.11119079589844,y:205.10473251342773,z:3.7786373496055603,name:"leftEyebrow"},{x:402.12791442871094,y:207.89000988006592,z:9.383859634399414,name:"leftEyebrow"},{x:410.8693313598633,y:191.6182279586792,z:41.27030849456787,name:"faceOval"},{x:364.9509811401367,y:210.40483474731445,z:-3.758212625980377},{x:375.94444274902344,y:221.1331844329834,z:8.368442058563232},{x:392.1904754638672,y:305.0360298156738,z:-1.752179116010666},{x:419.50225830078125,y:307.25592613220215,z:58.96425247192383,name:"faceOval"},{x:372.0027160644531,y:268.7212657928467,z:-16.631840467453003},{x:366.1614227294922,y:271.6237449645996,z:-18.219159841537476},{x:385.00938415527344,y:305.3863334655762,z:-2.567722797393799},{x:381.99771881103516,y:304.9723720550537,z:-4.575215280056},{x:405.078125,y:203.21216583251953,z:13.713973760604858,name:"leftEyebrow"},{x:377.13207244873047,y:268.4710121154785,z:-15.266278982162476},{x:380.9713363647461,y:205.36980628967285,z:-.7250899076461792,name:"leftEyebrow"},{x:381.7788314819336,y:198.9268398284912,z:-1.184653863310814,name:"leftEyebrow"},{x:385.5204772949219,y:172.1484375,z:16.04826807975769,name:"faceOval"},{x:407.94189453125,y:196.76236152648926,z:25.723915100097656},{x:383.03890228271484,y:184.5157527923584,z:7.393874526023865},{x:411.61781311035156,y:210.79241752624512,z:22.315845489501953,name:"leftEyebrow"},{x:414.30870056152344,y:208.4643030166626,z:37.021894454956055},{x:364.28722381591797,y:298.35777282714844,z:-21.86065673828125},{x:371.3682556152344,y:299.78848457336426,z:-17.834001779556274},{x:376.88201904296875,y:301.6696071624756,z:-13.153743743896484},{x:370.2193832397461,y:270.49095153808594,z:-15.569736957550049},{x:383.5081100463867,y:305.2726364135742,z:-3.673594295978546},{x:380.73760986328125,y:305.96869468688965,z:-8.660228252410889},{x:381.2334442138672,y:304.63574409484863,z:-4.820316135883331,name:"lips"},{x:368.1698989868164,y:264.8884963989258,z:-25.653886795043945},{x:373.5087203979492,y:303.4233856201172,z:-10.95950722694397,name:"lips"},{x:368.4544372558594,y:303.29601287841797,z:-14.169161319732666,name:"lips"},{x:362.76554107666016,y:303.5735607147217,z:-16.911956071853638,name:"lips"},{x:366.60980224609375,y:324.8870658874512,z:-15.616422891616821},{x:365.7067108154297,y:315.95678329467773,z:-20.903596878051758,name:"lips"},{x:365.0083923339844,y:311.2232208251953,z:-21.066999435424805},{x:364.1508102416992,y:307.0583438873291,z:-18.907777070999146},{x:363.37512969970703,y:304.5721435546875,z:-17.42550015449524,name:"lips"},{x:374.580078125,y:304.3059539794922,z:-11.40302300453186,name:"lips"},{x:375.55362701416016,y:305.0998020172119,z:-12.861957550048828},{x:377.2437286376953,y:307.1674346923828,z:-14.215847253799438},{x:378.68587493896484,y:309.9015712738037,z:-13.223772048950195,name:"lips"},{x:383.8992691040039,y:290.29629707336426,z:-9.97326910495758},{x:423.3871841430664,y:271.91688537597656,z:74.37058925628662,name:"faceOval"},{x:377.68043518066406,y:304.62209701538086,z:-7.603961229324341,name:"lips"},{x:379.00428771972656,y:304.9314594268799,z:-8.57852816581726},{x:364.00279998779297,y:275.2813911437988,z:-19.25792098045349},{x:374.68231201171875,y:273.82555961608887,z:-11.28047227859497},{x:365.0354766845703,y:273.4548568725586,z:-18.791062831878662},{x:380.61901092529297,y:249.8848056793213,z:.15501167625188828},{x:391.14158630371094,y:254.7934627532959,z:2.0906515419483185},{x:378.1761169433594,y:264.9612236022949,z:-12.605184316635132},{x:400.9540557861328,y:179.99592304229736,z:27.82477855682373,name:"faceOval"},{x:398.0038833618164,y:188.50656509399414,z:16.094952821731567},{x:394.8717498779297,y:199.0359592437744,z:6.226727366447449,name:"leftEyebrow"},{x:382.10926055908203,y:316.83926582336426,z:-8.946179747581482},{x:366.51588439941406,y:200.32583713531494,z:-5.24632453918457,name:"leftEyebrow"},{x:367.4893569946289,y:183.87210845947266,z:1.9039081037044525},{x:368.6243438720703,y:168.8127565383911,z:8.736093044281006,name:"faceOval"},{x:398.96175384521484,y:234.9675178527832,z:13.713973760604858},{x:412.9645538330078,y:242.23042488098145,z:23.272905349731445},{x:372.05257415771484,y:231.41919136047363,z:9.226294755935669},{x:406.0722351074219,y:223.58965873718262,z:18.370890617370605},{x:368.27442169189453,y:240.2039337158203,z:-4.166713654994965},{x:372.3575210571289,y:260.66442489624023,z:-24.976940155029297},{x:419.2244338989258,y:247.9079246520996,z:30.299127101898193},{x:409.43885803222656,y:246.60913467407227,z:16.398411989212036},{x:401.69139862060547,y:248.76328468322754,z:9.395531415939331},{x:389.7608184814453,y:247.56915092468262,z:5.841569304466248},{x:380.5461883544922,y:244.55984115600586,z:4.263003468513489},{x:373.25817108154297,y:240.80214500427246,z:2.5356262922286987},{x:358.77086639404297,y:229.35615062713623,z:-10.387605428695679},{x:419.5793914794922,y:262.8478717803955,z:26.5175724029541},{x:410.8808898925781,y:222.51372814178467,z:22.199130058288574},{x:358.45714569091797,y:268.91467094421387,z:-33.17030906677246},{x:373.4129333496094,y:251.6385841369629,z:-5.771540403366089},{x:422.5408172607422,y:239.23919677734375,z:74.04378890991211,name:"faceOval"},{x:367.8171920776367,y:236.58040523529053,z:1.820748895406723},{x:378.51959228515625,y:266.2532329559326,z:-5.74819803237915},{x:403.3472442626953,y:229.05112266540527,z:19.689764976501465},{x:372.34840393066406,y:256.6451168060303,z:-21.872329711914062},{x:422.54566192626953,y:289.1587829589844,z:68.67491245269775,name:"faceOval"},{x:371.9297409057617,y:228.90116214752197,z:11.432201862335205,name:"leftEye"},{x:366.21360778808594,y:251.6158962249756,z:-28.19826364517212},{x:409.1571807861328,y:321.3156223297119,z:20.2266526222229},{x:408.52943420410156,y:331.44238471984863,z:31.09278917312622,name:"faceOval"},{x:424.2788314819336,y:267.1992301940918,z:50.467424392700195},{x:415.60352325439453,y:311.6528606414795,z:30.579242706298828},{x:418.12793731689453,y:221.59927368164062,z:46.26569747924805},{x:385.68286895751953,y:346.0184955596924,z:-5.70151150226593},{x:357.82936096191406,y:271.3758373260498,z:-24.836881160736084},{x:379.588623046875,y:257.5071716308594,z:-3.755294680595398},{x:417.4592590332031,y:234.71948146820068,z:34.5475435256958},{x:393.4684371948242,y:231.58967971801758,z:11.408859491348267,name:"leftEye"},{x:387.8864288330078,y:232.14245796203613,z:9.51808214187622,name:"leftEye"},{x:382.4981689453125,y:307.5654888153076,z:-7.522260546684265,name:"lips"},{x:419.00169372558594,y:277.8332805633545,z:26.424202919006348},{x:373.62953186035156,y:357.6375102996826,z:-5.75986921787262,name:"faceOval"},{x:392.8708267211914,y:347.72446632385254,z:10.154176950454712,name:"faceOval"},{x:400.3953552246094,y:341.0005187988281,z:19.39797878265381,name:"faceOval"},{x:382.25440979003906,y:231.66935920715332,z:8.998700976371765,name:"leftEye"},{x:377.14550018310547,y:230.4228687286377,z:9.804032444953918,name:"leftEye"},{x:373.8358688354492,y:229.64950561523438,z:11.292144060134888,name:"leftEye"},{x:414.5794677734375,y:221.67891025543213,z:29.412097930908203},{x:377.00672149658203,y:225.66201210021973,z:9.360517263412476,name:"leftEye"},{x:382.29530334472656,y:224.8431158065796,z:8.32175612449646,name:"leftEye"},{x:387.5133514404297,y:224.49507236480713,z:8.917000889778137,name:"leftEye"},{x:393.15906524658203,y:225.24795055389404,z:10.737749338150024,name:"leftEye"},{x:397.05554962158203,y:226.55359268188477,z:13.002015352249146,name:"leftEye"},{x:420.5299377441406,y:221.014666557312,z:65.40690422058105,name:"faceOval"},{x:397.06920623779297,y:230.6661558151245,z:13.807345628738403,name:"leftEye"},{x:377.94647216796875,y:285.1647090911865,z:-13.305472135543823},{x:372.1118927001953,y:267.1267318725586,z:-18.83774757385254},{x:364.9968719482422,y:282.24411964416504,z:-19.818150997161865},{x:401.973876953125,y:331.20131492614746,z:11.566424369812012},{x:394.3083190917969,y:338.86693954467773,z:3.142542541027069},{x:373.9820861816406,y:351.4504623413086,z:-13.50388765335083},{x:414.3888854980469,y:321.24735832214355,z:45.51872253417969,name:"faceOval"},{x:373.44234466552734,y:227.33163356781006,z:10.626870393753052,name:"leftEye"},{x:364.0731430053711,y:240.31539916992188,z:-13.807345628738403},{x:384.2658233642578,y:353.3793067932129,z:.7385850697755814,name:"faceOval"},{x:423.20526123046875,y:283.5176181793213,z:47.152724266052246},{x:369.42798614501953,y:304.0898895263672,z:-14.647691249847412,name:"lips"},{x:370.63812255859375,y:305.90051651000977,z:-16.211668252944946},{x:371.91192626953125,y:309.0167713165283,z:-17.84567356109619},{x:373.0583953857422,y:313.3545398712158,z:-17.378815412521362,name:"lips"},{x:375.39905548095703,y:321.09289169311523,z:-13.118728399276733},{x:379.2567825317383,y:304.3582534790039,z:-7.924926280975342},{x:381.18797302246094,y:303.7031364440918,z:-7.843226194381714},{x:383.0918502807617,y:302.4884605407715,z:-7.6506465673446655,name:"lips"},{x:389.09461975097656,y:297.1475315093994,z:-5.5497825145721436},{x:411.6408920288086,y:280.24898529052734,z:12.02161192893982},{x:363.3110809326172,y:234.27620887756348,z:-6.775286793708801},{x:366.0474395751953,y:223.29872131347656,z:6.827808618545532},{x:370.34427642822266,y:225.1457118988037,z:9.558931589126587},{x:377.5371551513672,y:303.60079765319824,z:-7.358860373497009,name:"lips"},{x:412.9557800292969,y:299.53579902648926,z:19.39797878265381},{x:360.0810241699219,y:221.72012329101562,z:-2.153385728597641},{x:379.82784271240234,y:329.47723388671875,z:-10.48097848892212},{x:359.08477783203125,y:235.7911491394043,z:-18.079102039337158},{x:369.6688461303711,y:251.5407943725586,z:-14.962821006774902},{x:369.5555114746094,y:333.5307312011719,z:-15.67478060722351},{x:394.0193176269531,y:315.6973171234131,z:-.9920747578144073},{x:383.78997802734375,y:272.7268695831299,z:-4.689012169837952},{x:387.67765045166016,y:323.6722755432129,z:-5.640236139297485},{x:397.8769302368164,y:272.1331214904785,z:-.9395531564950943},{x:389.87476348876953,y:280.5630111694336,z:-4.29218202829361},{x:403.83888244628906,y:285.1167869567871,z:3.0229100584983826},{x:372.5467300415039,y:343.1070327758789,z:-16.153310537338257},{x:374.1112518310547,y:256.3721466064453,z:-10.574349164962769},{x:399.73785400390625,y:321.77515983581543,z:4.849494695663452},{x:392.03365325927734,y:330.56447982788086,z:-1.3407598435878754},{x:398.59134674072266,y:305.93902587890625,z:1.517290621995926},{x:417.95997619628906,y:290.9716987609863,z:26.89105987548828},{x:406.04541778564453,y:307.35154151916504,z:8.666064143180847},{x:420.75328826904297,y:298.40752601623535,z:41.78385257720947},{x:395.4522705078125,y:291.4153575897217,z:-2.1752697229385376},{x:368.6452102661133,y:245.8882999420166,z:-9.453888535499573},{x:370.34900665283203,y:263.56690406799316,z:-26.75100326538086},{x:374.98477935791016,y:266.6126346588135,z:-19.77146625518799},{x:366.99840545654297,y:258.12140464782715,z:-31.372904777526855},{x:371.00616455078125,y:217.63479709625244,z:5.60522198677063},{x:381.30577087402344,y:214.14087295532227,z:4.983716309070587},{x:390.1496124267578,y:213.38221549987793,z:5.593550801277161},{x:397.7696990966797,y:214.3659782409668,z:8.57852816581726},{x:403.1652069091797,y:217.65509605407715,z:13.013685941696167},{x:407.3551940917969,y:230.72525024414062,z:22.444231510162354},{x:424.0876770019531,y:251.7839241027832,z:51.16771221160889},{x:403.50196838378906,y:239.88757610321045,z:15.803166627883911},{x:397.31719970703125,y:241.49806022644043,z:11.233787536621094},{x:388.99425506591797,y:241.4366912841797,z:7.948269248008728},{x:380.7804489135742,y:239.78078842163086,z:6.600214838981628},{x:374.01336669921875,y:237.11946487426758,z:6.349278092384338},{x:369.39125061035156,y:234.35351371765137,z:5.987462401390076},{x:422.9730987548828,y:255.76455116271973,z:76.61150932312012,name:"faceOval"},{x:374.73915100097656,y:269.24214363098145,z:-16.608498096466064},{x:364.61681365966797,y:245.71088790893555,z:-20.02823829650879},{x:365.3834533691406,y:263.34174156188965,z:-32.32996463775635},{x:361.58252716064453,y:267.8273677825928,z:-30.345816612243652},{x:365.37208557128906,y:265.0249671936035,z:-29.178667068481445},{x:372.72605895996094,y:272.05135345458984,z:-14.834434986114502},{x:360.48614501953125,y:268.34827423095703,z:-32.189905643463135},{x:359.9516296386719,y:270.8049201965332,z:-24.650139808654785},{x:369.5049285888672,y:229.01945114135742,z:10.107489824295044},{x:365.5447769165039,y:230.24096488952637,z:5.593550801277161},{x:363.50669860839844,y:230.6208372116089,z:.43622106313705444},{x:399.3529510498047,y:227.65677452087402,z:15.35965085029602,name:"leftEye"},{x:402.5693130493164,y:224.60190296173096,z:15.931552648544312}],box:{xMin:277.8318977355957,yMin:168.7741756439209,xMax:424.2788314819336,yMax:359.8348903656006,width:146.4469337463379,height:191.0607147216797}},SAMPLE_FACELANDMARKER_RESULT:{faceLandmarks:[[{x:.5760777592658997,y:.8639070391654968,z:-.030997956171631813},{x:.572094738483429,y:.7886289358139038,z:-.07189624011516571},{x:.5723551511764526,y:.8075382709503174,z:-.03578168898820877},{x:.5548420548439026,y:.7188365459442139,z:-.057787876576185226},{x:.5706077814102173,y:.7674974799156189,z:-.07740399986505508},{x:.5681378245353699,y:.7387768030166626,z:-.07356284558773041},{x:.5621535181999207,y:.6681165099143982,z:-.04189874976873398},{x:.46613582968711853,y:.6679812073707581,z:.011289681307971478},{x:.5579932928085327,y:.6174106597900391,z:-.03502821549773216},{x:.5563451647758484,y:.5905600190162659,z:-.03928658738732338},{x:.5487832427024841,y:.4900572597980499,z:-.029898937791585922},{x:.5765544176101685,y:.8692144751548767,z:-.02831427752971649},{x:.5771114230155945,y:.873644232749939,z:-.02345779910683632},{x:.5771905779838562,y:.877016007900238,z:-.016658689826726913},{x:.5778058767318726,y:.8770116567611694,z:-.014505492523312569},{x:.5783766508102417,y:.8835000991821289,z:-.015996402129530907},{x:.5792440176010132,y:.8913810849189758,z:-.01924579218029976},{x:.5796768069267273,y:.8996334671974182,z:-.018261712044477463},{x:.5817288160324097,y:.9255813956260681,z:-.007126849144697189},{x:.5726592540740967,y:.7992473244667053,z:-.0643521398305893},{x:.5579419136047363,y:.7996989488601685,z:-.04566684365272522},{x:.4216199815273285,y:.5958762764930725,z:.06776496022939682},{x:.5052269697189331,y:.6796539425849915,z:-.0010737782577052712},{x:.49243026971817017,y:.6838865876197815,z:-.0005227324436418712},{x:.4796970784664154,y:.6856290102005005,z:.002684245817363262},{x:.4618356227874756,y:.6764569878578186,z:.013439622707664967},{x:.5160380601882935,y:.6737282276153564,z:-17607348127057776e-21},{x:.48070961236953735,y:.6255870461463928,z:-.008339674212038517},{x:.49719780683517456,y:.6256808042526245,z:-.008027955889701843},{x:.46674346923828125,y:.6317623853683472,z:-.004460199736058712},{x:.4582492709159851,y:.641118049621582,z:.0011905613355338573},{x:.45408669114112854,y:.6911458969116211,z:.020514748990535736},{x:.535312294960022,y:.9619986414909363,z:.012499462813138962},{x:.4608460068702698,y:.6628725528717041,z:.01517564244568348},{x:.4206731915473938,y:.6828458309173584,z:.07848648726940155},{x:.4390624463558197,y:.6796106696128845,z:.03283142298460007},{x:.5029968619346619,y:.7701570391654968,z:-.009734481573104858},{x:.5595027208328247,y:.8607323169708252,z:-.030043255537748337},{x:.5621269941329956,y:.8738374710083008,z:-.021709579974412918},{x:.5451499819755554,y:.865527331829071,z:-.022014077752828598},{x:.5351184010505676,y:.8705098032951355,z:-.011602800339460373},{x:.5495014190673828,y:.8744956254959106,z:-.016490943729877472},{x:.5395170450210571,y:.8759440779685974,z:-.007333362940698862},{x:.5183624029159546,y:.8959754705429077,z:.010520773939788342},{x:.5604349374771118,y:.7895449995994568,z:-.07082037627696991},{x:.557381272315979,y:.7687489986419678,z:-.07590588927268982},{x:.4432901442050934,y:.6308897733688354,z:.0027153254486620426},{x:.5258325338363647,y:.7151225805282593,z:-.014676518738269806},{x:.5271827578544617,y:.7833116054534912,z:-.037643320858478546},{x:.5257382988929749,y:.7717816233634949,z:-.03401920944452286},{x:.46516409516334534,y:.7705106735229492,z:.0065747760236263275},{x:.5558893084526062,y:.7420997619628906,z:-.0694495290517807},{x:.4720408320426941,y:.6066038608551025,z:-.021204356104135513},{x:.45432573556900024,y:.6158540844917297,z:-.011054684408009052},{x:.4305151402950287,y:.5608053803443909,z:.0396830290555954},{x:.5310865640640259,y:.6157484650611877,z:-.03081176057457924},{x:.5114666223526001,y:.6329749226570129,z:-.00335998204536736},{x:.506435751914978,y:.8786543607711792,z:.012980876490473747},{x:.4480472207069397,y:.8640613555908203,z:.12569651007652283},{x:.5372058153152466,y:.7942581176757812,z:-.03168361634016037},{x:.5488379597663879,y:.8001630306243896,z:-.03280917927622795},{x:.5213388204574585,y:.8794381618499756,z:.011892606504261494},{x:.5242055654525757,y:.8789222240447998,z:.008370225317776203},{x:.4477175176143646,y:.6039950251579285,z:-.0050799972377717495},{x:.526964008808136,y:.7916748523712158,z:-.02968614175915718},{x:.4971255660057068,y:.6050706505775452,z:-.028175678104162216},{x:.4938119053840637,y:.5882453918457031,z:-.03210941329598427},{x:.4757143557071686,y:.5094879865646362,z:-.01300730835646391},{x:.43947282433509827,y:.5816648006439209,z:.01415177434682846},{x:.485664039850235,y:.5477864146232605,z:-.023685332387685776},{x:.43635931611061096,y:.6226438283920288,z:.013606148771941662},{x:.42910251021385193,y:.6102726459503174,z:.03926564007997513},{x:.5605402588844299,y:.8680099248886108,z:-.027318159118294716},{x:.5474816560745239,y:.8702861070632935,z:-.019686367362737656},{x:.5373021364212036,y:.8728838562965393,z:-.010484928265213966},{x:.540735125541687,y:.7979167103767395,z:-.029073253273963928},{x:.5228585004806519,y:.87913578748703,z:.009915109723806381},{x:.530497670173645,y:.8815253973007202,z:.0020524784922599792},{x:.5259912610054016,y:.8790552616119385,z:.007895970717072487},{x:.5433906316757202,y:.7882310748100281,z:-.05121905356645584},{x:.541388213634491,y:.8777219653129578,z:-.00466804439201951},{x:.5515822172164917,y:.8767023086547852,z:-.010475946590304375},{x:.5637003779411316,y:.877059817314148,z:-.015273625031113625},{x:.5640299320220947,y:.9263423085212708,z:-.00658724969252944},{x:.5642300248146057,y:.8993074893951416,z:-.017653480172157288},{x:.5637336373329163,y:.8910360932350159,z:-.01852807030081749},{x:.5637134313583374,y:.8837276697158813,z:-.01482592523097992},{x:.564205527305603,y:.8768964409828186,z:-.01331155002117157},{x:.5419867634773254,y:.8778373599052429,z:-.0037720394320786},{x:.5404468774795532,y:.880696177482605,z:-.005610354244709015},{x:.5392338633537292,y:.8845721483230591,z:-.007352025713771582},{x:.538469672203064,y:.8891173601150513,z:-.005154991988092661},{x:.5189250111579895,y:.8452741503715515,z:-.009755070321261883},{x:.4258975088596344,y:.7662280797958374,z:.1387351155281067},{x:.5725725293159485,y:.8041572570800781,z:-.04583907872438431},{x:.5342061519622803,y:.8785833120346069,z:.002659974154084921},{x:.5324031114578247,y:.8804071545600891,z:.0017832003068178892},{x:.5538818836212158,y:.8078407645225525,z:-.03254539892077446},{x:.5325431823730469,y:.8026832938194275,z:-.019140373915433884},{x:.5514076948165894,y:.8043903112411499,z:-.03313535451889038},{x:.5131856203079224,y:.7284771800041199,z:-.009399853646755219},{x:.49331504106521606,y:.7443980574607849,z:-.005225230939686298},{x:.5239617824554443,y:.7807451486587524,z:-.025881027802824974},{x:.4473606050014496,y:.5315827131271362,z:.011164786294102669},{x:.45718759298324585,y:.5604941248893738,z:-.005943301599472761},{x:.4670005738735199,y:.5909327268600464,z:-.019681761041283607},{x:.5311570167541504,y:.9076261520385742,z:.00389476353302598},{x:.5249923467636108,y:.5893563628196716,z:-.037981919944286346},{x:.5166932344436646,y:.5429551005363464,z:-.03319704160094261},{x:.5085030198097229,y:.49676206707954407,z:-.02691275253891945},{x:.4687720239162445,y:.6834565997123718,z:.008113506250083447},{x:.4426414966583252,y:.7069531679153442,z:.028577271848917007},{x:.5230373740196228,y:.6675713658332825,z:.001773772411979735},{x:.4481240212917328,y:.6527872085571289,z:.012414850294589996},{x:.5339856743812561,y:.7012367844581604,z:-.020220188423991203},{x:.5347223281860352,y:.7761190533638,z:-.05141595005989075},{x:.4315067231655121,y:.7211957573890686,z:.04381405934691429},{x:.45203351974487305,y:.7206180095672607,z:.017288070172071457},{x:.46892452239990234,y:.7265436053276062,z:.005602988880127668},{x:.49314674735069275,y:.7202282547950745,z:-.0006408205372281373},{x:.5104925632476807,y:.7091827392578125,z:-.00362918758764863},{x:.5232142210006714,y:.698553740978241,z:-.00787867046892643},{x:.5497883558273315,y:.6743605136871338,z:-.036349106580019},{x:.43658503890037537,y:.7627100348472595,z:.042555369436740875},{x:.4397648870944977,y:.6528646349906921,z:.017956094816327095},{x:.5653332471847534,y:.7992802858352661,z:-.06365057826042175},{x:.5285563468933105,y:.736810564994812,z:-.018836988136172295},{x:.4180678725242615,y:.6792560815811157,z:.12284679710865021},{x:.5328429937362671,y:.6865872144699097,z:-.010484723374247551},{x:.5230283141136169,y:.7809416055679321,z:-.011922398582100868},{x:.4551771283149719,y:.6650775074958801,z:.01774493046104908},{x:.5337203741073608,y:.7618928551673889,z:-.04697106033563614},{x:.43463975191116333,y:.8133478164672852,z:.1354849934577942},{x:.5225707292556763,y:.6605283617973328,z:.004980515688657761},{x:.5441933870315552,y:.7497199773788452,z:-.06091512367129326},{x:.4774007797241211,y:.9159183502197266,z:.059622734785079956},{x:.48068761825561523,y:.9364941716194153,z:.08404944837093353},{x:.4268292486667633,y:.7657528519630432,z:.09051097184419632},{x:.46051913499832153,y:.8880485892295837,z:.0738474428653717},{x:.4243420660495758,y:.6434382200241089,z:.06230505183339119},{x:.5342157483100891,y:.9835634231567383,z:.021662971004843712},{x:.5668109655380249,y:.8042187094688416,z:-.044937074184417725},{x:.5176341533660889,y:.7530587315559387,z:-.012967454269528389},{x:.430206298828125,y:.6835605502128601,z:.04612284153699875},{x:.4794231951236725,y:.6732114553451538,z:.003970044665038586},{x:.49073347449302673,y:.6722435355186462,z:.0008692514384165406},{x:.5294116139411926,y:.884677529335022,z:.004413890186697245},{x:.4430122375488281,y:.80235356092453,z:.04987282305955887},{x:.5603825449943542,y:1.0092442035675049,z:.026417359709739685},{x:.5186598300933838,y:.9828659892082214,z:.0513598807156086},{x:.5010536909103394,y:.9640932679176331,z:.06591596454381943},{x:.5524769425392151,y:.539441704750061,z:-.035816047340631485},{x:.5879997611045837,y:1.0091472864151,z:.02285068854689598},{x:.5016193985939026,y:.6684437990188599,z:.00028415941051207483},{x:.511952817440033,y:.6642197370529175,z:.0021144719794392586},{x:.5194343328475952,y:.6623469591140747,z:.004674181342124939},{x:.4321230351924896,y:.6496355533599854,z:.03124697133898735},{x:.508686363697052,y:.6479565501213074,z:-.00044765998609364033},{x:.4963986277580261,y:.6431032419204712,z:-.0032507688738405704},{x:.4845542013645172,y:.6430778503417969,z:-.002903624437749386},{x:.4733612537384033,y:.647506833076477,z:.00023347247042693198},{x:.4668654501438141,y:.653346598148346,z:.004762572236359119},{x:.41815051436424255,y:.633708119392395,z:.09809435904026031},{x:.47159942984580994,y:.6711485385894775,z:.007849935442209244},{x:.5734396576881409,y:.8256140351295471,z:-.03155219927430153},{x:.5306524038314819,y:.8337990641593933,z:-.018351426348090172},{x:.5371729135513306,y:.7910830974578857,z:-.037286680191755295},{x:.5549534559249878,y:.8275275826454163,z:-.030664825811982155},{x:.5597432255744934,y:.6418541669845581,z:-.03318847343325615},{x:.4958484172821045,y:.9429569244384766,z:.048340678215026855},{x:.5140507817268372,y:.9634028077125549,z:.03589847311377525},{x:.5587693452835083,y:.9951097369194031,z:.00908728688955307},{x:.46411189436912537,y:.9051855206489563,z:.10601935535669327},{x:.5181609392166138,y:.6554316878318787,z:.002546071307733655},{x:.5436590909957886,y:.7085841298103333,z:-.03844436630606651},{x:.5872187614440918,y:.9960382580757141,z:.0063423276878893375},{x:.5379653573036194,y:.9989125728607178,z:.03636329993605614},{x:.4350326955318451,y:.8088565468788147,z:.09147704392671585},{x:.5523084998130798,y:.8773422837257385,z:-.009068487212061882},{x:.5510149598121643,y:.8816931843757629,z:-.011043853126466274},{x:.5503793954849243,y:.88776695728302,z:-.01348799467086792},{x:.5501549243927002,y:.8954370617866516,z:-.012142189778387547},{x:.546072781085968,y:.9192524552345276,z:-.003157563041895628},{x:.5314661860466003,y:.8771666884422302,z:.0005075141089037061},{x:.5293324589729309,y:.8762547969818115,z:.00039177737198770046},{x:.5275698900222778,y:.8750609755516052,z:47732755774632096e-21},{x:.5104271173477173,y:.8607332110404968,z:.0012934643309563398},{x:.45938700437545776,y:.8134918212890625,z:.023569690063595772},{x:.5418947339057922,y:.6864100694656372,z:-.027333909645676613},{x:.531914234161377,y:.6456130743026733,z:-.005434140563011169},{x:.523697018623352,y:.647885262966156,z:-.0002466466394253075},{x:.5338191390037537,y:.8783687353134155,z:.002268768846988678},{x:.46226605772972107,y:.8610277771949768,z:.04718952998518944},{x:.5434442758560181,y:.6456181406974792,z:-.02327350154519081},{x:.5399754643440247,y:.940219521522522,z:.005075343884527683},{x:.5661457777023315,y:.71457839012146,z:-.06242101639509201},{x:.5523148775100708,y:.6974870562553406,z:-.04863070324063301},{x:.5639959573745728,y:.6923378109931946,z:-.05180761218070984},{x:.5367592573165894,y:.7423217296600342,z:-.03623027727007866},{x:.5853689908981323,y:.9752064943313599,z:-.002361974213272333},{x:.5835235118865967,y:.9493685960769653,z:-.003941743168979883},{x:.5615018606185913,y:.949194610118866,z:-.0015953965485095978},{x:.5068561434745789,y:.9048219323158264,z:.01862684078514576},{x:.5134067535400391,y:.7971825003623962,z:-.008485661819577217},{x:.5223897099494934,y:.925589919090271,z:.01249657291918993},{x:.48500555753707886,y:.7959478497505188,z:-.0032065745908766985},{x:.5037734508514404,y:.8184596300125122,z:-.004932103678584099},{x:.4766361117362976,y:.828806459903717,z:.01027688942849636},{x:.5589827299118042,y:.974656343460083,z:.0009666886180639267},{x:.5294582843780518,y:.7541216611862183,z:-.025603046640753746},{x:.4973002076148987,y:.9208990931510925,z:.031931452453136444},{x:.5163551568984985,y:.9432790875434875,z:.024321340024471283},{x:.49399662017822266,y:.8814862370491028,z:.018687399104237556},{x:.44948166608810425,y:.836137592792511,z:.05702034756541252},{x:.47898444533348083,y:.8836610913276672,z:.03150695189833641},{x:.4454479217529297,y:.8499438166618347,z:.08868525922298431},{x:.49572959542274475,y:.8452823758125305,z:.0036111653316766024},{x:.5362502336502075,y:.7222585678100586,z:-.027912352234125137},{x:.5393770337104797,y:.7850722074508667,z:-.05415399745106697},{x:.531399667263031,y:.7898418307304382,z:-.03883346915245056},{x:.5451627373695374,y:.7717036604881287,z:-.06480253487825394},{x:.5206395983695984,y:.6287745833396912,z:-.010521138086915016},{x:.4974782466888428,y:.6191938519477844,z:-.014098240062594414},{x:.4774145185947418,y:.6193130612373352,z:-.013643337413668633},{x:.4616098403930664,y:.6259890198707581,z:-.008448202162981033},{x:.4516478478908539,y:.6368461847305298,z:9050309745362028e-20},{x:.4485096037387848,y:.6719120740890503,z:.022984720766544342},{x:.42177659273147583,y:.7240667343139648,z:.08511673659086227},{x:.4616215229034424,y:.6988231539726257,z:.014238474890589714},{x:.4755798876285553,y:.7034608721733093,z:.00625590980052948},{x:.4924992024898529,y:.7005885243415833,z:.0009391739731654525},{x:.5082254409790039,y:.693384051322937,z:-.0009464038303121924},{x:.5203112959861755,y:.6849707961082458,z:-.0022114769089967012},{x:.52867591381073,y:.6779075860977173,z:-.002962538506835699},{x:.4213953912258148,y:.7219811677932739,z:.1350894570350647},{x:.5320829749107361,y:.794858992099762,z:-.03181503340601921},{x:.5452795028686523,y:.7286570072174072,z:-.04771539941430092},{x:.5496407747268677,y:.7866933345794678,z:-.06452003121376038},{x:.557040274143219,y:.7962084412574768,z:-.05837344378232956},{x:.549176812171936,y:.7895247936248779,z:-.057761140167713165},{x:.5362890362739563,y:.8005836606025696,z:-.026903774589300156},{x:.560200035572052,y:.7983731031417847,z:-.06172555685043335},{x:.5616944432258606,y:.8022753596305847,z:-.045200999826192856},{x:.5273328423500061,y:.6611284017562866,z:.0029021520167589188},{x:.534850537776947,y:.6660012006759644,z:-.005215510260313749},{x:.5394860506057739,y:.6701375246047974,z:-.014931917190551758},{x:.4634307324886322,y:.658291757106781,z:.009295716881752014},{x:.4538393020629883,y:.6519932150840759,z:.00930330716073513},{x:.5776031613349915,y:.7159298658370972,z:-.057365912944078445},{x:.6504855155944824,y:.6461779475212097,z:.014184834435582161},{x:.5860154032707214,y:.7962266206741333,z:-.04522843658924103},{x:.6842049360275269,y:.5631637573242188,z:.07207967340946198},{x:.6152560710906982,y:.6674962639808655,z:.0007529259892180562},{x:.6280948519706726,y:.6684326529502869,z:.0016892586136236787},{x:.6408625245094299,y:.6663892269134521,z:.005331226624548435},{x:.6557814478874207,y:.6534678936004639,z:.01646413467824459},{x:.6035663485527039,y:.6639701724052429,z:.0013799630105495453},{x:.6329053044319153,y:.608010470867157,z:-.006195899099111557},{x:.6167260408401489,y:.6117533445358276,z:-.006319951266050339},{x:.6471013426780701,y:.6112449765205383,z:-.0017843559617176652},{x:.6560901999473572,y:.6185776591300964,z:.004047257360070944},{x:.6666946411132812,y:.6651176810264587,z:.023647578433156013},{x:.6311345100402832,y:.9495396018028259,z:.014004078693687916},{x:.6544655561447144,y:.6397901773452759,z:.01809609681367874},{x:.6965808868408203,y:.6482675075531006,z:.08304904401302338},{x:.679817259311676,y:.650188148021698,z:.03632688894867897},{x:.6336516737937927,y:.7541458010673523,z:-.007742783520370722},{x:.5921701192855835,y:.8567668199539185,z:-.029399123042821884},{x:.591663658618927,y:.870215654373169,z:-.02103729173541069},{x:.6068367958068848,y:.8584195375442505,z:-.020668085664510727},{x:.6176617741584778,y:.860965371131897,z:-.009790095500648022},{x:.6040634512901306,y:.8686612844467163,z:-.015289564616978168},{x:.6143736839294434,y:.8671170473098755,z:-.005712216719985008},{x:.6373105049133301,y:.8815656900405884,z:.012672550976276398},{x:.5832505822181702,y:.7866312861442566,z:-.07051534950733185},{x:.5836675763130188,y:.7658692598342896,z:-.07566110789775848},{x:.6709531545639038,y:.604898989200592,z:.005951565690338612},{x:.6029891967773438,y:.705652117729187,z:-.013388276100158691},{x:.6131622195243835,y:.7728396058082581,z:-.036248479038476944},{x:.6123163104057312,y:.7612020373344421,z:-.03264721855521202},{x:.6696187853813171,y:.744706928730011,z:.009673702530562878},{x:.5803102254867554,y:.7385968565940857,z:-.0689152330160141},{x:.6404349207878113,y:.5877999663352966,z:-.01929756999015808},{x:.6588467955589294,y:.5929454565048218,z:-.008487257175147533},{x:.6720337867736816,y:.530631422996521,z:.043437421321868896},{x:.584305465221405,y:.6099005341529846,z:-.030301367864012718},{x:.6034283638000488,y:.6217452883720398,z:-.001970183802768588},{x:.6460927724838257,y:.8608663082122803,z:.015541625209152699},{x:.6957815289497375,y:.8326103091239929,z:.13015234470367432},{x:.6043362617492676,y:.7861682772636414,z:-.030476901680231094},{x:.594293475151062,y:.7942103147506714,z:-.032218821346759796},{x:.6324057579040527,y:.8665139675140381,z:.014255806803703308},{x:.6296147704124451,y:.8667733669281006,z:.010388285852968693},{x:.663644552230835,y:.5798642635345459,z:-.0022301070857793093},{x:.6140630841255188,y:.7809288501739502,z:-.02835679054260254},{x:.615908145904541,y:.5921698212623596,z:-.026804860681295395},{x:.617181122303009,y:.5748661756515503,z:-.03060605563223362},{x:.6222207546234131,y:.49137672781944275,z:-.011151673272252083},{x:.6669357419013977,y:.5541607141494751,z:.017466170713305473},{x:.6182981729507446,y:.5320425629615784,z:-.021793590858578682},{x:.6760554313659668,y:.595052182674408,z:.017115700989961624},{x:.6801463961601257,y:.5800720453262329,z:.043127160519361496},{x:.5922210812568665,y:.8644017577171326,z:-.02662893570959568},{x:.6054555177688599,y:.8637874722480774,z:-.018363753333687782},{x:.6161889433860779,y:.8641164898872375,z:-.008808949030935764},{x:.6017249822616577,y:.7901403307914734,z:-.028126630932092667},{x:.631446123123169,y:.8664817810058594,z:.012112865224480629},{x:.6249198913574219,y:.8716511130332947,z:.003882825840264559},{x:.6281915903091431,y:.867301881313324,z:.009891441091895103},{x:.5986843109130859,y:.7813931703567505,z:-.050227612257003784},{x:.6126407384872437,y:.869275689125061,z:-.0031255714129656553},{x:.6027271151542664,y:.8711842894554138,z:-.009324162267148495},{x:.59088134765625,y:.8742044568061829,z:-.014608660712838173},{x:.5984604358673096,y:.9216185212135315,z:-.005981989670544863},{x:.5950398445129395,y:.8964707255363464,z:-.01703473925590515},{x:.5941568613052368,y:.8882410526275635,z:-.017784785479307175},{x:.5928806662559509,y:.8803883194923401,z:-.014153128489851952},{x:.5909661054611206,y:.8748103976249695,z:-.012609979137778282},{x:.6128016710281372,y:.8702545762062073,z:-.0022550546564161777},{x:.6150846481323242,y:.8726804256439209,z:-.00414019962772727},{x:.6173093914985657,y:.8770190477371216,z:-.005970994010567665},{x:.619335412979126,y:.8814800977706909,z:-.0036864024586975574},{x:.6292637586593628,y:.8314558267593384,z:-.007714875973761082},{x:.702275276184082,y:.7320667505264282,z:.1433621346950531},{x:.6204835176467896,y:.8689177632331848,z:.0044869170524179935},{x:.6223508715629578,y:.8704851269721985,z:.00352082890458405},{x:.590448260307312,y:.8029727935791016,z:-.03200828656554222},{x:.6097423434257507,y:.7933741211891174,z:-.018042555078864098},{x:.59229576587677,y:.7993767261505127,z:-.032564569264650345},{x:.6171364188194275,y:.7153720259666443,z:-.007672437466681004},{x:.6389747858047485,y:.726390540599823,z:-.002999067772179842},{x:.6151940226554871,y:.769412100315094,z:-.024427521973848343},{x:.6526776552200317,y:.505868136882782,z:.01412637997418642},{x:.6475822329521179,y:.5375454425811768,z:-.0033899128902703524},{x:.6433356404304504,y:.5714520215988159,z:-.017428796738386154},{x:.626949667930603,y:.8962116837501526,z:.005602736957371235},{x:.5868416428565979,y:.5829002261161804,z:-.03727729618549347},{x:.5877229571342468,y:.5345035791397095,z:-.032396964728832245},{x:.5887066125869751,y:.48655083775520325,z:-.025856535881757736},{x:.6507197618484497,y:.6612282991409302,z:.011114613153040409},{x:.6803066730499268,y:.677992045879364,z:.032125361263751984},{x:.5963194370269775,y:.6598632335662842,z:.002976928371936083},{x:.667536199092865,y:.6274255514144897,z:.015618261881172657},{x:.5930740833282471,y:.6940041780471802,z:-.019217798486351967},{x:.6053346395492554,y:.7676517963409424,z:-.050308309495449066},{x:.6934473514556885,y:.6884298920631409,z:.04794462397694588},{x:.6738007664680481,y:.6934011578559875,z:.020697161555290222},{x:.6588084697723389,y:.7033141851425171,z:.008462334051728249},{x:.6346072554588318,y:.7029502391815186,z:.001542167621664703},{x:.6157816648483276,y:.6966525912284851,z:-.002009218093007803},{x:.6015574336051941,y:.688928484916687,z:-.006588225718587637},{x:.5746836066246033,y:.6711069345474243,z:-.03597589209675789},{x:.6947521567344666,y:.7309479117393494,z:.046707939356565475},{x:.6759101152420044,y:.6249120831489563,z:.021654341369867325},{x:.5794773101806641,y:.7971615195274353,z:-.06339326500892639},{x:.6041849851608276,y:.727514922618866,z:-.017512541264295578},{x:.6968844532966614,y:.6440950036048889,z:.12727996706962585},{x:.5910853147506714,y:.679325520992279,z:-.009497715160250664},{x:.6157375574111938,y:.7695677280426025,z:-.010624290443956852},{x:.6606494784355164,y:.6410489678382874,z:.0208158977329731},{x:.6040687561035156,y:.7531470656394958,z:-.045887019485235214},{x:.7012156248092651,y:.780247151851654,z:.14028730988502502},{x:.595149576663971,y:.6527782678604126,z:.006308757700026035},{x:.5925500392913818,y:.7436665892601013,z:-.060151755809783936},{x:.6780198812484741,y:.8905693888664246,z:.0626060739159584},{x:.676746666431427,y:.9113880395889282,z:.08726003766059875},{x:.7030686140060425,y:.7312687635421753,z:.09529774636030197},{x:.688987135887146,y:.8588417172431946,z:.07752864807844162},{x:.6883691549301147,y:.6109960675239563,z:.06669612973928452},{x:.6358906030654907,y:.9702065587043762,z:.023120900616049767},{x:.5781539678573608,y:.8023634552955627,z:-.044763918966054916},{x:.6170316934585571,y:.7408350706100464,z:-.011375460773706436},{x:.688542366027832,y:.6516284346580505,z:.050206027925014496},{x:.6385149359703064,y:.6540714502334595,z:.006462941411882639},{x:.6279382109642029,y:.6563615798950195,z:.003062846139073372},{x:.6268895268440247,y:.8736732006072998,z:.00627936702221632},{x:.6944946050643921,y:.7709181308746338,z:.053824134171009064},{x:.614617109298706,y:1.0022112131118774,z:.02719894051551819},{x:.6493719220161438,y:.9665167927742004,z:.053563784807920456},{x:.6624587178230286,y:.943530797958374,z:.068605437874794},{x:.6162528991699219,y:.6558693051338196,z:.002187855076044798},{x:.6058168411254883,y:.654328465461731,z:.0036193584091961384},{x:.5987918972969055,y:.6536934971809387,z:.006134530063718557},{x:.6831037402153015,y:.6195642948150635,z:.03511790186166763},{x:.6062582731246948,y:.6356398463249207,z:.001280312892049551},{x:.6174948811531067,y:.62776118516922,z:-.0013642468256875873},{x:.6297246217727661,y:.6253792643547058,z:-.0007034156005829573},{x:.6407091617584229,y:.627578616142273,z:.0028144705574959517},{x:.6479622721672058,y:.6322650909423828,z:.00750273372977972},{x:.6915091276168823,y:.5990704298019409,z:.10270945727825165},{x:.6457163095474243,y:.6504453420639038,z:.010696077719330788},{x:.6164222955703735,y:.8231936097145081,z:-.016772059723734856},{x:.6042401194572449,y:.7830976843833923,z:-.03630910441279411},{x:.5922216773033142,y:.8228387236595154,z:-.029992375522851944},{x:.6646111011505127,y:.92097008228302,z:.050967294722795486},{x:.651232898235321,y:.9460107088088989,z:.038000158965587616},{x:.6140977144241333,y:.9882472157478333,z:.009882091544568539},{x:.6870781183242798,y:.8768675327301025,z:.10980932414531708},{x:.5986856818199158,y:.6456438899040222,z:.003999010659754276},{x:.585981547832489,y:.7034481763839722,z:-.0377722829580307},{x:.6342031359672546,y:.9867448806762695,z:.03786521404981613},{x:.7013950943946838,y:.776049017906189,z:.09598205983638763},{x:.6030206680297852,y:.8719133138656616,z:-.007931148633360863},{x:.6050592064857483,y:.8767156004905701,z:-.009791925549507141},{x:.6073468923568726,y:.8831382393836975,z:-.012361008673906326},{x:.6087977290153503,y:.890143632888794,z:-.01098148338496685},{x:.6147705316543579,y:.9110084772109985,z:-.0018823575228452682},{x:.622577965259552,y:.8670604825019836,z:.002609190298244357},{x:.6241236329078674,y:.8651344180107117,z:.0025534380692988634},{x:.6257084608078003,y:.8638408184051514,z:.0023300074972212315},{x:.639931321144104,y:.8449671268463135,z:.0038123116828501225},{x:.6810906529426575,y:.7856625318527222,z:.02717764675617218},{x:.583532452583313,y:.6811994910240173,z:-.026588857173919678},{x:.5855660438537598,y:.6393819451332092,z:-.004512844607234001},{x:.5932201743125916,y:.6398029327392578,z:.0008020466193556786},{x:.6200879812240601,y:.8683351874351501,z:.00417016725987196},{x:.6842559576034546,y:.8330534100532532,z:.050836317241191864},{x:.5754412412643433,y:.6418221592903137,z:-.022838059812784195},{x:.6232790350914001,y:.9295297265052795,z:.006339520215988159},{x:.5764067769050598,y:.694546639919281,z:-.04825803264975548},{x:.59778892993927,y:.7343927621841431,z:-.035004377365112305},{x:.6042810678482056,y:.9441440105438232,z:-.0010970570147037506},{x:.6496372222900391,y:.8869078159332275,z:.021036235615611076},{x:.6274012327194214,y:.7830310463905334,z:-.006658440921455622},{x:.637792706489563,y:.9104999899864197,z:.014290250837802887},{x:.6549934148788452,y:.7748609185218811,z:-.0006672973395325243},{x:.6404005289077759,y:.801220715045929,z:-.0026642554439604282},{x:.6671456694602966,y:.8045546412467957,z:.013180811889469624},{x:.6107483506202698,y:.9680658578872681,z:.001778992242179811},{x:.6060343980789185,y:.744587242603302,z:-.024382334202528},{x:.6602751612663269,y:.8998945355415344,z:.0344940721988678},{x:.6463775038719177,y:.9262562394142151,z:.02617623284459114},{x:.6579852104187012,y:.8602304458618164,z:.021586716175079346},{x:.6926165223121643,y:.8053340315818787,z:.061075080186128616},{x:.6724731922149658,y:.8594399690628052,z:.03457934781908989},{x:.6975721716880798,y:.8183245062828064,z:.09300774335861206},{x:.6512877941131592,y:.8258221745491028,z:.006324059329926968},{x:.594887375831604,y:.7148372530937195,z:-.026898479089140892},{x:.6017440557479858,y:.7773507833480835,z:-.05312420800328255},{x:.6096571683883667,y:.7806998491287231,z:-.037646256387233734},{x:.5952993035316467,y:.7654367685317993,z:-.06398405134677887},{x:.5950021147727966,y:.6201304793357849,z:-.009297547861933708},{x:.6165438890457153,y:.6052900552749634,z:-.012455573305487633},{x:.6362661719322205,y:.6015968918800354,z:-.011649220250546932},{x:.6522727608680725,y:.6046400666236877,z:-.005903332494199276},{x:.6625409722328186,y:.6128141283988953,z:.0030042496509850025},{x:.6688099503517151,y:.6457712054252625,z:.026322703808546066},{x:.7013440728187561,y:.6893666386604309,z:.08984331786632538},{x:.6608623266220093,y:.6749406456947327,z:.0172116681933403},{x:.6482325196266174,y:.6823726296424866,z:.008881398476660252},{x:.6313265562057495,y:.6842025518417358,z:.0031308617908507586},{x:.6147016286849976,y:.6809731721878052,z:.0007630771724507213},{x:.6018834114074707,y:.6755372285842896,z:-.0008834321051836014},{x:.5925027132034302,y:.670681357383728,z:-.001968748401850462},{x:.700127363204956,y:.6871103644371033,z:.13980500400066376},{x:.6095665693283081,y:.7853189706802368,z:-.03074747882783413},{x:.5880423784255981,y:.7229287028312683,z:-.04691500961780548},{x:.5930182337760925,y:.7811514139175415,z:-.06398335844278336},{x:.5867722034454346,y:.7922660112380981,z:-.05794971063733101},{x:.5933279991149902,y:.7842848896980286,z:-.05714067071676254},{x:.6063535809516907,y:.7920218706130981,z:-.02590685710310936},{x:.5839452743530273,y:.794978141784668,z:-.0615212507545948},{x:.5828126072883606,y:.8000800013542175,z:-.0449722595512867},{x:.5909603834152222,y:.6541213393211365,z:.003991890233010054},{x:.5852181911468506,y:.6602938771247864,z:-.004428438376635313},{x:.5825737714767456,y:.6651063561439514,z:-.014345290139317513},{x:.6517343521118164,y:.6362385153770447,z:.012151890434324741},{x:.6615052819252014,y:.6281577944755554,z:.0123682152479887},{x:.4856873154640198,y:.6568945646286011,z:.000720038078725338},{x:.49988406896591187,y:.6547410488128662,z:.0006949726957827806},{x:.48438939452171326,y:.6392973065376282,z:.000705525919329375},{x:.47143134474754333,y:.6589511632919312,z:.0006980331381782889},{x:.48704618215560913,y:.6752797961235046,z:.0006921177846379578},{x:.6243702173233032,y:.640461802482605,z:-6592126737814397e-20},{x:.6390967965126038,y:.6385173797607422,z:-.00016105435497593135},{x:.6230536699295044,y:.6224825382232666,z:-.00016136496560648084},{x:.6095397472381592,y:.641917884349823,z:-.0001803556369850412},{x:.6250996589660645,y:.6586247682571411,z:-.0001785515050869435}]],faceBlendshapes:[{categories:[{index:0,score:5187174338061595e-21,categoryName:"_neutral",displayName:""},{index:1,score:.24521504342556,categoryName:"browDownLeft",displayName:""},{index:2,score:.1987743377685547,categoryName:"browDownRight",displayName:""},{index:3,score:.013400448486208916,categoryName:"browInnerUp",displayName:""},{index:4,score:.012361560948193073,categoryName:"browOuterUpLeft",displayName:""},{index:5,score:.019305096939206123,categoryName:"browOuterUpRight",displayName:""},{index:6,score:28426356948330067e-21,categoryName:"cheekPuff",displayName:""},{index:7,score:3.4500112633395474e-7,categoryName:"cheekSquintLeft",displayName:""},{index:8,score:4.83789051486383e-7,categoryName:"cheekSquintRight",displayName:""},{index:9,score:.07650448381900787,categoryName:"eyeBlinkLeft",displayName:""},{index:10,score:.05070012807846069,categoryName:"eyeBlinkRight",displayName:""},{index:11,score:.13978900015354156,categoryName:"eyeLookDownLeft",displayName:""},{index:12,score:.14198613166809082,categoryName:"eyeLookDownRight",displayName:""},{index:13,score:.2177766114473343,categoryName:"eyeLookInLeft",displayName:""},{index:14,score:.014739357866346836,categoryName:"eyeLookInRight",displayName:""},{index:15,score:.02361512929201126,categoryName:"eyeLookOutLeft",displayName:""},{index:16,score:.19679604470729828,categoryName:"eyeLookOutRight",displayName:""},{index:17,score:.04874616861343384,categoryName:"eyeLookUpLeft",displayName:""},{index:18,score:.049392376095056534,categoryName:"eyeLookUpRight",displayName:""},{index:19,score:.34944331645965576,categoryName:"eyeSquintLeft",displayName:""},{index:20,score:.2939716875553131,categoryName:"eyeSquintRight",displayName:""},{index:21,score:.005955042317509651,categoryName:"eyeWideLeft",displayName:""},{index:22,score:.006776117719709873,categoryName:"eyeWideRight",displayName:""},{index:23,score:16942436559475027e-21,categoryName:"jawForward",displayName:""},{index:24,score:.0045165494084358215,categoryName:"jawLeft",displayName:""},{index:25,score:.07803940027952194,categoryName:"jawOpen",displayName:""},{index:26,score:2090057751047425e-20,categoryName:"jawRight",displayName:""},{index:27,score:.06032035872340202,categoryName:"mouthClose",displayName:""},{index:28,score:.00228882092051208,categoryName:"mouthDimpleLeft",displayName:""},{index:29,score:.00781762320548296,categoryName:"mouthDimpleRight",displayName:""},{index:30,score:.0017093931091949344,categoryName:"mouthFrownLeft",displayName:""},{index:31,score:.0019319106359034777,categoryName:"mouthFrownRight",displayName:""},{index:32,score:8485237776767462e-20,categoryName:"mouthFunnel",displayName:""},{index:33,score:.0009051355300471187,categoryName:"mouthLeft",displayName:""},{index:34,score:.0003630454302765429,categoryName:"mouthLowerDownLeft",displayName:""},{index:35,score:.00017601238505449146,categoryName:"mouthLowerDownRight",displayName:""},{index:36,score:.12865161895751953,categoryName:"mouthPressLeft",displayName:""},{index:37,score:.20137207210063934,categoryName:"mouthPressRight",displayName:""},{index:38,score:.0022203284315764904,categoryName:"mouthPucker",displayName:""},{index:39,score:.0009096377179957926,categoryName:"mouthRight",displayName:""},{index:40,score:.34189721941947937,categoryName:"mouthRollLower",displayName:""},{index:41,score:.11409689486026764,categoryName:"mouthRollUpper",displayName:""},{index:42,score:.17172536253929138,categoryName:"mouthShrugLower",displayName:""},{index:43,score:.004038424696773291,categoryName:"mouthShrugUpper",displayName:""},{index:44,score:.00023205230536404997,categoryName:"mouthSmileLeft",displayName:""},{index:45,score:.00019313619122840464,categoryName:"mouthSmileRight",displayName:""},{index:46,score:.0018571305554360151,categoryName:"mouthStretchLeft",displayName:""},{index:47,score:.0023813238367438316,categoryName:"mouthStretchRight",displayName:""},{index:48,score:24323100660694763e-21,categoryName:"mouthUpperUpLeft",displayName:""},{index:49,score:3161552012898028e-20,categoryName:"mouthUpperUpRight",displayName:""},{index:50,score:1.08198406678639e-7,categoryName:"noseSneerLeft",displayName:""},{index:51,score:12652527630052646e-22,categoryName:"noseSneerRight",displayName:""}],headIndex:-1,headName:""}],facialTransformationMatrixes:[{rows:4,columns:4,data:[.9947517514228821,.10230544209480286,.0013679931871592999,0,-.10230997204780579,.9947447776794434,.003816320328041911,0,-.000970348424743861,-.0039362297393381596,.9999914169311523,0,2.8888821601867676,-7.808934211730957,-30.52109146118164,1]}]}};var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},vision={},fileset_resolver={};let supportsSimd;Object.defineProperty(fileset_resolver,"__esModule",{value:!0}),fileset_resolver.FilesetResolver=void 0;const WASM_SIMD_CHECK=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function isSimdSupported(){if(void 0===supportsSimd)try{await WebAssembly.instantiate(WASM_SIMD_CHECK),supportsSimd=!0}catch(e){supportsSimd=!1}return supportsSimd}async function createFileset(e,t=""){const r=await isSimdSupported()?"wasm_internal":"wasm_nosimd_internal";return{wasmLoaderPath:`${t}/${e}_${r}.js`,wasmBinaryPath:`${t}/${e}_${r}.wasm`}}class FilesetResolver$1{static isSimdSupported(){return isSimdSupported()}static forAudioTasks(e){return createFileset("audio",e)}static forTextTasks(e){return createFileset("text",e)}static forVisionTasks(e){return createFileset("vision",e)}}fileset_resolver.FilesetResolver=FilesetResolver$1;var drawing_utils={};Object.defineProperty(drawing_utils,"__esModule",{value:!0}),drawing_utils.DrawingUtils=void 0;const DEFAULT_OPTIONS={color:"white",lineWidth:4,radius:6};function addDefaultOptions(e){return e=e||{},Object.assign(Object.assign(Object.assign({},DEFAULT_OPTIONS),{fillColor:e.color}),e)}function resolve(e,t){return e instanceof Function?e(t):e}class DrawingUtils$1{constructor(e){this.ctx=e}static clamp(e,t,r){const o=Math.min(t,r),a=Math.max(t,r);return Math.max(o,Math.min(a,e))}static lerp(e,t,r,o,a){const n=o*(1-(e-t)/(r-t))+a*(1-(r-e)/(r-t));return DrawingUtils$1.clamp(n,o,a)}drawLandmarks(e,t){if(!e)return;const r=this.ctx,o=addDefaultOptions(t);r.save();const a=r.canvas;let n=0;for(const t of e){r.fillStyle=resolve(o.fillColor,{index:n,from:t}),r.strokeStyle=resolve(o.color,{index:n,from:t}),r.lineWidth=resolve(o.lineWidth,{index:n,from:t});const e=new Path2D;e.arc(t.x*a.width,t.y*a.height,resolve(o.radius,{index:n,from:t}),0,2*Math.PI),r.fill(e),r.stroke(e),++n}r.restore()}drawConnectors(e,t,r){if(!e||!t)return;const o=this.ctx,a=addDefaultOptions(r);o.save();const n=o.canvas;let i=0;for(const r of t){o.beginPath();const t=e[r.start],s=e[r.end];t&&s&&(o.strokeStyle=resolve(a.color,{index:i,from:t,to:s}),o.lineWidth=resolve(a.lineWidth,{index:i,from:t,to:s}),o.moveTo(t.x*n.width,t.y*n.height),o.lineTo(s.x*n.width,s.y*n.height)),++i,o.stroke()}o.restore()}drawBoundingBox(e,t){const r=this.ctx,o=addDefaultOptions(t);r.save(),r.beginPath(),r.lineWidth=resolve(o.lineWidth,{}),r.strokeStyle=resolve(o.color,{}),r.fillStyle=resolve(o.fillColor,{}),r.moveTo(e.originX,e.originY),r.lineTo(e.originX+e.width,e.originY),r.lineTo(e.originX+e.width,e.originY+e.height),r.lineTo(e.originX,e.originY+e.height),r.lineTo(e.originX,e.originY),r.stroke(),r.fill(),r.restore()}}drawing_utils.DrawingUtils=DrawingUtils$1;var image={},image_shader_context={};Object.defineProperty(image_shader_context,"__esModule",{value:!0}),image_shader_context.MPImageShaderContext=image_shader_context.assertNotNull=void 0;const VERTEX_SHADER="\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",FRAGMENT_SHADER="\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D inputTexture;\n void main() {\n gl_FragColor = texture2D(inputTexture, vTex);\n }\n ";function assertNotNull(e,t){if(null===e)throw new Error(`Unable to obtain required WebGL resource: ${t}`);return e}image_shader_context.assertNotNull=assertNotNull;class MPImageShaderBuffers{constructor(e,t,r,o){this.gl=e,this.vertexArrayObject=t,this.vertexBuffer=r,this.textureBuffer=o}bind(){this.gl.bindVertexArray(this.vertexArrayObject)}unbind(){this.gl.bindVertexArray(null)}close(){this.gl.deleteVertexArray(this.vertexArrayObject),this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.textureBuffer)}}class MPImageShaderContext{compileShader(e,t){const r=this.gl,o=assertNotNull(r.createShader(t),"Failed to create WebGL shader");if(r.shaderSource(o,e),r.compileShader(o),!r.getShaderParameter(o,r.COMPILE_STATUS)){const e=r.getShaderInfoLog(o);throw new Error(`Could not compile WebGL shader: ${e}`)}return r.attachShader(this.program,o),o}setupShaders(){const e=this.gl;if(this.program=assertNotNull(e.createProgram(),"Failed to create WebGL program"),this.vertexShader=this.compileShader(VERTEX_SHADER,e.VERTEX_SHADER),this.fragmentShader=this.compileShader(FRAGMENT_SHADER,e.FRAGMENT_SHADER),e.linkProgram(this.program),!e.getProgramParameter(this.program,e.LINK_STATUS)){const t=e.getProgramInfoLog(this.program);throw new Error(`Error during program linking: ${t}`)}this.aVertex=e.getAttribLocation(this.program,"aVertex"),this.aTex=e.getAttribLocation(this.program,"aTex")}createBuffers(e){const t=this.gl,r=assertNotNull(t.createVertexArray(),"Failed to create vertex array");t.bindVertexArray(r);const o=assertNotNull(t.createBuffer(),"Failed to create buffer");t.bindBuffer(t.ARRAY_BUFFER,o),t.enableVertexAttribArray(this.aVertex),t.vertexAttribPointer(this.aVertex,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),t.STATIC_DRAW);const a=assertNotNull(t.createBuffer(),"Failed to create buffer");t.bindBuffer(t.ARRAY_BUFFER,a),t.enableVertexAttribArray(this.aTex),t.vertexAttribPointer(this.aTex,2,t.FLOAT,!1,0,0);const n=e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0];return t.bufferData(t.ARRAY_BUFFER,new Float32Array(n),t.STATIC_DRAW),t.bindBuffer(t.ARRAY_BUFFER,null),t.bindVertexArray(null),new MPImageShaderBuffers(t,r,o,a)}getShaderBuffers(e){return e?(this.shaderBuffersFlipVertically||(this.shaderBuffersFlipVertically=this.createBuffers(!0)),this.shaderBuffersFlipVertically):(this.shaderBuffersPassthrough||(this.shaderBuffersPassthrough=this.createBuffers(!1)),this.shaderBuffersPassthrough)}maybeInitGL(e){if(this.gl){if(e!==this.gl)throw new Error("Cannot change GL context once initialized")}else this.gl=e}run(e,t,r){this.maybeInitGL(e),this.program||this.setupShaders();const o=this.getShaderBuffers(t);e.useProgram(this.program),o.bind();const a=r();return o.unbind(),a}bindFramebuffer(e,t){this.maybeInitGL(e),this.framebuffer||(this.framebuffer=assertNotNull(e.createFramebuffer(),"Failed to create framebuffe.")),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)}unbindFramebuffer(){var e;null===(e=this.gl)||void 0===e||e.bindFramebuffer(this.gl.FRAMEBUFFER,null)}close(){if(this.program){const e=this.gl;e.deleteProgram(this.program),e.deleteShader(this.vertexShader),e.deleteShader(this.fragmentShader)}this.framebuffer&&this.gl.deleteFramebuffer(this.framebuffer),this.shaderBuffersPassthrough&&this.shaderBuffersPassthrough.close(),this.shaderBuffersFlipVertically&&this.shaderBuffersFlipVertically.close()}}image_shader_context.MPImageShaderContext=MPImageShaderContext,Object.defineProperty(image,"__esModule",{value:!0}),image.MPImage=void 0;const image_shader_context_1$2=image_shader_context,INSTANCE_COUNT_WARNING_THRESHOLD$1=250;var MPImageType,e;e=MPImageType||(MPImageType={}),e[e.IMAGE_DATA=0]="IMAGE_DATA",e[e.IMAGE_BITMAP=1]="IMAGE_BITMAP",e[e.WEBGL_TEXTURE=2]="WEBGL_TEXTURE";class MPImage$1{constructor(e,t,r,o,a,n,i){this.containers=e,this.ownsImageBitmap=t,this.ownsWebGLTexture=r,this.canvas=o,this.shaderContext=a,this.width=n,this.height=i,(this.ownsImageBitmap||this.ownsWebGLTexture)&&(--MPImage$1.instancesBeforeWarning,0===MPImage$1.instancesBeforeWarning&&console.error("You seem to be creating MPImage instances without invoking .close(). This leaks resources."))}hasImageData(){return!!this.getContainer(MPImageType.IMAGE_DATA)}hasImageBitmap(){return!!this.getContainer(MPImageType.IMAGE_BITMAP)}hasWebGLTexture(){return!!this.getContainer(MPImageType.WEBGL_TEXTURE)}getAsImageData(){return this.convertToImageData()}getAsImageBitmap(){return this.convertToImageBitmap()}getAsWebGLTexture(){return this.convertToWebGLTexture()}getContainer(e){switch(e){case MPImageType.IMAGE_DATA:return this.containers.find((e=>e instanceof ImageData));case MPImageType.IMAGE_BITMAP:return this.containers.find((e=>"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap));case MPImageType.WEBGL_TEXTURE:return this.containers.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw new Error(`Type is not supported: ${e}`)}}clone(){const e=[];for(const t of this.containers){let r;if(t instanceof ImageData)r=new ImageData(t.data,this.width,this.height);else if(t instanceof WebGLTexture){const e=this.getGL(),t=this.getShaderContext();e.activeTexture(e.TEXTURE1),r=(0,image_shader_context_1$2.assertNotNull)(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,r),this.configureTextureParams(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.width,this.height,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),t.bindFramebuffer(e,r),t.run(e,!1,(()=>{this.bindTexture(),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),this.unbindTexture()})),t.unbindFramebuffer(),this.unbindTexture()}else{if(!(t instanceof ImageBitmap))throw new Error(`Type is not supported: ${t}`);this.convertToWebGLTexture(),this.bindTexture(),r=this.copyTextureToBitmap(),this.unbindTexture()}e.push(r)}return new MPImage$1(e,this.hasImageBitmap(),this.hasWebGLTexture(),this.canvas,this.shaderContext,this.width,this.height)}getOffscreenCanvas(){if(!(this.canvas instanceof OffscreenCanvas))throw new Error("Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas");return this.canvas}getGL(){if(!this.canvas)throw new Error("Conversion to different image formats require that a canvas is passed when iniitializing the image.");return this.gl||(this.gl=(0,image_shader_context_1$2.assertNotNull)(this.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),this.gl}getShaderContext(){return this.shaderContext||(this.shaderContext=new image_shader_context_1$2.MPImageShaderContext),this.shaderContext}convertToImageBitmap(){let e=this.getContainer(MPImageType.IMAGE_BITMAP);return e||(this.convertToWebGLTexture(),e=this.convertWebGLTextureToImageBitmap(),this.containers.push(e),this.ownsImageBitmap=!0),e}convertToImageData(){let e=this.getContainer(MPImageType.IMAGE_DATA);if(!e){const t=this.getGL(),r=this.getShaderContext(),o=new Uint8Array(this.width*this.height*4),a=this.convertToWebGLTexture();r.bindFramebuffer(t,a),t.readPixels(0,0,this.width,this.height,t.RGBA,t.UNSIGNED_BYTE,o),r.unbindFramebuffer(),e=new ImageData(new Uint8ClampedArray(o.buffer),this.width,this.height),this.containers.push(e)}return e}convertToWebGLTexture(){let e=this.getContainer(MPImageType.WEBGL_TEXTURE);if(!e){const t=this.getGL();e=this.bindTexture();const r=this.getContainer(MPImageType.IMAGE_BITMAP)||this.convertToImageData();t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r),this.unbindTexture()}return e}configureTextureParams(){const e=this.getGL();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),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR)}bindTexture(){const e=this.getGL();e.viewport(0,0,this.width,this.height),e.activeTexture(e.TEXTURE0);let t=this.getContainer(MPImageType.WEBGL_TEXTURE);return t?e.bindTexture(e.TEXTURE_2D,t):(t=(0,image_shader_context_1$2.assertNotNull)(e.createTexture(),"Failed to create texture"),this.containers.push(t),this.ownsWebGLTexture=!0,e.bindTexture(e.TEXTURE_2D,t),this.configureTextureParams()),t}unbindTexture(){this.gl.bindTexture(this.gl.TEXTURE_2D,null)}copyTextureToBitmap(){const e=this.getGL();return this.getShaderContext().run(e,!0,(()=>this.runWithResizedCanvas((()=>(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),this.getOffscreenCanvas().transferToImageBitmap())))))}convertWebGLTextureToImageBitmap(){this.bindTexture();const e=this.copyTextureToBitmap();return this.unbindTexture(),e}runWithResizedCanvas(e){const t=this.canvas;if(t.width===this.width&&t.height===this.height)return e();const r=t.width,o=t.height;t.width=this.width,t.height=this.height;const a=e();return t.width=r,t.height=o,a}close(){this.ownsImageBitmap&&this.getContainer(MPImageType.IMAGE_BITMAP).close(),this.ownsWebGLTexture&&this.getGL().deleteTexture(this.getContainer(MPImageType.WEBGL_TEXTURE)),MPImage$1.instancesBeforeWarning=-1}}image.MPImage=MPImage$1,MPImage$1.instancesBeforeWarning=INSTANCE_COUNT_WARNING_THRESHOLD$1;var mask={},platform_utils={};function isWebKit(e=navigator){const t=e.userAgent;return t.includes("Safari")&&!t.includes("Chrome")}function isIOS(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}Object.defineProperty(platform_utils,"__esModule",{value:!0}),platform_utils.isIOS=platform_utils.isWebKit=void 0,platform_utils.isWebKit=isWebKit,platform_utils.isIOS=isIOS,Object.defineProperty(mask,"__esModule",{value:!0}),mask.MPMask=void 0;const image_shader_context_1$1=image_shader_context,platform_utils_1$1=platform_utils,INSTANCE_COUNT_WARNING_THRESHOLD=250;var MPMaskType;!function(e){e[e.UINT8_ARRAY=0]="UINT8_ARRAY",e[e.FLOAT32_ARRAY=1]="FLOAT32_ARRAY",e[e.WEBGL_TEXTURE=2]="WEBGL_TEXTURE"}(MPMaskType||(MPMaskType={}));class MPMask$1{constructor(e,t,r,o,a,n){this.containers=e,this.ownsWebGLTexture=t,this.canvas=r,this.shaderContext=o,this.width=a,this.height=n,this.ownsWebGLTexture&&(--MPMask$1.instancesBeforeWarning,0===MPMask$1.instancesBeforeWarning&&console.error("You seem to be creating MPMask instances without invoking .close(). This leaks resources."))}hasUint8Array(){return!!this.getContainer(MPMaskType.UINT8_ARRAY)}hasFloat32Array(){return!!this.getContainer(MPMaskType.FLOAT32_ARRAY)}hasWebGLTexture(){return!!this.getContainer(MPMaskType.WEBGL_TEXTURE)}getAsUint8Array(){return this.convertToUint8Array()}getAsFloat32Array(){return this.convertToFloat32Array()}getAsWebGLTexture(){return this.convertToWebGLTexture()}getTexImage2DFormat(){const e=this.getGL();if(!MPMask$1.texImage2DFormat)if(e.getExtension("EXT_color_buffer_float")&&e.getExtension("OES_texture_float_linear")&&e.getExtension("EXT_float_blend"))MPMask$1.texImage2DFormat=e.R32F;else{if(!e.getExtension("EXT_color_buffer_half_float"))throw new Error("GPU does not fully support 4-channel float32 or float16 formats");MPMask$1.texImage2DFormat=e.R16F}return MPMask$1.texImage2DFormat}getContainer(e){switch(e){case MPMaskType.UINT8_ARRAY:return this.containers.find((e=>e instanceof Uint8Array));case MPMaskType.FLOAT32_ARRAY:return this.containers.find((e=>e instanceof Float32Array));case MPMaskType.WEBGL_TEXTURE:return this.containers.find((e=>"undefined"!=typeof WebGLTexture&&e instanceof WebGLTexture));default:throw new Error(`Type is not supported: ${e}`)}}clone(){const e=[];for(const t of this.containers){let r;if(t instanceof Uint8Array)r=new Uint8Array(t);else if(t instanceof Float32Array)r=new Float32Array(t);else{if(!(t instanceof WebGLTexture))throw new Error(`Type is not supported: ${t}`);{const e=this.getGL(),t=this.getShaderContext();e.activeTexture(e.TEXTURE1),r=(0,image_shader_context_1$1.assertNotNull)(e.createTexture(),"Failed to create texture"),e.bindTexture(e.TEXTURE_2D,r),this.configureTextureParams();const o=this.getTexImage2DFormat();e.texImage2D(e.TEXTURE_2D,0,o,this.width,this.height,0,e.RED,e.FLOAT,null),e.bindTexture(e.TEXTURE_2D,null),t.bindFramebuffer(e,r),t.run(e,!1,(()=>{this.bindTexture(),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),this.unbindTexture()})),t.unbindFramebuffer(),this.unbindTexture()}}e.push(r)}return new MPMask$1(e,this.hasWebGLTexture(),this.canvas,this.shaderContext,this.width,this.height)}getGL(){if(!this.canvas)throw new Error("Conversion to different image formats require that a canvas is passed when initializing the image.");return this.gl||(this.gl=(0,image_shader_context_1$1.assertNotNull)(this.canvas.getContext("webgl2"),"You cannot use a canvas that is already bound to a different type of rendering context.")),this.gl}getShaderContext(){return this.shaderContext||(this.shaderContext=new image_shader_context_1$1.MPImageShaderContext),this.shaderContext}convertToFloat32Array(){let e=this.getContainer(MPMaskType.FLOAT32_ARRAY);if(!e){const t=this.getContainer(MPMaskType.UINT8_ARRAY);if(t)e=new Float32Array(t).map((e=>e/255));else{e=new Float32Array(this.width*this.height);const t=this.getGL(),r=this.getShaderContext(),o=this.convertToWebGLTexture();if(r.bindFramebuffer(t,o),(0,platform_utils_1$1.isIOS)()){const r=new Float32Array(this.width*this.height*4);t.readPixels(0,0,this.width,this.height,t.RGBA,t.FLOAT,r);for(let t=0,o=0;t<e.length;++t,o+=4)e[t]=r[o]}else t.readPixels(0,0,this.width,this.height,t.RED,t.FLOAT,e)}this.containers.push(e)}return e}convertToUint8Array(){let e=this.getContainer(MPMaskType.UINT8_ARRAY);if(!e){const t=this.convertToFloat32Array();e=new Uint8Array(t.map((e=>255*e))),this.containers.push(e)}return e}convertToWebGLTexture(){let e=this.getContainer(MPMaskType.WEBGL_TEXTURE);if(!e){const t=this.getGL();e=this.bindTexture();const r=this.convertToFloat32Array(),o=this.getTexImage2DFormat();t.texImage2D(t.TEXTURE_2D,0,o,this.width,this.height,0,t.RED,t.FLOAT,r),this.unbindTexture()}return e}configureTextureParams(){const e=this.getGL();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.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST)}bindTexture(){const e=this.getGL();e.viewport(0,0,this.width,this.height),e.activeTexture(e.TEXTURE0);let t=this.getContainer(MPMaskType.WEBGL_TEXTURE);return t?e.bindTexture(e.TEXTURE_2D,t):(t=(0,image_shader_context_1$1.assertNotNull)(e.createTexture(),"Failed to create texture"),this.containers.push(t),this.ownsWebGLTexture=!0,e.bindTexture(e.TEXTURE_2D,t),this.configureTextureParams()),t}unbindTexture(){this.gl.bindTexture(this.gl.TEXTURE_2D,null)}close(){this.ownsWebGLTexture&&this.getGL().deleteTexture(this.getContainer(MPMaskType.WEBGL_TEXTURE)),MPMask$1.instancesBeforeWarning=-1}}mask.MPMask=MPMask$1,MPMask$1.instancesBeforeWarning=INSTANCE_COUNT_WARNING_THRESHOLD;var face_detector={},calculator_pb={},googleProtobuf={};(function(exports){var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.findInternal=function(e,t,r){e instanceof String&&(e=String(e));for(var o=e.length,a=0;a<o;a++){var n=e[a];if(t.call(r,n,a,e))return{i:a,v:n}}return{i:-1,v:void 0}},$jscomp.ASSUME_ES5=!1,$jscomp.ASSUME_NO_NATIVE_MAP=!1,$jscomp.ASSUME_NO_NATIVE_SET=!1,$jscomp.SIMPLE_FROUND_POLYFILL=!1,$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value)},$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:void 0!==commonjsGlobal&&null!=commonjsGlobal?commonjsGlobal:e},$jscomp.global=$jscomp.getGlobal(commonjsGlobal),$jscomp.polyfill=function(e,t,r,o){if(t){for(r=$jscomp.global,e=e.split("."),o=0;o<e.length-1;o++){var a=e[o];a in r||(r[a]={}),r=r[a]}(t=t(o=r[e=e[e.length-1]]))!=o&&null!=t&&$jscomp.defineProperty(r,e,{configurable:!0,writable:!0,value:t})}},$jscomp.polyfill("Array.prototype.findIndex",(function(e){return e||function(e,t){return $jscomp.findInternal(this,e,t).i}}),"es6","es3"),$jscomp.checkStringArgs=function(e,t,r){if(null==e)throw new TypeError("The 'this' value for String.prototype."+r+" must not be null or undefined");if(t instanceof RegExp)throw new TypeError("First argument to String.prototype."+r+" must not be a regular expression");return e+""},$jscomp.polyfill("String.prototype.endsWith",(function(e){return e||function(e,t){var r=$jscomp.checkStringArgs(this,e,"endsWith");e+="",void 0===t&&(t=r.length),t=Math.max(0,Math.min(0|t,r.length));for(var o=e.length;0<o&&0<t;)if(r[--t]!=e[--o])return!1;return 0>=o}}),"es6","es3"),$jscomp.polyfill("Array.prototype.find",(function(e){return e||function(e,t){return $jscomp.findInternal(this,e,t).v}}),"es6","es3"),$jscomp.polyfill("String.prototype.startsWith",(function(e){return e||function(e,t){var r=$jscomp.checkStringArgs(this,e,"startsWith");e+="";var o=r.length,a=e.length;t=Math.max(0,Math.min(0|t,r.length));for(var n=0;n<a&&t<o;)if(r[t++]!=e[n++])return!1;return n>=a}}),"es6","es3"),$jscomp.polyfill("String.prototype.repeat",(function(e){return e||function(e){var t=$jscomp.checkStringArgs(this,null,"repeat");if(0>e||1342177279<e)throw new RangeError("Invalid count value");e|=0;for(var r="";e;)1&e&&(r+=t),(e>>>=1)&&(t+=t);return r}}),"es6","es3");var COMPILED=!0,goog=goog||{};goog.global=commonjsGlobal||self,goog.exportPath_=function(e,t,r){e=e.split("."),r=r||goog.global,e[0]in r||void 0===r.execScript||r.execScript("var "+e[0]);for(var o;e.length&&(o=e.shift());)e.length||void 0===t?r=r[o]&&r[o]!==Object.prototype[o]?r[o]:r[o]={}:r[o]=t},goog.define=function(e,t){return t},goog.FEATURESET_YEAR=2012,goog.DEBUG=!0,goog.LOCALE="en",goog.TRUSTED_SITE=!0,goog.STRICT_MODE_COMPATIBLE=!1,goog.DISALLOW_TEST_ONLY_CODE=!goog.DEBUG,goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1,goog.provide=function(e){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");goog.constructNamespace_(e)},goog.constructNamespace_=function(e,t){goog.exportPath_(e,t)},goog.getScriptNonce=function(e){return e&&e!=goog.global?goog.getScriptNonce_(e.document):(null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document)),goog.cspNonce_)},goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/,goog.cspNonce_=null,goog.getScriptNonce_=function(e){return(e=e.querySelector&&e.querySelector("script[nonce]"))&&(e=e.nonce||e.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(e)?e:""},goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/,goog.module=function(e){if("string"!=typeof e||!e||-1==e.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+e+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");goog.moduleLoaderState_.moduleName=e},goog.module.get=function(e){return goog.module.getInternal_(e)},goog.module.getInternal_=function(e){return null},goog.ModuleType={ES6:"es6",GOOG:"goog"},goog.moduleLoaderState_=null,goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()},goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG},goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var e=goog.global.$jscomp;return!!e&&"function"==typeof e.getCurrentModulePath&&!!e.getCurrentModulePath()},goog.module.declareLegacyNamespace=function(){goog.moduleLoaderState_.declareLegacyNamespace=!0},goog.declareModuleId=function(e){if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=e;else{var t=goog.global.$jscomp;if(!t||"function"!=typeof t.getCurrentModulePath)throw Error('Module with namespace "'+e+'" has been loaded incorrectly.');t=t.require(t.getCurrentModulePath()),goog.loadedModules_[e]={exports:t,type:goog.ModuleType.ES6,moduleId:e}}},goog.setTestOnly=function(e){if(goog.DISALLOW_TEST_ONLY_CODE)throw e=e||"",Error("Importing test-only code into non-debug environment"+(e?": "+e:"."))},goog.forwardDeclare=function(e){},goog.getObjectByName=function(e,t){e=e.split("."),t=t||goog.global;for(var r=0;r<e.length;r++)if(null==(t=t[e[r]]))return null;return t},goog.globalize=function(e,t){for(var r in t=t||goog.global,e)t[r]=e[r]},goog.addDependency=function(e,t,r,o){},goog.ENABLE_DEBUG_LOADER=!0,goog.logToConsole_=function(e){goog.global.console&&goog.global.console.error(e)},goog.require=function(e){},goog.requireType=function(e){return{}},goog.basePath="",goog.nullFunction=function(){},goog.abstractMethod=function(){throw Error("unimplemented abstract method")},goog.addSingletonGetter=function(e){e.instance_=void 0,e.getInstance=function(){return e.instance_?e.instance_:(goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=e),e.instance_=new e)}},goog.instantiatedSingletons_=[],goog.LOAD_MODULE_USING_EVAL=!0,goog.SEAL_MODULE_EXPORTS=goog.DEBUG,goog.loadedModules_={},goog.DEPENDENCIES_ENABLED=!COMPILED,goog.TRANSPILE="detect",goog.ASSUME_ES_MODULES_TRANSPILED=!1,goog.TRANSPILE_TO_LANGUAGE="",goog.TRANSPILER="transpile.js",goog.hasBadLetScoping=null,goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(e){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping},goog.workaroundSafari10EvalBug=function(e){return"(function(){"+e+"\n;})();\n"},goog.loadModule=function(e){var t=goog.moduleLoaderState_;try{if(goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG},goog.isFunction(e))var r=e.call(void 0,{});else{if("string"!=typeof e)throw Error("Invalid module definition");goog.useSafari10Workaround()&&(e=goog.workaroundSafari10EvalBug(e)),r=goog.loadModuleFromSource_.call(void 0,e)}var o=goog.moduleLoaderState_.moduleName;if("string"!=typeof o||!o)throw Error('Invalid module name "'+o+'"');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(o,r):goog.SEAL_MODULE_EXPORTS&&Object.seal&&"object"==typeof r&&null!=r&&Object.seal(r),goog.loadedModules_[o]={exports:r,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName}}finally{goog.moduleLoaderState_=t}},goog.loadModuleFromSource_=function(a){return eval(a),{}},goog.normalizePath_=function(e){e=e.split("/");for(var t=0;t<e.length;)"."==e[t]?e.splice(t,1):t&&".."==e[t]&&e[t-1]&&".."!=e[t-1]?e.splice(--t,2):t++;return e.join("/")},goog.loadFileSync_=function(e){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(e);try{var t=new goog.global.XMLHttpRequest;return t.open("get",e,!1),t.send(),0==t.status||200==t.status?t.responseText:null}catch(e){return null}},goog.transpile_=function(e,t,r){var o=goog.global.$jscomp;o||(goog.global.$jscomp=o={});var a=o.transpile;if(!a){var n=goog.basePath+goog.TRANSPILER,i=goog.loadFileSync_(n);if(i){if(function(){(0,eval)(i+"\n//# sourceURL="+n)}.call(goog.global),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,a=(o=goog.global.$jscomp).transpile}}return a||(a=o.transpile=function(e,t){return goog.logToConsole_(t+" requires transpilation but no transpiler was found."),e}),a(e,t,r)},goog.typeOf=function(e){var t=typeof e;if("object"==t){if(!e)return"null";if(e instanceof Array)return"array";if(e instanceof Object)return t;var r=Object.prototype.toString.call(e);if("[object Window]"==r)return"object";if("[object Array]"==r||"number"==typeof e.length&&void 0!==e.splice&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("splice"))return"array";if("[object Function]"==r||void 0!==e.call&&void 0!==e.propertyIsEnumerable&&!e.propertyIsEnumerable("call"))return"function"}else if("function"==t&&void 0===e.call)return"object";return t},goog.isArray=function(e){return"array"==goog.typeOf(e)},goog.isArrayLike=function(e){var t=goog.typeOf(e);return"array"==t||"object"==t&&"number"==typeof e.length},goog.isDateLike=function(e){return goog.isObject(e)&&"function"==typeof e.getFullYear},goog.isFunction=function(e){return"function"==goog.typeOf(e)},goog.isObject=function(e){var t=typeof e;return"object"==t&&null!=e||"function"==t},goog.getUid=function(e){return Object.prototype.hasOwnProperty.call(e,goog.UID_PROPERTY_)&&e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){null!==e&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch(e){}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if("function"==typeof e.clone)return e.clone();for(var r in t="array"==t?[]:{},e)t[r]=goog.cloneObject(e[r]);return t}return e},goog.bindNative_=function(e,t,r){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,r){if(!e)throw Error();if(2<arguments.length){var o=Array.prototype.slice.call(arguments,2);return function(){var r=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(r,o),e.apply(t,r)}}return function(){return e.apply(t,arguments)}},goog.bind=function(e,t,r){return Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=r.slice();return t.push.apply(t,arguments),e.apply(this,t)}},goog.mixin=function(e,t){for(var r in t)e[r]=t[r]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else{if(!goog.global.eval)throw Error("goog.globalEval not available");if(null==goog.evalWorksForGlobals_){try{goog.global.eval("var _evalTest_ = 1;")}catch(e){}if(void 0!==goog.global._evalTest_){try{delete goog.global._evalTest_}catch(e){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,r=t.createElement("script");r.type="text/javascript",r.defer=!1,r.appendChild(t.createTextNode(e)),t.head.appendChild(r),t.head.removeChild(r)}}},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,t){if("."==String(e).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+e);var r=function(e){return goog.cssNameMapping_[e]||e},o=function(e){e=e.split("-");for(var t=[],o=0;o<e.length;o++)t.push(r(e[o]));return t.join("-")};return o=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?r:o:function(e){return e},e=t?e+"-"+o(t):o(e),goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(e):e},goog.setCssNameMapping=function(e,t){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=t},goog.getMsg=function(e,t,r){return r&&r.html&&(e=e.replace(/</g,"&lt;")),t&&(e=e.replace(/\{\$([^}]+)}/g,(function(e,r){return null!=t&&r in t?t[r]:e}))),e},goog.getMsgWithFallback=function(e,t){return e},goog.exportSymbol=function(e,t,r){goog.exportPath_(e,t,r)},goog.exportProperty=function(e,t,r){e[t]=r},goog.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new r,e.prototype.constructor=e,e.base=function(e,r,o){for(var a=Array(arguments.length-2),n=2;n<arguments.length;n++)a[n-2]=arguments[n];return t.prototype[r].apply(e,a)}},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");e.call(goog.global)},goog.defineClass=function(e,t){var r=t.constructor,o=t.statics;return r&&r!=Object.prototype.constructor||(r=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),r=goog.defineClass.createSealingConstructor_(r,e),e&&goog.inherits(r,e),delete t.constructor,delete t.statics,goog.defineClass.applyProperties_(r.prototype,t),null!=o&&(o instanceof Function?o(r):goog.defineClass.applyProperties_(r,o)),r},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,t){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var r=!goog.defineClass.isUnsealable_(t),o=function(){var t=e.apply(this,arguments)||this;return t[goog.UID_PROPERTY_]=t[goog.UID_PROPERTY_],this.constructor===o&&r&&Object.seal instanceof Function&&Object.seal(t),t};return o},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);for(var o=0;o<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;o++)r=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[o],Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},goog.tagUnsealableClass=function(e){},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.TRUSTED_TYPES_POLICY_NAME="",goog.identity_=function(e){return e},goog.createTrustedTypesPolicy=function(e){var t=null,r=goog.global.trustedTypes||goog.global.TrustedTypes;if(!r||!r.createPolicy)return t;try{t=r.createPolicy(e,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(e){goog.logToConsole_(e.message)}return t},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.object={},goog.object.is=function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},goog.object.forEach=function(e,t,r){for(var o in e)t.call(r,e[o],o,e)},goog.object.filter=function(e,t,r){var o,a={};for(o in e)t.call(r,e[o],o,e)&&(a[o]=e[o]);return a},goog.object.map=function(e,t,r){var o,a={};for(o in e)a[o]=t.call(r,e[o],o,e);return a},goog.object.some=function(e,t,r){for(var o in e)if(t.call(r,e[o],o,e))return!0;return!1},goog.object.every=function(e,t,r){for(var o in e)if(!t.call(r,e[o],o,e))return!1;return!0},goog.object.getCount=function(e){var t,r=0;for(t in e)r++;return r},goog.object.getAnyKey=function(e){for(var t in e)return t},goog.object.getAnyValue=function(e){for(var t in e)return e[t]},goog.object.contains=function(e,t){return goog.object.containsValue(e,t)},goog.object.getValues=function(e){var t,r=[],o=0;for(t in e)r[o++]=e[t];return r},goog.object.getKeys=function(e){var t,r=[],o=0;for(t in e)r[o++]=t;return r},goog.object.getValueByKeys=function(e,t){var r=goog.isArrayLike(t),o=r?t:arguments;for(r=r?0:1;r<o.length;r++){if(null==e)return;e=e[o[r]]}return e},goog.object.containsKey=function(e,t){return null!==e&&t in e},goog.object.containsValue=function(e,t){for(var r in e)if(e[r]==t)return!0;return!1},goog.object.findKey=function(e,t,r){for(var o in e)if(t.call(r,e[o],o,e))return o},goog.object.findValue=function(e,t,r){return(t=goog.object.findKey(e,t,r))&&e[t]},goog.object.isEmpty=function(e){for(var t in e)return!1;return!0},goog.object.clear=function(e){for(var t in e)delete e[t]},goog.object.remove=function(e,t){var r;return(r=t in e)&&delete e[t],r},goog.object.add=function(e,t,r){if(null!==e&&t in e)throw Error('The object already contains the key "'+t+'"');goog.object.set(e,t,r)},goog.object.get=function(e,t,r){return null!==e&&t in e?e[t]:r},goog.object.set=function(e,t,r){e[t]=r},goog.object.setIfUndefined=function(e,t,r){return t in e?e[t]:e[t]=r},goog.object.setWithReturnValueIfNotSet=function(e,t,r){return t in e?e[t]:(r=r(),e[t]=r)},goog.object.equals=function(e,t){for(var r in e)if(!(r in t)||e[r]!==t[r])return!1;for(var o in t)if(!(o in e))return!1;return!0},goog.object.clone=function(e){var t,r={};for(t in e)r[t]=e[t];return r},goog.object.unsafeClone=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if(goog.isFunction(e.clone))return e.clone();for(var r in t="array"==t?[]:{},e)t[r]=goog.object.unsafeClone(e[r]);return t}return e},goog.object.transpose=function(e){var t,r={};for(t in e)r[e[t]]=t;return r},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,t){for(var r,o,a=1;a<arguments.length;a++){for(r in o=arguments[a])e[r]=o[r];for(var n=0;n<goog.object.PROTOTYPE_FIELDS_.length;n++)r=goog.object.PROTOTYPE_FIELDS_[n],Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}},goog.object.create=function(e){var t=arguments.length;if(1==t&&Array.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(t%2)throw Error("Uneven number of arguments");for(var r={},o=0;o<t;o+=2)r[arguments[o]]=arguments[o+1];return r},goog.object.createSet=function(e){var t=arguments.length;if(1==t&&Array.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var r={},o=0;o<t;o++)r[arguments[o]]=!0;return r},goog.object.createImmutableView=function(e){var t=e;return Object.isFrozen&&!Object.isFrozen(e)&&(t=Object.create(e),Object.freeze(t)),t},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.object.getAllPropertyNames=function(e,t,r){if(!e)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(e);for(var o={};e&&(e!==Object.prototype||t)&&(e!==Function.prototype||r);){for(var a=Object.getOwnPropertyNames(e),n=0;n<a.length;n++)o[a[n]]=!0;e=Object.getPrototypeOf(e)}return goog.object.getKeys(o)},goog.object.getSuperClass=function(e){return(e=Object.getPrototypeOf(e.prototype))&&e.constructor};var jspb={asserts:{}};jspb.asserts.doAssertFailure=function(e,t,r,o){var a="Assertion failed";if(r){a+=": "+r;var n=o}else e&&(a+=": "+e,n=t);throw Error(""+a,n||[])},jspb.asserts.assert=function(e,t,r){for(var o=[],a=2;a<arguments.length;++a)o[a-2]=arguments[a];return e||jspb.asserts.doAssertFailure("",null,t,o),e},jspb.asserts.assertString=function(e,t,r){for(var o=[],a=2;a<arguments.length;++a)o[a-2]=arguments[a];return"string"!=typeof e&&jspb.asserts.doAssertFailure("Expected string but got %s: %s.",[goog.typeOf(e),e],t,o),e},jspb.asserts.assertArray=function(e,t,r){for(var o=[],a=2;a<arguments.length;++a)o[a-2]=arguments[a];return Array.isArray(e)||jspb.asserts.doAssertFailure("Expected array but got %s: %s.",[goog.typeOf(e),e],t,o),e},jspb.asserts.fail=function(e,t){for(var r=[],o=1;o<arguments.length;++o)r[o-1]=arguments[o];throw Error("Failure"+(e?": "+e:""),r)},jspb.asserts.assertInstanceof=function(e,t,r,o){for(var a=[],n=3;n<arguments.length;++n)a[n-3]=arguments[n];return e instanceof t||jspb.asserts.doAssertFailure("Expected instanceof %s but got %s.",[jspb.asserts.getType(t),jspb.asserts.getType(e)],r,a),e},jspb.asserts.getType=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e},jspb.BinaryConstants={},jspb.ConstBinaryMessage=function(){},jspb.BinaryMessage=function(){},jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(e){var t=jspb.BinaryConstants.FieldType,r=jspb.BinaryConstants.WireType;switch(e){case t.INT32:case t.INT64:case t.UINT32:case t.UINT64:case t.SINT32:case t.SINT64:case t.BOOL:case t.ENUM:case t.VHASH64:return r.VARINT;case t.DOUBLE:case t.FIXED64:case t.SFIXED64:case t.FHASH64:return r.FIXED64;case t.STRING:case t.MESSAGE:case t.BYTES:return r.DELIMITED;case t.FLOAT:case t.FIXED32:case t.SFIXED32:return r.FIXED32;default:return r.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=0x8000000000000000,jspb.BinaryConstants.TWO_TO_64=0x10000000000000000,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,t){goog.debug.Error.call(this,goog.asserts.subs_(e,t)),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(e,t){for(var r="",o=(e=e.split("%s")).length-1,a=0;a<o;a++)r+=e[a]+(a<t.length?t[a]:"%s");return r+e[o]},goog.asserts.doAssertFailure_=function(e,t,r,o){var a="Assertion failed";if(r){a+=": "+r;var n=o}else e&&(a+=": "+e,n=t);e=new goog.asserts.AssertionError(""+a,n||[]),goog.asserts.errorHandler_(e)},goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertExists=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&null==e&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,t){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"number"!=typeof e&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"string"!=typeof e&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&!Array.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,t,r){return goog.asserts.ENABLE_ASSERTS&&"boolean"!=typeof e&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,t,r){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,t,r,o){return!goog.asserts.ENABLE_ASSERTS||e instanceof t||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(t),goog.asserts.getType_(e)],r,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertFinite=function(e,t,r){return!goog.asserts.ENABLE_ASSERTS||"number"==typeof e&&isFinite(e)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):null===e?"null":typeof e},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.indexOf.call(e,t,r)}:function(e,t,r){if(r=null==r?0:0>r?Math.max(0,e.length+r):r,"string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.indexOf(t,r);for(;r<e.length;r++)if(r in e&&e[r]===t)return r;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.lastIndexOf.call(e,t,null==r?e.length-1:r)}:function(e,t,r){if(0>(r=null==r?e.length-1:r)&&(r=Math.max(0,e.length+r)),"string"==typeof e)return"string"!=typeof t||1!=t.length?-1:e.lastIndexOf(t,r);for(;0<=r;r--)if(r in e&&e[r]===t)return r;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,t,r){goog.asserts.assert(null!=e.length),Array.prototype.forEach.call(e,t,r)}:function(e,t,r){for(var o=e.length,a="string"==typeof e?e.split(""):e,n=0;n<o;n++)n in a&&t.call(r,a[n],n,e)},goog.array.forEachRight=function(e,t,r){var o=e.length,a="string"==typeof e?e.split(""):e;for(--o;0<=o;--o)o in a&&t.call(r,a[o],o,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.filter.call(e,t,r)}:function(e,t,r){for(var o=e.length,a=[],n=0,i="string"==typeof e?e.split(""):e,s=0;s<o;s++)if(s in i){var p=i[s];t.call(r,p,s,e)&&(a[n++]=p)}return a},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.map.call(e,t,r)}:function(e,t,r){for(var o=e.length,a=Array(o),n="string"==typeof e?e.split(""):e,i=0;i<o;i++)i in n&&(a[i]=t.call(r,n[i],i,e));return a},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,t,r,o){return goog.asserts.assert(null!=e.length),o&&(t=goog.bind(t,o)),Array.prototype.reduce.call(e,t,r)}:function(e,t,r,o){var a=r;return goog.array.forEach(e,(function(r,n){a=t.call(o,a,r,n,e)})),a},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,t,r,o){return goog.asserts.assert(null!=e.length),goog.asserts.assert(null!=t),o&&(t=goog.bind(t,o)),Array.prototype.reduceRight.call(e,t,r)}:function(e,t,r,o){var a=r;return goog.array.forEachRight(e,(function(r,n){a=t.call(o,a,r,n,e)})),a},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.some.call(e,t,r)}:function(e,t,r){for(var o=e.length,a="string"==typeof e?e.split(""):e,n=0;n<o;n++)if(n in a&&t.call(r,a[n],n,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,t,r){return goog.asserts.assert(null!=e.length),Array.prototype.every.call(e,t,r)}:function(e,t,r){for(var o=e.length,a="string"==typeof e?e.split(""):e,n=0;n<o;n++)if(n in a&&!t.call(r,a[n],n,e))return!1;return!0},goog.array.count=function(e,t,r){var o=0;return goog.array.forEach(e,(function(e,a,n){t.call(r,e,a,n)&&++o}),r),o},goog.array.find=function(e,t,r){return 0>(t=goog.array.findIndex(e,t,r))?null:"string"==typeof e?e.charAt(t):e[t]},goog.array.findIndex=function(e,t,r){for(var o=e.length,a="string"==typeof e?e.split(""):e,n=0;n<o;n++)if(n in a&&t.call(r,a[n],n,e))return n;return-1},goog.array.findRight=function(e,t,r){return 0>(t=goog.array.findIndexRight(e,t,r))?null:"string"==typeof e?e.charAt(t):e[t]},goog.array.findIndexRight=function(e,t,r){var o=e.length,a="string"==typeof e?e.split(""):e;for(--o;0<=o;o--)if(o in a&&t.call(r,a[o],o,e))return o;return-1},goog.array.contains=function(e,t){return 0<=goog.array.indexOf(e,t)},goog.array.isEmpty=function(e){return 0==e.length},goog.array.clear=function(e){if(!Array.isArray(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0},goog.array.insert=function(e,t){goog.array.contains(e,t)||e.push(t)},goog.array.insertAt=function(e,t,r){goog.array.splice(e,r,0,t)},goog.array.insertArrayAt=function(e,t,r){goog.partial(goog.array.splice,e,r,0).apply(null,t)},goog.array.insertBefore=function(e,t,r){var o;2==arguments.length||0>(o=goog.array.indexOf(e,r))?e.push(t):goog.array.insertAt(e,t,o)},goog.array.remove=function(e,t){var r;return(r=0<=(t=goog.array.indexOf(e,t)))&&goog.array.removeAt(e,t),r},goog.array.removeLast=function(e,t){return 0<=(t=goog.array.lastIndexOf(e,t))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAt=function(e,t){return goog.asserts.assert(null!=e.length),1==Array.prototype.splice.call(e,t,1).length},goog.array.removeIf=function(e,t,r){return 0<=(t=goog.array.findIndex(e,t,r))&&(goog.array.removeAt(e,t),!0)},goog.array.removeAllIf=function(e,t,r){var o=0;return goog.array.forEachRight(e,(function(a,n){t.call(r,a,n,e)&&goog.array.removeAt(e,n)&&o++})),o},goog.array.concat=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(e){var t=e.length;if(0<t){for(var r=Array(t),o=0;o<t;o++)r[o]=e[o];return r}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,t){for(var r=1;r<arguments.length;r++){var o=arguments[r];if(goog.isArrayLike(o)){var a=e.length||0,n=o.length||0;e.length=a+n;for(var i=0;i<n;i++)e[a+i]=o[i]}else e.push(o)}},goog.array.splice=function(e,t,r,o){return goog.asserts.assert(null!=e.length),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,t,r){return goog.asserts.assert(null!=e.length),2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,r)},goog.array.removeDuplicates=function(e,t,r){t=t||e;var o=function(e){return goog.isObject(e)?"o"+goog.getUid(e):(typeof e).charAt(0)+e};r=r||o,o={};for(var a=0,n=0;n<e.length;){var i=e[n++],s=r(i);Object.prototype.hasOwnProperty.call(o,s)||(o[s]=!0,t[a++]=i)}t.length=a},goog.array.binarySearch=function(e,t,r){return goog.array.binarySearch_(e,r||goog.array.defaultCompare,!1,t)},goog.array.binarySelect=function(e,t,r){return goog.array.binarySearch_(e,t,!0,void 0,r)},goog.array.binarySearch_=function(e,t,r,o,a){for(var n,i=0,s=e.length;i<s;){var p=i+(s-i>>>1),d=r?t.call(a,e[p],p,e):t(o,e[p]);0<d?i=p+1:(s=p,n=!d)}return n?i:-i-1},goog.array.sort=function(e,t){e.sort(t||goog.array.defaultCompare)},goog.array.stableSort=function(e,t){for(var r=Array(e.length),o=0;o<e.length;o++)r[o]={index:o,value:e[o]};var a=t||goog.array.defaultCompare;for(goog.array.sort(r,(function(e,t){return a(e.value,t.value)||e.index-t.index})),o=0;o<e.length;o++)e[o]=r[o].value},goog.array.sortByKey=function(e,t,r){var o=r||goog.array.defaultCompare;goog.array.sort(e,(function(e,r){return o(t(e),t(r))}))},goog.array.sortObjectsByKey=function(e,t,r){goog.array.sortByKey(e,(function(e){return e[t]}),r)},goog.array.isSorted=function(e,t,r){t=t||goog.array.defaultCompare;for(var o=1;o<e.length;o++){var a=t(e[o-1],e[o]);if(0<a||0==a&&r)return!1}return!0},goog.array.equals=function(e,t,r){if(!goog.isArrayLike(e)||!goog.isArrayLike(t)||e.length!=t.length)return!1;var o=e.length;r=r||goog.array.defaultCompareEquality;for(var a=0;a<o;a++)if(!r(e[a],t[a]))return!1;return!0},goog.array.compare3=function(e,t,r){r=r||goog.array.defaultCompare;for(var o=Math.min(e.length,t.length),a=0;a<o;a++){var n=r(e[a],t[a]);if(0!=n)return n}return goog.array.defaultCompare(e.length,t.length)},goog.array.defaultCompare=function(e,t){return e>t?1:e<t?-1:0},goog.array.inverseDefaultCompare=function(e,t){return-goog.array.defaultCompare(e,t)},goog.array.defaultCompareEquality=function(e,t){return e===t},goog.array.binaryInsert=function(e,t,r){return 0>(r=goog.array.binarySearch(e,t,r))&&(goog.array.insertAt(e,t,-(r+1)),!0)},goog.array.binaryRemove=function(e,t,r){return 0<=(t=goog.array.binarySearch(e,t,r))&&goog.array.removeAt(e,t)},goog.array.bucket=function(e,t,r){for(var o={},a=0;a<e.length;a++){var n=e[a],i=t.call(r,n,a,e);void 0!==i&&(o[i]||(o[i]=[])).push(n)}return o},goog.array.toObject=function(e,t,r){var o={};return goog.array.forEach(e,(function(a,n){o[t.call(r,a,n,e)]=a})),o},goog.array.range=function(e,t,r){var o=[],a=0,n=e;if(void 0!==t&&(a=e,n=t),0>(r=r||1)*(n-a))return[];if(0<r)for(e=a;e<n;e+=r)o.push(e);else for(e=a;e>n;e+=r)o.push(e);return o},goog.array.repeat=function(e,t){for(var r=[],o=0;o<t;o++)r[o]=e;return r},goog.array.flatten=function(e){for(var t=[],r=0;r<arguments.length;r++){var o=arguments[r];if(Array.isArray(o))for(var a=0;a<o.length;a+=8192){var n=goog.array.slice(o,a,a+8192);n=goog.array.flatten.apply(null,n);for(var i=0;i<n.length;i++)t.push(n[i])}else t.push(o)}return t},goog.array.rotate=function(e,t){return goog.asserts.assert(null!=e.length),e.length&&(0<(t%=e.length)?Array.prototype.unshift.apply(e,e.splice(-t,t)):0>t&&Array.prototype.push.apply(e,e.splice(0,-t))),e},goog.array.moveItem=function(e,t,r){goog.asserts.assert(0<=t&&t<e.length),goog.asserts.assert(0<=r&&r<e.length),t=Array.prototype.splice.call(e,t,1),Array.prototype.splice.call(e,r,0,t[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var t=[],r=arguments[0].length,o=1;o<arguments.length;o++)arguments[o].length<r&&(r=arguments[o].length);for(o=0;o<r;o++){for(var a=[],n=0;n<arguments.length;n++)a.push(arguments[n][o]);t.push(a)}return t},goog.array.shuffle=function(e,t){t=t||Math.random;for(var r=e.length-1;0<r;r--){var o=Math.floor(t()*(r+1)),a=e[r];e[r]=e[o],e[o]=a}},goog.array.copyByIndex=function(e,t){var r=[];return goog.array.forEach(t,(function(t){r.push(e[t])})),r},goog.array.concatMap=function(e,t,r){return goog.array.concat.apply([],goog.array.map(e,t,r))},goog.crypt={},goog.crypt.stringToByteArray=function(e){for(var t=[],r=0,o=0;o<e.length;o++){var a=e.charCodeAt(o);255<a&&(t[r++]=255&a,a>>=8),t[r++]=a}return t},goog.crypt.byteArrayToString=function(e){if(8192>=e.length)return String.fromCharCode.apply(null,e);for(var t="",r=0;r<e.length;r+=8192){var o=goog.array.slice(e,r,r+8192);t+=String.fromCharCode.apply(null,o)}return t},goog.crypt.byteArrayToHex=function(e,t){return goog.array.map(e,(function(e){return 1<(e=e.toString(16)).length?e:"0"+e})).join(t||"")},goog.crypt.hexToByteArray=function(e){goog.asserts.assert(0==e.length%2,"Key string length must be multiple of 2");for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substring(r,r+2),16));return t},goog.crypt.stringToUtf8ByteArray=function(e){for(var t=[],r=0,o=0;o<e.length;o++){var a=e.charCodeAt(o);128>a?t[r++]=a:(2048>a?t[r++]=a>>6|192:(55296==(64512&a)&&o+1<e.length&&56320==(64512&e.charCodeAt(o+1))?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),t[r++]=a>>18|240,t[r++]=a>>12&63|128):t[r++]=a>>12|224,t[r++]=a>>6&63|128),t[r++]=63&a|128)}return t},goog.crypt.utf8ByteArrayToString=function(e){for(var t=[],r=0,o=0;r<e.length;){var a=e[r++];if(128>a)t[o++]=String.fromCharCode(a);else if(191<a&&224>a){var n=e[r++];t[o++]=String.fromCharCode((31&a)<<6|63&n)}else if(239<a&&365>a){n=e[r++];var i=e[r++];a=((7&a)<<18|(63&n)<<12|(63&i)<<6|63&e[r++])-65536,t[o++]=String.fromCharCode(55296+(a>>10)),t[o++]=String.fromCharCode(56320+(1023&a))}else n=e[r++],i=e[r++],t[o++]=String.fromCharCode((15&a)<<12|(63&n)<<6|63&i)}return t.join("")},goog.crypt.xorByteArray=function(e,t){goog.asserts.assert(e.length==t.length,"XOR array lengths must match");for(var r=[],o=0;o<e.length;o++)r.push(e[o]^t[o]);return r},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(e){if(goog.asserts.ENABLE_ASSERTS){var t=goog.dom.asserts.getWindow_(e);t&&(!e||!(e instanceof t.Location)&&e instanceof t.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(e))}return e},goog.dom.asserts.assertIsElementType_=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var r=goog.dom.asserts.getWindow_(e);r&&void 0!==r[t]&&(e&&(e instanceof r[t]||!(e instanceof r.Location||e instanceof r.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",t,goog.dom.asserts.debugStringForType_(e)))}return e},goog.dom.asserts.assertIsHTMLAnchorElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(e){if(!goog.isObject(e))return void 0===e?"undefined":null===e?"null":typeof e;try{return e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e)}catch(e){return"<object could not be stringified>"}},goog.dom.asserts.getWindow_=function(e){try{var t=e&&e.ownerDocument,r=t&&(t.defaultView||t.parentWindow);if((r=r||goog.global).Element&&r.Location)return r}catch(e){}return null},goog.functions={},goog.functions.constant=function(e){return function(){return e}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(e,t){return e},goog.functions.error=function(e){return function(){throw Error(e)}},goog.functions.fail=function(e){return function(){throw e}},goog.functions.lock=function(e,t){return t=t||0,function(){return e.apply(this,Array.prototype.slice.call(arguments,0,t))}},goog.functions.nth=function(e){return function(){return arguments[e]}},goog.functions.partialRight=function(e,t){var r=Array.prototype.slice.call(arguments,1);return function(){var t=Array.prototype.slice.call(arguments);return t.push.apply(t,r),e.apply(this,t)}},goog.functions.withReturnValue=function(e,t){return goog.functions.sequence(e,goog.functions.constant(t))},goog.functions.equalTo=function(e,t){return function(r){return t?e==r:e===r}},goog.functions.compose=function(e,t){var r=arguments,o=r.length;return function(){var e;o&&(e=r[o-1].apply(this,arguments));for(var t=o-2;0<=t;t--)e=r[t].call(this,e);return e}},goog.functions.sequence=function(e){var t=arguments,r=t.length;return function(){for(var e,o=0;o<r;o++)e=t[o].apply(this,arguments);return e}},goog.functions.and=function(e){var t=arguments,r=t.length;return function(){for(var e=0;e<r;e++)if(!t[e].apply(this,arguments))return!1;return!0}},goog.functions.or=function(e){var t=arguments,r=t.length;return function(){for(var e=0;e<r;e++)if(t[e].apply(this,arguments))return!0;return!1}},goog.functions.not=function(e){return function(){return!e.apply(this,arguments)}},goog.functions.create=function(e,t){var r=function(){};return r.prototype=e.prototype,r=new r,e.apply(r,Array.prototype.slice.call(arguments,1)),r},goog.functions.CACHE_RETURN_VALUE=!0,goog.functions.cacheReturnValue=function(e){var t,r=!1;return function(){return goog.functions.CACHE_RETURN_VALUE?(r||(t=e(),r=!0),t):e()}},goog.functions.once=function(e){var t=e;return function(){if(t){var e=t;t=null,e()}}},goog.functions.debounce=function(e,t,r){var o=0;return function(a){goog.global.clearTimeout(o);var n=arguments;o=goog.global.setTimeout((function(){e.apply(r,n)}),t)}},goog.functions.throttle=function(e,t,r){var o=0,a=!1,n=[],i=function(){o=0,a&&(a=!1,s())},s=function(){o=goog.global.setTimeout(i,t),e.apply(r,n)};return function(e){n=arguments,o?a=!0:s()}},goog.functions.rateLimit=function(e,t,r){var o=0,a=function(){o=0};return function(n){o||(o=goog.global.setTimeout(a,t),e.apply(r,arguments))}},goog.dom.HtmlElement=function(){},goog.dom.TagName=function(e){this.tagName_=e},goog.dom.TagName.prototype.toString=function(){return this.tagName_},goog.dom.TagName.A=new goog.dom.TagName("A"),goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR"),goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM"),goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS"),goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET"),goog.dom.TagName.AREA=new goog.dom.TagName("AREA"),goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE"),goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE"),goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO"),goog.dom.TagName.B=new goog.dom.TagName("B"),goog.dom.TagName.BASE=new goog.dom.TagName("BASE"),goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT"),goog.dom.TagName.BDI=new goog.dom.TagName("BDI"),goog.dom.TagName.BDO=new goog.dom.TagName("BDO"),goog.dom.TagName.BIG=new goog.dom.TagName("BIG"),goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE"),goog.dom.TagName.BODY=new goog.dom.TagName("BODY"),goog.dom.TagName.BR=new goog.dom.TagName("BR"),goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON"),goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS"),goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION"),goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER"),goog.dom.TagName.CITE=new goog.dom.TagName("CITE"),goog.dom.TagName.CODE=new goog.dom.TagName("CODE"),goog.dom.TagName.COL=new goog.dom.TagName("COL"),goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP"),goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND"),goog.dom.TagName.DATA=new goog.dom.TagName("DATA"),goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST"),goog.dom.TagName.DD=new goog.dom.TagName("DD"),goog.dom.TagName.DEL=new goog.dom.TagName("DEL"),goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS"),goog.dom.TagName.DFN=new goog.dom.TagName("DFN"),goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG"),goog.dom.TagName.DIR=new goog.dom.TagName("DIR"),goog.dom.TagName.DIV=new goog.dom.TagName("DIV"),goog.dom.TagName.DL=new goog.dom.TagName("DL"),goog.dom.TagName.DT=new goog.dom.TagName("DT"),goog.dom.TagName.EM=new goog.dom.TagName("EM"),goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED"),goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET"),goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION"),goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE"),goog.dom.TagName.FONT=new goog.dom.TagName("FONT"),goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER"),goog.dom.TagName.FORM=new goog.dom.TagName("FORM"),goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME"),goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET"),goog.dom.TagName.H1=new goog.dom.TagName("H1"),goog.dom.TagName.H2=new goog.dom.TagName("H2"),goog.dom.TagName.H3=new goog.dom.TagName("H3"),goog.dom.TagName.H4=new goog.dom.TagName("H4"),goog.dom.TagName.H5=new goog.dom.TagName("H5"),goog.dom.TagName.H6=new goog.dom.TagName("H6"),goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD"),goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER"),goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP"),goog.dom.TagName.HR=new goog.dom.TagName("HR"),goog.dom.TagName.HTML=new goog.dom.TagName("HTML"),goog.dom.TagName.I=new goog.dom.TagName("I"),goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME"),goog.dom.TagName.IMG=new goog.dom.TagName("IMG"),goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT"),goog.dom.TagName.INS=new goog.dom.TagName("INS"),goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX"),goog.dom.TagName.KBD=new goog.dom.TagName("KBD"),goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN"),goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL"),goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND"),goog.dom.TagName.LI=new goog.dom.TagName("LI"),goog.dom.TagName.LINK=new goog.dom.TagName("LINK"),goog.dom.TagName.MAIN=new goog.dom.TagName("MAIN"),goog.dom.TagName.MAP=new goog.dom.TagName("MAP"),goog.dom.TagName.MARK=new goog.dom.TagName("MARK"),goog.dom.TagName.MATH=new goog.dom.TagName("MATH"),goog.dom.TagName.MENU=new goog.dom.TagName("MENU"),goog.dom.TagName.MENUITEM=new goog.dom.TagName("MENUITEM"),goog.dom.TagName.META=new goog.dom.TagName("META"),goog.dom.TagName.METER=new goog.dom.TagName("METER"),goog.dom.TagName.NAV=new goog.dom.TagName("NAV"),goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES"),goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT"),goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT"),goog.dom.TagName.OL=new goog.dom.TagName("OL"),goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP"),goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION"),goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT"),goog.dom.TagName.P=new goog.dom.TagName("P"),goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM"),goog.dom.TagName.PICTURE=new goog.dom.TagName("PICTURE"),goog.dom.TagName.PRE=new goog.dom.TagName("PRE"),goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS"),goog.dom.TagName.Q=new goog.dom.TagName("Q"),goog.dom.TagName.RP=new goog.dom.TagName("RP"),goog.dom.TagName.RT=new goog.dom.TagName("RT"),goog.dom.TagName.RTC=new goog.dom.TagName("RTC"),goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY"),goog.dom.TagName.S=new goog.dom.TagName("S"),goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP"),goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT"),goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION"),goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT"),goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL"),goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE"),goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN"),goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE"),goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG"),goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE"),goog.dom.TagName.SUB=new goog.dom.TagName("SUB"),goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY"),goog.dom.TagName.SUP=new goog.dom.TagName("SUP"),goog.dom.TagName.SVG=new goog.dom.TagName("SVG"),goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE"),goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY"),goog.dom.TagName.TD=new goog.dom.TagName("TD"),goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE"),goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA"),goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT"),goog.dom.TagName.TH=new goog.dom.TagName("TH"),goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD"),goog.dom.TagName.TIME=new goog.dom.TagName("TIME"),goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE"),goog.dom.TagName.TR=new goog.dom.TagName("TR"),goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK"),goog.dom.TagName.TT=new goog.dom.TagName("TT"),goog.dom.TagName.U=new goog.dom.TagName("U"),goog.dom.TagName.UL=new goog.dom.TagName("UL"),goog.dom.TagName.VAR=new goog.dom.TagName("VAR"),goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO"),goog.dom.TagName.WBR=new goog.dom.TagName("WBR"),goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(e){return!0===goog.dom.tags.VOID_TAGS_[e]},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.string={},goog.string.TypedString=function(){},goog.string.Const=function(e,t){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=e===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.DEBUG&&(goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"}),goog.string.Const.unwrap=function(e){return e instanceof goog.string.Const&&e.constructor===goog.string.Const&&e.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?e.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+e+"'"),"type_error:Const")},goog.string.Const.from=function(e){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="",this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0,goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeScript.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeScript.fromConstantAndArgs=function(e,t){for(var r=[],o=1;o<arguments.length;o++)r.push(goog.html.SafeScript.stringify_(arguments[o]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(e)+")("+r.join(", ")+");")},goog.html.SafeScript.fromJson=function(e){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(e))},goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),goog.html.SafeScript.unwrap=function(e){return goog.html.SafeScript.unwrapTrustedScript(e).toString()},goog.html.SafeScript.unwrapTrustedScript=function(e){return e instanceof goog.html.SafeScript&&e.constructor===goog.html.SafeScript&&e.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeScriptWrappedValue_:(goog.asserts.fail("expected object of type SafeScript, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeScript")},goog.html.SafeScript.stringify_=function(e){return JSON.stringify(e).replace(/</g,"\\x3c")},goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(e):e,this},goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.UrlObject_=function(){},goog.fs.url.UrlObject_.prototype.createObjectURL=function(e){},goog.fs.url.UrlObject_.prototype.revokeObjectURL=function(e){},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(null!=e)return e;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return void 0!==goog.global.URL&&void 0!==goog.global.URL.createObjectURL?goog.global.URL:void 0!==goog.global.webkitURL&&void 0!==goog.global.webkitURL.createObjectURL?goog.global.webkitURL:void 0!==goog.global.createObjectURL?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()},goog.fs.blob={},goog.fs.blob.getBlob=function(e){var t=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==t){t=new t;for(var r=0;r<arguments.length;r++)t.append(arguments[r]);return t.getBlob()}return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments))},goog.fs.blob.getBlobWithProperties=function(e,t,r){var o=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==o){o=new o;for(var a=0;a<e.length;a++)o.append(e[a],r);return o.getBlob(t)}if(void 0!==goog.global.Blob)return o={},t&&(o.type=t),r&&(o.endings=r),new Blob(e,o);throw Error("This browser doesn't seem to support creating Blobs")},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))&&("adlm"==goog.LOCALE.substring(3,7).toLowerCase()||"arab"==goog.LOCALE.substring(3,7).toLowerCase()||"hebr"==goog.LOCALE.substring(3,7).toLowerCase()||"nkoo"==goog.LOCALE.substring(3,7).toLowerCase()||"rohg"==goog.LOCALE.substring(3,7).toLowerCase()||"thaa"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&("-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4))&&("adlm"==goog.LOCALE.substring(4,8).toLowerCase()||"arab"==goog.LOCALE.substring(4,8).toLowerCase()||"hebr"==goog.LOCALE.substring(4,8).toLowerCase()||"nkoo"==goog.LOCALE.substring(4,8).toLowerCase()||"rohg"==goog.LOCALE.substring(4,8).toLowerCase()||"thaa"==goog.LOCALE.substring(4,8).toLowerCase()),goog.i18n.bidi.Format={LRE:"‪",RLE:"‫",PDF:"‬",LRM:"‎",RLM:"‏"},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,t){return"number"==typeof e?0<e?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:t?null:goog.i18n.bidi.Dir.NEUTRAL:null==e?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-\ud801\ud804-\ud839\ud83c-\udbff豈-﬜︀-﹯﻽-￿",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ‏\ud802-\ud803\ud83a-\ud83bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,t){return t?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,t){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,t){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,t){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,t){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(e,t){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,t){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,t){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,t){return t=(void 0===t?goog.i18n.bidi.hasAnyRtl(e):t)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,e.replace(goog.i18n.bidi.bracketGuardTextRe_,t+"$&"+t)},goog.i18n.bidi.enforceRtlInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return"<"==e.charAt(0)?e.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,t){var r=0,o=0,a=!1;for(e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t).split(goog.i18n.bidi.wordSeparatorRe_),t=0;t<e.length;t++){var n=e[t];goog.i18n.bidi.startsWithRtl(n)?(r++,o++):goog.i18n.bidi.isRequiredLtrRe_.test(n)?a=!0:goog.i18n.bidi.hasAnyLtr(n)?o++:goog.i18n.bidi.hasNumeralsRe_.test(n)&&(a=!0)}return 0==o?a?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:r/o>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,t){return goog.i18n.bidi.estimateDirection(e,t)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,t){e&&(t=goog.i18n.bidi.toDir(t))&&(e.style.textAlign=t==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=t==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,t){switch(goog.i18n.bidi.estimateDirection(t)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(e,t){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(e,t){var r=goog.html.TrustedResourceUrl.unwrap(this),o=(r=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(r))[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(r[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",r[2]||"",e)+goog.html.TrustedResourceUrl.stringifyParams_("#",o,t))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(e,t){var r=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(r))throw Error("Invalid TrustedResourceUrl format: "+r);return e=r.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,(function(e,o){if(!Object.prototype.hasOwnProperty.call(t,o))throw Error('Found marker, "'+o+'", in format string, "'+r+'", but no valid label mapping found in args: '+JSON.stringify(t));return(e=t[o])instanceof goog.string.Const?goog.string.Const.unwrap(e):encodeURIComponent(String(e))})),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(e,t,r,o){return goog.html.TrustedResourceUrl.format(e,t).cloneWithParams(r,o)},goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var t="",r=0;r<e.length;r++)t+=goog.string.Const.unwrap(e[r]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.fromSafeScript=function(e){return e=goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(e)],"text/javascript"),e=goog.fs.url.createObjectUrl(e),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){return e=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(e):e,new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.TrustedResourceUrl.stringifyParams_=function(e,t,r){if(null==r)return t;if("string"==typeof r)return r?e+encodeURIComponent(r):"";for(var o in r){var a=r[o];a=Array.isArray(a)?a:[a];for(var n=0;n<a.length;n++){var i=a[n];null!=i&&(t||(t=e),t+=(t.length>e.length?"&":"")+encodeURIComponent(o)+"="+encodeURIComponent(String(i)))}}return t},goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.internal={},goog.string.internal.startsWith=function(e,t){return 0==e.lastIndexOf(t,0)},goog.string.internal.endsWith=function(e,t){var r=e.length-t.length;return 0<=r&&e.indexOf(t,r)==r},goog.string.internal.caseInsensitiveStartsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(0,t.length))},goog.string.internal.caseInsensitiveEndsWith=function(e,t){return 0==goog.string.internal.caseInsensitiveCompare(t,e.substr(e.length-t.length,t.length))},goog.string.internal.caseInsensitiveEquals=function(e,t){return e.toLowerCase()==t.toLowerCase()},goog.string.internal.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(e)[1]},goog.string.internal.caseInsensitiveCompare=function(e,t){return(e=String(e).toLowerCase())<(t=String(t).toLowerCase())?-1:e==t?0:1},goog.string.internal.newLineToBr=function(e,t){return e.replace(/(\r\n|\r|\n)/g,t?"<br />":"<br>")},goog.string.internal.htmlEscape=function(e,t){if(t)e=e.replace(goog.string.internal.AMP_RE_,"&amp;").replace(goog.string.internal.LT_RE_,"&lt;").replace(goog.string.internal.GT_RE_,"&gt;").replace(goog.string.internal.QUOT_RE_,"&quot;").replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;").replace(goog.string.internal.NULL_RE_,"&#0;");else{if(!goog.string.internal.ALL_RE_.test(e))return e;-1!=e.indexOf("&")&&(e=e.replace(goog.string.internal.AMP_RE_,"&amp;")),-1!=e.indexOf("<")&&(e=e.replace(goog.string.internal.LT_RE_,"&lt;")),-1!=e.indexOf(">")&&(e=e.replace(goog.string.internal.GT_RE_,"&gt;")),-1!=e.indexOf('"')&&(e=e.replace(goog.string.internal.QUOT_RE_,"&quot;")),-1!=e.indexOf("'")&&(e=e.replace(goog.string.internal.SINGLE_QUOTE_RE_,"&#39;")),-1!=e.indexOf("\0")&&(e=e.replace(goog.string.internal.NULL_RE_,"&#0;"))}return e},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=/</g,goog.string.internal.GT_RE_=/>/g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(e,t){return goog.string.internal.newLineToBr(e.replace(/ /g," &#160;"),t)},goog.string.internal.contains=function(e,t){return-1!=e.indexOf(t)},goog.string.internal.caseInsensitiveContains=function(e,t){return goog.string.internal.contains(e.toLowerCase(),t.toLowerCase())},goog.string.internal.compareVersions=function(e,t){var r=0;e=goog.string.internal.trim(String(e)).split("."),t=goog.string.internal.trim(String(t)).split(".");for(var o=Math.max(e.length,t.length),a=0;0==r&&a<o;a++){var n=e[a]||"",i=t[a]||"";do{if(n=/(\d*)(\D*)(.*)/.exec(n)||["","","",""],i=/(\d*)(\D*)(.*)/.exec(i)||["","","",""],0==n[0].length&&0==i[0].length)break;r=0==n[1].length?0:parseInt(n[1],10);var s=0==i[1].length?0:parseInt(i[1],10);r=goog.string.internal.compareElements_(r,s)||goog.string.internal.compareElements_(0==n[2].length,0==i[2].length)||goog.string.internal.compareElements_(n[2],i[2]),n=n[3],i=i[3]}while(0==r)}return r},goog.string.internal.compareElements_=function(e,t){return e<t?-1:e>t?1:0},goog.html.SafeUrl=function(e,t){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=e===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(e){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(e)},goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SafeUrl.isSafeMimeType(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromMediaSource=function(e){return goog.asserts.assert("MediaSource"in goog.global,"No support for MediaSource"),e=e instanceof MediaSource?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){var t=(e=e.replace(/(%0A|%0D)/g,"")).match(goog.html.DATA_URL_PATTERN_);return t=t&&goog.html.SafeUrl.isSafeMimeType(t[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(e){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(e))||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"fb-messenger://share")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromWhatsAppUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"whatsapp://send")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromSmsUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(e){var t=e.indexOf("#");if(0<t&&(e=e.substring(0,t)),!(t=e.match(/[?&]body=/gi)))return!0;if(1<t.length)return!1;if(!(e=e.match(/[?&]body=([^&]*)/)[1]))return!0;try{decodeURIComponent(e)}catch(e){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(e)},goog.html.SafeUrl.fromSshUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"ssh://")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeExtensionUrl_=function(e,t,r){return(e=e.exec(t))?(e=e[1],-1==(r instanceof goog.string.Const?[goog.string.Const.unwrap(r)]:r.map((function(e){return goog.string.Const.unwrap(e)}))).indexOf(e)&&(t=goog.html.SafeUrl.INNOCUOUS_STRING)):t=goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromTrustedResourceUrl=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(e))},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.sanitizeAssertUnchanged=function(e,t){return e instanceof goog.html.SafeUrl?e:(e="object"==typeof e&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),t&&/^data:/i.test(e)&&(t=goog.html.SafeUrl.fromDataUrl(e)).getTypedStringValue()==e?t:(goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(e),"%s does not match the safe URL pattern",e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)))},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="",this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyle.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyle.EMPTY:(goog.asserts.assert(goog.string.internal.endsWith(e,";"),"Last character of style string is not ';': "+e),goog.asserts.assert(goog.string.internal.contains(e,":"),"Style string must contain at least one ':', to specify a \"name: value\" pair: "+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var t,r="";for(t in e){if(!/^[-_a-zA-Z0-9]+$/.test(t))throw Error("Name allows only [-_a-zA-Z0-9], got: "+t);var o=e[t];null!=o&&(r+=t+":"+(o=Array.isArray(o)?goog.array.map(o,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(o))+";")}return r?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(r):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.sanitizePropertyValue_=function(e){if(e instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(e).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';if(e=e instanceof goog.string.Const?goog.string.Const.unwrap(e):goog.html.SafeStyle.sanitizePropertyValueString_(String(e)),/[{;}]/.test(e))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[e]);return e},goog.html.SafeStyle.sanitizePropertyValueString_=function(e){var t=e.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");return goog.html.SafeStyle.VALUE_RE_.test(t)?goog.html.SafeStyle.COMMENT_RE_.test(e)?(goog.asserts.fail("String value disallows comments, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):goog.html.SafeStyle.hasBalancedQuotes_(e)?goog.html.SafeStyle.hasBalancedSquareBrackets_(e)?goog.html.SafeStyle.sanitizeUrl_(e):(goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value requires balanced quotes, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING)},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var t=!0,r=!0,o=0;o<e.length;o++){var a=e.charAt(o);"'"==a&&r?t=!t:'"'==a&&t&&(r=!r)}return t&&r},goog.html.SafeStyle.hasBalancedSquareBrackets_=function(e){for(var t=!0,r=/^[-_a-zA-Z0-9]$/,o=0;o<e.length;o++){var a=e.charAt(o);if("]"==a){if(t)return!1;t=!0}else if("["==a){if(!t)return!1;t=!1}else if(!t&&!r.test(a))return!1}return t},goog.html.SafeStyle.VALUE_ALLOWED_CHARS_="[-,.\"'%_!# a-zA-Z0-9\\[\\]]",goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$"),goog.html.SafeStyle.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g,goog.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" "),goog.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g"),goog.html.SafeStyle.COMMENT_RE_=/\/\*/,goog.html.SafeStyle.sanitizeUrl_=function(e){return e.replace(goog.html.SafeStyle.URL_RE_,(function(e,t,r,o){var a="";return r=r.replace(/^(['"])(.*)\1$/,(function(e,t,r){return a=t,r})),e=goog.html.SafeUrl.sanitize(r).getTypedStringValue(),t+a+e+a+o}))},goog.html.SafeStyle.concat=function(e){var t="",r=function(e){Array.isArray(e)?goog.array.forEach(e,r):t+=goog.html.SafeStyle.unwrap(e)};return goog.array.forEach(arguments,r),t?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.createRule=function(e,t){if(goog.string.internal.contains(e,"<"))throw Error("Selector does not allow '<', got: "+e);var r=e.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(r))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+e);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(r))throw Error("() and [] in selector must be balanced, got: "+e);return t instanceof goog.html.SafeStyle||(t=goog.html.SafeStyle.create(t)),e=e+"{"+goog.html.SafeStyle.unwrap(t).replace(/</g,"\\3C ")+"}",goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeStyleSheet.hasBalancedBrackets_=function(e){for(var t={"(":")","[":"]"},r=[],o=0;o<e.length;o++){var a=e[o];if(t[a])r.push(t[a]);else if(goog.object.contains(t,a)&&r.pop()!=a)return!1}return 0==r.length},goog.html.SafeStyleSheet.concat=function(e){var t="",r=function(e){Array.isArray(e)?goog.array.forEach(e,r):t+=goog.html.SafeStyleSheet.unwrap(e)};return goog.array.forEach(arguments,r),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeStyleSheet.fromConstant=function(e){return 0===(e=goog.string.Const.unwrap(e)).length?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.internal.contains(e,"<"),"Forbidden '<' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(t,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(t,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var t,r=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,o=[];t=r.exec(e);)o.push([t[1],t[2],t[3]||void 0]);return o},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")},goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_,goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_,goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(e){return e=goog.array.find(e,o),r[e]||""}var t=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(t);t=goog.labs.userAgent.util.extractVersionTuples(t);var r={};goog.array.forEach(t,(function(e){r[e[0]]=e[1]}));var o=goog.partial(goog.object.containsKey,r);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isEdgeChromium()?e(["Edg"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS","HeadlessChrome"]):(t=t[2])&&t[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){var t=/rv: *([\d\.]*)/.exec(e);if(t&&t[1])return t[1];t="";var r=/MSIE +([\d\.]+)/.exec(e);if(r&&r[1])if(e=/Trident\/(\d.\d)/.exec(e),"7.0"==r[1])if(e&&e[1])switch(e[1]){case"4.0":t="8.0";break;case"5.0":t="9.0";break;case"6.0":t="10.0";break;case"7.0":t="11.0"}else t="7.0";else t=r[1];return t},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG,goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0,goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return goog.html.SafeHtml.unwrapTrustedHTML(e).toString()},goog.html.SafeHtml.unwrapTrustedHTML=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var t="object"==typeof e,r=null;return t&&e.implementsGoogI18nBidiDirectionalString&&(r=e.getDirection()),e=t&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(e),r)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.comment=function(e){return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("\x3c!--"+goog.string.internal.htmlEscape(e)+"--\x3e",null)},goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,t,r){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),t,r)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name <"+e+">.":"");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+e+"> is not allowed for SafeHtml.":"")},goog.html.SafeHtml.createIframe=function(e,t,r,o){e&&goog.html.TrustedResourceUrl.unwrap(e);var a={};return a.src=e||null,a.srcdoc=t&&goog.html.SafeHtml.unwrap(t),e=goog.html.SafeHtml.combineAttributes(a,{sandbox:""},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,o)},goog.html.SafeHtml.createSandboxIframe=function(e,t,r,o){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var a={};return a.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,a.srcdoc=t||null,a.sandbox="",e=goog.html.SafeHtml.combineAttributes(a,{},r),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,o)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,t){return goog.html.TrustedResourceUrl.unwrap(e),e=goog.html.SafeHtml.combineAttributes({src:e},{},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",e)},goog.html.SafeHtml.createScript=function(e,t){for(var r in t){var o=r.toLowerCase();if("language"==o||"src"==o||"text"==o||"type"==o)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+o+'" attribute':"")}for(r="",e=goog.array.concat(e),o=0;o<e.length;o++)r+=goog.html.SafeScript.unwrap(e[o]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t,e)},goog.html.SafeHtml.createStyle=function(e,t){t=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},t);var r="";e=goog.array.concat(e);for(var o=0;o<e.length;o++)r+=goog.html.SafeStyleSheet.unwrap(e[o]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",t,e)},goog.html.SafeHtml.createMetaRefresh=function(e,t){return e=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)),(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(e,";")&&(e="'"+e.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(t||0)+"; url="+e})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,t,r){if(r instanceof goog.string.Const)r=goog.string.Const.unwrap(r);else if("style"==t.toLowerCase()){if(!goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");r=goog.html.SafeHtml.getStyleValue_(r)}else{if(/^on/i.test(t))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" requires goog.string.Const value, "'+r+'" given.':"");if(t.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(r instanceof goog.html.TrustedResourceUrl)r=goog.html.TrustedResourceUrl.unwrap(r);else if(r instanceof goog.html.SafeUrl)r=goog.html.SafeUrl.unwrap(r);else{if("string"!=typeof r)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" on tag "'+e+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+r+'" given.':"");r=goog.html.SafeUrl.sanitize(r).getTypedStringValue()}}return r.implementsGoogStringTypedString&&(r=r.getTypedStringValue()),goog.asserts.assert("string"==typeof r||"number"==typeof r,"String or number value expected, got "+typeof r+" with value: "+r),t+'="'+goog.string.internal.htmlEscape(String(r))+'"'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e:"");return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,t,r,o){return(t=goog.html.SafeHtml.create(t,r,o)).dir_=e,t},goog.html.SafeHtml.join=function(e,t){var r=(e=goog.html.SafeHtml.htmlEscape(e)).getDirection(),o=[],a=function(e){Array.isArray(e)?goog.array.forEach(e,a):(e=goog.html.SafeHtml.htmlEscape(e),o.push(goog.html.SafeHtml.unwrap(e)),e=e.getDirection(),r==goog.i18n.bidi.Dir.NEUTRAL?r=e:e!=goog.i18n.bidi.Dir.NEUTRAL&&r!=e&&(r=null))};return goog.array.forEach(t,a),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o.join(goog.html.SafeHtml.unwrap(e)),r)},goog.html.SafeHtml.concat=function(e){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))},goog.html.SafeHtml.concatWithDir=function(e,t){var r=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return r.dir_=e,r},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,t){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(e,t)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,t){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(e):e,this.dir_=t,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,t,r){var o=null,a="<"+e+goog.html.SafeHtml.stringifyAttributes(e,t);return null==r?r=[]:Array.isArray(r)||(r=[r]),goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!r.length,"Void tag <"+e+"> does not allow content."),a+=">"):(o=goog.html.SafeHtml.concat(r),a+=">"+goog.html.SafeHtml.unwrap(o)+"</"+e+">",o=o.getDirection()),(e=t&&t.dir)&&(o=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(a,o)},goog.html.SafeHtml.stringifyAttributes=function(e,t){var r="";if(t)for(var o in t){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(o))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+o+'".':"");var a=t[o];null!=a&&(r+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,o,a))}return r},goog.html.SafeHtml.combineAttributes=function(e,t,r){var o,a={};for(o in e)goog.asserts.assert(o.toLowerCase()==o,"Must be lower case"),a[o]=e[o];for(o in t)goog.asserts.assert(o.toLowerCase()==o,"Must be lower case"),a[o]=t[o];if(r)for(o in r){var n=o.toLowerCase();if(n in e)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+n+'" attribute, got "'+o+'" with value "'+r[o]+'"':"");n in t&&delete a[n],a[o]=r[o]}return a},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(e,t,r){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,r||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,t,r){e.insertAdjacentHTML(t,goog.html.SafeHtml.unwrapTrustedHTML(r))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue((function(){if(goog.DEBUG&&"undefined"==typeof document)return!1;var e=document.createElement("div"),t=document.createElement("div");return t.appendChild(document.createElement("div")),e.appendChild(t),!(goog.DEBUG&&!e.firstChild||(t=e.firstChild.firstChild,e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),t.parentElement))})),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(e,t){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;e.lastChild;)e.removeChild(e.lastChild);e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setInnerHtml=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var r=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[r])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(e,t)},goog.dom.safe.setOuterHtml=function(e,t){e.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setFormElementAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLFormElement(e).action=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setButtonFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLButtonElement(e).formAction=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setInputFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLInputElement(e).formAction=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setStyle=function(e,t){e.style.cssText=goog.html.SafeStyle.unwrap(t)},goog.dom.safe.documentWrite=function(e,t){e.write(goog.html.SafeHtml.unwrapTrustedHTML(t))},goog.dom.safe.setAnchorHref=function(e,t){goog.dom.asserts.assertIsHTMLAnchorElement(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setImageSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLImageElement(e),!(t instanceof goog.html.SafeUrl)){var r=/^data:image\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setAudioSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLAudioElement(e),!(t instanceof goog.html.SafeUrl)){var r=/^data:audio\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setVideoSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLVideoElement(e),!(t instanceof goog.html.SafeUrl)){var r=/^data:video\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,r)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setEmbedSrc=function(e,t){goog.dom.asserts.assertIsHTMLEmbedElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setFrameSrc=function(e,t){goog.dom.asserts.assertIsHTMLFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrcdoc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setLinkHrefAndRel=function(e,t,r){goog.dom.asserts.assertIsHTMLLinkElement(e),e.rel=r,goog.string.internal.caseInsensitiveContains(r,"stylesheet")?(goog.asserts.assert(t instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),e.href=goog.html.TrustedResourceUrl.unwrap(t)):e.href=t instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(t):t instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(t):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(t))},goog.dom.safe.setObjectData=function(e,t){goog.dom.asserts.assertIsHTMLObjectElement(e),e.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setScriptSrc=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setScriptContent=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.text=goog.html.SafeScript.unwrapTrustedScript(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setLocationHref=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.assignLocation=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.assign(goog.html.SafeUrl.unwrap(t))},goog.dom.safe.replaceLocation=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.replace(goog.html.SafeUrl.unwrap(t))},goog.dom.safe.openInWindow=function(e,t,r,o,a){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t=t||goog.global,r=r instanceof goog.string.Const?goog.string.Const.unwrap(r):r||"",t.open(goog.html.SafeUrl.unwrap(e),r,o,a)},goog.dom.safe.parseFromStringHtml=function(e,t){return goog.dom.safe.parseFromString(e,t,"text/html")},goog.dom.safe.parseFromString=function(e,t,r){return e.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(t),r)},goog.dom.safe.createImageFromBlob=function(e){if(!/^image\/.*/g.test(e.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var t=goog.global.URL.createObjectURL(e);return(e=new goog.global.Image).onload=function(){goog.global.URL.revokeObjectURL(t)},goog.dom.safe.setImageSrc(e,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),t)),e},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(e,t){for(var r=e.split("%s"),o="",a=Array.prototype.slice.call(arguments,1);a.length&&1<r.length;)o+=r.shift()+a.shift();return o+r.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace,goog.string.isEmptyString=function(e){return 0==e.length},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return" "==e},goog.string.isUnicodeChar=function(e){return 1==e.length&&" "<=e&&"~">=e||"€"<=e&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,"\n")},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(e,t,r){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var o=e.toLowerCase().match(r),a=t.toLowerCase().match(r),n=Math.min(o.length,a.length),i=0;i<n;i++){r=o[i];var s=a[i];if(r!=s)return e=parseInt(r,10),!isNaN(e)&&(t=parseInt(s,10),!isNaN(t)&&e-t)?e-t:r<s?-1:1}return o.length!=a.length?o.length-a.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(e,t){return e=goog.string.internal.htmlEscape(e,t),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"&#101;")),e},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var r={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'},o=t?t.createElement("div"):goog.global.document.createElement("div");return e.replace(goog.string.HTML_ENTITY_PATTERN_,(function(e,t){var a=r[e];return a||("#"==t.charAt(0)&&(t=Number("0"+t.substr(1)),isNaN(t)||(a=String.fromCharCode(t))),a||(goog.dom.safe.setInnerHtml(o,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),e+" ")),a=o.firstChild.nodeValue.slice(0,-1)),r[e]=a)}))},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,(function(e,t){switch(t){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return"#"!=t.charAt(0)||(t=Number("0"+t.substr(1)),isNaN(t))?e:String.fromCharCode(t)}}))},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/ /g," &#160;"),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var r=t.length,o=0;o<r;o++){var a=1==r?t:t.charAt(o);if(e.charAt(0)==a&&e.charAt(e.length-1)==a)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,r){return r&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),r&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,r,o){if(r&&(e=goog.string.unescapeEntities(e)),o&&e.length>t){o>t&&(o=t);var a=e.length-o;e=e.substring(0,t-o)+"..."+e.substring(a)}else e.length>t&&(o=Math.floor(t/2),a=e.length-o,e=e.substring(0,o+t%2)+"..."+e.substring(a));return r&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var t=['"'],r=0;r<e.length;r++){var o=e.charAt(r),a=o.charCodeAt(0);t[r+1]=goog.string.specialEscapeChars_[o]||(31<a&&127>a?o:goog.string.escapeChar(o))}return t.push('"'),t.join("")},goog.string.escapeString=function(e){for(var t=[],r=0;r<e.length;r++)t[r]=goog.string.escapeChar(e.charAt(r));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t=e.charCodeAt(0);if(31<t&&127>t)var r=e;else 256>t?(r="\\x",(16>t||256<t)&&(r+="0")):(r="\\u",4096>t&&(r+="0")),r+=t.toString(16).toUpperCase();return goog.string.jsEscapeCache_[e]=r},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,r){var o=e;return 0<=t&&t<e.length&&0<r&&(o=e.substr(0,t)+e.substr(t+r,e.length-t-r)),o},goog.string.remove=function(e,t){return e.replace(t,"")},goog.string.removeAll=function(e,t){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,"")},goog.string.replaceAll=function(e,t,r){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,r.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,r){return-1==(r=(e=void 0!==r?e.toFixed(r):String(e)).indexOf("."))&&(r=e.length),goog.string.repeat("0",Math.max(0,t-r))+e},goog.string.makeSafe=function(e){return null==e?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(e){for(var t=0,r=0;r<e.length;++r)t=31*t+e.charCodeAt(r)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return 0==t&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,(function(e,t){return t.toUpperCase()}))},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){return t="string"==typeof t?goog.string.regExpEscape(t):"\\s",e.replace(new RegExp("(^"+(t?"|["+t+"]+":"")+")([a-z])","g"),(function(e,t,r){return t+r.toUpperCase()}))},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),"string"==typeof e?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,r){e=e.split(t);for(var o=[];0<r&&e.length;)o.push(e.shift()),r--;return e.length&&o.push(e.join(t)),o},goog.string.lastComponent=function(e,t){if(!t)return e;"string"==typeof t&&(t=[t]);for(var r=-1,o=0;o<t.length;o++)if(""!=t[o]){var a=e.lastIndexOf(t[o]);a>r&&(r=a)}return-1==r?e:e.slice(r+1)},goog.string.editDistance=function(e,t){var r=[],o=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var a=0;a<t.length+1;a++)r[a]=a;for(a=0;a<e.length;a++){o[0]=a+1;for(var n=0;n<t.length;n++)o[n+1]=Math.min(o[n]+1,r[n+1]+1,r[n]+Number(e[a]!=t[n]));for(n=0;n<r.length;n++)r[n]=o[n]}return o[t.length]},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent();if(e){e=goog.labs.userAgent.util.extractVersionTuples(e);var t,r=goog.labs.userAgent.engine.getEngineTuple_(e);if(r)return"Gecko"==r[0]?goog.labs.userAgent.engine.getVersionForKey_(e,"Firefox"):r[1];if((e=e[0])&&(t=e[2])&&(t=/Trident\/([^\s;]+)/.exec(t)))return t[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var t=0;t<e.length;t++){var r=e[t];if("Edge"==r[0])return r}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,t){return(e=goog.array.find(e,(function(e){return t==e[0]})))&&e[1]||""},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent("CrKey")},goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),t="";return goog.labs.userAgent.platform.isWindows()?t=(e=(t=/Windows (?:NT|Phone) ([0-9.]+)/).exec(e))?e[1]:"0.0":goog.labs.userAgent.platform.isIos()?t=(e=(t=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/).exec(e))&&e[1].replace(/_/g,"."):goog.labs.userAgent.platform.isMacintosh()?t=(e=(t=/Mac OS X ([0-9_.]+)/).exec(e))?e[1].replace(/_/g,"."):"10":goog.labs.userAgent.platform.isKaiOS()?t=(e=(t=/(?:KaiOS)\/(\S+)/i).exec(e))&&e[1]:goog.labs.userAgent.platform.isAndroid()?t=(e=(t=/Android\s+([^\);]+)(\)|;)/).exec(e))&&e[1]:goog.labs.userAgent.platform.isChromeOS()&&(t=(e=(t=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/).exec(e))&&e[1]),t||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.reflect={},goog.reflect.object=function(e,t){return t},goog.reflect.objectProperty=function(e,t){return e},goog.reflect.sinkValue=function(e){return goog.reflect.sinkValue[" "](e),e},goog.reflect.sinkValue[" "]=goog.nullFunction,goog.reflect.canAccessProperty=function(e,t){try{return goog.reflect.sinkValue(e[t]),!0}catch(e){}return!1},goog.reflect.cache=function(e,t,r,o){return o=o?o(t):t,Object.prototype.hasOwnProperty.call(e,o)?e[o]:e[o]=r(t)},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null},goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigatorTyped();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.ASSUME_IPOD=!1,goog.userAgent.ASSUME_KAIOS=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigatorTyped();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod(),goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos(),goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS(),goog.userAgent.determineVersion_=function(){var e="",t=goog.userAgent.getVersionRegexResult_();return t&&(e=t?t[1]:""),goog.userAgent.IE&&null!=(t=goog.userAgent.getDocumentMode_())&&t>parseFloat(e)?String(t):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();return goog.userAgent.GECKO?/rv:([^\);]+)(\)|;)/.exec(e):goog.userAgent.EDGE?/Edge\/([\d\.]+)/.exec(e):goog.userAgent.IE?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e):goog.userAgent.WEBKIT?/WebKit\/(\S+)/.exec(e):goog.userAgent.OPERA?/(?:Version)[ \/]?(\S+)/.exec(e):void 0},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,t){return goog.string.compareVersions(e,t)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,e,(function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,e)}))},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE)return goog.userAgent.getDocumentMode_()||parseInt(goog.userAgent.VERSION,10)||void 0}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(e){return goog.string.contains(goog.crypt.base64.paddingChars_,e)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||"function"==typeof goog.global.btoa,goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&"function"==typeof goog.global.atob,goog.crypt.base64.encodeByteArray=function(e,t){goog.asserts.assert(goog.isArrayLike(e),"encodeByteArray takes an array as a parameter"),void 0===t&&(t=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),t=goog.crypt.base64.byteToCharMaps_[t];for(var r=[],o=0;o<e.length;o+=3){var a=e[o],n=o+1<e.length,i=n?e[o+1]:0,s=o+2<e.length,p=s?e[o+2]:0,d=a>>2;a=(3&a)<<4|i>>4,i=(15&i)<<2|p>>6,p&=63,s||(p=64,n||(i=64)),r.push(t[d],t[a],t[i]||"",t[p]||"")}return r.join("")},goog.crypt.base64.encodeString=function(e,t){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!t?goog.global.btoa(e):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(e),t)},goog.crypt.base64.decodeString=function(e,t){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!t)return goog.global.atob(e);var r="";return goog.crypt.base64.decodeStringInternal_(e,(function(e){r+=String.fromCharCode(e)})),r},goog.crypt.base64.decodeStringToByteArray=function(e,t){var r=[];return goog.crypt.base64.decodeStringInternal_(e,(function(e){r.push(e)})),r},goog.crypt.base64.decodeStringToUint8Array=function(e){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var t=e.length,r=3*t/4;r%3?r=Math.floor(r):goog.crypt.base64.isPadding_(e[t-1])&&(r=goog.crypt.base64.isPadding_(e[t-2])?r-2:r-1);var o=new Uint8Array(r),a=0;return goog.crypt.base64.decodeStringInternal_(e,(function(e){o[a++]=e})),o.subarray(0,a)},goog.crypt.base64.decodeStringInternal_=function(e,t){function r(t){for(;o<e.length;){var r=e.charAt(o++),a=goog.crypt.base64.charToByteMap_[r];if(null!=a)return a;if(!goog.string.isEmptyOrWhitespace(r))throw Error("Unknown base64 encoding at char: "+r)}return t}goog.crypt.base64.init_();for(var o=0;;){var a=r(-1),n=r(0),i=r(64),s=r(64);if(64===s&&-1===a)break;t(a<<2|n>>4),64!=i&&(t(n<<4&240|i>>2),64!=s&&t(i<<6&192|s))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var e=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),t=["+/=","+/","-_=","-_.","-_"],r=0;5>r;r++){var o=e.concat(t[r].split(""));goog.crypt.base64.byteToCharMaps_[r]=o;for(var a=0;a<o.length;a++){var n=o[a],i=goog.crypt.base64.charToByteMap_[n];void 0===i?goog.crypt.base64.charToByteMap_[n]=a:goog.asserts.assert(i===a)}}}},jspb.utils={},jspb.utils.split64Low=0,jspb.utils.split64High=0,jspb.utils.splitUint64=function(e){var t=e>>>0;e=Math.floor((e-t)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=t,jspb.utils.split64High=e},jspb.utils.splitInt64=function(e){var t=0>e,r=(e=Math.abs(e))>>>0;e=Math.floor((e-r)/jspb.BinaryConstants.TWO_TO_32),e>>>=0,t&&(e=~e>>>0,4294967295<(r=1+(~r>>>0))&&(r=0,4294967295<++e&&(e=0))),jspb.utils.split64Low=r,jspb.utils.split64High=e},jspb.utils.splitZigzag64=function(e){var t=0>e;e=2*Math.abs(e),jspb.utils.splitUint64(e),e=jspb.utils.split64Low;var r=jspb.utils.split64High;t&&(0==e?0==r?r=e=4294967295:(r--,e=4294967295):e--),jspb.utils.split64Low=e,jspb.utils.split64High=r},jspb.utils.splitFloat32=function(e){var t=0>e?1:0;if(0===(e=t?-e:e))0<1/e?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(e))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(e>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|2139095040)>>>0;else if(e<jspb.BinaryConstants.FLOAT32_MIN)e=Math.round(e/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|e)>>>0;else{var r=Math.floor(Math.log(e)/Math.LN2);e*=Math.pow(2,-r),16777216<=(e=Math.round(e*jspb.BinaryConstants.TWO_TO_23))&&++r,jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|r+127<<23|8388607&e)>>>0}},jspb.utils.splitFloat64=function(e){var t=0>e?1:0;if(0===(e=t?-e:e))jspb.utils.split64High=0<1/e?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(e))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(e>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(t<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(e<jspb.BinaryConstants.FLOAT64_MIN){var r=e/Math.pow(2,-1074);e=r/jspb.BinaryConstants.TWO_TO_32,jspb.utils.split64High=(t<<31|e)>>>0,jspb.utils.split64Low=r>>>0}else{var o=0;if(2<=(r=e))for(;2<=r&&1023>o;)o++,r/=2;else for(;1>r&&-1022<o;)r*=2,o--;e=(r=e*Math.pow(2,-o))*jspb.BinaryConstants.TWO_TO_20&1048575,r=r*jspb.BinaryConstants.TWO_TO_52>>>0,jspb.utils.split64High=(t<<31|o+1023<<20|e)>>>0,jspb.utils.split64Low=r}},jspb.utils.splitHash64=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2),a=e.charCodeAt(3),n=e.charCodeAt(4),i=e.charCodeAt(5),s=e.charCodeAt(6);e=e.charCodeAt(7),jspb.utils.split64Low=t+(r<<8)+(o<<16)+(a<<24)>>>0,jspb.utils.split64High=n+(i<<8)+(s<<16)+(e<<24)>>>0},jspb.utils.joinUint64=function(e,t){return t*jspb.BinaryConstants.TWO_TO_32+(e>>>0)},jspb.utils.joinInt64=function(e,t){var r=2147483648&t;return r&&(t=~t>>>0,0==(e=1+~e>>>0)&&(t=t+1>>>0)),e=jspb.utils.joinUint64(e,t),r?-e:e},jspb.utils.toZigzag64=function(e,t,r){var o=t>>31;return r(e<<1^o,(t<<1|e>>>31)^o)},jspb.utils.joinZigzag64=function(e,t){return jspb.utils.fromZigzag64(e,t,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(e,t,r){var o=-(1&e);return r((e>>>1|t<<31)^o,t>>>1^o)},jspb.utils.joinFloat32=function(e,t){t=2*(e>>31)+1;var r=e>>>23&255;return e&=8388607,255==r?e?NaN:1/0*t:0==r?t*Math.pow(2,-149)*e:t*Math.pow(2,r-150)*(e+Math.pow(2,23))},jspb.utils.joinFloat64=function(e,t){var r=2*(t>>31)+1,o=t>>>20&2047;return e=jspb.BinaryConstants.TWO_TO_32*(1048575&t)+e,2047==o?e?NaN:1/0*r:0==o?r*Math.pow(2,-1074)*e:r*Math.pow(2,o-1075)*(e+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(e,t){function r(e,t){return e=e?String(e):"",t?"0000000".slice(e.length)+e:e}if(2097151>=t)return""+jspb.utils.joinUint64(e,t);var o=(e>>>24|t<<8)>>>0&16777215;return e=(16777215&e)+6777216*o+6710656*(t=t>>16&65535),o+=8147497*t,t*=2,1e7<=e&&(o+=Math.floor(e/1e7),e%=1e7),1e7<=o&&(t+=Math.floor(o/1e7),o%=1e7),r(t,0)+r(o,t)+r(e,1)},jspb.utils.joinSignedDecimalString=function(e,t){var r=2147483648&t;return r&&(t=~t+(0==(e=1+~e>>>0)?1:0)>>>0),e=jspb.utils.joinUnsignedDecimalString(e,t),r?"-"+e:e},jspb.utils.hash64ToDecimalString=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var r=jspb.utils.split64High;return t?jspb.utils.joinSignedDecimalString(e,r):jspb.utils.joinUnsignedDecimalString(e,r)},jspb.utils.hash64ArrayToDecimalStrings=function(e,t){for(var r=Array(e.length),o=0;o<e.length;o++)r[o]=jspb.utils.hash64ToDecimalString(e[o],t);return r},jspb.utils.decimalStringToHash64=function(e){function t(e,t){for(var r=0;8>r&&(1!==e||0<t);r++)t=e*o[r]+t,o[r]=255&t,t>>>=8}jspb.asserts.assert(0<e.length);var r=!1;"-"===e[0]&&(r=!0,e=e.slice(1));for(var o=[0,0,0,0,0,0,0,0],a=0;a<e.length;a++)t(10,e.charCodeAt(a)-jspb.utils.ZERO_CHAR_CODE_);return r&&(function(){for(var e=0;8>e;e++)o[e]=255&~o[e]}(),t(1,1)),goog.crypt.byteArrayToString(o)},jspb.utils.splitDecimalString=function(e){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e))},jspb.utils.toHexDigit_=function(e){return String.fromCharCode(10>e?jspb.utils.ZERO_CHAR_CODE_+e:jspb.utils.A_CHAR_CODE_-10+e)},jspb.utils.fromHexCharCode_=function(e){return e>=jspb.utils.A_CHAR_CODE_?e-jspb.utils.A_CHAR_CODE_+10:e-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(e){var t=Array(18);t[0]="0",t[1]="x";for(var r=0;8>r;r++){var o=e.charCodeAt(7-r);t[2*r+2]=jspb.utils.toHexDigit_(o>>4),t[2*r+3]=jspb.utils.toHexDigit_(15&o)}return t.join("")},jspb.utils.hexStringToHash64=function(e){e=e.toLowerCase(),jspb.asserts.assert(18==e.length),jspb.asserts.assert("0"==e[0]),jspb.asserts.assert("x"==e[1]);for(var t="",r=0;8>r;r++){var o=jspb.utils.fromHexCharCode_(e.charCodeAt(2*r+2)),a=jspb.utils.fromHexCharCode_(e.charCodeAt(2*r+3));t=String.fromCharCode(16*o+a)+t}return t},jspb.utils.hash64ToNumber=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var r=jspb.utils.split64High;return t?jspb.utils.joinInt64(e,r):jspb.utils.joinUint64(e,r)},jspb.utils.numberToHash64=function(e){return jspb.utils.splitInt64(e),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(e,t,r){for(var o=0,a=t;a<r;a++)o+=e[a]>>7;return r-t-o},jspb.utils.countVarintFields=function(e,t,r,o){var a=0;if(128>(o=8*o+jspb.BinaryConstants.WireType.VARINT))for(;t<r&&e[t++]==o;)for(a++;;){var n=e[t++];if(0==(128&n))break}else for(;t<r;){for(n=o;128<n;){if(e[t]!=(127&n|128))return a;t++,n>>=7}if(e[t++]!=n)break;for(a++;0!=(128&(n=e[t++])););}return a},jspb.utils.countFixedFields_=function(e,t,r,o,a){var n=0;if(128>o)for(;t<r&&e[t++]==o;)n++,t+=a;else for(;t<r;){for(var i=o;128<i;){if(e[t++]!=(127&i|128))return n;i>>=7}if(e[t++]!=i)break;n++,t+=a}return n},jspb.utils.countFixed32Fields=function(e,t,r,o){return jspb.utils.countFixedFields_(e,t,r,8*o+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(e,t,r,o){return jspb.utils.countFixedFields_(e,t,r,8*o+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(e,t,r,o){var a=0;for(o=8*o+jspb.BinaryConstants.WireType.DELIMITED;t<r;){for(var n=o;128<n;){if(e[t++]!=(127&n|128))return a;n>>=7}if(e[t++]!=n)break;a++;for(var i=0,s=1;i+=(127&(n=e[t++]))*s,s*=128,0!=(128&n););t+=i}return a},jspb.utils.debugBytesToTextFormat=function(e){var t='"';if(e){e=jspb.utils.byteSourceToUint8Array(e);for(var r=0;r<e.length;r++)t+="\\x",16>e[r]&&(t+="0"),t+=e[r].toString(16)}return t+'"'},jspb.utils.debugScalarToTextFormat=function(e){return"string"==typeof e?goog.string.quote(e):e.toString()},jspb.utils.stringToByteArray=function(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;r++){var o=e.charCodeAt(r);if(255<o)throw Error("Conversion error: string contains codepoint outside of byte range");t[r]=o}return t},jspb.utils.byteSourceToUint8Array=function(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?goog.crypt.base64.decodeStringToUint8Array(e):e instanceof Uint8Array?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(jspb.asserts.fail("Type not convertible to Uint8Array."),new Uint8Array(0))},jspb.BinaryDecoder=function(e,t,r){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1,e&&this.setBlock(e,t,r)},jspb.BinaryDecoder.instanceCache_=[],jspb.BinaryDecoder.alloc=function(e,t,r){if(jspb.BinaryDecoder.instanceCache_.length){var o=jspb.BinaryDecoder.instanceCache_.pop();return e&&o.setBlock(e,t,r),o}return new jspb.BinaryDecoder(e,t,r)},jspb.BinaryDecoder.prototype.free=function(){this.clear(),100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(e,t,r){this.bytes_=jspb.utils.byteSourceToUint8Array(e),this.start_=void 0!==t?t:0,this.end_=void 0!==r?this.start_+r:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(e){this.end_=e},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(e){this.cursor_=e},jspb.BinaryDecoder.prototype.advance=function(e){this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(e){for(var t=128,r=0,o=0,a=0;4>a&&128<=t;a++)r|=(127&(t=this.bytes_[this.cursor_++]))<<7*a;if(128<=t&&(r|=(127&(t=this.bytes_[this.cursor_++]))<<28,o|=(127&t)>>4),128<=t)for(a=0;5>a&&128<=t;a++)o|=(127&(t=this.bytes_[this.cursor_++]))<<7*a+3;if(128>t)return e(r>>>0,o>>>0);jspb.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(e){return this.readSplitVarint64((function(t,r){return jspb.utils.fromZigzag64(t,r,e)}))},jspb.BinaryDecoder.prototype.readSplitFixed64=function(e){var t=this.bytes_,r=this.cursor_;this.cursor_+=8;for(var o=0,a=0,n=r+7;n>=r;n--)o=o<<8|t[n],a=a<<8|t[n+4];return e(o,a)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;128&this.bytes_[this.cursor_];)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(e){for(;128<e;)this.cursor_--,e>>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var e=this.bytes_,t=e[this.cursor_+0],r=127&t;return 128>t?(this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(t=e[this.cursor_+1]))<<7,128>t?(this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(t=e[this.cursor_+2]))<<14,128>t?(this.cursor_+=3,jspb.asserts.assert(this.cursor_<=this.end_),r):(r|=(127&(t=e[this.cursor_+3]))<<21,128>t?(this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),r):(r|=(15&(t=e[this.cursor_+4]))<<28,128>t?(this.cursor_+=5,jspb.asserts.assert(this.cursor_<=this.end_),r>>>0):(this.cursor_+=5,128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&jspb.asserts.assert(!1),jspb.asserts.assert(this.cursor_<=this.end_),r)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=function(){return~~this.readUnsignedVarint32()},jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var e=this.readUnsignedVarint32();return e>>>1^-(1&e)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e},jspb.BinaryDecoder.prototype.readUint16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],r=this.bytes_[this.cursor_+2],o=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8|r<<16|o<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUint64(e,t)},jspb.BinaryDecoder.prototype.readUint64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUnsignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readInt8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],r=this.bytes_[this.cursor_+2],o=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8|r<<16|o<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinInt64(e,t)},jspb.BinaryDecoder.prototype.readInt64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinSignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readFloat=function(){var e=this.readUint32();return jspb.utils.joinFloat32(e,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinFloat64(e,t)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(e){var t=this.bytes_,r=this.cursor_;e=r+e;for(var o=[],a="";r<e;){var n=t[r++];if(128>n)o.push(n);else{if(192>n)continue;if(224>n){var i=t[r++];o.push((31&n)<<6|63&i)}else if(240>n){i=t[r++];var s=t[r++];o.push((15&n)<<12|(63&i)<<6|63&s)}else 248>n&&(n=(7&n)<<18|(63&(i=t[r++]))<<12|(63&(s=t[r++]))<<6|63&t[r++],n-=65536,o.push(55296+(n>>10&1023),56320+(1023&n)))}8192<=o.length&&(a+=String.fromCharCode.apply(null,o),o.length=0)}return a+=goog.crypt.byteArrayToString(o),this.cursor_=r,a},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var e=this.readUnsignedVarint32();return this.readString(e)},jspb.BinaryDecoder.prototype.readBytes=function(e){if(0>e||this.cursor_+e>this.bytes_.length)return this.error_=!0,jspb.asserts.fail("Invalid byte length!"),new Uint8Array(0);var t=this.bytes_.subarray(this.cursor_,this.cursor_+e);return this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_),t},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var e=this.bytes_,t=this.cursor_,r=e[t+0],o=e[t+1],a=e[t+2],n=e[t+3],i=e[t+4],s=e[t+5],p=e[t+6];return e=e[t+7],this.cursor_+=8,String.fromCharCode(r,o,a,n,i,s,p,e)},jspb.BinaryReader=function(e,t,r){this.decoder_=jspb.BinaryDecoder.alloc(e,t,r),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(e,t,r){if(jspb.BinaryReader.instanceCache_.length){var o=jspb.BinaryReader.instanceCache_.pop();return e&&o.decoder_.setBlock(e,t,r),o}return new jspb.BinaryReader(e,t,r)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},goog.exportProperty(jspb.BinaryReader.prototype,"getFieldNumber",jspb.BinaryReader.prototype.getFieldNumber),jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},goog.exportProperty(jspb.BinaryReader.prototype,"isDelimited",jspb.BinaryReader.prototype.isDelimited),jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},goog.exportProperty(jspb.BinaryReader.prototype,"isEndGroup",jspb.BinaryReader.prototype.isEndGroup),jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(e,t,r){this.decoder_.setBlock(e,t,r),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(e){this.decoder_.advance(e)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return jspb.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var e=this.decoder_.readUnsignedVarint32(),t=e>>>3;return(e&=7)!=jspb.BinaryConstants.WireType.VARINT&&e!=jspb.BinaryConstants.WireType.FIXED32&&e!=jspb.BinaryConstants.WireType.FIXED64&&e!=jspb.BinaryConstants.WireType.DELIMITED&&e!=jspb.BinaryConstants.WireType.START_GROUP&&e!=jspb.BinaryConstants.WireType.END_GROUP?(jspb.asserts.fail("Invalid wire type: %s (at position %s)",e,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=t,this.nextWireType_=e,!0)},goog.exportProperty(jspb.BinaryReader.prototype,"nextField",jspb.BinaryReader.prototype.nextField),jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var e=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==e;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(jspb.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)jspb.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var e=this.decoder_.readUnsignedVarint32();this.decoder_.advance(e)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(jspb.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(jspb.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){for(var e=this.nextField_;;){if(!this.nextField()){jspb.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=e&&(jspb.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:jspb.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(e,t){null===this.readCallbacks_&&(this.readCallbacks_={}),jspb.asserts.assert(!this.readCallbacks_[e]),this.readCallbacks_[e]=t},jspb.BinaryReader.prototype.runReadCallback=function(e){return jspb.asserts.assert(null!==this.readCallbacks_),e=this.readCallbacks_[e],jspb.asserts.assert(e),e(this)},jspb.BinaryReader.prototype.readAny=function(e){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(e);var t=jspb.BinaryConstants.FieldType;switch(e){case t.DOUBLE:return this.readDouble();case t.FLOAT:return this.readFloat();case t.INT64:return this.readInt64();case t.UINT64:return this.readUint64();case t.INT32:return this.readInt32();case t.FIXED64:return this.readFixed64();case t.FIXED32:return this.readFixed32();case t.BOOL:return this.readBool();case t.STRING:return this.readString();case t.GROUP:jspb.asserts.fail("Group field type not supported in readAny()");case t.MESSAGE:jspb.asserts.fail("Message field type not supported in readAny()");case t.BYTES:return this.readBytes();case t.UINT32:return this.readUint32();case t.ENUM:return this.readEnum();case t.SFIXED32:return this.readSfixed32();case t.SFIXED64:return this.readSfixed64();case t.SINT32:return this.readSint32();case t.SINT64:return this.readSint64();case t.FHASH64:return this.readFixedHash64();case t.VHASH64:return this.readVarintHash64();default:jspb.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(e,t){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var r=this.decoder_.getEnd(),o=this.decoder_.readUnsignedVarint32();o=this.decoder_.getCursor()+o,this.decoder_.setEnd(o),t(e,this),this.decoder_.setCursor(o),this.decoder_.setEnd(r)},goog.exportProperty(jspb.BinaryReader.prototype,"readMessage",jspb.BinaryReader.prototype.readMessage),jspb.BinaryReader.prototype.readGroup=function(e,t,r){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),jspb.asserts.assert(this.nextField_==e),r(t,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(jspb.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},goog.exportProperty(jspb.BinaryReader.prototype,"readGroup",jspb.BinaryReader.prototype.readGroup),jspb.BinaryReader.prototype.getFieldDecoder=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32(),t=this.decoder_.getCursor(),r=t+e;return e=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),t,e),this.decoder_.setCursor(r),e},jspb.BinaryReader.prototype.readInt32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt32",jspb.BinaryReader.prototype.readInt32),jspb.BinaryReader.prototype.readInt32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt64",jspb.BinaryReader.prototype.readInt64),jspb.BinaryReader.prototype.readInt64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint32",jspb.BinaryReader.prototype.readUint32),jspb.BinaryReader.prototype.readUint32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint64",jspb.BinaryReader.prototype.readUint64),jspb.BinaryReader.prototype.readUint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint32",jspb.BinaryReader.prototype.readSint32),jspb.BinaryReader.prototype.readSint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint64",jspb.BinaryReader.prototype.readSint64),jspb.BinaryReader.prototype.readSint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed32",jspb.BinaryReader.prototype.readFixed32),jspb.BinaryReader.prototype.readFixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed64",jspb.BinaryReader.prototype.readFixed64),jspb.BinaryReader.prototype.readFixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed32",jspb.BinaryReader.prototype.readSfixed32),jspb.BinaryReader.prototype.readSfixed32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed64",jspb.BinaryReader.prototype.readSfixed64),jspb.BinaryReader.prototype.readSfixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},goog.exportProperty(jspb.BinaryReader.prototype,"readFloat",jspb.BinaryReader.prototype.readFloat),jspb.BinaryReader.prototype.readDouble=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},goog.exportProperty(jspb.BinaryReader.prototype,"readDouble",jspb.BinaryReader.prototype.readDouble),jspb.BinaryReader.prototype.readBool=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readBool",jspb.BinaryReader.prototype.readBool),jspb.BinaryReader.prototype.readEnum=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readEnum",jspb.BinaryReader.prototype.readEnum),jspb.BinaryReader.prototype.readString=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readString",jspb.BinaryReader.prototype.readString),jspb.BinaryReader.prototype.readBytes=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readBytes",jspb.BinaryReader.prototype.readBytes),jspb.BinaryReader.prototype.readVarintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(e)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64((function(t,r){return jspb.utils.fromZigzag64(t,r,e)}))},jspb.BinaryReader.prototype.readFixedHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(e)},jspb.BinaryReader.prototype.readPackedField_=function(e){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var t=this.decoder_.readUnsignedVarint32();t=this.decoder_.getCursor()+t;for(var r=[];this.decoder_.getCursor()<t;)r.push(e.call(this.decoder_));return r},jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt32",jspb.BinaryReader.prototype.readPackedInt32),jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)},jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt64",jspb.BinaryReader.prototype.readPackedInt64),jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)},jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint32",jspb.BinaryReader.prototype.readPackedUint32),jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)},jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint64",jspb.BinaryReader.prototype.readPackedUint64),jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)},jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint32",jspb.BinaryReader.prototype.readPackedSint32),jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint64",jspb.BinaryReader.prototype.readPackedSint64),jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)},jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed32",jspb.BinaryReader.prototype.readPackedFixed32),jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed64",jspb.BinaryReader.prototype.readPackedFixed64),jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)},jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed32",jspb.BinaryReader.prototype.readPackedSfixed32),jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed64",jspb.BinaryReader.prototype.readPackedSfixed64),jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)},jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFloat",jspb.BinaryReader.prototype.readPackedFloat),jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedDouble",jspb.BinaryReader.prototype.readPackedDouble),jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedBool",jspb.BinaryReader.prototype.readPackedBool),jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedEnum",jspb.BinaryReader.prototype.readPackedEnum),jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)},jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)},jspb.BinaryEncoder=function(){this.buffer_=[]},jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length},jspb.BinaryEncoder.prototype.end=function(){var e=this.buffer_;return this.buffer_=[],e},jspb.BinaryEncoder.prototype.writeSplitVarint64=function(e,t){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32);0<t||127<e;)this.buffer_.push(127&e|128),e=(e>>>7|t<<25)>>>0,t>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(e,t){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUint32(e),this.writeUint32(t)},jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(e){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32);127<e;)this.buffer_.push(127&e|128),e>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(e){if(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),0<=e)this.writeUnsignedVarint32(e);else{for(var t=0;9>t;t++)this.buffer_.push(127&e|128),e>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeSignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeUnsignedVarint32((e<<1^e>>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitZigzag64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(e){this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(e))},jspb.BinaryEncoder.prototype.writeZigzagVarintHash64=function(e){var t=this;jspb.utils.splitHash64(e),jspb.utils.toZigzag64(jspb.utils.split64Low,jspb.utils.split64High,(function(e,r){t.writeSplitVarint64(e>>>0,r>>>0)}))},jspb.BinaryEncoder.prototype.writeUint8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&256>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&65536>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitUint64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-128<=e&&128>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-32768<=e&&32768>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt64String=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(+e>=-jspb.BinaryConstants.TWO_TO_63&&+e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e)),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFloat=function(e){jspb.asserts.assert(1/0===e||-1/0===e||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT32_MAX&&e<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(e),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(e){jspb.asserts.assert(1/0===e||-1/0===e||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT64_MAX&&e<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(e){jspb.asserts.assert("boolean"==typeof e||"number"==typeof e),this.buffer_.push(e?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32(e)},jspb.BinaryEncoder.prototype.writeBytes=function(e){this.buffer_.push.apply(this.buffer_,e)},jspb.BinaryEncoder.prototype.writeVarintHash64=function(e){jspb.utils.splitHash64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFixedHash64=function(e){jspb.utils.splitHash64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeString=function(e){var t=this.buffer_.length;jspb.asserts.assertString(e);for(var r=0;r<e.length;r++){var o=e.charCodeAt(r);if(128>o)this.buffer_.push(o);else if(2048>o)this.buffer_.push(o>>6|192),this.buffer_.push(63&o|128);else if(65536>o)if(55296<=o&&56319>=o&&r+1<e.length){var a=e.charCodeAt(r+1);56320<=a&&57343>=a&&(o=1024*(o-55296)+a-56320+65536,this.buffer_.push(o>>18|240),this.buffer_.push(o>>12&63|128),this.buffer_.push(o>>6&63|128),this.buffer_.push(63&o|128),r++)}else this.buffer_.push(o>>12|224),this.buffer_.push(o>>6&63|128),this.buffer_.push(63&o|128)}return this.buffer_.length-t},jspb.arith={},jspb.arith.UInt64=function(e,t){this.lo=e,this.hi=t},jspb.arith.UInt64.prototype.cmp=function(e){return this.hi<e.hi||this.hi==e.hi&&this.lo<e.lo?-1:this.hi==e.hi&&this.lo==e.lo?0:1},jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(1&this.hi)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(2147483648&this.hi)},jspb.arith.UInt64.prototype.lsb=function(){return!!(1&this.lo)},jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi},jspb.arith.UInt64.prototype.add=function(e){return new jspb.arith.UInt64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(e){return new jspb.arith.UInt64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(e,t){var r=65535&e,o=65535&t,a=t>>>16;for(t=r*o+65536*(r*a&65535)+65536*((e>>>=16)*o&65535),r=e*a+(r*a>>>16)+(e*o>>>16);4294967296<=t;)t-=4294967296,r+=1;return new jspb.arith.UInt64(t>>>0,r>>>0)},jspb.arith.UInt64.prototype.mul=function(e){var t=jspb.arith.UInt64.mul32x32(this.lo,e);return(e=jspb.arith.UInt64.mul32x32(this.hi,e)).hi=e.lo,e.lo=0,t.add(e)},jspb.arith.UInt64.prototype.div=function(e){if(0==e)return[];var t=new jspb.arith.UInt64(0,0),r=new jspb.arith.UInt64(this.lo,this.hi);e=new jspb.arith.UInt64(e,0);for(var o=new jspb.arith.UInt64(1,0);!e.msb();)e=e.leftShift(),o=o.leftShift();for(;!o.zero();)0>=e.cmp(r)&&(t=t.add(o),r=r.sub(e)),e=e.rightShift(),o=o.rightShift();return[t,r]},jspb.arith.UInt64.prototype.toString=function(){for(var e="",t=this;!t.zero();){var r=(t=t.div(10))[0];e=t[1].lo+e,t=r}return""==e&&(e="0"),e},jspb.arith.UInt64.fromString=function(e){for(var t=new jspb.arith.UInt64(0,0),r=new jspb.arith.UInt64(0,0),o=0;o<e.length;o++){if("0">e[o]||"9"<e[o])return null;var a=parseInt(e[o],10);r.lo=a,t=t.mul(10).add(r)}return t},jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)},jspb.arith.Int64=function(e,t){this.lo=e,this.hi=t},jspb.arith.Int64.prototype.add=function(e){return new jspb.arith.Int64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(e){return new jspb.arith.Int64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var e=0!=(2147483648&this.hi),t=new jspb.arith.UInt64(this.lo,this.hi);return e&&(t=new jspb.arith.UInt64(0,0).sub(t)),(e?"-":"")+t.toString()},jspb.arith.Int64.fromString=function(e){var t=0<e.length&&"-"==e[0];return t&&(e=e.substring(1)),null===(e=jspb.arith.UInt64.fromString(e))?null:(t&&(e=new jspb.arith.UInt64(0,0).sub(e)),new jspb.arith.Int64(e.lo,e.hi))},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(e){var t=this.encoder_.end();this.blocks_.push(t),this.blocks_.push(e),this.totalLength_+=t.length+e.length},jspb.BinaryWriter.prototype.beginDelimited_=function(e){return this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),e=this.encoder_.end(),this.blocks_.push(e),this.totalLength_+=e.length,e.push(this.totalLength_),e},jspb.BinaryWriter.prototype.endDelimited_=function(e){var t=e.pop();for(t=this.totalLength_+this.encoder_.length()-t,jspb.asserts.assert(0<=t);127<t;)e.push(127&t|128),t>>>=7,this.totalLength_++;e.push(t),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(e,t,r){this.appendUint8Array_(e.subarray(t,r))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(e,t,r){null!=e&&null!=t&&null!=r&&this.writeSerializedMessage(e,t,r)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){jspb.asserts.assert(0==this.bookmarks_.length);for(var e=new Uint8Array(this.totalLength_+this.encoder_.length()),t=this.blocks_,r=t.length,o=0,a=0;a<r;a++){var n=t[a];e.set(n,o),o+=n.length}return t=this.encoder_.end(),e.set(t,o),o+=t.length,jspb.asserts.assert(o==e.length),this.blocks_=[e],e},goog.exportProperty(jspb.BinaryWriter.prototype,"getResultBuffer",jspb.BinaryWriter.prototype.getResultBuffer),jspb.BinaryWriter.prototype.getResultBase64String=function(e){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),e)},jspb.BinaryWriter.prototype.beginSubMessage=function(e){this.bookmarks_.push(this.beginDelimited_(e))},jspb.BinaryWriter.prototype.endSubMessage=function(){jspb.asserts.assert(0<=this.bookmarks_.length),this.endDelimited_(this.bookmarks_.pop())},jspb.BinaryWriter.prototype.writeFieldHeader_=function(e,t){jspb.asserts.assert(1<=e&&e==Math.floor(e)),this.encoder_.writeUnsignedVarint32(8*e+t)},jspb.BinaryWriter.prototype.writeAny=function(e,t,r){var o=jspb.BinaryConstants.FieldType;switch(e){case o.DOUBLE:this.writeDouble(t,r);break;case o.FLOAT:this.writeFloat(t,r);break;case o.INT64:this.writeInt64(t,r);break;case o.UINT64:this.writeUint64(t,r);break;case o.INT32:this.writeInt32(t,r);break;case o.FIXED64:this.writeFixed64(t,r);break;case o.FIXED32:this.writeFixed32(t,r);break;case o.BOOL:this.writeBool(t,r);break;case o.STRING:this.writeString(t,r);break;case o.GROUP:jspb.asserts.fail("Group field type not supported in writeAny()");break;case o.MESSAGE:jspb.asserts.fail("Message field type not supported in writeAny()");break;case o.BYTES:this.writeBytes(t,r);break;case o.UINT32:this.writeUint32(t,r);break;case o.ENUM:this.writeEnum(t,r);break;case o.SFIXED32:this.writeSfixed32(t,r);break;case o.SFIXED64:this.writeSfixed64(t,r);break;case o.SINT32:this.writeSint32(t,r);break;case o.SINT64:this.writeSint64(t,r);break;case o.FHASH64:this.writeFixedHash64(t,r);break;case o.VHASH64:this.writeVarintHash64(t,r);break;default:jspb.asserts.fail("Invalid field type in writeAny()")}},jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(t))},jspb.BinaryWriter.prototype.writeSignedVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(t))},jspb.BinaryWriter.prototype.writeSignedVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(t))},jspb.BinaryWriter.prototype.writeZigzagVarintHash64_=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarintHash64(t))},jspb.BinaryWriter.prototype.writeInt32=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt32",jspb.BinaryWriter.prototype.writeInt32),jspb.BinaryWriter.prototype.writeInt32String=function(e,t){null!=t&&(t=parseInt(t,10),jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt64=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt64",jspb.BinaryWriter.prototype.writeInt64),jspb.BinaryWriter.prototype.writeInt64String=function(e,t){null!=t&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeUint32=function(e,t){null!=t&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint32",jspb.BinaryWriter.prototype.writeUint32),jspb.BinaryWriter.prototype.writeUint32String=function(e,t){null!=t&&(t=parseInt(t,10),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint64=function(e,t){null!=t&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint64",jspb.BinaryWriter.prototype.writeUint64),jspb.BinaryWriter.prototype.writeUint64String=function(e,t){null!=t&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSint32=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint32",jspb.BinaryWriter.prototype.writeSint32),jspb.BinaryWriter.prototype.writeSint64=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint64",jspb.BinaryWriter.prototype.writeSint64),jspb.BinaryWriter.prototype.writeSintHash64=function(e,t){null!=t&&this.writeZigzagVarintHash64_(e,t)},jspb.BinaryWriter.prototype.writeSint64String=function(e,t){null!=t&&this.writeZigzagVarint64String_(e,t)},jspb.BinaryWriter.prototype.writeFixed32=function(e,t){null!=t&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed32",jspb.BinaryWriter.prototype.writeFixed32),jspb.BinaryWriter.prototype.writeFixed64=function(e,t){null!=t&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed64",jspb.BinaryWriter.prototype.writeFixed64),jspb.BinaryWriter.prototype.writeFixed64String=function(e,t){null!=t&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSfixed32=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed32",jspb.BinaryWriter.prototype.writeSfixed32),jspb.BinaryWriter.prototype.writeSfixed64=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed64",jspb.BinaryWriter.prototype.writeSfixed64),jspb.BinaryWriter.prototype.writeSfixed64String=function(e,t){null!=t&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeFloat=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFloat",jspb.BinaryWriter.prototype.writeFloat),jspb.BinaryWriter.prototype.writeDouble=function(e,t){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeDouble",jspb.BinaryWriter.prototype.writeDouble),jspb.BinaryWriter.prototype.writeBool=function(e,t){null!=t&&(jspb.asserts.assert("boolean"==typeof t||"number"==typeof t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBool",jspb.BinaryWriter.prototype.writeBool),jspb.BinaryWriter.prototype.writeEnum=function(e,t){null!=t&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeEnum",jspb.BinaryWriter.prototype.writeEnum),jspb.BinaryWriter.prototype.writeString=function(e,t){null!=t&&(e=this.beginDelimited_(e),this.encoder_.writeString(t),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeString",jspb.BinaryWriter.prototype.writeString),jspb.BinaryWriter.prototype.writeBytes=function(e,t){null!=t&&(t=jspb.utils.byteSourceToUint8Array(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),this.appendUint8Array_(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBytes",jspb.BinaryWriter.prototype.writeBytes),jspb.BinaryWriter.prototype.writeMessage=function(e,t,r){null!=t&&(e=this.beginDelimited_(e),r(t,this),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeMessage",jspb.BinaryWriter.prototype.writeMessage),jspb.BinaryWriter.prototype.writeMessageSet=function(e,t,r){null!=t&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(e),e=this.beginDelimited_(3),r(t,this),this.endDelimited_(e),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeGroup=function(e,t,r){null!=t&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),r(t,this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeGroup",jspb.BinaryWriter.prototype.writeGroup),jspb.BinaryWriter.prototype.writeFixedHash64=function(e,t){null!=t&&(jspb.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(t))},jspb.BinaryWriter.prototype.writeVarintHash64=function(e,t){null!=t&&(jspb.asserts.assert(8==t.length),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(t))},jspb.BinaryWriter.prototype.writeSplitFixed64=function(e,t,r){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t,r)},jspb.BinaryWriter.prototype.writeSplitVarint64=function(e,t,r){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t,r)},jspb.BinaryWriter.prototype.writeSplitZigzagVarint64=function(e,t,r){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT);var o=this.encoder_;jspb.utils.toZigzag64(t,r,(function(e,t){o.writeSplitVarint64(e>>>0,t>>>0)}))},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSignedVarint32_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt32",jspb.BinaryWriter.prototype.writeRepeatedInt32),jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeInt32String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedInt64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSignedVarint64_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt64",jspb.BinaryWriter.prototype.writeRepeatedInt64),jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64=function(e,t,r,o){if(null!=t)for(var a=0;a<t.length;a++)this.writeSplitFixed64(e,r(t[a]),o(t[a]))},jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64=function(e,t,r,o){if(null!=t)for(var a=0;a<t.length;a++)this.writeSplitVarint64(e,r(t[a]),o(t[a]))},jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64=function(e,t,r,o){if(null!=t)for(var a=0;a<t.length;a++)this.writeSplitZigzagVarint64(e,r(t[a]),o(t[a]))},jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeInt64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUnsignedVarint32_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint32",jspb.BinaryWriter.prototype.writeRepeatedUint32),jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUint32String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedUint64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUnsignedVarint64_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint64",jspb.BinaryWriter.prototype.writeRepeatedUint64),jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeUint64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSint32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint32_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint32",jspb.BinaryWriter.prototype.writeRepeatedSint32),jspb.BinaryWriter.prototype.writeRepeatedSint64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint64_(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint64",jspb.BinaryWriter.prototype.writeRepeatedSint64),jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarint64String_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedSintHash64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeZigzagVarintHash64_(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed32(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed32",jspb.BinaryWriter.prototype.writeRepeatedFixed32),jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed64(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64",jspb.BinaryWriter.prototype.writeRepeatedFixed64),jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixed64String(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64String",jspb.BinaryWriter.prototype.writeRepeatedFixed64String),jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed32(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed32",jspb.BinaryWriter.prototype.writeRepeatedSfixed32),jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed64(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed64",jspb.BinaryWriter.prototype.writeRepeatedSfixed64),jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeSfixed64String(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedFloat=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFloat(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFloat",jspb.BinaryWriter.prototype.writeRepeatedFloat),jspb.BinaryWriter.prototype.writeRepeatedDouble=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeDouble(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedDouble",jspb.BinaryWriter.prototype.writeRepeatedDouble),jspb.BinaryWriter.prototype.writeRepeatedBool=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeBool(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBool",jspb.BinaryWriter.prototype.writeRepeatedBool),jspb.BinaryWriter.prototype.writeRepeatedEnum=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeEnum(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedEnum",jspb.BinaryWriter.prototype.writeRepeatedEnum),jspb.BinaryWriter.prototype.writeRepeatedString=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeString(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedString",jspb.BinaryWriter.prototype.writeRepeatedString),jspb.BinaryWriter.prototype.writeRepeatedBytes=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeBytes(e,t[r])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBytes",jspb.BinaryWriter.prototype.writeRepeatedBytes),jspb.BinaryWriter.prototype.writeRepeatedMessage=function(e,t,r){if(null!=t)for(var o=0;o<t.length;o++){var a=this.beginDelimited_(e);r(t[o],this),this.endDelimited_(a)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedMessage",jspb.BinaryWriter.prototype.writeRepeatedMessage),jspb.BinaryWriter.prototype.writeRepeatedGroup=function(e,t,r){if(null!=t)for(var o=0;o<t.length;o++)this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),r(t[o],this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP)},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedGroup",jspb.BinaryWriter.prototype.writeRepeatedGroup),jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeFixedHash64(e,t[r])},jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(e,t){if(null!=t)for(var r=0;r<t.length;r++)this.writeVarintHash64(e,t[r])},jspb.BinaryWriter.prototype.writePackedInt32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeSignedVarint32(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt32",jspb.BinaryWriter.prototype.writePackedInt32),jspb.BinaryWriter.prototype.writePackedInt32String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeSignedVarint32(parseInt(t[r],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeSignedVarint64(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt64",jspb.BinaryWriter.prototype.writePackedInt64),jspb.BinaryWriter.prototype.writePackedSplitFixed64=function(e,t,r,o){if(null!=t){e=this.beginDelimited_(e);for(var a=0;a<t.length;a++)this.encoder_.writeSplitFixed64(r(t[a]),o(t[a]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitVarint64=function(e,t,r,o){if(null!=t){e=this.beginDelimited_(e);for(var a=0;a<t.length;a++)this.encoder_.writeSplitVarint64(r(t[a]),o(t[a]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64=function(e,t,r,o){if(null!=t){e=this.beginDelimited_(e);for(var a=this.encoder_,n=0;n<t.length;n++)jspb.utils.toZigzag64(r(t[n]),o(t[n]),(function(e,t){a.writeSplitVarint64(e>>>0,t>>>0)}));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++){var o=jspb.arith.Int64.fromString(t[r]);this.encoder_.writeSplitVarint64(o.lo,o.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeUnsignedVarint32(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint32",jspb.BinaryWriter.prototype.writePackedUint32),jspb.BinaryWriter.prototype.writePackedUint32String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeUnsignedVarint32(parseInt(t[r],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeUnsignedVarint64(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint64",jspb.BinaryWriter.prototype.writePackedUint64),jspb.BinaryWriter.prototype.writePackedUint64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++){var o=jspb.arith.UInt64.fromString(t[r]);this.encoder_.writeSplitVarint64(o.lo,o.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint32=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeZigzagVarint32(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint32",jspb.BinaryWriter.prototype.writePackedSint32),jspb.BinaryWriter.prototype.writePackedSint64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeZigzagVarint64(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint64",jspb.BinaryWriter.prototype.writePackedSint64),jspb.BinaryWriter.prototype.writePackedSint64String=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(t[r]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSintHash64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeZigzagVarintHash64(t[r]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedFixed32=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeUint32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed32",jspb.BinaryWriter.prototype.writePackedFixed32),jspb.BinaryWriter.prototype.writePackedFixed64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeUint64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed64",jspb.BinaryWriter.prototype.writePackedFixed64),jspb.BinaryWriter.prototype.writePackedFixed64String=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++){var r=jspb.arith.UInt64.fromString(t[e]);this.encoder_.writeSplitFixed64(r.lo,r.hi)}},jspb.BinaryWriter.prototype.writePackedSfixed32=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeInt32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed32",jspb.BinaryWriter.prototype.writePackedSfixed32),jspb.BinaryWriter.prototype.writePackedSfixed64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed64",jspb.BinaryWriter.prototype.writePackedSfixed64),jspb.BinaryWriter.prototype.writePackedSfixed64String=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64String(t[e])},jspb.BinaryWriter.prototype.writePackedFloat=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeFloat(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFloat",jspb.BinaryWriter.prototype.writePackedFloat),jspb.BinaryWriter.prototype.writePackedDouble=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeDouble(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedDouble",jspb.BinaryWriter.prototype.writePackedDouble),jspb.BinaryWriter.prototype.writePackedBool=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),e=0;e<t.length;e++)this.encoder_.writeBool(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedBool",jspb.BinaryWriter.prototype.writePackedBool),jspb.BinaryWriter.prototype.writePackedEnum=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeEnum(t[r]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedEnum",jspb.BinaryWriter.prototype.writePackedEnum),jspb.BinaryWriter.prototype.writePackedFixedHash64=function(e,t){if(null!=t&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeFixedHash64(t[e])},jspb.BinaryWriter.prototype.writePackedVarintHash64=function(e,t){if(null!=t&&t.length){e=this.beginDelimited_(e);for(var r=0;r<t.length;r++)this.encoder_.writeVarintHash64(t[r]);this.endDelimited_(e)}},jspb.Map=function(e,t){this.arr_=e,this.valueCtor_=t,this.map_={},this.arrClean=!0,0<this.arr_.length&&this.loadFromArray_()},goog.exportSymbol("jspb.Map",jspb.Map),jspb.Map.prototype.loadFromArray_=function(){for(var e=0;e<this.arr_.length;e++){var t=this.arr_[e],r=t[0];this.map_[r.toString()]=new jspb.Map.Entry_(r,t[1])}this.arrClean=!0},jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var e,t=this.map_;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var r=t[e].valueWrapper;r&&r.toArray()}}}else{for(this.arr_.length=0,(t=this.stringKeys_()).sort(),e=0;e<t.length;e++){var o=this.map_[t[e]];(r=o.valueWrapper)&&r.toArray(),this.arr_.push([o.key,o.value])}this.arrClean=!0}return this.arr_},goog.exportProperty(jspb.Map.prototype,"toArray",jspb.Map.prototype.toArray),jspb.Map.prototype.toObject=function(e,t){for(var r=this.toArray(),o=[],a=0;a<r.length;a++){var n=this.map_[r[a][0].toString()];this.wrapEntry_(n);var i=n.valueWrapper;i?(jspb.asserts.assert(t),o.push([n.key,t(e,i)])):o.push([n.key,n.value])}return o},goog.exportProperty(jspb.Map.prototype,"toObject",jspb.Map.prototype.toObject),jspb.Map.fromObject=function(e,t,r){t=new jspb.Map([],t);for(var o=0;o<e.length;o++){var a=e[o][0],n=r(e[o][1]);t.set(a,n)}return t},goog.exportProperty(jspb.Map,"fromObject",jspb.Map.fromObject),jspb.Map.ArrayIteratorIterable_=function(e){this.idx_=0,this.arr_=e},jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}},"undefined"!=typeof Symbol&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this}),jspb.Map.prototype.getLength=function(){return this.stringKeys_().length},goog.exportProperty(jspb.Map.prototype,"getLength",jspb.Map.prototype.getLength),jspb.Map.prototype.clear=function(){this.map_={},this.arrClean=!1},goog.exportProperty(jspb.Map.prototype,"clear",jspb.Map.prototype.clear),jspb.Map.prototype.del=function(e){e=e.toString();var t=this.map_.hasOwnProperty(e);return delete this.map_[e],this.arrClean=!1,t},goog.exportProperty(jspb.Map.prototype,"del",jspb.Map.prototype.del),jspb.Map.prototype.getEntryList=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++){var o=this.map_[t[r]];e.push([o.key,o.value])}return e},goog.exportProperty(jspb.Map.prototype,"getEntryList",jspb.Map.prototype.getEntryList),jspb.Map.prototype.entries=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++){var o=this.map_[t[r]];e.push([o.key,this.wrapEntry_(o)])}return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"entries",jspb.Map.prototype.entries),jspb.Map.prototype.keys=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++)e.push(this.map_[t[r]].key);return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"keys",jspb.Map.prototype.keys),jspb.Map.prototype.values=function(){var e=[],t=this.stringKeys_();t.sort();for(var r=0;r<t.length;r++)e.push(this.wrapEntry_(this.map_[t[r]]));return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"values",jspb.Map.prototype.values),jspb.Map.prototype.forEach=function(e,t){var r=this.stringKeys_();r.sort();for(var o=0;o<r.length;o++){var a=this.map_[r[o]];e.call(t,this.wrapEntry_(a),a.key,this)}},goog.exportProperty(jspb.Map.prototype,"forEach",jspb.Map.prototype.forEach),jspb.Map.prototype.set=function(e,t){var r=new jspb.Map.Entry_(e);return this.valueCtor_?(r.valueWrapper=t,r.value=t.toArray()):r.value=t,this.map_[e.toString()]=r,this.arrClean=!1,this},goog.exportProperty(jspb.Map.prototype,"set",jspb.Map.prototype.set),jspb.Map.prototype.wrapEntry_=function(e){return this.valueCtor_?(e.valueWrapper||(e.valueWrapper=new this.valueCtor_(e.value)),e.valueWrapper):e.value},jspb.Map.prototype.get=function(e){if(e=this.map_[e.toString()])return this.wrapEntry_(e)},goog.exportProperty(jspb.Map.prototype,"get",jspb.Map.prototype.get),jspb.Map.prototype.has=function(e){return e.toString()in this.map_},goog.exportProperty(jspb.Map.prototype,"has",jspb.Map.prototype.has),jspb.Map.prototype.serializeBinary=function(e,t,r,o,a){var n=this.stringKeys_();n.sort();for(var i=0;i<n.length;i++){var s=this.map_[n[i]];t.beginSubMessage(e),r.call(t,1,s.key),this.valueCtor_?o.call(t,2,this.wrapEntry_(s),a):o.call(t,2,s.value),t.endSubMessage()}},goog.exportProperty(jspb.Map.prototype,"serializeBinary",jspb.Map.prototype.serializeBinary),jspb.Map.deserializeBinary=function(e,t,r,o,a,n,i){for(;t.nextField()&&!t.isEndGroup();){var s=t.getFieldNumber();1==s?n=r.call(t):2==s&&(e.valueCtor_?(jspb.asserts.assert(a),i||(i=new e.valueCtor_),o.call(t,i,a)):i=o.call(t))}jspb.asserts.assert(null!=n),jspb.asserts.assert(null!=i),e.set(n,i)},goog.exportProperty(jspb.Map,"deserializeBinary",jspb.Map.deserializeBinary),jspb.Map.prototype.stringKeys_=function(){var e,t=this.map_,r=[];for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.push(e);return r},jspb.Map.Entry_=function(e,t){this.key=e,this.value=t,this.valueWrapper=void 0},jspb.ExtensionFieldInfo=function(e,t,r,o,a){this.fieldIndex=e,this.fieldName=t,this.ctor=r,this.toObjectFn=o,this.isRepeated=a},goog.exportSymbol("jspb.ExtensionFieldInfo",jspb.ExtensionFieldInfo),jspb.ExtensionFieldBinaryInfo=function(e,t,r,o,a,n){this.fieldInfo=e,this.binaryReaderFn=t,this.binaryWriterFn=r,this.binaryMessageSerializeFn=o,this.binaryMessageDeserializeFn=a,this.isPacked=n},goog.exportSymbol("jspb.ExtensionFieldBinaryInfo",jspb.ExtensionFieldBinaryInfo),jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor},goog.exportProperty(jspb.ExtensionFieldInfo.prototype,"isMessageType",jspb.ExtensionFieldInfo.prototype.isMessageType),jspb.Message=function(){},goog.exportSymbol("jspb.Message",jspb.Message),jspb.Message.GENERATE_TO_OBJECT=!0,goog.exportProperty(jspb.Message,"GENERATE_TO_OBJECT",jspb.Message.GENERATE_TO_OBJECT),jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE,goog.exportProperty(jspb.Message,"GENERATE_FROM_OBJECT",jspb.Message.GENERATE_FROM_OBJECT),jspb.Message.GENERATE_TO_STRING=!0,jspb.Message.ASSUME_LOCAL_ARRAYS=!1,jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0,jspb.Message.SUPPORTS_UINT8ARRAY_="function"==typeof Uint8Array,jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_},goog.exportProperty(jspb.Message.prototype,"getJsPbMessageId",jspb.Message.prototype.getJsPbMessageId),jspb.Message.getIndex_=function(e,t){return t+e.arrayIndexOffset_},jspb.Message.hiddenES6Property_=function(){},jspb.Message.getFieldNumber_=function(e,t){return t-e.arrayIndexOffset_},jspb.Message.initialize=function(e,t,r,o,a,n){if(e.wrappers_=null,t||(t=r?[r]:[]),e.messageId_=r?String(r):void 0,e.arrayIndexOffset_=0===r?-1:0,e.array=t,jspb.Message.initPivotAndExtensionObject_(e,o),e.convertedPrimitiveFields_={},jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(e.repeatedFields=a),a)for(t=0;t<a.length;t++)(r=a[t])<e.pivot_?(r=jspb.Message.getIndex_(e,r),e.array[r]=e.array[r]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[r]=e.extensionObject_[r]||jspb.Message.EMPTY_LIST_SENTINEL_);if(n&&n.length)for(t=0;t<n.length;t++)jspb.Message.computeOneofCase(e,n[t])},goog.exportProperty(jspb.Message,"initialize",jspb.Message.initialize),jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[],jspb.Message.isArray_=function(e){return jspb.Message.ASSUME_LOCAL_ARRAYS?e instanceof Array:Array.isArray(e)},jspb.Message.isExtensionObject_=function(e){return!(null===e||"object"!=typeof e||jspb.Message.isArray_(e)||jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)},jspb.Message.initPivotAndExtensionObject_=function(e,t){var r=e.array.length,o=-1;if(r&&(o=r-1,r=e.array[o],jspb.Message.isExtensionObject_(r)))return e.pivot_=jspb.Message.getFieldNumber_(e,o),void(e.extensionObject_=r);-1<t?(e.pivot_=Math.max(t,jspb.Message.getFieldNumber_(e,o+1)),e.extensionObject_=null):e.pivot_=Number.MAX_VALUE},jspb.Message.maybeInitEmptyExtensionObject_=function(e){var t=jspb.Message.getIndex_(e,e.pivot_);e.array[t]||(e.extensionObject_=e.array[t]={})},jspb.Message.toObjectList=function(e,t,r){for(var o=[],a=0;a<e.length;a++)o[a]=t.call(e[a],r,e[a]);return o},goog.exportProperty(jspb.Message,"toObjectList",jspb.Message.toObjectList),jspb.Message.toObjectExtension=function(e,t,r,o,a){for(var n in r){var i=r[n],s=o.call(e,i);if(null!=s){for(var p in i.fieldName)if(i.fieldName.hasOwnProperty(p))break;t[p]=i.toObjectFn?i.isRepeated?jspb.Message.toObjectList(s,i.toObjectFn,a):i.toObjectFn(a,s):s}}},goog.exportProperty(jspb.Message,"toObjectExtension",jspb.Message.toObjectExtension),jspb.Message.serializeBinaryExtensions=function(e,t,r,o){for(var a in r){var n=r[a],i=n.fieldInfo;if(!n.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var s=o.call(e,i);if(null!=s)if(i.isMessageType()){if(!n.binaryMessageSerializeFn)throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");n.binaryWriterFn.call(t,i.fieldIndex,s,n.binaryMessageSerializeFn)}else n.binaryWriterFn.call(t,i.fieldIndex,s)}},goog.exportProperty(jspb.Message,"serializeBinaryExtensions",jspb.Message.serializeBinaryExtensions),jspb.Message.readBinaryExtension=function(e,t,r,o,a){var n=r[t.getFieldNumber()];if(n){if(r=n.fieldInfo,!n.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");if(r.isMessageType()){var i=new r.ctor;n.binaryReaderFn.call(t,i,n.binaryMessageDeserializeFn)}else i=n.binaryReaderFn.call(t);r.isRepeated&&!n.isPacked?(t=o.call(e,r))?t.push(i):a.call(e,r,[i]):a.call(e,r,i)}else t.skipField()},goog.exportProperty(jspb.Message,"readBinaryExtension",jspb.Message.readBinaryExtension),jspb.Message.getField=function(e,t){if(t<e.pivot_){t=jspb.Message.getIndex_(e,t);var r=e.array[t];return r===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[t]=[]:r}if(e.extensionObject_)return(r=e.extensionObject_[t])===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:r},goog.exportProperty(jspb.Message,"getField",jspb.Message.getField),jspb.Message.getRepeatedField=function(e,t){return jspb.Message.getField(e,t)},goog.exportProperty(jspb.Message,"getRepeatedField",jspb.Message.getRepeatedField),jspb.Message.getOptionalFloatingPointField=function(e,t){return null==(e=jspb.Message.getField(e,t))?e:+e},goog.exportProperty(jspb.Message,"getOptionalFloatingPointField",jspb.Message.getOptionalFloatingPointField),jspb.Message.getBooleanField=function(e,t){return null==(e=jspb.Message.getField(e,t))?e:!!e},goog.exportProperty(jspb.Message,"getBooleanField",jspb.Message.getBooleanField),jspb.Message.getRepeatedFloatingPointField=function(e,t){var r=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var o=0;o<r.length;o++)r[o]=+r[o];e.convertedPrimitiveFields_[t]=!0}return r},goog.exportProperty(jspb.Message,"getRepeatedFloatingPointField",jspb.Message.getRepeatedFloatingPointField),jspb.Message.getRepeatedBooleanField=function(e,t){var r=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var o=0;o<r.length;o++)r[o]=!!r[o];e.convertedPrimitiveFields_[t]=!0}return r},goog.exportProperty(jspb.Message,"getRepeatedBooleanField",jspb.Message.getRepeatedBooleanField),jspb.Message.bytesAsB64=function(e){return null==e||"string"==typeof e?e:jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array?goog.crypt.base64.encodeByteArray(e):(jspb.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsB64",jspb.Message.bytesAsB64),jspb.Message.bytesAsU8=function(e){return null==e||e instanceof Uint8Array?e:"string"==typeof e?goog.crypt.base64.decodeStringToUint8Array(e):(jspb.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsU8",jspb.Message.bytesAsU8),jspb.Message.bytesListAsB64=function(e){return jspb.Message.assertConsistentTypes_(e),e.length&&"string"!=typeof e[0]?goog.array.map(e,jspb.Message.bytesAsB64):e},goog.exportProperty(jspb.Message,"bytesListAsB64",jspb.Message.bytesListAsB64),jspb.Message.bytesListAsU8=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||e[0]instanceof Uint8Array?e:goog.array.map(e,jspb.Message.bytesAsU8)},goog.exportProperty(jspb.Message,"bytesListAsU8",jspb.Message.bytesListAsU8),jspb.Message.assertConsistentTypes_=function(e){if(goog.DEBUG&&e&&1<e.length){var t=goog.typeOf(e[0]);goog.array.forEach(e,(function(e){goog.typeOf(e)!=t&&jspb.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(e)+" expected "+t)}))}},jspb.Message.getFieldWithDefault=function(e,t,r){return null==(e=jspb.Message.getField(e,t))?r:e},goog.exportProperty(jspb.Message,"getFieldWithDefault",jspb.Message.getFieldWithDefault),jspb.Message.getBooleanFieldWithDefault=function(e,t,r){return null==(e=jspb.Message.getBooleanField(e,t))?r:e},goog.exportProperty(jspb.Message,"getBooleanFieldWithDefault",jspb.Message.getBooleanFieldWithDefault),jspb.Message.getFloatingPointFieldWithDefault=function(e,t,r){return null==(e=jspb.Message.getOptionalFloatingPointField(e,t))?r:e},goog.exportProperty(jspb.Message,"getFloatingPointFieldWithDefault",jspb.Message.getFloatingPointFieldWithDefault),jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault,goog.exportProperty(jspb.Message,"getFieldProto3",jspb.Message.getFieldProto3),jspb.Message.getMapField=function(e,t,r,o){if(e.wrappers_||(e.wrappers_={}),t in e.wrappers_)return e.wrappers_[t];var a=jspb.Message.getField(e,t);if(!a){if(r)return;a=[],jspb.Message.setField(e,t,a)}return e.wrappers_[t]=new jspb.Map(a,o)},goog.exportProperty(jspb.Message,"getMapField",jspb.Message.getMapField),jspb.Message.setField=function(e,t,r){return jspb.asserts.assertInstanceof(e,jspb.Message),t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=r:(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[t]=r),e},goog.exportProperty(jspb.Message,"setField",jspb.Message.setField),jspb.Message.setProto3IntField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},goog.exportProperty(jspb.Message,"setProto3IntField",jspb.Message.setProto3IntField),jspb.Message.setProto3FloatField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},goog.exportProperty(jspb.Message,"setProto3FloatField",jspb.Message.setProto3FloatField),jspb.Message.setProto3BooleanField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,!1)},goog.exportProperty(jspb.Message,"setProto3BooleanField",jspb.Message.setProto3BooleanField),jspb.Message.setProto3StringField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,"")},goog.exportProperty(jspb.Message,"setProto3StringField",jspb.Message.setProto3StringField),jspb.Message.setProto3BytesField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,"")},goog.exportProperty(jspb.Message,"setProto3BytesField",jspb.Message.setProto3BytesField),jspb.Message.setProto3EnumField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,0)},goog.exportProperty(jspb.Message,"setProto3EnumField",jspb.Message.setProto3EnumField),jspb.Message.setProto3StringIntField=function(e,t,r){return jspb.Message.setFieldIgnoringDefault_(e,t,r,"0")},goog.exportProperty(jspb.Message,"setProto3StringIntField",jspb.Message.setProto3StringIntField),jspb.Message.setFieldIgnoringDefault_=function(e,t,r,o){return jspb.asserts.assertInstanceof(e,jspb.Message),r!==o?jspb.Message.setField(e,t,r):t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=null:(jspb.Message.maybeInitEmptyExtensionObject_(e),delete e.extensionObject_[t]),e},jspb.Message.addToRepeatedField=function(e,t,r,o){return jspb.asserts.assertInstanceof(e,jspb.Message),t=jspb.Message.getRepeatedField(e,t),null!=o?t.splice(o,0,r):t.push(r),e},goog.exportProperty(jspb.Message,"addToRepeatedField",jspb.Message.addToRepeatedField),jspb.Message.setOneofField=function(e,t,r,o){return jspb.asserts.assertInstanceof(e,jspb.Message),(r=jspb.Message.computeOneofCase(e,r))&&r!==t&&void 0!==o&&(e.wrappers_&&r in e.wrappers_&&(e.wrappers_[r]=void 0),jspb.Message.setField(e,r,void 0)),jspb.Message.setField(e,t,o)},goog.exportProperty(jspb.Message,"setOneofField",jspb.Message.setOneofField),jspb.Message.computeOneofCase=function(e,t){for(var r,o,a=0;a<t.length;a++){var n=t[a],i=jspb.Message.getField(e,n);null!=i&&(r=n,o=i,jspb.Message.setField(e,n,void 0))}return r?(jspb.Message.setField(e,r,o),r):0},goog.exportProperty(jspb.Message,"computeOneofCase",jspb.Message.computeOneofCase),jspb.Message.getWrapperField=function(e,t,r,o){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[r]){var a=jspb.Message.getField(e,r);(o||a)&&(e.wrappers_[r]=new t(a))}return e.wrappers_[r]},goog.exportProperty(jspb.Message,"getWrapperField",jspb.Message.getWrapperField),jspb.Message.getRepeatedWrapperField=function(e,t,r){return jspb.Message.wrapRepeatedField_(e,t,r),(t=e.wrappers_[r])==jspb.Message.EMPTY_LIST_SENTINEL_&&(t=e.wrappers_[r]=[]),t},goog.exportProperty(jspb.Message,"getRepeatedWrapperField",jspb.Message.getRepeatedWrapperField),jspb.Message.wrapRepeatedField_=function(e,t,r){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[r]){for(var o=jspb.Message.getRepeatedField(e,r),a=[],n=0;n<o.length;n++)a[n]=new t(o[n]);e.wrappers_[r]=a}},jspb.Message.setWrapperField=function(e,t,r){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var o=r?r.toArray():r;return e.wrappers_[t]=r,jspb.Message.setField(e,t,o)},goog.exportProperty(jspb.Message,"setWrapperField",jspb.Message.setWrapperField),jspb.Message.setOneofWrapperField=function(e,t,r,o){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var a=o?o.toArray():o;return e.wrappers_[t]=o,jspb.Message.setOneofField(e,t,r,a)},goog.exportProperty(jspb.Message,"setOneofWrapperField",jspb.Message.setOneofWrapperField),jspb.Message.setRepeatedWrapperField=function(e,t,r){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={}),r=r||[];for(var o=[],a=0;a<r.length;a++)o[a]=r[a].toArray();return e.wrappers_[t]=r,jspb.Message.setField(e,t,o)},goog.exportProperty(jspb.Message,"setRepeatedWrapperField",jspb.Message.setRepeatedWrapperField),jspb.Message.addToRepeatedWrapperField=function(e,t,r,o,a){jspb.Message.wrapRepeatedField_(e,o,t);var n=e.wrappers_[t];return n||(n=e.wrappers_[t]=[]),r=r||new o,e=jspb.Message.getRepeatedField(e,t),null!=a?(n.splice(a,0,r),e.splice(a,0,r.toArray())):(n.push(r),e.push(r.toArray())),r},goog.exportProperty(jspb.Message,"addToRepeatedWrapperField",jspb.Message.addToRepeatedWrapperField),jspb.Message.toMap=function(e,t,r,o){for(var a={},n=0;n<e.length;n++)a[t.call(e[n])]=r?r.call(e[n],o,e[n]):e[n];return a},goog.exportProperty(jspb.Message,"toMap",jspb.Message.toMap),jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var e in this.wrappers_){var t=this.wrappers_[e];if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&t[r].toArray();else t&&t.toArray()}},jspb.Message.prototype.toArray=function(){return this.syncMapFields_(),this.array},goog.exportProperty(jspb.Message.prototype,"toArray",jspb.Message.prototype.toArray),jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){return this.syncMapFields_(),this.array.toString()}),jspb.Message.prototype.getExtension=function(e){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var t=e.fieldIndex;if(e.isRepeated){if(e.isMessageType())return this.wrappers_[t]||(this.wrappers_[t]=goog.array.map(this.extensionObject_[t]||[],(function(t){return new e.ctor(t)}))),this.wrappers_[t]}else if(e.isMessageType())return!this.wrappers_[t]&&this.extensionObject_[t]&&(this.wrappers_[t]=new e.ctor(this.extensionObject_[t])),this.wrappers_[t];return this.extensionObject_[t]}},goog.exportProperty(jspb.Message.prototype,"getExtension",jspb.Message.prototype.getExtension),jspb.Message.prototype.setExtension=function(e,t){this.wrappers_||(this.wrappers_={}),jspb.Message.maybeInitEmptyExtensionObject_(this);var r=e.fieldIndex;return e.isRepeated?(t=t||[],e.isMessageType()?(this.wrappers_[r]=t,this.extensionObject_[r]=goog.array.map(t,(function(e){return e.toArray()}))):this.extensionObject_[r]=t):e.isMessageType()?(this.wrappers_[r]=t,this.extensionObject_[r]=t?t.toArray():t):this.extensionObject_[r]=t,this},goog.exportProperty(jspb.Message.prototype,"setExtension",jspb.Message.prototype.setExtension),jspb.Message.difference=function(e,t){if(!(e instanceof t.constructor))throw Error("Messages have different types.");var r=e.toArray();t=t.toArray();var o=[],a=0,n=r.length>t.length?r.length:t.length;for(e.getJsPbMessageId()&&(o[0]=e.getJsPbMessageId(),a=1);a<n;a++)jspb.Message.compareFields(r[a],t[a])||(o[a]=t[a]);return new e.constructor(o)},goog.exportProperty(jspb.Message,"difference",jspb.Message.difference),jspb.Message.equals=function(e,t){return e==t||!(!e||!t)&&e instanceof t.constructor&&jspb.Message.compareFields(e.toArray(),t.toArray())},goog.exportProperty(jspb.Message,"equals",jspb.Message.equals),jspb.Message.compareExtensions=function(e,t){e=e||{},t=t||{};var r,o={};for(r in e)o[r]=0;for(r in t)o[r]=0;for(r in o)if(!jspb.Message.compareFields(e[r],t[r]))return!1;return!0},goog.exportProperty(jspb.Message,"compareExtensions",jspb.Message.compareExtensions),jspb.Message.compareFields=function(e,t){if(e==t)return!0;if(!goog.isObject(e)||!goog.isObject(t))return!!("number"==typeof e&&isNaN(e)||"number"==typeof t&&isNaN(t))&&String(e)==String(t);if(e.constructor!=t.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e.constructor===Uint8Array){if(e.length!=t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!=t[r])return!1;return!0}if(e.constructor===Array){var o=void 0,a=void 0,n=Math.max(e.length,t.length);for(r=0;r<n;r++){var i=e[r],s=t[r];if(i&&i.constructor==Object&&(jspb.asserts.assert(void 0===o),jspb.asserts.assert(r===e.length-1),o=i,i=void 0),s&&s.constructor==Object&&(jspb.asserts.assert(void 0===a),jspb.asserts.assert(r===t.length-1),a=s,s=void 0),!jspb.Message.compareFields(i,s))return!1}return!o&&!a||(o=o||{},a=a||{},jspb.Message.compareExtensions(o,a))}if(e.constructor===Object)return jspb.Message.compareExtensions(e,t);throw Error("Invalid type in JSPB array")},goog.exportProperty(jspb.Message,"compareFields",jspb.Message.compareFields),jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"cloneMessage",jspb.Message.prototype.cloneMessage),jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"clone",jspb.Message.prototype.clone),jspb.Message.clone=function(e){return jspb.Message.cloneMessage(e)},goog.exportProperty(jspb.Message,"clone",jspb.Message.clone),jspb.Message.cloneMessage=function(e){return new e.constructor(jspb.Message.clone_(e.toArray()))},jspb.Message.copyInto=function(e,t){jspb.asserts.assertInstanceof(e,jspb.Message),jspb.asserts.assertInstanceof(t,jspb.Message),jspb.asserts.assert(e.constructor==t.constructor,"Copy source and target message should have the same type."),e=jspb.Message.clone(e);for(var r=t.toArray(),o=e.toArray(),a=r.length=0;a<o.length;a++)r[a]=o[a];t.wrappers_=e.wrappers_,t.extensionObject_=e.extensionObject_},goog.exportProperty(jspb.Message,"copyInto",jspb.Message.copyInto),jspb.Message.clone_=function(e){if(Array.isArray(e)){for(var t=Array(e.length),r=0;r<e.length;r++){var o=e[r];null!=o&&(t[r]="object"==typeof o?jspb.Message.clone_(jspb.asserts.assert(o)):o)}return t}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)return new Uint8Array(e);for(r in t={},e)null!=(o=e[r])&&(t[r]="object"==typeof o?jspb.Message.clone_(jspb.asserts.assert(o)):o);return t},jspb.Message.registerMessageType=function(e,t){t.messageId=e},goog.exportProperty(jspb.Message,"registerMessageType",jspb.Message.registerMessageType),jspb.Message.messageSetExtensions={},jspb.Message.messageSetExtensionsBinary={},jspb.Export={},exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf})(googleProtobuf);var calculator_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.CalculatorOptions",null,o),proto.mediapipe.CalculatorOptions=function(e){t.Message.initialize(this,e,0,2,null,null)},r.inherits(proto.mediapipe.CalculatorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.CalculatorOptions.displayName="proto.mediapipe.CalculatorOptions"),proto.mediapipe.CalculatorOptions.extensions={},proto.mediapipe.CalculatorOptions.extensionsBinary={},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.CalculatorOptions.prototype.toObject=function(e){return proto.mediapipe.CalculatorOptions.toObject(e,this)},proto.mediapipe.CalculatorOptions.toObject=function(e,r){var o,a={mergeFields:null==(o=t.Message.getBooleanField(r,1))?void 0:o};return t.Message.toObjectExtension(r,a,proto.mediapipe.CalculatorOptions.extensions,proto.mediapipe.CalculatorOptions.prototype.getExtension,e),e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.CalculatorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.CalculatorOptions;return proto.mediapipe.CalculatorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.CalculatorOptions.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)if(1===r.getFieldNumber()){var o=r.readBool();e.setMergeFields(o)}else t.Message.readBinaryExtension(e,r,proto.mediapipe.CalculatorOptions.extensionsBinary,proto.mediapipe.CalculatorOptions.prototype.getExtension,proto.mediapipe.CalculatorOptions.prototype.setExtension);return e},proto.mediapipe.CalculatorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.CalculatorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.CalculatorOptions.serializeBinaryToWriter=function(e,r){var o;null!=(o=t.Message.getField(e,1))&&r.writeBool(1,o),t.Message.serializeBinaryExtensions(e,r,proto.mediapipe.CalculatorOptions.extensionsBinary,proto.mediapipe.CalculatorOptions.prototype.getExtension)},proto.mediapipe.CalculatorOptions.prototype.getMergeFields=function(){return t.Message.getBooleanFieldWithDefault(this,1,!1)},proto.mediapipe.CalculatorOptions.prototype.setMergeFields=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.CalculatorOptions.prototype.clearMergeFields=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.CalculatorOptions.prototype.hasMergeFields=function(){return null!=t.Message.getField(this,1)},r.object.extend(e,proto.mediapipe)}(calculator_options_pb);var any_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.google.protobuf.Any",null,o),proto.google.protobuf.Any=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.google.protobuf.Any,t.Message),r.DEBUG&&!COMPILED&&(proto.google.protobuf.Any.displayName="proto.google.protobuf.Any"),t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Any.prototype.toObject=function(e){return proto.google.protobuf.Any.toObject(e,this)},proto.google.protobuf.Any.toObject=function(e,r){var o={typeUrl:t.Message.getFieldWithDefault(r,1,""),value:r.getValue_asB64()};return e&&(o.$jspbMessageInstance=r),o}),proto.google.protobuf.Any.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.google.protobuf.Any;return proto.google.protobuf.Any.deserializeBinaryFromReader(o,r)},proto.google.protobuf.Any.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setTypeUrl(r);break;case 2:r=t.readBytes(),e.setValue(r);break;default:t.skipField()}return e},proto.google.protobuf.Any.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.google.protobuf.Any.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.google.protobuf.Any.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getTypeUrl()).length>0&&t.writeString(1,r),(r=e.getValue_asU8()).length>0&&t.writeBytes(2,r)},proto.google.protobuf.Any.prototype.getTypeUrl=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.Any.prototype.setTypeUrl=function(e){return t.Message.setProto3StringField(this,1,e)},proto.google.protobuf.Any.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.google.protobuf.Any.prototype.getValue_asB64=function(){return t.Message.bytesAsB64(this.getValue())},proto.google.protobuf.Any.prototype.getValue_asU8=function(){return t.Message.bytesAsU8(this.getValue())},proto.google.protobuf.Any.prototype.setValue=function(e){return t.Message.setProto3BytesField(this,2,e)},r.object.extend(e,proto.google.protobuf),proto.google.protobuf.Any.prototype.getTypeName=function(){return this.getTypeUrl().split("/").pop()},proto.google.protobuf.Any.prototype.pack=function(e,t,r){r||(r="type.googleapis.com/"),"/"!=r.substr(-1)?this.setTypeUrl(r+"/"+t):this.setTypeUrl(r+t),this.setValue(e)},proto.google.protobuf.Any.prototype.unpack=function(e,t){return this.getTypeName()==t?e(this.getValue_asU8()):null}}(any_pb);var mediapipe_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.MediaPipeOptions",null,o),proto.mediapipe.MediaPipeOptions=function(e){t.Message.initialize(this,e,0,1,null,null)},r.inherits(proto.mediapipe.MediaPipeOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.MediaPipeOptions.displayName="proto.mediapipe.MediaPipeOptions"),proto.mediapipe.MediaPipeOptions.extensions={},proto.mediapipe.MediaPipeOptions.extensionsBinary={},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.MediaPipeOptions.prototype.toObject=function(e){return proto.mediapipe.MediaPipeOptions.toObject(e,this)},proto.mediapipe.MediaPipeOptions.toObject=function(e,r){var o={};return t.Message.toObjectExtension(r,o,proto.mediapipe.MediaPipeOptions.extensions,proto.mediapipe.MediaPipeOptions.prototype.getExtension,e),e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.MediaPipeOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.MediaPipeOptions;return proto.mediapipe.MediaPipeOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.MediaPipeOptions.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)r.getFieldNumber(),t.Message.readBinaryExtension(e,r,proto.mediapipe.MediaPipeOptions.extensionsBinary,proto.mediapipe.MediaPipeOptions.prototype.getExtension,proto.mediapipe.MediaPipeOptions.prototype.setExtension);return e},proto.mediapipe.MediaPipeOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.MediaPipeOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.MediaPipeOptions.serializeBinaryToWriter=function(e,r){t.Message.serializeBinaryExtensions(e,r,proto.mediapipe.MediaPipeOptions.extensionsBinary,proto.mediapipe.MediaPipeOptions.prototype.getExtension)},r.object.extend(e,proto.mediapipe)}(mediapipe_options_pb);var packet_factory_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.PacketFactoryConfig",null,o),r.exportSymbol("proto.mediapipe.PacketFactoryOptions",null,o),r.exportSymbol("proto.mediapipe.PacketManagerConfig",null,o),proto.mediapipe.PacketFactoryOptions=function(e){t.Message.initialize(this,e,0,1,null,null)},r.inherits(proto.mediapipe.PacketFactoryOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.PacketFactoryOptions.displayName="proto.mediapipe.PacketFactoryOptions"),proto.mediapipe.PacketFactoryOptions.extensions={},proto.mediapipe.PacketFactoryOptions.extensionsBinary={},proto.mediapipe.PacketFactoryConfig=function(e){t.Message.initialize(this,e,0,500,null,null)},r.inherits(proto.mediapipe.PacketFactoryConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.PacketFactoryConfig.displayName="proto.mediapipe.PacketFactoryConfig"),proto.mediapipe.PacketManagerConfig=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.PacketManagerConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.PacketManagerConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.PacketManagerConfig.displayName="proto.mediapipe.PacketManagerConfig"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.PacketFactoryOptions.prototype.toObject=function(e){return proto.mediapipe.PacketFactoryOptions.toObject(e,this)},proto.mediapipe.PacketFactoryOptions.toObject=function(e,r){var o={};return t.Message.toObjectExtension(r,o,proto.mediapipe.PacketFactoryOptions.extensions,proto.mediapipe.PacketFactoryOptions.prototype.getExtension,e),e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.PacketFactoryOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.PacketFactoryOptions;return proto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)r.getFieldNumber(),t.Message.readBinaryExtension(e,r,proto.mediapipe.PacketFactoryOptions.extensionsBinary,proto.mediapipe.PacketFactoryOptions.prototype.getExtension,proto.mediapipe.PacketFactoryOptions.prototype.setExtension);return e},proto.mediapipe.PacketFactoryOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter=function(e,r){t.Message.serializeBinaryExtensions(e,r,proto.mediapipe.PacketFactoryOptions.extensionsBinary,proto.mediapipe.PacketFactoryOptions.prototype.getExtension)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.PacketFactoryConfig.prototype.toObject=function(e){return proto.mediapipe.PacketFactoryConfig.toObject(e,this)},proto.mediapipe.PacketFactoryConfig.toObject=function(e,r){var o,a={packetFactory:null==(o=t.Message.getField(r,1))?void 0:o,outputSidePacket:null==(o=t.Message.getField(r,2))?void 0:o,externalOutput:null==(o=t.Message.getField(r,1002))?void 0:o,options:(o=r.getOptions())&&proto.mediapipe.PacketFactoryOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.PacketFactoryConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.PacketFactoryConfig;return proto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setPacketFactory(r);break;case 2:r=t.readString(),e.setOutputSidePacket(r);break;case 1002:r=t.readString(),e.setExternalOutput(r);break;case 3:r=new proto.mediapipe.PacketFactoryOptions,t.readMessage(r,proto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.PacketFactoryConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=t.Message.getField(e,1002))&&r.writeString(1002,o),null!=(o=e.getOptions())&&r.writeMessage(3,o,proto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter)},proto.mediapipe.PacketFactoryConfig.prototype.getPacketFactory=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.PacketFactoryConfig.prototype.setPacketFactory=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.PacketFactoryConfig.prototype.clearPacketFactory=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.PacketFactoryConfig.prototype.hasPacketFactory=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.PacketFactoryConfig.prototype.getOutputSidePacket=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.PacketFactoryConfig.prototype.setOutputSidePacket=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.PacketFactoryConfig.prototype.clearOutputSidePacket=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.PacketFactoryConfig.prototype.hasOutputSidePacket=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.PacketFactoryConfig.prototype.getExternalOutput=function(){return t.Message.getFieldWithDefault(this,1002,"")},proto.mediapipe.PacketFactoryConfig.prototype.setExternalOutput=function(e){return t.Message.setField(this,1002,e)},proto.mediapipe.PacketFactoryConfig.prototype.clearExternalOutput=function(){return t.Message.setField(this,1002,void 0)},proto.mediapipe.PacketFactoryConfig.prototype.hasExternalOutput=function(){return null!=t.Message.getField(this,1002)},proto.mediapipe.PacketFactoryConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,proto.mediapipe.PacketFactoryOptions,3)},proto.mediapipe.PacketFactoryConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.PacketFactoryConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.PacketFactoryConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.PacketManagerConfig.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.PacketManagerConfig.prototype.toObject=function(e){return proto.mediapipe.PacketManagerConfig.toObject(e,this)},proto.mediapipe.PacketManagerConfig.toObject=function(e,r){var o={packetList:t.Message.toObjectList(r.getPacketList(),proto.mediapipe.PacketFactoryConfig.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.PacketManagerConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.PacketManagerConfig;return proto.mediapipe.PacketManagerConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.PacketManagerConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.PacketFactoryConfig;t.readMessage(r,proto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader),e.addPacket(r)}else t.skipField();return e},proto.mediapipe.PacketManagerConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.PacketManagerConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.PacketManagerConfig.serializeBinaryToWriter=function(e,t){var r;(r=e.getPacketList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter)},proto.mediapipe.PacketManagerConfig.prototype.getPacketList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.PacketFactoryConfig,1)},proto.mediapipe.PacketManagerConfig.prototype.setPacketList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.PacketManagerConfig.prototype.addPacket=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.PacketFactoryConfig,r)},proto.mediapipe.PacketManagerConfig.prototype.clearPacketList=function(){return this.setPacketList([])},r.object.extend(e,proto.mediapipe)}(packet_factory_pb);var packet_generator_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.PacketGeneratorConfig",null,o),r.exportSymbol("proto.mediapipe.PacketGeneratorOptions",null,o),proto.mediapipe.PacketGeneratorOptions=function(e){t.Message.initialize(this,e,0,2,null,null)},r.inherits(proto.mediapipe.PacketGeneratorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.PacketGeneratorOptions.displayName="proto.mediapipe.PacketGeneratorOptions"),proto.mediapipe.PacketGeneratorOptions.extensions={},proto.mediapipe.PacketGeneratorOptions.extensionsBinary={},proto.mediapipe.PacketGeneratorConfig=function(e){t.Message.initialize(this,e,0,500,proto.mediapipe.PacketGeneratorConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.PacketGeneratorConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.PacketGeneratorConfig.displayName="proto.mediapipe.PacketGeneratorConfig"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.PacketGeneratorOptions.prototype.toObject=function(e){return proto.mediapipe.PacketGeneratorOptions.toObject(e,this)},proto.mediapipe.PacketGeneratorOptions.toObject=function(e,r){var o={mergeFields:t.Message.getBooleanFieldWithDefault(r,1,!0)};return t.Message.toObjectExtension(r,o,proto.mediapipe.PacketGeneratorOptions.extensions,proto.mediapipe.PacketGeneratorOptions.prototype.getExtension,e),e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.PacketGeneratorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.PacketGeneratorOptions;return proto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)if(1===r.getFieldNumber()){var o=r.readBool();e.setMergeFields(o)}else t.Message.readBinaryExtension(e,r,proto.mediapipe.PacketGeneratorOptions.extensionsBinary,proto.mediapipe.PacketGeneratorOptions.prototype.getExtension,proto.mediapipe.PacketGeneratorOptions.prototype.setExtension);return e},proto.mediapipe.PacketGeneratorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter=function(e,r){var o;null!=(o=t.Message.getField(e,1))&&r.writeBool(1,o),t.Message.serializeBinaryExtensions(e,r,proto.mediapipe.PacketGeneratorOptions.extensionsBinary,proto.mediapipe.PacketGeneratorOptions.prototype.getExtension)},proto.mediapipe.PacketGeneratorOptions.prototype.getMergeFields=function(){return t.Message.getBooleanFieldWithDefault(this,1,!0)},proto.mediapipe.PacketGeneratorOptions.prototype.setMergeFields=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.PacketGeneratorOptions.prototype.clearMergeFields=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.PacketGeneratorOptions.prototype.hasMergeFields=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.PacketGeneratorConfig.repeatedFields_=[2,1002,3,1003],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.PacketGeneratorConfig.prototype.toObject=function(e){return proto.mediapipe.PacketGeneratorConfig.toObject(e,this)},proto.mediapipe.PacketGeneratorConfig.toObject=function(e,r){var o,a={packetGenerator:null==(o=t.Message.getField(r,1))?void 0:o,inputSidePacketList:null==(o=t.Message.getRepeatedField(r,2))?void 0:o,externalInputList:null==(o=t.Message.getRepeatedField(r,1002))?void 0:o,outputSidePacketList:null==(o=t.Message.getRepeatedField(r,3))?void 0:o,externalOutputList:null==(o=t.Message.getRepeatedField(r,1003))?void 0:o,options:(o=r.getOptions())&&proto.mediapipe.PacketGeneratorOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.PacketGeneratorConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.PacketGeneratorConfig;return proto.mediapipe.PacketGeneratorConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.PacketGeneratorConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setPacketGenerator(r);break;case 2:r=t.readString(),e.addInputSidePacket(r);break;case 1002:r=t.readString(),e.addExternalInput(r);break;case 3:r=t.readString(),e.addOutputSidePacket(r);break;case 1003:r=t.readString(),e.addExternalOutput(r);break;case 4:r=new proto.mediapipe.PacketGeneratorOptions,t.readMessage(r,proto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.PacketGeneratorConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.PacketGeneratorConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.PacketGeneratorConfig.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),(o=e.getInputSidePacketList()).length>0&&r.writeRepeatedString(2,o),(o=e.getExternalInputList()).length>0&&r.writeRepeatedString(1002,o),(o=e.getOutputSidePacketList()).length>0&&r.writeRepeatedString(3,o),(o=e.getExternalOutputList()).length>0&&r.writeRepeatedString(1003,o),null!=(o=e.getOptions())&&r.writeMessage(4,o,proto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter)},proto.mediapipe.PacketGeneratorConfig.prototype.getPacketGenerator=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.PacketGeneratorConfig.prototype.setPacketGenerator=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.PacketGeneratorConfig.prototype.clearPacketGenerator=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.PacketGeneratorConfig.prototype.hasPacketGenerator=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.PacketGeneratorConfig.prototype.getInputSidePacketList=function(){return t.Message.getRepeatedField(this,2)},proto.mediapipe.PacketGeneratorConfig.prototype.setInputSidePacketList=function(e){return t.Message.setField(this,2,e||[])},proto.mediapipe.PacketGeneratorConfig.prototype.addInputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,2,e,r)},proto.mediapipe.PacketGeneratorConfig.prototype.clearInputSidePacketList=function(){return this.setInputSidePacketList([])},proto.mediapipe.PacketGeneratorConfig.prototype.getExternalInputList=function(){return t.Message.getRepeatedField(this,1002)},proto.mediapipe.PacketGeneratorConfig.prototype.setExternalInputList=function(e){return t.Message.setField(this,1002,e||[])},proto.mediapipe.PacketGeneratorConfig.prototype.addExternalInput=function(e,r){return t.Message.addToRepeatedField(this,1002,e,r)},proto.mediapipe.PacketGeneratorConfig.prototype.clearExternalInputList=function(){return this.setExternalInputList([])},proto.mediapipe.PacketGeneratorConfig.prototype.getOutputSidePacketList=function(){return t.Message.getRepeatedField(this,3)},proto.mediapipe.PacketGeneratorConfig.prototype.setOutputSidePacketList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.PacketGeneratorConfig.prototype.addOutputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.PacketGeneratorConfig.prototype.clearOutputSidePacketList=function(){return this.setOutputSidePacketList([])},proto.mediapipe.PacketGeneratorConfig.prototype.getExternalOutputList=function(){return t.Message.getRepeatedField(this,1003)},proto.mediapipe.PacketGeneratorConfig.prototype.setExternalOutputList=function(e){return t.Message.setField(this,1003,e||[])},proto.mediapipe.PacketGeneratorConfig.prototype.addExternalOutput=function(e,r){return t.Message.addToRepeatedField(this,1003,e,r)},proto.mediapipe.PacketGeneratorConfig.prototype.clearExternalOutputList=function(){return this.setExternalOutputList([])},proto.mediapipe.PacketGeneratorConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,proto.mediapipe.PacketGeneratorOptions,4)},proto.mediapipe.PacketGeneratorConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.PacketGeneratorConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.PacketGeneratorConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,4)},r.object.extend(e,proto.mediapipe)}(packet_generator_pb);var status_handler_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=mediapipe_options_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.StatusHandlerConfig",null,o),proto.mediapipe.StatusHandlerConfig=function(e){t.Message.initialize(this,e,0,500,proto.mediapipe.StatusHandlerConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.StatusHandlerConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.StatusHandlerConfig.displayName="proto.mediapipe.StatusHandlerConfig"),proto.mediapipe.StatusHandlerConfig.repeatedFields_=[2,1002],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.StatusHandlerConfig.prototype.toObject=function(e){return proto.mediapipe.StatusHandlerConfig.toObject(e,this)},proto.mediapipe.StatusHandlerConfig.toObject=function(e,r){var o,n={statusHandler:null==(o=t.Message.getField(r,1))?void 0:o,inputSidePacketList:null==(o=t.Message.getRepeatedField(r,2))?void 0:o,externalInputList:null==(o=t.Message.getRepeatedField(r,1002))?void 0:o,options:(o=r.getOptions())&&a.MediaPipeOptions.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.StatusHandlerConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.StatusHandlerConfig;return proto.mediapipe.StatusHandlerConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.StatusHandlerConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setStatusHandler(r);break;case 2:r=t.readString(),e.addInputSidePacket(r);break;case 1002:r=t.readString(),e.addExternalInput(r);break;case 3:r=new a.MediaPipeOptions,t.readMessage(r,a.MediaPipeOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.StatusHandlerConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.StatusHandlerConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.StatusHandlerConfig.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),(o=e.getInputSidePacketList()).length>0&&r.writeRepeatedString(2,o),(o=e.getExternalInputList()).length>0&&r.writeRepeatedString(1002,o),null!=(o=e.getOptions())&&r.writeMessage(3,o,a.MediaPipeOptions.serializeBinaryToWriter)},proto.mediapipe.StatusHandlerConfig.prototype.getStatusHandler=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.StatusHandlerConfig.prototype.setStatusHandler=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.StatusHandlerConfig.prototype.clearStatusHandler=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.StatusHandlerConfig.prototype.hasStatusHandler=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.StatusHandlerConfig.prototype.getInputSidePacketList=function(){return t.Message.getRepeatedField(this,2)},proto.mediapipe.StatusHandlerConfig.prototype.setInputSidePacketList=function(e){return t.Message.setField(this,2,e||[])},proto.mediapipe.StatusHandlerConfig.prototype.addInputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,2,e,r)},proto.mediapipe.StatusHandlerConfig.prototype.clearInputSidePacketList=function(){return this.setInputSidePacketList([])},proto.mediapipe.StatusHandlerConfig.prototype.getExternalInputList=function(){return t.Message.getRepeatedField(this,1002)},proto.mediapipe.StatusHandlerConfig.prototype.setExternalInputList=function(e){return t.Message.setField(this,1002,e||[])},proto.mediapipe.StatusHandlerConfig.prototype.addExternalInput=function(e,r){return t.Message.addToRepeatedField(this,1002,e,r)},proto.mediapipe.StatusHandlerConfig.prototype.clearExternalInputList=function(){return this.setExternalInputList([])},proto.mediapipe.StatusHandlerConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,a.MediaPipeOptions,3)},proto.mediapipe.StatusHandlerConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.StatusHandlerConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.StatusHandlerConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,3)},r.object.extend(e,proto.mediapipe)}(status_handler_pb);var stream_handler_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=mediapipe_options_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.InputStreamHandlerConfig",null,o),r.exportSymbol("proto.mediapipe.OutputStreamHandlerConfig",null,o),proto.mediapipe.InputStreamHandlerConfig=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InputStreamHandlerConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InputStreamHandlerConfig.displayName="proto.mediapipe.InputStreamHandlerConfig"),proto.mediapipe.OutputStreamHandlerConfig=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.OutputStreamHandlerConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.OutputStreamHandlerConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.OutputStreamHandlerConfig.displayName="proto.mediapipe.OutputStreamHandlerConfig"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InputStreamHandlerConfig.prototype.toObject=function(e){return proto.mediapipe.InputStreamHandlerConfig.toObject(e,this)},proto.mediapipe.InputStreamHandlerConfig.toObject=function(e,r){var o,n={inputStreamHandler:t.Message.getFieldWithDefault(r,1,"DefaultInputStreamHandler"),options:(o=r.getOptions())&&a.MediaPipeOptions.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.InputStreamHandlerConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InputStreamHandlerConfig;return proto.mediapipe.InputStreamHandlerConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.InputStreamHandlerConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setInputStreamHandler(r);break;case 3:r=new a.MediaPipeOptions,t.readMessage(r,a.MediaPipeOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.InputStreamHandlerConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InputStreamHandlerConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InputStreamHandlerConfig.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=e.getOptions())&&r.writeMessage(3,o,a.MediaPipeOptions.serializeBinaryToWriter)},proto.mediapipe.InputStreamHandlerConfig.prototype.getInputStreamHandler=function(){return t.Message.getFieldWithDefault(this,1,"DefaultInputStreamHandler")},proto.mediapipe.InputStreamHandlerConfig.prototype.setInputStreamHandler=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.InputStreamHandlerConfig.prototype.clearInputStreamHandler=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.InputStreamHandlerConfig.prototype.hasInputStreamHandler=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InputStreamHandlerConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,a.MediaPipeOptions,3)},proto.mediapipe.InputStreamHandlerConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.InputStreamHandlerConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.InputStreamHandlerConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.OutputStreamHandlerConfig.repeatedFields_=[2],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.OutputStreamHandlerConfig.prototype.toObject=function(e){return proto.mediapipe.OutputStreamHandlerConfig.toObject(e,this)},proto.mediapipe.OutputStreamHandlerConfig.toObject=function(e,r){var o,n={outputStreamHandler:t.Message.getFieldWithDefault(r,1,"InOrderOutputStreamHandler"),inputSidePacketList:null==(o=t.Message.getRepeatedField(r,2))?void 0:o,options:(o=r.getOptions())&&a.MediaPipeOptions.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.OutputStreamHandlerConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.OutputStreamHandlerConfig;return proto.mediapipe.OutputStreamHandlerConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.OutputStreamHandlerConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setOutputStreamHandler(r);break;case 2:r=t.readString(),e.addInputSidePacket(r);break;case 3:r=new a.MediaPipeOptions,t.readMessage(r,a.MediaPipeOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.OutputStreamHandlerConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.OutputStreamHandlerConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.OutputStreamHandlerConfig.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),(o=e.getInputSidePacketList()).length>0&&r.writeRepeatedString(2,o),null!=(o=e.getOptions())&&r.writeMessage(3,o,a.MediaPipeOptions.serializeBinaryToWriter)},proto.mediapipe.OutputStreamHandlerConfig.prototype.getOutputStreamHandler=function(){return t.Message.getFieldWithDefault(this,1,"InOrderOutputStreamHandler")},proto.mediapipe.OutputStreamHandlerConfig.prototype.setOutputStreamHandler=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.OutputStreamHandlerConfig.prototype.clearOutputStreamHandler=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.OutputStreamHandlerConfig.prototype.hasOutputStreamHandler=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.OutputStreamHandlerConfig.prototype.getInputSidePacketList=function(){return t.Message.getRepeatedField(this,2)},proto.mediapipe.OutputStreamHandlerConfig.prototype.setInputSidePacketList=function(e){return t.Message.setField(this,2,e||[])},proto.mediapipe.OutputStreamHandlerConfig.prototype.addInputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,2,e,r)},proto.mediapipe.OutputStreamHandlerConfig.prototype.clearInputSidePacketList=function(){return this.setInputSidePacketList([])},proto.mediapipe.OutputStreamHandlerConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,a.MediaPipeOptions,3)},proto.mediapipe.OutputStreamHandlerConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.OutputStreamHandlerConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.OutputStreamHandlerConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,3)},r.object.extend(e,proto.mediapipe)}(stream_handler_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_options_pb;r.object.extend(proto,a);var n=any_pb;r.object.extend(proto,n);var i=mediapipe_options_pb;r.object.extend(proto,i);var s=packet_factory_pb;r.object.extend(proto,s);var p=packet_generator_pb;r.object.extend(proto,p);var d=status_handler_pb;r.object.extend(proto,d);var l=stream_handler_pb;r.object.extend(proto,l),r.exportSymbol("proto.mediapipe.CalculatorGraphConfig",null,o),r.exportSymbol("proto.mediapipe.CalculatorGraphConfig.Node",null,o),r.exportSymbol("proto.mediapipe.ExecutorConfig",null,o),r.exportSymbol("proto.mediapipe.InputCollection",null,o),r.exportSymbol("proto.mediapipe.InputCollection.InputType",null,o),r.exportSymbol("proto.mediapipe.InputCollectionSet",null,o),r.exportSymbol("proto.mediapipe.InputStreamInfo",null,o),r.exportSymbol("proto.mediapipe.ProfilerConfig",null,o),proto.mediapipe.ExecutorConfig=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.ExecutorConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.ExecutorConfig.displayName="proto.mediapipe.ExecutorConfig"),proto.mediapipe.InputCollection=function(e){t.Message.initialize(this,e,0,500,proto.mediapipe.InputCollection.repeatedFields_,null)},r.inherits(proto.mediapipe.InputCollection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InputCollection.displayName="proto.mediapipe.InputCollection"),proto.mediapipe.InputCollectionSet=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.InputCollectionSet.repeatedFields_,null)},r.inherits(proto.mediapipe.InputCollectionSet,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InputCollectionSet.displayName="proto.mediapipe.InputCollectionSet"),proto.mediapipe.InputStreamInfo=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InputStreamInfo,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InputStreamInfo.displayName="proto.mediapipe.InputStreamInfo"),proto.mediapipe.ProfilerConfig=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.ProfilerConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.ProfilerConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.ProfilerConfig.displayName="proto.mediapipe.ProfilerConfig"),proto.mediapipe.CalculatorGraphConfig=function(e){t.Message.initialize(this,e,0,500,proto.mediapipe.CalculatorGraphConfig.repeatedFields_,null)},r.inherits(proto.mediapipe.CalculatorGraphConfig,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.CalculatorGraphConfig.displayName="proto.mediapipe.CalculatorGraphConfig"),proto.mediapipe.CalculatorGraphConfig.Node=function(e){t.Message.initialize(this,e,0,500,proto.mediapipe.CalculatorGraphConfig.Node.repeatedFields_,null)},r.inherits(proto.mediapipe.CalculatorGraphConfig.Node,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.CalculatorGraphConfig.Node.displayName="proto.mediapipe.CalculatorGraphConfig.Node"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.ExecutorConfig.prototype.toObject=function(e){return proto.mediapipe.ExecutorConfig.toObject(e,this)},proto.mediapipe.ExecutorConfig.toObject=function(e,r){var o,a={name:t.Message.getFieldWithDefault(r,1,""),type:t.Message.getFieldWithDefault(r,2,""),options:(o=r.getOptions())&&i.MediaPipeOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.ExecutorConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.ExecutorConfig;return proto.mediapipe.ExecutorConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.ExecutorConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setName(r);break;case 2:r=t.readString(),e.setType(r);break;case 3:r=new i.MediaPipeOptions,t.readMessage(r,i.MediaPipeOptions.deserializeBinaryFromReader),e.setOptions(r);break;default:t.skipField()}return e},proto.mediapipe.ExecutorConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.ExecutorConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.ExecutorConfig.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getName()).length>0&&t.writeString(1,r),(r=e.getType()).length>0&&t.writeString(2,r),null!=(r=e.getOptions())&&t.writeMessage(3,r,i.MediaPipeOptions.serializeBinaryToWriter)},proto.mediapipe.ExecutorConfig.prototype.getName=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.ExecutorConfig.prototype.setName=function(e){return t.Message.setProto3StringField(this,1,e)},proto.mediapipe.ExecutorConfig.prototype.getType=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.ExecutorConfig.prototype.setType=function(e){return t.Message.setProto3StringField(this,2,e)},proto.mediapipe.ExecutorConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,i.MediaPipeOptions,3)},proto.mediapipe.ExecutorConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.ExecutorConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.ExecutorConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.InputCollection.repeatedFields_=[2,1002],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InputCollection.prototype.toObject=function(e){return proto.mediapipe.InputCollection.toObject(e,this)},proto.mediapipe.InputCollection.toObject=function(e,r){var o,a={name:t.Message.getFieldWithDefault(r,1,""),sidePacketNameList:null==(o=t.Message.getRepeatedField(r,2))?void 0:o,externalInputNameList:null==(o=t.Message.getRepeatedField(r,1002))?void 0:o,inputType:t.Message.getFieldWithDefault(r,3,0),fileName:t.Message.getFieldWithDefault(r,4,"")};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.InputCollection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InputCollection;return proto.mediapipe.InputCollection.deserializeBinaryFromReader(o,r)},proto.mediapipe.InputCollection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setName(r);break;case 2:r=t.readString(),e.addSidePacketName(r);break;case 1002:r=t.readString(),e.addExternalInputName(r);break;case 3:r=t.readEnum(),e.setInputType(r);break;case 4:r=t.readString(),e.setFileName(r);break;default:t.skipField()}return e},proto.mediapipe.InputCollection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InputCollection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InputCollection.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getName()).length>0&&t.writeString(1,r),(r=e.getSidePacketNameList()).length>0&&t.writeRepeatedString(2,r),(r=e.getExternalInputNameList()).length>0&&t.writeRepeatedString(1002,r),0!==(r=e.getInputType())&&t.writeEnum(3,r),(r=e.getFileName()).length>0&&t.writeString(4,r)},proto.mediapipe.InputCollection.InputType={UNKNOWN:0,RECORDIO:1,FOREIGN_RECORDIO:2,FOREIGN_CSV_TEXT:3,INVALID_UPPER_BOUND:4},proto.mediapipe.InputCollection.prototype.getName=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.InputCollection.prototype.setName=function(e){return t.Message.setProto3StringField(this,1,e)},proto.mediapipe.InputCollection.prototype.getSidePacketNameList=function(){return t.Message.getRepeatedField(this,2)},proto.mediapipe.InputCollection.prototype.setSidePacketNameList=function(e){return t.Message.setField(this,2,e||[])},proto.mediapipe.InputCollection.prototype.addSidePacketName=function(e,r){return t.Message.addToRepeatedField(this,2,e,r)},proto.mediapipe.InputCollection.prototype.clearSidePacketNameList=function(){return this.setSidePacketNameList([])},proto.mediapipe.InputCollection.prototype.getExternalInputNameList=function(){return t.Message.getRepeatedField(this,1002)},proto.mediapipe.InputCollection.prototype.setExternalInputNameList=function(e){return t.Message.setField(this,1002,e||[])},proto.mediapipe.InputCollection.prototype.addExternalInputName=function(e,r){return t.Message.addToRepeatedField(this,1002,e,r)},proto.mediapipe.InputCollection.prototype.clearExternalInputNameList=function(){return this.setExternalInputNameList([])},proto.mediapipe.InputCollection.prototype.getInputType=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.InputCollection.prototype.setInputType=function(e){return t.Message.setProto3EnumField(this,3,e)},proto.mediapipe.InputCollection.prototype.getFileName=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.mediapipe.InputCollection.prototype.setFileName=function(e){return t.Message.setProto3StringField(this,4,e)},proto.mediapipe.InputCollectionSet.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InputCollectionSet.prototype.toObject=function(e){return proto.mediapipe.InputCollectionSet.toObject(e,this)},proto.mediapipe.InputCollectionSet.toObject=function(e,r){var o={inputCollectionList:t.Message.toObjectList(r.getInputCollectionList(),proto.mediapipe.InputCollection.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.InputCollectionSet.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InputCollectionSet;return proto.mediapipe.InputCollectionSet.deserializeBinaryFromReader(o,r)},proto.mediapipe.InputCollectionSet.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.InputCollection;t.readMessage(r,proto.mediapipe.InputCollection.deserializeBinaryFromReader),e.addInputCollection(r)}else t.skipField();return e},proto.mediapipe.InputCollectionSet.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InputCollectionSet.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InputCollectionSet.serializeBinaryToWriter=function(e,t){var r;(r=e.getInputCollectionList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.InputCollection.serializeBinaryToWriter)},proto.mediapipe.InputCollectionSet.prototype.getInputCollectionList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.InputCollection,1)},proto.mediapipe.InputCollectionSet.prototype.setInputCollectionList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.InputCollectionSet.prototype.addInputCollection=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.InputCollection,r)},proto.mediapipe.InputCollectionSet.prototype.clearInputCollectionList=function(){return this.setInputCollectionList([])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InputStreamInfo.prototype.toObject=function(e){return proto.mediapipe.InputStreamInfo.toObject(e,this)},proto.mediapipe.InputStreamInfo.toObject=function(e,r){var o={tagIndex:t.Message.getFieldWithDefault(r,1,""),backEdge:t.Message.getBooleanFieldWithDefault(r,2,!1)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.InputStreamInfo.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InputStreamInfo;return proto.mediapipe.InputStreamInfo.deserializeBinaryFromReader(o,r)},proto.mediapipe.InputStreamInfo.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setTagIndex(r);break;case 2:r=t.readBool(),e.setBackEdge(r);break;default:t.skipField()}return e},proto.mediapipe.InputStreamInfo.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InputStreamInfo.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InputStreamInfo.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getTagIndex()).length>0&&t.writeString(1,r),(r=e.getBackEdge())&&t.writeBool(2,r)},proto.mediapipe.InputStreamInfo.prototype.getTagIndex=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.InputStreamInfo.prototype.setTagIndex=function(e){return t.Message.setProto3StringField(this,1,e)},proto.mediapipe.InputStreamInfo.prototype.getBackEdge=function(){return t.Message.getBooleanFieldWithDefault(this,2,!1)},proto.mediapipe.InputStreamInfo.prototype.setBackEdge=function(e){return t.Message.setProto3BooleanField(this,2,e)},proto.mediapipe.ProfilerConfig.repeatedFields_=[8],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.ProfilerConfig.prototype.toObject=function(e){return proto.mediapipe.ProfilerConfig.toObject(e,this)},proto.mediapipe.ProfilerConfig.toObject=function(e,r){var o,a={histogramIntervalSizeUsec:t.Message.getFieldWithDefault(r,1,0),numHistogramIntervals:t.Message.getFieldWithDefault(r,2,0),enableInputOutputLatency:t.Message.getBooleanFieldWithDefault(r,3,!1),enableProfiler:t.Message.getBooleanFieldWithDefault(r,4,!1),enableStreamLatency:t.Message.getBooleanFieldWithDefault(r,5,!1),usePacketTimestampForAddedPacket:t.Message.getBooleanFieldWithDefault(r,6,!1),traceLogCapacity:t.Message.getFieldWithDefault(r,7,0),traceEventTypesDisabledList:null==(o=t.Message.getRepeatedField(r,8))?void 0:o,traceLogPath:t.Message.getFieldWithDefault(r,9,""),traceLogCount:t.Message.getFieldWithDefault(r,10,0),traceLogIntervalUsec:t.Message.getFieldWithDefault(r,11,0),traceLogMarginUsec:t.Message.getFieldWithDefault(r,12,0),traceLogDurationEvents:t.Message.getBooleanFieldWithDefault(r,13,!1),traceLogIntervalCount:t.Message.getFieldWithDefault(r,14,0),traceLogDisabled:t.Message.getBooleanFieldWithDefault(r,15,!1),traceEnabled:t.Message.getBooleanFieldWithDefault(r,16,!1),traceLogInstantEvents:t.Message.getBooleanFieldWithDefault(r,17,!1),calculatorFilter:t.Message.getFieldWithDefault(r,18,"")};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.ProfilerConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.ProfilerConfig;return proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt64();e.setHistogramIntervalSizeUsec(r);break;case 2:r=t.readInt64(),e.setNumHistogramIntervals(r);break;case 3:r=t.readBool(),e.setEnableInputOutputLatency(r);break;case 4:r=t.readBool(),e.setEnableProfiler(r);break;case 5:r=t.readBool(),e.setEnableStreamLatency(r);break;case 6:r=t.readBool(),e.setUsePacketTimestampForAddedPacket(r);break;case 7:r=t.readInt64(),e.setTraceLogCapacity(r);break;case 8:for(var o=t.isDelimited()?t.readPackedInt32():[t.readInt32()],a=0;a<o.length;a++)e.addTraceEventTypesDisabled(o[a]);break;case 9:r=t.readString(),e.setTraceLogPath(r);break;case 10:r=t.readInt32(),e.setTraceLogCount(r);break;case 11:r=t.readInt64(),e.setTraceLogIntervalUsec(r);break;case 12:r=t.readInt64(),e.setTraceLogMarginUsec(r);break;case 13:r=t.readBool(),e.setTraceLogDurationEvents(r);break;case 14:r=t.readInt32(),e.setTraceLogIntervalCount(r);break;case 15:r=t.readBool(),e.setTraceLogDisabled(r);break;case 16:r=t.readBool(),e.setTraceEnabled(r);break;case 17:r=t.readBool(),e.setTraceLogInstantEvents(r);break;case 18:r=t.readString(),e.setCalculatorFilter(r);break;default:t.skipField()}return e},proto.mediapipe.ProfilerConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.ProfilerConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.ProfilerConfig.serializeBinaryToWriter=function(e,t){var r=void 0;0!==(r=e.getHistogramIntervalSizeUsec())&&t.writeInt64(1,r),0!==(r=e.getNumHistogramIntervals())&&t.writeInt64(2,r),(r=e.getEnableInputOutputLatency())&&t.writeBool(3,r),(r=e.getEnableProfiler())&&t.writeBool(4,r),(r=e.getEnableStreamLatency())&&t.writeBool(5,r),(r=e.getUsePacketTimestampForAddedPacket())&&t.writeBool(6,r),0!==(r=e.getTraceLogCapacity())&&t.writeInt64(7,r),(r=e.getTraceEventTypesDisabledList()).length>0&&t.writePackedInt32(8,r),(r=e.getTraceLogPath()).length>0&&t.writeString(9,r),0!==(r=e.getTraceLogCount())&&t.writeInt32(10,r),0!==(r=e.getTraceLogIntervalUsec())&&t.writeInt64(11,r),0!==(r=e.getTraceLogMarginUsec())&&t.writeInt64(12,r),(r=e.getTraceLogDurationEvents())&&t.writeBool(13,r),0!==(r=e.getTraceLogIntervalCount())&&t.writeInt32(14,r),(r=e.getTraceLogDisabled())&&t.writeBool(15,r),(r=e.getTraceEnabled())&&t.writeBool(16,r),(r=e.getTraceLogInstantEvents())&&t.writeBool(17,r),(r=e.getCalculatorFilter()).length>0&&t.writeString(18,r)},proto.mediapipe.ProfilerConfig.prototype.getHistogramIntervalSizeUsec=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.ProfilerConfig.prototype.setHistogramIntervalSizeUsec=function(e){return t.Message.setProto3IntField(this,1,e)},proto.mediapipe.ProfilerConfig.prototype.getNumHistogramIntervals=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.ProfilerConfig.prototype.setNumHistogramIntervals=function(e){return t.Message.setProto3IntField(this,2,e)},proto.mediapipe.ProfilerConfig.prototype.getEnableInputOutputLatency=function(){return t.Message.getBooleanFieldWithDefault(this,3,!1)},proto.mediapipe.ProfilerConfig.prototype.setEnableInputOutputLatency=function(e){return t.Message.setProto3BooleanField(this,3,e)},proto.mediapipe.ProfilerConfig.prototype.getEnableProfiler=function(){return t.Message.getBooleanFieldWithDefault(this,4,!1)},proto.mediapipe.ProfilerConfig.prototype.setEnableProfiler=function(e){return t.Message.setProto3BooleanField(this,4,e)},proto.mediapipe.ProfilerConfig.prototype.getEnableStreamLatency=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.ProfilerConfig.prototype.setEnableStreamLatency=function(e){return t.Message.setProto3BooleanField(this,5,e)},proto.mediapipe.ProfilerConfig.prototype.getUsePacketTimestampForAddedPacket=function(){return t.Message.getBooleanFieldWithDefault(this,6,!1)},proto.mediapipe.ProfilerConfig.prototype.setUsePacketTimestampForAddedPacket=function(e){return t.Message.setProto3BooleanField(this,6,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogCapacity=function(){return t.Message.getFieldWithDefault(this,7,0)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogCapacity=function(e){return t.Message.setProto3IntField(this,7,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceEventTypesDisabledList=function(){return t.Message.getRepeatedField(this,8)},proto.mediapipe.ProfilerConfig.prototype.setTraceEventTypesDisabledList=function(e){return t.Message.setField(this,8,e||[])},proto.mediapipe.ProfilerConfig.prototype.addTraceEventTypesDisabled=function(e,r){return t.Message.addToRepeatedField(this,8,e,r)},proto.mediapipe.ProfilerConfig.prototype.clearTraceEventTypesDisabledList=function(){return this.setTraceEventTypesDisabledList([])},proto.mediapipe.ProfilerConfig.prototype.getTraceLogPath=function(){return t.Message.getFieldWithDefault(this,9,"")},proto.mediapipe.ProfilerConfig.prototype.setTraceLogPath=function(e){return t.Message.setProto3StringField(this,9,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogCount=function(){return t.Message.getFieldWithDefault(this,10,0)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogCount=function(e){return t.Message.setProto3IntField(this,10,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogIntervalUsec=function(){return t.Message.getFieldWithDefault(this,11,0)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogIntervalUsec=function(e){return t.Message.setProto3IntField(this,11,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogMarginUsec=function(){return t.Message.getFieldWithDefault(this,12,0)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogMarginUsec=function(e){return t.Message.setProto3IntField(this,12,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogDurationEvents=function(){return t.Message.getBooleanFieldWithDefault(this,13,!1)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogDurationEvents=function(e){return t.Message.setProto3BooleanField(this,13,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogIntervalCount=function(){return t.Message.getFieldWithDefault(this,14,0)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogIntervalCount=function(e){return t.Message.setProto3IntField(this,14,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogDisabled=function(){return t.Message.getBooleanFieldWithDefault(this,15,!1)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogDisabled=function(e){return t.Message.setProto3BooleanField(this,15,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceEnabled=function(){return t.Message.getBooleanFieldWithDefault(this,16,!1)},proto.mediapipe.ProfilerConfig.prototype.setTraceEnabled=function(e){return t.Message.setProto3BooleanField(this,16,e)},proto.mediapipe.ProfilerConfig.prototype.getTraceLogInstantEvents=function(){return t.Message.getBooleanFieldWithDefault(this,17,!1)},proto.mediapipe.ProfilerConfig.prototype.setTraceLogInstantEvents=function(e){return t.Message.setProto3BooleanField(this,17,e)},proto.mediapipe.ProfilerConfig.prototype.getCalculatorFilter=function(){return t.Message.getFieldWithDefault(this,18,"")},proto.mediapipe.ProfilerConfig.prototype.setCalculatorFilter=function(e){return t.Message.setProto3StringField(this,18,e)},proto.mediapipe.CalculatorGraphConfig.repeatedFields_=[1,6,7,9,10,15,16,17,14,1002],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.CalculatorGraphConfig.prototype.toObject=function(e){return proto.mediapipe.CalculatorGraphConfig.toObject(e,this)},proto.mediapipe.CalculatorGraphConfig.toObject=function(e,r){var o,a={nodeList:t.Message.toObjectList(r.getNodeList(),proto.mediapipe.CalculatorGraphConfig.Node.toObject,e),packetFactoryList:t.Message.toObjectList(r.getPacketFactoryList(),s.PacketFactoryConfig.toObject,e),packetGeneratorList:t.Message.toObjectList(r.getPacketGeneratorList(),p.PacketGeneratorConfig.toObject,e),numThreads:t.Message.getFieldWithDefault(r,8,0),statusHandlerList:t.Message.toObjectList(r.getStatusHandlerList(),d.StatusHandlerConfig.toObject,e),inputStreamList:null==(o=t.Message.getRepeatedField(r,10))?void 0:o,outputStreamList:null==(o=t.Message.getRepeatedField(r,15))?void 0:o,inputSidePacketList:null==(o=t.Message.getRepeatedField(r,16))?void 0:o,outputSidePacketList:null==(o=t.Message.getRepeatedField(r,17))?void 0:o,maxQueueSize:t.Message.getFieldWithDefault(r,11,0),reportDeadlock:t.Message.getBooleanFieldWithDefault(r,21,!1),inputStreamHandler:(o=r.getInputStreamHandler())&&l.InputStreamHandlerConfig.toObject(e,o),outputStreamHandler:(o=r.getOutputStreamHandler())&&l.OutputStreamHandlerConfig.toObject(e,o),executorList:t.Message.toObjectList(r.getExecutorList(),proto.mediapipe.ExecutorConfig.toObject,e),profilerConfig:(o=r.getProfilerConfig())&&proto.mediapipe.ProfilerConfig.toObject(e,o),pb_package:t.Message.getFieldWithDefault(r,19,""),type:t.Message.getFieldWithDefault(r,20,""),options:(o=r.getOptions())&&i.MediaPipeOptions.toObject(e,o),graphOptionsList:t.Message.toObjectList(r.getGraphOptionsList(),n.Any.toObject,e)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.CalculatorGraphConfig.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.CalculatorGraphConfig;return proto.mediapipe.CalculatorGraphConfig.deserializeBinaryFromReader(o,r)},proto.mediapipe.CalculatorGraphConfig.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.CalculatorGraphConfig.Node;t.readMessage(r,proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader),e.addNode(r);break;case 6:r=new s.PacketFactoryConfig,t.readMessage(r,s.PacketFactoryConfig.deserializeBinaryFromReader),e.addPacketFactory(r);break;case 7:r=new p.PacketGeneratorConfig,t.readMessage(r,p.PacketGeneratorConfig.deserializeBinaryFromReader),e.addPacketGenerator(r);break;case 8:r=t.readInt32(),e.setNumThreads(r);break;case 9:r=new d.StatusHandlerConfig,t.readMessage(r,d.StatusHandlerConfig.deserializeBinaryFromReader),e.addStatusHandler(r);break;case 10:r=t.readString(),e.addInputStream(r);break;case 15:r=t.readString(),e.addOutputStream(r);break;case 16:r=t.readString(),e.addInputSidePacket(r);break;case 17:r=t.readString(),e.addOutputSidePacket(r);break;case 11:r=t.readInt32(),e.setMaxQueueSize(r);break;case 21:r=t.readBool(),e.setReportDeadlock(r);break;case 12:r=new l.InputStreamHandlerConfig,t.readMessage(r,l.InputStreamHandlerConfig.deserializeBinaryFromReader),e.setInputStreamHandler(r);break;case 13:r=new l.OutputStreamHandlerConfig,t.readMessage(r,l.OutputStreamHandlerConfig.deserializeBinaryFromReader),e.setOutputStreamHandler(r);break;case 14:r=new proto.mediapipe.ExecutorConfig,t.readMessage(r,proto.mediapipe.ExecutorConfig.deserializeBinaryFromReader),e.addExecutor(r);break;case 18:r=new proto.mediapipe.ProfilerConfig,t.readMessage(r,proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader),e.setProfilerConfig(r);break;case 19:r=t.readString(),e.setPackage(r);break;case 20:r=t.readString(),e.setType(r);break;case 1001:r=new i.MediaPipeOptions,t.readMessage(r,i.MediaPipeOptions.deserializeBinaryFromReader),e.setOptions(r);break;case 1002:r=new n.Any,t.readMessage(r,n.Any.deserializeBinaryFromReader),e.addGraphOptions(r);break;default:t.skipField()}return e},proto.mediapipe.CalculatorGraphConfig.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.CalculatorGraphConfig.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.CalculatorGraphConfig.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getNodeList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter),(r=e.getPacketFactoryList()).length>0&&t.writeRepeatedMessage(6,r,s.PacketFactoryConfig.serializeBinaryToWriter),(r=e.getPacketGeneratorList()).length>0&&t.writeRepeatedMessage(7,r,p.PacketGeneratorConfig.serializeBinaryToWriter),0!==(r=e.getNumThreads())&&t.writeInt32(8,r),(r=e.getStatusHandlerList()).length>0&&t.writeRepeatedMessage(9,r,d.StatusHandlerConfig.serializeBinaryToWriter),(r=e.getInputStreamList()).length>0&&t.writeRepeatedString(10,r),(r=e.getOutputStreamList()).length>0&&t.writeRepeatedString(15,r),(r=e.getInputSidePacketList()).length>0&&t.writeRepeatedString(16,r),(r=e.getOutputSidePacketList()).length>0&&t.writeRepeatedString(17,r),0!==(r=e.getMaxQueueSize())&&t.writeInt32(11,r),(r=e.getReportDeadlock())&&t.writeBool(21,r),null!=(r=e.getInputStreamHandler())&&t.writeMessage(12,r,l.InputStreamHandlerConfig.serializeBinaryToWriter),null!=(r=e.getOutputStreamHandler())&&t.writeMessage(13,r,l.OutputStreamHandlerConfig.serializeBinaryToWriter),(r=e.getExecutorList()).length>0&&t.writeRepeatedMessage(14,r,proto.mediapipe.ExecutorConfig.serializeBinaryToWriter),null!=(r=e.getProfilerConfig())&&t.writeMessage(18,r,proto.mediapipe.ProfilerConfig.serializeBinaryToWriter),(r=e.getPackage()).length>0&&t.writeString(19,r),(r=e.getType()).length>0&&t.writeString(20,r),null!=(r=e.getOptions())&&t.writeMessage(1001,r,i.MediaPipeOptions.serializeBinaryToWriter),(r=e.getGraphOptionsList()).length>0&&t.writeRepeatedMessage(1002,r,n.Any.serializeBinaryToWriter)},proto.mediapipe.CalculatorGraphConfig.Node.repeatedFields_=[3,4,5,6,8,13,17,1005],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.CalculatorGraphConfig.Node.prototype.toObject=function(e){return proto.mediapipe.CalculatorGraphConfig.Node.toObject(e,this)},proto.mediapipe.CalculatorGraphConfig.Node.toObject=function(e,r){var o,i={name:t.Message.getFieldWithDefault(r,1,""),calculator:t.Message.getFieldWithDefault(r,2,""),inputStreamList:null==(o=t.Message.getRepeatedField(r,3))?void 0:o,outputStreamList:null==(o=t.Message.getRepeatedField(r,4))?void 0:o,inputSidePacketList:null==(o=t.Message.getRepeatedField(r,5))?void 0:o,outputSidePacketList:null==(o=t.Message.getRepeatedField(r,6))?void 0:o,options:(o=r.getOptions())&&a.CalculatorOptions.toObject(e,o),nodeOptionsList:t.Message.toObjectList(r.getNodeOptionsList(),n.Any.toObject,e),sourceLayer:t.Message.getFieldWithDefault(r,9,0),bufferSizeHint:t.Message.getFieldWithDefault(r,10,0),inputStreamHandler:(o=r.getInputStreamHandler())&&l.InputStreamHandlerConfig.toObject(e,o),outputStreamHandler:(o=r.getOutputStreamHandler())&&l.OutputStreamHandlerConfig.toObject(e,o),inputStreamInfoList:t.Message.toObjectList(r.getInputStreamInfoList(),proto.mediapipe.InputStreamInfo.toObject,e),executor:t.Message.getFieldWithDefault(r,14,""),profilerConfig:(o=r.getProfilerConfig())&&proto.mediapipe.ProfilerConfig.toObject(e,o),maxInFlight:t.Message.getFieldWithDefault(r,16,0),optionValueList:null==(o=t.Message.getRepeatedField(r,17))?void 0:o,externalInputList:null==(o=t.Message.getRepeatedField(r,1005))?void 0:o};return e&&(i.$jspbMessageInstance=r),i}),proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.CalculatorGraphConfig.Node;return proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader(o,r)},proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setName(r);break;case 2:r=t.readString(),e.setCalculator(r);break;case 3:r=t.readString(),e.addInputStream(r);break;case 4:r=t.readString(),e.addOutputStream(r);break;case 5:r=t.readString(),e.addInputSidePacket(r);break;case 6:r=t.readString(),e.addOutputSidePacket(r);break;case 7:r=new a.CalculatorOptions,t.readMessage(r,a.CalculatorOptions.deserializeBinaryFromReader),e.setOptions(r);break;case 8:r=new n.Any,t.readMessage(r,n.Any.deserializeBinaryFromReader),e.addNodeOptions(r);break;case 9:r=t.readInt32(),e.setSourceLayer(r);break;case 10:r=t.readInt32(),e.setBufferSizeHint(r);break;case 11:r=new l.InputStreamHandlerConfig,t.readMessage(r,l.InputStreamHandlerConfig.deserializeBinaryFromReader),e.setInputStreamHandler(r);break;case 12:r=new l.OutputStreamHandlerConfig,t.readMessage(r,l.OutputStreamHandlerConfig.deserializeBinaryFromReader),e.setOutputStreamHandler(r);break;case 13:r=new proto.mediapipe.InputStreamInfo,t.readMessage(r,proto.mediapipe.InputStreamInfo.deserializeBinaryFromReader),e.addInputStreamInfo(r);break;case 14:r=t.readString(),e.setExecutor(r);break;case 15:r=new proto.mediapipe.ProfilerConfig,t.readMessage(r,proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader),e.setProfilerConfig(r);break;case 16:r=t.readInt32(),e.setMaxInFlight(r);break;case 17:r=t.readString(),e.addOptionValue(r);break;case 1005:r=t.readString(),e.addExternalInput(r);break;default:t.skipField()}return e},proto.mediapipe.CalculatorGraphConfig.Node.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter=function(e,t){var r=void 0;(r=e.getName()).length>0&&t.writeString(1,r),(r=e.getCalculator()).length>0&&t.writeString(2,r),(r=e.getInputStreamList()).length>0&&t.writeRepeatedString(3,r),(r=e.getOutputStreamList()).length>0&&t.writeRepeatedString(4,r),(r=e.getInputSidePacketList()).length>0&&t.writeRepeatedString(5,r),(r=e.getOutputSidePacketList()).length>0&&t.writeRepeatedString(6,r),null!=(r=e.getOptions())&&t.writeMessage(7,r,a.CalculatorOptions.serializeBinaryToWriter),(r=e.getNodeOptionsList()).length>0&&t.writeRepeatedMessage(8,r,n.Any.serializeBinaryToWriter),0!==(r=e.getSourceLayer())&&t.writeInt32(9,r),0!==(r=e.getBufferSizeHint())&&t.writeInt32(10,r),null!=(r=e.getInputStreamHandler())&&t.writeMessage(11,r,l.InputStreamHandlerConfig.serializeBinaryToWriter),null!=(r=e.getOutputStreamHandler())&&t.writeMessage(12,r,l.OutputStreamHandlerConfig.serializeBinaryToWriter),(r=e.getInputStreamInfoList()).length>0&&t.writeRepeatedMessage(13,r,proto.mediapipe.InputStreamInfo.serializeBinaryToWriter),(r=e.getExecutor()).length>0&&t.writeString(14,r),null!=(r=e.getProfilerConfig())&&t.writeMessage(15,r,proto.mediapipe.ProfilerConfig.serializeBinaryToWriter),0!==(r=e.getMaxInFlight())&&t.writeInt32(16,r),(r=e.getOptionValueList()).length>0&&t.writeRepeatedString(17,r),(r=e.getExternalInputList()).length>0&&t.writeRepeatedString(1005,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getName=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setName=function(e){return t.Message.setProto3StringField(this,1,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getCalculator=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setCalculator=function(e){return t.Message.setProto3StringField(this,2,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamList=function(){return t.Message.getRepeatedField(this,3)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputStream=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamList=function(){return this.setInputStreamList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputStreamList=function(){return t.Message.getRepeatedField(this,4)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputStreamList=function(e){return t.Message.setField(this,4,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addOutputStream=function(e,r){return t.Message.addToRepeatedField(this,4,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputStreamList=function(){return this.setOutputStreamList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputSidePacketList=function(){return t.Message.getRepeatedField(this,5)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputSidePacketList=function(e){return t.Message.setField(this,5,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,5,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputSidePacketList=function(){return this.setInputSidePacketList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputSidePacketList=function(){return t.Message.getRepeatedField(this,6)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputSidePacketList=function(e){return t.Message.setField(this,6,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addOutputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,6,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputSidePacketList=function(){return this.setOutputSidePacketList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getOptions=function(){return t.Message.getWrapperField(this,a.CalculatorOptions,7)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setOptions=function(e){return t.Message.setWrapperField(this,7,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.hasOptions=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getNodeOptionsList=function(){return t.Message.getRepeatedWrapperField(this,n.Any,8)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setNodeOptionsList=function(e){return t.Message.setRepeatedWrapperField(this,8,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addNodeOptions=function(e,r){return t.Message.addToRepeatedWrapperField(this,8,e,proto.google.protobuf.Any,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearNodeOptionsList=function(){return this.setNodeOptionsList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getSourceLayer=function(){return t.Message.getFieldWithDefault(this,9,0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setSourceLayer=function(e){return t.Message.setProto3IntField(this,9,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getBufferSizeHint=function(){return t.Message.getFieldWithDefault(this,10,0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setBufferSizeHint=function(e){return t.Message.setProto3IntField(this,10,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamHandler=function(){return t.Message.getWrapperField(this,l.InputStreamHandlerConfig,11)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamHandler=function(e){return t.Message.setWrapperField(this,11,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamHandler=function(){return this.setInputStreamHandler(void 0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.hasInputStreamHandler=function(){return null!=t.Message.getField(this,11)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputStreamHandler=function(){return t.Message.getWrapperField(this,l.OutputStreamHandlerConfig,12)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputStreamHandler=function(e){return t.Message.setWrapperField(this,12,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputStreamHandler=function(){return this.setOutputStreamHandler(void 0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.hasOutputStreamHandler=function(){return null!=t.Message.getField(this,12)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamInfoList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.InputStreamInfo,13)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamInfoList=function(e){return t.Message.setRepeatedWrapperField(this,13,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputStreamInfo=function(e,r){return t.Message.addToRepeatedWrapperField(this,13,e,proto.mediapipe.InputStreamInfo,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamInfoList=function(){return this.setInputStreamInfoList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getExecutor=function(){return t.Message.getFieldWithDefault(this,14,"")},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setExecutor=function(e){return t.Message.setProto3StringField(this,14,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getProfilerConfig=function(){return t.Message.getWrapperField(this,proto.mediapipe.ProfilerConfig,15)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setProfilerConfig=function(e){return t.Message.setWrapperField(this,15,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearProfilerConfig=function(){return this.setProfilerConfig(void 0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.hasProfilerConfig=function(){return null!=t.Message.getField(this,15)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getMaxInFlight=function(){return t.Message.getFieldWithDefault(this,16,0)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setMaxInFlight=function(e){return t.Message.setProto3IntField(this,16,e)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getOptionValueList=function(){return t.Message.getRepeatedField(this,17)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setOptionValueList=function(e){return t.Message.setField(this,17,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addOptionValue=function(e,r){return t.Message.addToRepeatedField(this,17,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOptionValueList=function(){return this.setOptionValueList([])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.getExternalInputList=function(){return t.Message.getRepeatedField(this,1005)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.setExternalInputList=function(e){return t.Message.setField(this,1005,e||[])},proto.mediapipe.CalculatorGraphConfig.Node.prototype.addExternalInput=function(e,r){return t.Message.addToRepeatedField(this,1005,e,r)},proto.mediapipe.CalculatorGraphConfig.Node.prototype.clearExternalInputList=function(){return this.setExternalInputList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getNodeList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.CalculatorGraphConfig.Node,1)},proto.mediapipe.CalculatorGraphConfig.prototype.setNodeList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addNode=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.CalculatorGraphConfig.Node,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearNodeList=function(){return this.setNodeList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getPacketFactoryList=function(){return t.Message.getRepeatedWrapperField(this,s.PacketFactoryConfig,6)},proto.mediapipe.CalculatorGraphConfig.prototype.setPacketFactoryList=function(e){return t.Message.setRepeatedWrapperField(this,6,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addPacketFactory=function(e,r){return t.Message.addToRepeatedWrapperField(this,6,e,proto.mediapipe.PacketFactoryConfig,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearPacketFactoryList=function(){return this.setPacketFactoryList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getPacketGeneratorList=function(){return t.Message.getRepeatedWrapperField(this,p.PacketGeneratorConfig,7)},proto.mediapipe.CalculatorGraphConfig.prototype.setPacketGeneratorList=function(e){return t.Message.setRepeatedWrapperField(this,7,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addPacketGenerator=function(e,r){return t.Message.addToRepeatedWrapperField(this,7,e,proto.mediapipe.PacketGeneratorConfig,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearPacketGeneratorList=function(){return this.setPacketGeneratorList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getNumThreads=function(){return t.Message.getFieldWithDefault(this,8,0)},proto.mediapipe.CalculatorGraphConfig.prototype.setNumThreads=function(e){return t.Message.setProto3IntField(this,8,e)},proto.mediapipe.CalculatorGraphConfig.prototype.getStatusHandlerList=function(){return t.Message.getRepeatedWrapperField(this,d.StatusHandlerConfig,9)},proto.mediapipe.CalculatorGraphConfig.prototype.setStatusHandlerList=function(e){return t.Message.setRepeatedWrapperField(this,9,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addStatusHandler=function(e,r){return t.Message.addToRepeatedWrapperField(this,9,e,proto.mediapipe.StatusHandlerConfig,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearStatusHandlerList=function(){return this.setStatusHandlerList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getInputStreamList=function(){return t.Message.getRepeatedField(this,10)},proto.mediapipe.CalculatorGraphConfig.prototype.setInputStreamList=function(e){return t.Message.setField(this,10,e||[])},proto.mediapipe.CalculatorGraphConfig.prototype.addInputStream=function(e,r){return t.Message.addToRepeatedField(this,10,e,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearInputStreamList=function(){return this.setInputStreamList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getOutputStreamList=function(){return t.Message.getRepeatedField(this,15)},proto.mediapipe.CalculatorGraphConfig.prototype.setOutputStreamList=function(e){return t.Message.setField(this,15,e||[])},proto.mediapipe.CalculatorGraphConfig.prototype.addOutputStream=function(e,r){return t.Message.addToRepeatedField(this,15,e,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearOutputStreamList=function(){return this.setOutputStreamList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getInputSidePacketList=function(){return t.Message.getRepeatedField(this,16)},proto.mediapipe.CalculatorGraphConfig.prototype.setInputSidePacketList=function(e){return t.Message.setField(this,16,e||[])},proto.mediapipe.CalculatorGraphConfig.prototype.addInputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,16,e,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearInputSidePacketList=function(){return this.setInputSidePacketList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getOutputSidePacketList=function(){return t.Message.getRepeatedField(this,17)},proto.mediapipe.CalculatorGraphConfig.prototype.setOutputSidePacketList=function(e){return t.Message.setField(this,17,e||[])},proto.mediapipe.CalculatorGraphConfig.prototype.addOutputSidePacket=function(e,r){return t.Message.addToRepeatedField(this,17,e,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearOutputSidePacketList=function(){return this.setOutputSidePacketList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getMaxQueueSize=function(){return t.Message.getFieldWithDefault(this,11,0)},proto.mediapipe.CalculatorGraphConfig.prototype.setMaxQueueSize=function(e){return t.Message.setProto3IntField(this,11,e)},proto.mediapipe.CalculatorGraphConfig.prototype.getReportDeadlock=function(){return t.Message.getBooleanFieldWithDefault(this,21,!1)},proto.mediapipe.CalculatorGraphConfig.prototype.setReportDeadlock=function(e){return t.Message.setProto3BooleanField(this,21,e)},proto.mediapipe.CalculatorGraphConfig.prototype.getInputStreamHandler=function(){return t.Message.getWrapperField(this,l.InputStreamHandlerConfig,12)},proto.mediapipe.CalculatorGraphConfig.prototype.setInputStreamHandler=function(e){return t.Message.setWrapperField(this,12,e)},proto.mediapipe.CalculatorGraphConfig.prototype.clearInputStreamHandler=function(){return this.setInputStreamHandler(void 0)},proto.mediapipe.CalculatorGraphConfig.prototype.hasInputStreamHandler=function(){return null!=t.Message.getField(this,12)},proto.mediapipe.CalculatorGraphConfig.prototype.getOutputStreamHandler=function(){return t.Message.getWrapperField(this,l.OutputStreamHandlerConfig,13)},proto.mediapipe.CalculatorGraphConfig.prototype.setOutputStreamHandler=function(e){return t.Message.setWrapperField(this,13,e)},proto.mediapipe.CalculatorGraphConfig.prototype.clearOutputStreamHandler=function(){return this.setOutputStreamHandler(void 0)},proto.mediapipe.CalculatorGraphConfig.prototype.hasOutputStreamHandler=function(){return null!=t.Message.getField(this,13)},proto.mediapipe.CalculatorGraphConfig.prototype.getExecutorList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.ExecutorConfig,14)},proto.mediapipe.CalculatorGraphConfig.prototype.setExecutorList=function(e){return t.Message.setRepeatedWrapperField(this,14,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addExecutor=function(e,r){return t.Message.addToRepeatedWrapperField(this,14,e,proto.mediapipe.ExecutorConfig,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearExecutorList=function(){return this.setExecutorList([])},proto.mediapipe.CalculatorGraphConfig.prototype.getProfilerConfig=function(){return t.Message.getWrapperField(this,proto.mediapipe.ProfilerConfig,18)},proto.mediapipe.CalculatorGraphConfig.prototype.setProfilerConfig=function(e){return t.Message.setWrapperField(this,18,e)},proto.mediapipe.CalculatorGraphConfig.prototype.clearProfilerConfig=function(){return this.setProfilerConfig(void 0)},proto.mediapipe.CalculatorGraphConfig.prototype.hasProfilerConfig=function(){return null!=t.Message.getField(this,18)},proto.mediapipe.CalculatorGraphConfig.prototype.getPackage=function(){return t.Message.getFieldWithDefault(this,19,"")},proto.mediapipe.CalculatorGraphConfig.prototype.setPackage=function(e){return t.Message.setProto3StringField(this,19,e)},proto.mediapipe.CalculatorGraphConfig.prototype.getType=function(){return t.Message.getFieldWithDefault(this,20,"")},proto.mediapipe.CalculatorGraphConfig.prototype.setType=function(e){return t.Message.setProto3StringField(this,20,e)},proto.mediapipe.CalculatorGraphConfig.prototype.getOptions=function(){return t.Message.getWrapperField(this,i.MediaPipeOptions,1001)},proto.mediapipe.CalculatorGraphConfig.prototype.setOptions=function(e){return t.Message.setWrapperField(this,1001,e)},proto.mediapipe.CalculatorGraphConfig.prototype.clearOptions=function(){return this.setOptions(void 0)},proto.mediapipe.CalculatorGraphConfig.prototype.hasOptions=function(){return null!=t.Message.getField(this,1001)},proto.mediapipe.CalculatorGraphConfig.prototype.getGraphOptionsList=function(){return t.Message.getRepeatedWrapperField(this,n.Any,1002)},proto.mediapipe.CalculatorGraphConfig.prototype.setGraphOptionsList=function(e){return t.Message.setRepeatedWrapperField(this,1002,e)},proto.mediapipe.CalculatorGraphConfig.prototype.addGraphOptions=function(e,r){return t.Message.addToRepeatedWrapperField(this,1002,e,proto.google.protobuf.Any,r)},proto.mediapipe.CalculatorGraphConfig.prototype.clearGraphOptionsList=function(){return this.setGraphOptionsList([])},r.object.extend(e,proto.mediapipe)}(calculator_pb);var detection_pb={},location_data_pb={},rasterization_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.Rasterization",null,o),r.exportSymbol("proto.mediapipe.Rasterization.Interval",null,o),proto.mediapipe.Rasterization=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.Rasterization.repeatedFields_,null)},r.inherits(proto.mediapipe.Rasterization,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Rasterization.displayName="proto.mediapipe.Rasterization"),proto.mediapipe.Rasterization.Interval=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Rasterization.Interval,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Rasterization.Interval.displayName="proto.mediapipe.Rasterization.Interval"),proto.mediapipe.Rasterization.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Rasterization.prototype.toObject=function(e){return proto.mediapipe.Rasterization.toObject(e,this)},proto.mediapipe.Rasterization.toObject=function(e,r){var o={intervalList:t.Message.toObjectList(r.getIntervalList(),proto.mediapipe.Rasterization.Interval.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.Rasterization.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Rasterization;return proto.mediapipe.Rasterization.deserializeBinaryFromReader(o,r)},proto.mediapipe.Rasterization.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.Rasterization.Interval;t.readMessage(r,proto.mediapipe.Rasterization.Interval.deserializeBinaryFromReader),e.addInterval(r)}else t.skipField();return e},proto.mediapipe.Rasterization.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Rasterization.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Rasterization.serializeBinaryToWriter=function(e,t){var r;(r=e.getIntervalList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.Rasterization.Interval.serializeBinaryToWriter)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Rasterization.Interval.prototype.toObject=function(e){return proto.mediapipe.Rasterization.Interval.toObject(e,this)},proto.mediapipe.Rasterization.Interval.toObject=function(e,r){var o,a={y:null==(o=t.Message.getField(r,1))?void 0:o,leftX:null==(o=t.Message.getField(r,2))?void 0:o,rightX:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Rasterization.Interval.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Rasterization.Interval;return proto.mediapipe.Rasterization.Interval.deserializeBinaryFromReader(o,r)},proto.mediapipe.Rasterization.Interval.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setY(r);break;case 2:r=t.readInt32(),e.setLeftX(r);break;case 3:r=t.readInt32(),e.setRightX(r);break;default:t.skipField()}return e},proto.mediapipe.Rasterization.Interval.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Rasterization.Interval.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Rasterization.Interval.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o)},proto.mediapipe.Rasterization.Interval.prototype.getY=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.Rasterization.Interval.prototype.setY=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Rasterization.Interval.prototype.clearY=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Rasterization.Interval.prototype.hasY=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Rasterization.Interval.prototype.getLeftX=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.Rasterization.Interval.prototype.setLeftX=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Rasterization.Interval.prototype.clearLeftX=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Rasterization.Interval.prototype.hasLeftX=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Rasterization.Interval.prototype.getRightX=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.Rasterization.Interval.prototype.setRightX=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.Rasterization.Interval.prototype.clearRightX=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.Rasterization.Interval.prototype.hasRightX=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.Rasterization.prototype.getIntervalList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.Rasterization.Interval,1)},proto.mediapipe.Rasterization.prototype.setIntervalList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.Rasterization.prototype.addInterval=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.Rasterization.Interval,r)},proto.mediapipe.Rasterization.prototype.clearIntervalList=function(){return this.setIntervalList([])},r.object.extend(e,proto.mediapipe)}(rasterization_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=rasterization_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.LocationData",null,o),r.exportSymbol("proto.mediapipe.LocationData.BinaryMask",null,o),r.exportSymbol("proto.mediapipe.LocationData.BoundingBox",null,o),r.exportSymbol("proto.mediapipe.LocationData.Format",null,o),r.exportSymbol("proto.mediapipe.LocationData.RelativeBoundingBox",null,o),r.exportSymbol("proto.mediapipe.LocationData.RelativeKeypoint",null,o),proto.mediapipe.LocationData=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.LocationData.repeatedFields_,null)},r.inherits(proto.mediapipe.LocationData,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LocationData.displayName="proto.mediapipe.LocationData"),proto.mediapipe.LocationData.BoundingBox=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.LocationData.BoundingBox,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LocationData.BoundingBox.displayName="proto.mediapipe.LocationData.BoundingBox"),proto.mediapipe.LocationData.RelativeBoundingBox=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.LocationData.RelativeBoundingBox,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LocationData.RelativeBoundingBox.displayName="proto.mediapipe.LocationData.RelativeBoundingBox"),proto.mediapipe.LocationData.BinaryMask=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.LocationData.BinaryMask,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LocationData.BinaryMask.displayName="proto.mediapipe.LocationData.BinaryMask"),proto.mediapipe.LocationData.RelativeKeypoint=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.LocationData.RelativeKeypoint,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LocationData.RelativeKeypoint.displayName="proto.mediapipe.LocationData.RelativeKeypoint"),proto.mediapipe.LocationData.repeatedFields_=[5],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LocationData.prototype.toObject=function(e){return proto.mediapipe.LocationData.toObject(e,this)},proto.mediapipe.LocationData.toObject=function(e,r){var o,a={format:null==(o=t.Message.getField(r,1))?void 0:o,boundingBox:(o=r.getBoundingBox())&&proto.mediapipe.LocationData.BoundingBox.toObject(e,o),relativeBoundingBox:(o=r.getRelativeBoundingBox())&&proto.mediapipe.LocationData.RelativeBoundingBox.toObject(e,o),mask:(o=r.getMask())&&proto.mediapipe.LocationData.BinaryMask.toObject(e,o),relativeKeypointsList:t.Message.toObjectList(r.getRelativeKeypointsList(),proto.mediapipe.LocationData.RelativeKeypoint.toObject,e)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.LocationData.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LocationData;return proto.mediapipe.LocationData.deserializeBinaryFromReader(o,r)},proto.mediapipe.LocationData.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readEnum();e.setFormat(r);break;case 2:r=new proto.mediapipe.LocationData.BoundingBox,t.readMessage(r,proto.mediapipe.LocationData.BoundingBox.deserializeBinaryFromReader),e.setBoundingBox(r);break;case 3:r=new proto.mediapipe.LocationData.RelativeBoundingBox,t.readMessage(r,proto.mediapipe.LocationData.RelativeBoundingBox.deserializeBinaryFromReader),e.setRelativeBoundingBox(r);break;case 4:r=new proto.mediapipe.LocationData.BinaryMask,t.readMessage(r,proto.mediapipe.LocationData.BinaryMask.deserializeBinaryFromReader),e.setMask(r);break;case 5:r=new proto.mediapipe.LocationData.RelativeKeypoint,t.readMessage(r,proto.mediapipe.LocationData.RelativeKeypoint.deserializeBinaryFromReader),e.addRelativeKeypoints(r);break;default:t.skipField()}return e},proto.mediapipe.LocationData.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LocationData.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LocationData.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeEnum(1,o),null!=(o=e.getBoundingBox())&&r.writeMessage(2,o,proto.mediapipe.LocationData.BoundingBox.serializeBinaryToWriter),null!=(o=e.getRelativeBoundingBox())&&r.writeMessage(3,o,proto.mediapipe.LocationData.RelativeBoundingBox.serializeBinaryToWriter),null!=(o=e.getMask())&&r.writeMessage(4,o,proto.mediapipe.LocationData.BinaryMask.serializeBinaryToWriter),(o=e.getRelativeKeypointsList()).length>0&&r.writeRepeatedMessage(5,o,proto.mediapipe.LocationData.RelativeKeypoint.serializeBinaryToWriter)},proto.mediapipe.LocationData.Format={GLOBAL:0,BOUNDING_BOX:1,RELATIVE_BOUNDING_BOX:2,MASK:3},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LocationData.BoundingBox.prototype.toObject=function(e){return proto.mediapipe.LocationData.BoundingBox.toObject(e,this)},proto.mediapipe.LocationData.BoundingBox.toObject=function(e,r){var o,a={xmin:null==(o=t.Message.getField(r,1))?void 0:o,ymin:null==(o=t.Message.getField(r,2))?void 0:o,width:null==(o=t.Message.getField(r,3))?void 0:o,height:null==(o=t.Message.getField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.LocationData.BoundingBox.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LocationData.BoundingBox;return proto.mediapipe.LocationData.BoundingBox.deserializeBinaryFromReader(o,r)},proto.mediapipe.LocationData.BoundingBox.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setXmin(r);break;case 2:r=t.readInt32(),e.setYmin(r);break;case 3:r=t.readInt32(),e.setWidth(r);break;case 4:r=t.readInt32(),e.setHeight(r);break;default:t.skipField()}return e},proto.mediapipe.LocationData.BoundingBox.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LocationData.BoundingBox.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LocationData.BoundingBox.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o),null!=(o=t.Message.getField(e,4))&&r.writeInt32(4,o)},proto.mediapipe.LocationData.BoundingBox.prototype.getXmin=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.LocationData.BoundingBox.prototype.setXmin=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LocationData.BoundingBox.prototype.clearXmin=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LocationData.BoundingBox.prototype.hasXmin=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LocationData.BoundingBox.prototype.getYmin=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.LocationData.BoundingBox.prototype.setYmin=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.LocationData.BoundingBox.prototype.clearYmin=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.LocationData.BoundingBox.prototype.hasYmin=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LocationData.BoundingBox.prototype.getWidth=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.LocationData.BoundingBox.prototype.setWidth=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.LocationData.BoundingBox.prototype.clearWidth=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.LocationData.BoundingBox.prototype.hasWidth=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.LocationData.BoundingBox.prototype.getHeight=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.LocationData.BoundingBox.prototype.setHeight=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.LocationData.BoundingBox.prototype.clearHeight=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.LocationData.BoundingBox.prototype.hasHeight=function(){return null!=t.Message.getField(this,4)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LocationData.RelativeBoundingBox.prototype.toObject=function(e){return proto.mediapipe.LocationData.RelativeBoundingBox.toObject(e,this)},proto.mediapipe.LocationData.RelativeBoundingBox.toObject=function(e,r){var o,a={xmin:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,ymin:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,width:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,height:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.LocationData.RelativeBoundingBox.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LocationData.RelativeBoundingBox;return proto.mediapipe.LocationData.RelativeBoundingBox.deserializeBinaryFromReader(o,r)},proto.mediapipe.LocationData.RelativeBoundingBox.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readFloat();e.setXmin(r);break;case 2:r=t.readFloat(),e.setYmin(r);break;case 3:r=t.readFloat(),e.setWidth(r);break;case 4:r=t.readFloat(),e.setHeight(r);break;default:t.skipField()}return e},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LocationData.RelativeBoundingBox.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LocationData.RelativeBoundingBox.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeFloat(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.getXmin=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.setXmin=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.clearXmin=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.hasXmin=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.getYmin=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.setYmin=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.clearYmin=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.hasYmin=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.getWidth=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.setWidth=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.clearWidth=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.hasWidth=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.getHeight=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.setHeight=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.clearHeight=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.LocationData.RelativeBoundingBox.prototype.hasHeight=function(){return null!=t.Message.getField(this,4)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LocationData.BinaryMask.prototype.toObject=function(e){return proto.mediapipe.LocationData.BinaryMask.toObject(e,this)},proto.mediapipe.LocationData.BinaryMask.toObject=function(e,r){var o,n={width:null==(o=t.Message.getField(r,1))?void 0:o,height:null==(o=t.Message.getField(r,2))?void 0:o,rasterization:(o=r.getRasterization())&&a.Rasterization.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.LocationData.BinaryMask.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LocationData.BinaryMask;return proto.mediapipe.LocationData.BinaryMask.deserializeBinaryFromReader(o,r)},proto.mediapipe.LocationData.BinaryMask.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setWidth(r);break;case 2:r=t.readInt32(),e.setHeight(r);break;case 3:r=new a.Rasterization,t.readMessage(r,a.Rasterization.deserializeBinaryFromReader),e.setRasterization(r);break;default:t.skipField()}return e},proto.mediapipe.LocationData.BinaryMask.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LocationData.BinaryMask.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LocationData.BinaryMask.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=e.getRasterization())&&r.writeMessage(3,o,a.Rasterization.serializeBinaryToWriter)},proto.mediapipe.LocationData.BinaryMask.prototype.getWidth=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.LocationData.BinaryMask.prototype.setWidth=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LocationData.BinaryMask.prototype.clearWidth=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LocationData.BinaryMask.prototype.hasWidth=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LocationData.BinaryMask.prototype.getHeight=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.LocationData.BinaryMask.prototype.setHeight=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.LocationData.BinaryMask.prototype.clearHeight=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.LocationData.BinaryMask.prototype.hasHeight=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LocationData.BinaryMask.prototype.getRasterization=function(){return t.Message.getWrapperField(this,a.Rasterization,3)},proto.mediapipe.LocationData.BinaryMask.prototype.setRasterization=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.LocationData.BinaryMask.prototype.clearRasterization=function(){return this.setRasterization(void 0)},proto.mediapipe.LocationData.BinaryMask.prototype.hasRasterization=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LocationData.RelativeKeypoint.prototype.toObject=function(e){return proto.mediapipe.LocationData.RelativeKeypoint.toObject(e,this)},proto.mediapipe.LocationData.RelativeKeypoint.toObject=function(e,r){var o,a={x:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,y:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,keypointLabel:null==(o=t.Message.getField(r,3))?void 0:o,score:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.LocationData.RelativeKeypoint.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LocationData.RelativeKeypoint;return proto.mediapipe.LocationData.RelativeKeypoint.deserializeBinaryFromReader(o,r)},proto.mediapipe.LocationData.RelativeKeypoint.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readFloat();e.setX(r);break;case 2:r=t.readFloat(),e.setY(r);break;case 3:r=t.readString(),e.setKeypointLabel(r);break;case 4:r=t.readFloat(),e.setScore(r);break;default:t.skipField()}return e},proto.mediapipe.LocationData.RelativeKeypoint.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LocationData.RelativeKeypoint.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LocationData.RelativeKeypoint.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeFloat(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeString(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.getX=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.setX=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.clearX=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.hasX=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.getY=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.setY=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.clearY=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.hasY=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.getKeypointLabel=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.mediapipe.LocationData.RelativeKeypoint.prototype.setKeypointLabel=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.clearKeypointLabel=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.hasKeypointLabel=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.getScore=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.setScore=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.clearScore=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.LocationData.RelativeKeypoint.prototype.hasScore=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.LocationData.prototype.getFormat=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.LocationData.prototype.setFormat=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LocationData.prototype.clearFormat=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LocationData.prototype.hasFormat=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LocationData.prototype.getBoundingBox=function(){return t.Message.getWrapperField(this,proto.mediapipe.LocationData.BoundingBox,2)},proto.mediapipe.LocationData.prototype.setBoundingBox=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.LocationData.prototype.clearBoundingBox=function(){return this.setBoundingBox(void 0)},proto.mediapipe.LocationData.prototype.hasBoundingBox=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LocationData.prototype.getRelativeBoundingBox=function(){return t.Message.getWrapperField(this,proto.mediapipe.LocationData.RelativeBoundingBox,3)},proto.mediapipe.LocationData.prototype.setRelativeBoundingBox=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.LocationData.prototype.clearRelativeBoundingBox=function(){return this.setRelativeBoundingBox(void 0)},proto.mediapipe.LocationData.prototype.hasRelativeBoundingBox=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.LocationData.prototype.getMask=function(){return t.Message.getWrapperField(this,proto.mediapipe.LocationData.BinaryMask,4)},proto.mediapipe.LocationData.prototype.setMask=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.LocationData.prototype.clearMask=function(){return this.setMask(void 0)},proto.mediapipe.LocationData.prototype.hasMask=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.LocationData.prototype.getRelativeKeypointsList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.LocationData.RelativeKeypoint,5)},proto.mediapipe.LocationData.prototype.setRelativeKeypointsList=function(e){return t.Message.setRepeatedWrapperField(this,5,e)},proto.mediapipe.LocationData.prototype.addRelativeKeypoints=function(e,r){return t.Message.addToRepeatedWrapperField(this,5,e,proto.mediapipe.LocationData.RelativeKeypoint,r)},proto.mediapipe.LocationData.prototype.clearRelativeKeypointsList=function(){return this.setRelativeKeypointsList([])},r.object.extend(e,proto.mediapipe)}(location_data_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=location_data_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.Detection",null,o),r.exportSymbol("proto.mediapipe.Detection.AssociatedDetection",null,o),r.exportSymbol("proto.mediapipe.DetectionList",null,o),proto.mediapipe.Detection=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.Detection.repeatedFields_,null)},r.inherits(proto.mediapipe.Detection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Detection.displayName="proto.mediapipe.Detection"),proto.mediapipe.Detection.AssociatedDetection=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Detection.AssociatedDetection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Detection.AssociatedDetection.displayName="proto.mediapipe.Detection.AssociatedDetection"),proto.mediapipe.DetectionList=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.DetectionList.repeatedFields_,null)},r.inherits(proto.mediapipe.DetectionList,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.DetectionList.displayName="proto.mediapipe.DetectionList"),proto.mediapipe.Detection.repeatedFields_=[1,2,3,8,9],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Detection.prototype.toObject=function(e){return proto.mediapipe.Detection.toObject(e,this)},proto.mediapipe.Detection.toObject=function(e,r){var o,n={labelList:null==(o=t.Message.getRepeatedField(r,1))?void 0:o,labelIdList:null==(o=t.Message.getRepeatedField(r,2))?void 0:o,scoreList:null==(o=t.Message.getRepeatedFloatingPointField(r,3))?void 0:o,locationData:(o=r.getLocationData())&&a.LocationData.toObject(e,o),featureTag:null==(o=t.Message.getField(r,5))?void 0:o,trackId:null==(o=t.Message.getField(r,6))?void 0:o,detectionId:null==(o=t.Message.getField(r,7))?void 0:o,associatedDetectionsList:t.Message.toObjectList(r.getAssociatedDetectionsList(),proto.mediapipe.Detection.AssociatedDetection.toObject,e),displayNameList:null==(o=t.Message.getRepeatedField(r,9))?void 0:o,timestampUsec:null==(o=t.Message.getField(r,10))?void 0:o};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.Detection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Detection;return proto.mediapipe.Detection.deserializeBinaryFromReader(o,r)},proto.mediapipe.Detection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.addLabel(r);break;case 2:for(var o=t.isDelimited()?t.readPackedInt32():[t.readInt32()],n=0;n<o.length;n++)e.addLabelId(o[n]);break;case 3:for(o=t.isDelimited()?t.readPackedFloat():[t.readFloat()],n=0;n<o.length;n++)e.addScore(o[n]);break;case 4:r=new a.LocationData,t.readMessage(r,a.LocationData.deserializeBinaryFromReader),e.setLocationData(r);break;case 5:r=t.readString(),e.setFeatureTag(r);break;case 6:r=t.readString(),e.setTrackId(r);break;case 7:r=t.readInt64(),e.setDetectionId(r);break;case 8:r=new proto.mediapipe.Detection.AssociatedDetection,t.readMessage(r,proto.mediapipe.Detection.AssociatedDetection.deserializeBinaryFromReader),e.addAssociatedDetections(r);break;case 9:r=t.readString(),e.addDisplayName(r);break;case 10:r=t.readInt64(),e.setTimestampUsec(r);break;default:t.skipField()}return e},proto.mediapipe.Detection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Detection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Detection.serializeBinaryToWriter=function(e,r){var o=void 0;(o=e.getLabelList()).length>0&&r.writeRepeatedString(1,o),(o=e.getLabelIdList()).length>0&&r.writePackedInt32(2,o),(o=e.getScoreList()).length>0&&r.writePackedFloat(3,o),null!=(o=e.getLocationData())&&r.writeMessage(4,o,a.LocationData.serializeBinaryToWriter),null!=(o=t.Message.getField(e,5))&&r.writeString(5,o),null!=(o=t.Message.getField(e,6))&&r.writeString(6,o),null!=(o=t.Message.getField(e,7))&&r.writeInt64(7,o),(o=e.getAssociatedDetectionsList()).length>0&&r.writeRepeatedMessage(8,o,proto.mediapipe.Detection.AssociatedDetection.serializeBinaryToWriter),(o=e.getDisplayNameList()).length>0&&r.writeRepeatedString(9,o),null!=(o=t.Message.getField(e,10))&&r.writeInt64(10,o)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Detection.AssociatedDetection.prototype.toObject=function(e){return proto.mediapipe.Detection.AssociatedDetection.toObject(e,this)},proto.mediapipe.Detection.AssociatedDetection.toObject=function(e,r){var o,a={id:null==(o=t.Message.getField(r,1))?void 0:o,confidence:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Detection.AssociatedDetection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Detection.AssociatedDetection;return proto.mediapipe.Detection.AssociatedDetection.deserializeBinaryFromReader(o,r)},proto.mediapipe.Detection.AssociatedDetection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setId(r);break;case 2:r=t.readFloat(),e.setConfidence(r);break;default:t.skipField()}return e},proto.mediapipe.Detection.AssociatedDetection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Detection.AssociatedDetection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Detection.AssociatedDetection.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o)},proto.mediapipe.Detection.AssociatedDetection.prototype.getId=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.Detection.AssociatedDetection.prototype.setId=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Detection.AssociatedDetection.prototype.clearId=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Detection.AssociatedDetection.prototype.hasId=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Detection.AssociatedDetection.prototype.getConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.Detection.AssociatedDetection.prototype.setConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Detection.AssociatedDetection.prototype.clearConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Detection.AssociatedDetection.prototype.hasConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Detection.prototype.getLabelList=function(){return t.Message.getRepeatedField(this,1)},proto.mediapipe.Detection.prototype.setLabelList=function(e){return t.Message.setField(this,1,e||[])},proto.mediapipe.Detection.prototype.addLabel=function(e,r){return t.Message.addToRepeatedField(this,1,e,r)},proto.mediapipe.Detection.prototype.clearLabelList=function(){return this.setLabelList([])},proto.mediapipe.Detection.prototype.getLabelIdList=function(){return t.Message.getRepeatedField(this,2)},proto.mediapipe.Detection.prototype.setLabelIdList=function(e){return t.Message.setField(this,2,e||[])},proto.mediapipe.Detection.prototype.addLabelId=function(e,r){return t.Message.addToRepeatedField(this,2,e,r)},proto.mediapipe.Detection.prototype.clearLabelIdList=function(){return this.setLabelIdList([])},proto.mediapipe.Detection.prototype.getScoreList=function(){return t.Message.getRepeatedFloatingPointField(this,3)},proto.mediapipe.Detection.prototype.setScoreList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.Detection.prototype.addScore=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.Detection.prototype.clearScoreList=function(){return this.setScoreList([])},proto.mediapipe.Detection.prototype.getLocationData=function(){return t.Message.getWrapperField(this,a.LocationData,4)},proto.mediapipe.Detection.prototype.setLocationData=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.Detection.prototype.clearLocationData=function(){return this.setLocationData(void 0)},proto.mediapipe.Detection.prototype.hasLocationData=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.Detection.prototype.getFeatureTag=function(){return t.Message.getFieldWithDefault(this,5,"")},proto.mediapipe.Detection.prototype.setFeatureTag=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.Detection.prototype.clearFeatureTag=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.Detection.prototype.hasFeatureTag=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.Detection.prototype.getTrackId=function(){return t.Message.getFieldWithDefault(this,6,"")},proto.mediapipe.Detection.prototype.setTrackId=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.Detection.prototype.clearTrackId=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.Detection.prototype.hasTrackId=function(){return null!=t.Message.getField(this,6)},proto.mediapipe.Detection.prototype.getDetectionId=function(){return t.Message.getFieldWithDefault(this,7,0)},proto.mediapipe.Detection.prototype.setDetectionId=function(e){return t.Message.setField(this,7,e)},proto.mediapipe.Detection.prototype.clearDetectionId=function(){return t.Message.setField(this,7,void 0)},proto.mediapipe.Detection.prototype.hasDetectionId=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.Detection.prototype.getAssociatedDetectionsList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.Detection.AssociatedDetection,8)},proto.mediapipe.Detection.prototype.setAssociatedDetectionsList=function(e){return t.Message.setRepeatedWrapperField(this,8,e)},proto.mediapipe.Detection.prototype.addAssociatedDetections=function(e,r){return t.Message.addToRepeatedWrapperField(this,8,e,proto.mediapipe.Detection.AssociatedDetection,r)},proto.mediapipe.Detection.prototype.clearAssociatedDetectionsList=function(){return this.setAssociatedDetectionsList([])},proto.mediapipe.Detection.prototype.getDisplayNameList=function(){return t.Message.getRepeatedField(this,9)},proto.mediapipe.Detection.prototype.setDisplayNameList=function(e){return t.Message.setField(this,9,e||[])},proto.mediapipe.Detection.prototype.addDisplayName=function(e,r){return t.Message.addToRepeatedField(this,9,e,r)},proto.mediapipe.Detection.prototype.clearDisplayNameList=function(){return this.setDisplayNameList([])},proto.mediapipe.Detection.prototype.getTimestampUsec=function(){return t.Message.getFieldWithDefault(this,10,0)},proto.mediapipe.Detection.prototype.setTimestampUsec=function(e){return t.Message.setField(this,10,e)},proto.mediapipe.Detection.prototype.clearTimestampUsec=function(){return t.Message.setField(this,10,void 0)},proto.mediapipe.Detection.prototype.hasTimestampUsec=function(){return null!=t.Message.getField(this,10)},proto.mediapipe.DetectionList.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.DetectionList.prototype.toObject=function(e){return proto.mediapipe.DetectionList.toObject(e,this)},proto.mediapipe.DetectionList.toObject=function(e,r){var o={detectionList:t.Message.toObjectList(r.getDetectionList(),proto.mediapipe.Detection.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.DetectionList.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.DetectionList;return proto.mediapipe.DetectionList.deserializeBinaryFromReader(o,r)},proto.mediapipe.DetectionList.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.Detection;t.readMessage(r,proto.mediapipe.Detection.deserializeBinaryFromReader),e.addDetection(r)}else t.skipField();return e},proto.mediapipe.DetectionList.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.DetectionList.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.DetectionList.serializeBinaryToWriter=function(e,t){var r;(r=e.getDetectionList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.Detection.serializeBinaryToWriter)},proto.mediapipe.DetectionList.prototype.getDetectionList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.Detection,1)},proto.mediapipe.DetectionList.prototype.setDetectionList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.DetectionList.prototype.addDetection=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.Detection,r)},proto.mediapipe.DetectionList.prototype.clearDetectionList=function(){return this.setDetectionList([])},r.object.extend(e,proto.mediapipe)}(detection_pb);var base_options_pb={},acceleration_pb={},inference_calculator_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite",null,o),r.exportSymbol("proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack",null,o),proto.mediapipe.InferenceCalculatorOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InferenceCalculatorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.displayName="proto.mediapipe.InferenceCalculatorOptions"),proto.mediapipe.InferenceCalculatorOptions.Delegate=function(e){t.Message.initialize(this,e,0,-1,null,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_)},r.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.displayName="proto.mediapipe.InferenceCalculatorOptions.Delegate"),proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.displayName="proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite"),proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.displayName="proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu"),proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.displayName="proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi"),proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.displayName="proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.toObject=function(e,r){var o,a={modelPath:null==(o=t.Message.getField(r,1))?void 0:o,useGpu:t.Message.getBooleanFieldWithDefault(r,2,!1),useNnapi:t.Message.getBooleanFieldWithDefault(r,3,!1),cpuNumThread:t.Message.getFieldWithDefault(r,4,-1),delegate:(o=r.getDelegate())&&proto.mediapipe.InferenceCalculatorOptions.Delegate.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.InferenceCalculatorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions;return proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setModelPath(r);break;case 2:r=t.readBool(),e.setUseGpu(r);break;case 3:r=t.readBool(),e.setUseNnapi(r);break;case 4:r=t.readInt32(),e.setCpuNumThread(r);break;case 5:r=new proto.mediapipe.InferenceCalculatorOptions.Delegate,t.readMessage(r,proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader),e.setDelegate(r);break;default:t.skipField()}return e},proto.mediapipe.InferenceCalculatorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeBool(2,o),null!=(o=t.Message.getField(e,3))&&r.writeBool(3,o),null!=(o=t.Message.getField(e,4))&&r.writeInt32(4,o),null!=(o=e.getDelegate())&&r.writeMessage(5,o,proto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter)},proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_=[[1,2,3,4]],proto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase={DELEGATE_NOT_SET:0,TFLITE:1,GPU:2,NNAPI:3,XNNPACK:4},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getDelegateCase=function(){return t.Message.computeOneofCase(this,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.Delegate.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.Delegate.toObject=function(e,t){var r,o={tflite:(r=t.getTflite())&&proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject(e,r),gpu:(r=t.getGpu())&&proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject(e,r),nnapi:(r=t.getNnapi())&&proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject(e,r),xnnpack:(r=t.getXnnpack())&&proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions.Delegate;return proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite;t.readMessage(r,proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader),e.setTflite(r);break;case 2:r=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu,t.readMessage(r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader),e.setGpu(r);break;case 3:r=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi,t.readMessage(r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader),e.setNnapi(r);break;case 4:r=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack,t.readMessage(r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader),e.setXnnpack(r);break;default:t.skipField()}return e},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getTflite())&&t.writeMessage(1,r,proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter),null!=(r=e.getGpu())&&t.writeMessage(2,r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter),null!=(r=e.getNnapi())&&t.writeMessage(3,r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter),null!=(r=e.getXnnpack())&&t.writeMessage(4,r,proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject=function(e,t){var r={};return e&&(r.$jspbMessageInstance=t),r}),proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite;return proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)t.getFieldNumber(),t.skipField();return e},proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter=function(e,t){},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject=function(e,r){var o,a={useAdvancedGpuApi:t.Message.getBooleanFieldWithDefault(r,1,!1),api:t.Message.getFieldWithDefault(r,4,0),allowPrecisionLoss:t.Message.getBooleanFieldWithDefault(r,3,!0),cachedKernelPath:null==(o=t.Message.getField(r,2))?void 0:o,serializedModelDir:null==(o=t.Message.getField(r,7))?void 0:o,modelToken:null==(o=t.Message.getField(r,8))?void 0:o,usage:t.Message.getFieldWithDefault(r,5,2)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readBool();e.setUseAdvancedGpuApi(r);break;case 4:r=t.readEnum(),e.setApi(r);break;case 3:r=t.readBool(),e.setAllowPrecisionLoss(r);break;case 2:r=t.readString(),e.setCachedKernelPath(r);break;case 7:r=t.readString(),e.setSerializedModelDir(r);break;case 8:r=t.readString(),e.setModelToken(r);break;case 5:r=t.readEnum(),e.setUsage(r);break;default:t.skipField()}return e},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeBool(1,o),null!=(o=t.Message.getField(e,4))&&r.writeEnum(4,o),null!=(o=t.Message.getField(e,3))&&r.writeBool(3,o),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=t.Message.getField(e,7))&&r.writeString(7,o),null!=(o=t.Message.getField(e,8))&&r.writeString(8,o),null!=(o=t.Message.getField(e,5))&&r.writeEnum(5,o)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api={ANY:0,OPENGL:1,OPENCL:2},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage={UNSPECIFIED:0,FAST_SINGLE_ANSWER:1,SUSTAINED_SPEED:2},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getUseAdvancedGpuApi=function(){return t.Message.getBooleanFieldWithDefault(this,1,!1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setUseAdvancedGpuApi=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearUseAdvancedGpuApi=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasUseAdvancedGpuApi=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getApi=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setApi=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearApi=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasApi=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getAllowPrecisionLoss=function(){return t.Message.getBooleanFieldWithDefault(this,3,!0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setAllowPrecisionLoss=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearAllowPrecisionLoss=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasAllowPrecisionLoss=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getCachedKernelPath=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setCachedKernelPath=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearCachedKernelPath=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasCachedKernelPath=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getSerializedModelDir=function(){return t.Message.getFieldWithDefault(this,7,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setSerializedModelDir=function(e){return t.Message.setField(this,7,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearSerializedModelDir=function(){return t.Message.setField(this,7,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasSerializedModelDir=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getModelToken=function(){return t.Message.getFieldWithDefault(this,8,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setModelToken=function(e){return t.Message.setField(this,8,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearModelToken=function(){return t.Message.setField(this,8,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasModelToken=function(){return null!=t.Message.getField(this,8)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getUsage=function(){return t.Message.getFieldWithDefault(this,5,2)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setUsage=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearUsage=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasUsage=function(){return null!=t.Message.getField(this,5)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject=function(e,r){var o,a={cacheDir:null==(o=t.Message.getField(r,1))?void 0:o,modelToken:null==(o=t.Message.getField(r,2))?void 0:o,acceleratorName:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setCacheDir(r);break;case 2:r=t.readString(),e.setModelToken(r);break;case 3:r=t.readString(),e.setAcceleratorName(r);break;default:t.skipField()}return e},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=t.Message.getField(e,3))&&r.writeString(3,o)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getCacheDir=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setCacheDir=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearCacheDir=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasCacheDir=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getModelToken=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setModelToken=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearModelToken=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasModelToken=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getAcceleratorName=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setAcceleratorName=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearAcceleratorName=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasAcceleratorName=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.toObject=function(e){return proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(e,this)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject=function(e,r){var o={numThreads:t.Message.getFieldWithDefault(r,1,-1)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader(o,r)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=t.readInt32();e.setNumThreads(r)}else t.skipField();return e},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter=function(e,r){var o;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.getNumThreads=function(){return t.Message.getFieldWithDefault(this,1,-1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.setNumThreads=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.clearNumThreads=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.hasNumThreads=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getTflite=function(){return t.Message.getWrapperField(this,proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite,1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setTflite=function(e){return t.Message.setOneofWrapperField(this,1,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0],e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearTflite=function(){return this.setTflite(void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasTflite=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getGpu=function(){return t.Message.getWrapperField(this,proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu,2)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setGpu=function(e){return t.Message.setOneofWrapperField(this,2,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0],e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearGpu=function(){return this.setGpu(void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasGpu=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getNnapi=function(){return t.Message.getWrapperField(this,proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi,3)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setNnapi=function(e){return t.Message.setOneofWrapperField(this,3,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0],e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearNnapi=function(){return this.setNnapi(void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasNnapi=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getXnnpack=function(){return t.Message.getWrapperField(this,proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack,4)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setXnnpack=function(e){return t.Message.setOneofWrapperField(this,4,proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0],e)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearXnnpack=function(){return this.setXnnpack(void 0)},proto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasXnnpack=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.InferenceCalculatorOptions.ext=new t.ExtensionFieldInfo(336783863,{ext:0},proto.mediapipe.InferenceCalculatorOptions,proto.mediapipe.InferenceCalculatorOptions.toObject,0),n.CalculatorOptions.extensionsBinary[336783863]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.InferenceCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[336783863]=proto.mediapipe.InferenceCalculatorOptions.ext,proto.mediapipe.InferenceCalculatorOptions.prototype.getModelPath=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.InferenceCalculatorOptions.prototype.setModelPath=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.InferenceCalculatorOptions.prototype.clearModelPath=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.InferenceCalculatorOptions.prototype.hasModelPath=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.InferenceCalculatorOptions.prototype.getUseGpu=function(){return t.Message.getBooleanFieldWithDefault(this,2,!1)},proto.mediapipe.InferenceCalculatorOptions.prototype.setUseGpu=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.InferenceCalculatorOptions.prototype.clearUseGpu=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.InferenceCalculatorOptions.prototype.hasUseGpu=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.InferenceCalculatorOptions.prototype.getUseNnapi=function(){return t.Message.getBooleanFieldWithDefault(this,3,!1)},proto.mediapipe.InferenceCalculatorOptions.prototype.setUseNnapi=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.InferenceCalculatorOptions.prototype.clearUseNnapi=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.InferenceCalculatorOptions.prototype.hasUseNnapi=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.InferenceCalculatorOptions.prototype.getCpuNumThread=function(){return t.Message.getFieldWithDefault(this,4,-1)},proto.mediapipe.InferenceCalculatorOptions.prototype.setCpuNumThread=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.InferenceCalculatorOptions.prototype.clearCpuNumThread=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.InferenceCalculatorOptions.prototype.hasCpuNumThread=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.InferenceCalculatorOptions.prototype.getDelegate=function(){return t.Message.getWrapperField(this,proto.mediapipe.InferenceCalculatorOptions.Delegate,5)},proto.mediapipe.InferenceCalculatorOptions.prototype.setDelegate=function(e){return t.Message.setWrapperField(this,5,e)},proto.mediapipe.InferenceCalculatorOptions.prototype.clearDelegate=function(){return this.setDelegate(void 0)},proto.mediapipe.InferenceCalculatorOptions.prototype.hasDelegate=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.InferenceCalculatorOptions.ext=new t.ExtensionFieldInfo(336783863,{ext:0},proto.mediapipe.InferenceCalculatorOptions,proto.mediapipe.InferenceCalculatorOptions.toObject,0),n.CalculatorOptions.extensionsBinary[336783863]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.InferenceCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[336783863]=proto.mediapipe.InferenceCalculatorOptions.ext,r.object.extend(e,proto.mediapipe)}(inference_calculator_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=inference_calculator_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.tasks.core.proto.Acceleration",null,o),r.exportSymbol("proto.mediapipe.tasks.core.proto.Acceleration.DelegateCase",null,o),proto.mediapipe.tasks.core.proto.Acceleration=function(e){t.Message.initialize(this,e,0,-1,null,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_)},r.inherits(proto.mediapipe.tasks.core.proto.Acceleration,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.core.proto.Acceleration.displayName="proto.mediapipe.tasks.core.proto.Acceleration"),proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_=[[1,2,4,5]],proto.mediapipe.tasks.core.proto.Acceleration.DelegateCase={DELEGATE_NOT_SET:0,XNNPACK:1,GPU:2,TFLITE:4,NNAPI:5},proto.mediapipe.tasks.core.proto.Acceleration.prototype.getDelegateCase=function(){return t.Message.computeOneofCase(this,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.core.proto.Acceleration.prototype.toObject=function(e){return proto.mediapipe.tasks.core.proto.Acceleration.toObject(e,this)},proto.mediapipe.tasks.core.proto.Acceleration.toObject=function(e,t){var r,o={xnnpack:(r=t.getXnnpack())&&a.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(e,r),gpu:(r=t.getGpu())&&a.InferenceCalculatorOptions.Delegate.Gpu.toObject(e,r),tflite:(r=t.getTflite())&&a.InferenceCalculatorOptions.Delegate.TfLite.toObject(e,r),nnapi:(r=t.getNnapi())&&a.InferenceCalculatorOptions.Delegate.Nnapi.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.core.proto.Acceleration.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.core.proto.Acceleration;return proto.mediapipe.tasks.core.proto.Acceleration.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.core.proto.Acceleration.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new a.InferenceCalculatorOptions.Delegate.Xnnpack;t.readMessage(r,a.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader),e.setXnnpack(r);break;case 2:r=new a.InferenceCalculatorOptions.Delegate.Gpu,t.readMessage(r,a.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader),e.setGpu(r);break;case 4:r=new a.InferenceCalculatorOptions.Delegate.TfLite,t.readMessage(r,a.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader),e.setTflite(r);break;case 5:r=new a.InferenceCalculatorOptions.Delegate.Nnapi,t.readMessage(r,a.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader),e.setNnapi(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.core.proto.Acceleration.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.core.proto.Acceleration.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.core.proto.Acceleration.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getXnnpack())&&t.writeMessage(1,r,a.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter),null!=(r=e.getGpu())&&t.writeMessage(2,r,a.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter),null!=(r=e.getTflite())&&t.writeMessage(4,r,a.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter),null!=(r=e.getNnapi())&&t.writeMessage(5,r,a.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.getXnnpack=function(){return t.Message.getWrapperField(this,a.InferenceCalculatorOptions.Delegate.Xnnpack,1)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.setXnnpack=function(e){return t.Message.setOneofWrapperField(this,1,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0],e)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.clearXnnpack=function(){return this.setXnnpack(void 0)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.hasXnnpack=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.getGpu=function(){return t.Message.getWrapperField(this,a.InferenceCalculatorOptions.Delegate.Gpu,2)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.setGpu=function(e){return t.Message.setOneofWrapperField(this,2,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0],e)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.clearGpu=function(){return this.setGpu(void 0)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.hasGpu=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.getTflite=function(){return t.Message.getWrapperField(this,a.InferenceCalculatorOptions.Delegate.TfLite,4)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.setTflite=function(e){return t.Message.setOneofWrapperField(this,4,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0],e)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.clearTflite=function(){return this.setTflite(void 0)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.hasTflite=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.getNnapi=function(){return t.Message.getWrapperField(this,a.InferenceCalculatorOptions.Delegate.Nnapi,5)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.setNnapi=function(e){return t.Message.setOneofWrapperField(this,5,proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0],e)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.clearNnapi=function(){return this.setNnapi(void 0)},proto.mediapipe.tasks.core.proto.Acceleration.prototype.hasNnapi=function(){return null!=t.Message.getField(this,5)},r.object.extend(e,proto.mediapipe.tasks.core.proto)}(acceleration_pb);var external_file_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.core.proto.ExternalFile",null,o),r.exportSymbol("proto.mediapipe.tasks.core.proto.FileDescriptorMeta",null,o),r.exportSymbol("proto.mediapipe.tasks.core.proto.FilePointerMeta",null,o),proto.mediapipe.tasks.core.proto.ExternalFile=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.core.proto.ExternalFile,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.core.proto.ExternalFile.displayName="proto.mediapipe.tasks.core.proto.ExternalFile"),proto.mediapipe.tasks.core.proto.FileDescriptorMeta=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.core.proto.FileDescriptorMeta,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.core.proto.FileDescriptorMeta.displayName="proto.mediapipe.tasks.core.proto.FileDescriptorMeta"),proto.mediapipe.tasks.core.proto.FilePointerMeta=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.core.proto.FilePointerMeta,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.core.proto.FilePointerMeta.displayName="proto.mediapipe.tasks.core.proto.FilePointerMeta"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.core.proto.ExternalFile.prototype.toObject=function(e){return proto.mediapipe.tasks.core.proto.ExternalFile.toObject(e,this)},proto.mediapipe.tasks.core.proto.ExternalFile.toObject=function(e,r){var o,a={fileContent:r.getFileContent_asB64(),fileName:null==(o=t.Message.getField(r,2))?void 0:o,fileDescriptorMeta:(o=r.getFileDescriptorMeta())&&proto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject(e,o),filePointerMeta:(o=r.getFilePointerMeta())&&proto.mediapipe.tasks.core.proto.FilePointerMeta.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.core.proto.ExternalFile;return proto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readBytes();e.setFileContent(r);break;case 2:r=t.readString(),e.setFileName(r);break;case 3:r=new proto.mediapipe.tasks.core.proto.FileDescriptorMeta,t.readMessage(r,proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader),e.setFileDescriptorMeta(r);break;case 4:r=new proto.mediapipe.tasks.core.proto.FilePointerMeta,t.readMessage(r,proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader),e.setFilePointerMeta(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.core.proto.ExternalFile.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.core.proto.ExternalFile.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeBytes(1,o),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=e.getFileDescriptorMeta())&&r.writeMessage(3,o,proto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter),null!=(o=e.getFilePointerMeta())&&r.writeMessage(4,o,proto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent_asB64=function(){return t.Message.bytesAsB64(this.getFileContent())},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent_asU8=function(){return t.Message.bytesAsU8(this.getFileContent())},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileContent=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileContent=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileContent=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileName=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileName=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileName=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileName=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileDescriptorMeta=function(){return t.Message.getWrapperField(this,proto.mediapipe.tasks.core.proto.FileDescriptorMeta,3)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileDescriptorMeta=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileDescriptorMeta=function(){return this.setFileDescriptorMeta(void 0)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileDescriptorMeta=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFilePointerMeta=function(){return t.Message.getWrapperField(this,proto.mediapipe.tasks.core.proto.FilePointerMeta,4)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFilePointerMeta=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFilePointerMeta=function(){return this.setFilePointerMeta(void 0)},proto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFilePointerMeta=function(){return null!=t.Message.getField(this,4)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.toObject=function(e){return proto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject(e,this)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject=function(e,r){var o,a={fd:null==(o=t.Message.getField(r,1))?void 0:o,length:null==(o=t.Message.getField(r,2))?void 0:o,offset:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.core.proto.FileDescriptorMeta;return proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setFd(r);break;case 2:r=t.readInt64(),e.setLength(r);break;case 3:r=t.readInt64(),e.setOffset(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt64(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt64(3,o)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getFd=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setFd=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearFd=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasFd=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getLength=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setLength=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearLength=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasLength=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getOffset=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setOffset=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearOffset=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasOffset=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.toObject=function(e){return proto.mediapipe.tasks.core.proto.FilePointerMeta.toObject(e,this)},proto.mediapipe.tasks.core.proto.FilePointerMeta.toObject=function(e,r){var o,a={pointer:null==(o=t.Message.getField(r,1))?void 0:o,length:null==(o=t.Message.getField(r,2))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.core.proto.FilePointerMeta;return proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readUint64();e.setPointer(r);break;case 2:r=t.readInt64(),e.setLength(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeUint64(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt64(2,o)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.getPointer=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.setPointer=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.clearPointer=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.hasPointer=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.getLength=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.setLength=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.clearLength=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.hasLength=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.core.proto)}(external_file_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=acceleration_pb;r.object.extend(proto,a);var n=external_file_pb;r.object.extend(proto,n),r.exportSymbol("proto.mediapipe.tasks.core.proto.BaseOptions",null,o),proto.mediapipe.tasks.core.proto.BaseOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.core.proto.BaseOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.core.proto.BaseOptions.displayName="proto.mediapipe.tasks.core.proto.BaseOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.core.proto.BaseOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.core.proto.BaseOptions.toObject(e,this)},proto.mediapipe.tasks.core.proto.BaseOptions.toObject=function(e,r){var o,i={modelAsset:(o=r.getModelAsset())&&n.ExternalFile.toObject(e,o),useStreamMode:t.Message.getBooleanFieldWithDefault(r,2,!1),acceleration:(o=r.getAcceleration())&&a.Acceleration.toObject(e,o)};return e&&(i.$jspbMessageInstance=r),i}),proto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.core.proto.BaseOptions;return proto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new n.ExternalFile;t.readMessage(r,n.ExternalFile.deserializeBinaryFromReader),e.setModelAsset(r);break;case 2:r=t.readBool(),e.setUseStreamMode(r);break;case 3:r=new a.Acceleration,t.readMessage(r,a.Acceleration.deserializeBinaryFromReader),e.setAcceleration(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.core.proto.BaseOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.core.proto.BaseOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getModelAsset())&&r.writeMessage(1,o,n.ExternalFile.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeBool(2,o),null!=(o=e.getAcceleration())&&r.writeMessage(3,o,a.Acceleration.serializeBinaryToWriter)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.getModelAsset=function(){return t.Message.getWrapperField(this,n.ExternalFile,1)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.setModelAsset=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearModelAsset=function(){return this.setModelAsset(void 0)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasModelAsset=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.getUseStreamMode=function(){return t.Message.getBooleanFieldWithDefault(this,2,!1)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.setUseStreamMode=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearUseStreamMode=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasUseStreamMode=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.getAcceleration=function(){return t.Message.getWrapperField(this,a.Acceleration,3)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.setAcceleration=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearAcceleration=function(){return this.setAcceleration(void 0)},proto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasAcceleration=function(){return null!=t.Message.getField(this,3)},r.object.extend(e,proto.mediapipe.tasks.core.proto)}(base_options_pb);var face_detector_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5),minSuppressionThreshold:t.Message.getFloatingPointFieldWithDefault(r,3,.5),numFaces:null==(o=t.Message.getField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions;return proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;case 3:r=t.readFloat(),e.setMinSuppressionThreshold(r);break;case 4:r=t.readInt32(),e.setNumFaces(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeInt32(4,o)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext=new t.ExtensionFieldInfo(502141897,{ext:0},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[502141897]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[502141897]=proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.getMinSuppressionThreshold=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,.5)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.setMinSuppressionThreshold=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.clearMinSuppressionThreshold=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.hasMinSuppressionThreshold=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.getNumFaces=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.setNumFaces=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.clearNumFaces=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.prototype.hasNumFaces=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext=new t.ExtensionFieldInfo(502141897,{ext:0},proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[502141897]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[502141897]=proto.mediapipe.tasks.vision.face_detector.proto.FaceDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_detector.proto)}(face_detector_graph_options_pb);var detection_result={};Object.defineProperty(detection_result,"__esModule",{value:!0}),detection_result.convertFromDetectionProto=void 0;const DEFAULT_CATEGORY_INDEX=-1;function convertFromDetectionProto(e){var t,r,o,a,n,i,s,p,d,l,c,u,g;const m=e.getScoreList(),f=e.getLabelIdList(),h=e.getLabelList(),y=e.getDisplayNameList(),_={categories:[],keypoints:[]};for(let e=0;e<m.length;e++)_.categories.push({score:m[e],index:null!==(t=f[e])&&void 0!==t?t:DEFAULT_CATEGORY_INDEX,categoryName:null!==(r=h[e])&&void 0!==r?r:"",displayName:null!==(o=y[e])&&void 0!==o?o:""});const b=null===(a=e.getLocationData())||void 0===a?void 0:a.getBoundingBox();if(b&&(_.boundingBox={originX:null!==(n=b.getXmin())&&void 0!==n?n:0,originY:null!==(i=b.getYmin())&&void 0!==i?i:0,width:null!==(s=b.getWidth())&&void 0!==s?s:0,height:null!==(p=b.getHeight())&&void 0!==p?p:0}),null===(d=e.getLocationData())||void 0===d?void 0:d.getRelativeKeypointsList().length)for(const t of e.getLocationData().getRelativeKeypointsList())_.keypoints.push({x:null!==(l=t.getX())&&void 0!==l?l:0,y:null!==(c=t.getY())&&void 0!==c?c:0,score:null!==(u=t.getScore())&&void 0!==u?u:0,label:null!==(g=t.getKeypointLabel())&&void 0!==g?g:""});return _}detection_result.convertFromDetectionProto=convertFromDetectionProto;var vision_task_runner={},rect_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.NormalizedRect",null,o),r.exportSymbol("proto.mediapipe.Rect",null,o),proto.mediapipe.Rect=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Rect,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Rect.displayName="proto.mediapipe.Rect"),proto.mediapipe.NormalizedRect=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.NormalizedRect,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.NormalizedRect.displayName="proto.mediapipe.NormalizedRect"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Rect.prototype.toObject=function(e){return proto.mediapipe.Rect.toObject(e,this)},proto.mediapipe.Rect.toObject=function(e,r){var o,a={xCenter:null==(o=t.Message.getField(r,1))?void 0:o,yCenter:null==(o=t.Message.getField(r,2))?void 0:o,height:null==(o=t.Message.getField(r,3))?void 0:o,width:null==(o=t.Message.getField(r,4))?void 0:o,rotation:t.Message.getFloatingPointFieldWithDefault(r,5,0),rectId:null==(o=t.Message.getField(r,6))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Rect.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Rect;return proto.mediapipe.Rect.deserializeBinaryFromReader(o,r)},proto.mediapipe.Rect.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setXCenter(r);break;case 2:r=t.readInt32(),e.setYCenter(r);break;case 3:r=t.readInt32(),e.setHeight(r);break;case 4:r=t.readInt32(),e.setWidth(r);break;case 5:r=t.readFloat(),e.setRotation(r);break;case 6:r=t.readInt64(),e.setRectId(r);break;default:t.skipField()}return e},proto.mediapipe.Rect.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Rect.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Rect.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o),null!=(o=t.Message.getField(e,4))&&r.writeInt32(4,o),null!=(o=t.Message.getField(e,5))&&r.writeFloat(5,o),null!=(o=t.Message.getField(e,6))&&r.writeInt64(6,o)},proto.mediapipe.Rect.prototype.getXCenter=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.Rect.prototype.setXCenter=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Rect.prototype.clearXCenter=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Rect.prototype.hasXCenter=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Rect.prototype.getYCenter=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.Rect.prototype.setYCenter=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Rect.prototype.clearYCenter=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Rect.prototype.hasYCenter=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Rect.prototype.getHeight=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.Rect.prototype.setHeight=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.Rect.prototype.clearHeight=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.Rect.prototype.hasHeight=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.Rect.prototype.getWidth=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.Rect.prototype.setWidth=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.Rect.prototype.clearWidth=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.Rect.prototype.hasWidth=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.Rect.prototype.getRotation=function(){return t.Message.getFloatingPointFieldWithDefault(this,5,0)},proto.mediapipe.Rect.prototype.setRotation=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.Rect.prototype.clearRotation=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.Rect.prototype.hasRotation=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.Rect.prototype.getRectId=function(){return t.Message.getFieldWithDefault(this,6,0)},proto.mediapipe.Rect.prototype.setRectId=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.Rect.prototype.clearRectId=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.Rect.prototype.hasRectId=function(){return null!=t.Message.getField(this,6)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.NormalizedRect.prototype.toObject=function(e){return proto.mediapipe.NormalizedRect.toObject(e,this)},proto.mediapipe.NormalizedRect.toObject=function(e,r){var o,a={xCenter:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,yCenter:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,height:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,width:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,rotation:t.Message.getFloatingPointFieldWithDefault(r,5,0),rectId:null==(o=t.Message.getField(r,6))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.NormalizedRect.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.NormalizedRect;return proto.mediapipe.NormalizedRect.deserializeBinaryFromReader(o,r)},proto.mediapipe.NormalizedRect.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readFloat();e.setXCenter(r);break;case 2:r=t.readFloat(),e.setYCenter(r);break;case 3:r=t.readFloat(),e.setHeight(r);break;case 4:r=t.readFloat(),e.setWidth(r);break;case 5:r=t.readFloat(),e.setRotation(r);break;case 6:r=t.readInt64(),e.setRectId(r);break;default:t.skipField()}return e},proto.mediapipe.NormalizedRect.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.NormalizedRect.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.NormalizedRect.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeFloat(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o),null!=(o=t.Message.getField(e,5))&&r.writeFloat(5,o),null!=(o=t.Message.getField(e,6))&&r.writeInt64(6,o)},proto.mediapipe.NormalizedRect.prototype.getXCenter=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.NormalizedRect.prototype.setXCenter=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.NormalizedRect.prototype.clearXCenter=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.NormalizedRect.prototype.hasXCenter=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.NormalizedRect.prototype.getYCenter=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.NormalizedRect.prototype.setYCenter=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.NormalizedRect.prototype.clearYCenter=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.NormalizedRect.prototype.hasYCenter=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.NormalizedRect.prototype.getHeight=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.NormalizedRect.prototype.setHeight=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.NormalizedRect.prototype.clearHeight=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.NormalizedRect.prototype.hasHeight=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.NormalizedRect.prototype.getWidth=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.NormalizedRect.prototype.setWidth=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.NormalizedRect.prototype.clearWidth=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.NormalizedRect.prototype.hasWidth=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.NormalizedRect.prototype.getRotation=function(){return t.Message.getFloatingPointFieldWithDefault(this,5,0)},proto.mediapipe.NormalizedRect.prototype.setRotation=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.NormalizedRect.prototype.clearRotation=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.NormalizedRect.prototype.hasRotation=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.NormalizedRect.prototype.getRectId=function(){return t.Message.getFieldWithDefault(this,6,0)},proto.mediapipe.NormalizedRect.prototype.setRectId=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.NormalizedRect.prototype.clearRectId=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.NormalizedRect.prototype.hasRectId=function(){return null!=t.Message.getField(this,6)},r.object.extend(e,proto.mediapipe)}(rect_pb);var task_runner={},graph_runner={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createGraphRunner=e.createMediaPipeLib=e.GraphRunner=e.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME=void 0;const t=platform_utils;e.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME="__graph_config__";class r{constructor(e,r){this.autoResizeCanvas=!0,this.wasmModule=e,this.audioPtr=null,this.audioSize=0,this.hasMultiStreamSupport="function"==typeof this.wasmModule._addIntToInputStream,void 0!==r?this.wasmModule.canvas=r:"undefined"==typeof OffscreenCanvas||(0,t.isWebKit)()?(console.warn("OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas."),this.wasmModule.canvas=document.createElement("canvas")):this.wasmModule.canvas=new OffscreenCanvas(1,1)}async initializeGraph(e){const t=await fetch(e),r=await t.arrayBuffer(),o=!(e.endsWith(".pbtxt")||e.endsWith(".textproto"));this.setGraph(new Uint8Array(r),o)}setGraphFromString(e){this.setGraph((new TextEncoder).encode(e),!1)}setGraph(e,t){const r=e.length,o=this.wasmModule._malloc(r);this.wasmModule.HEAPU8.set(e,o),t?this.wasmModule._changeBinaryGraph(r,o):this.wasmModule._changeTextGraph(r,o),this.wasmModule._free(o)}configureAudio(e,t,r,o,a){this.wasmModule._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep ":gl_graph_runner_audio" missing?'),o=o||"input_audio",this.wrapStringPtr(o,(o=>{a=a||"audio_header",this.wrapStringPtr(a,(a=>{this.wasmModule._configureAudio(o,a,e,t,r)}))}))}setAutoResizeCanvas(e){this.autoResizeCanvas=e}setAutoRenderToScreen(e){this.wasmModule._setAutoRenderToScreen(e)}bindTextureToStream(e,t){if(!this.wasmModule.canvas)throw new Error("No OpenGL canvas configured.");t?this.wasmModule._bindTextureToStream(t):console.assert(this.wasmModule._bindTextureToCanvas());const r=this.wasmModule.canvas.getContext("webgl2")||this.wasmModule.canvas.getContext("webgl");if(!r)throw new Error("Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.");let o,a;return r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),e.videoWidth?(o=e.videoWidth,a=e.videoHeight):e.naturalWidth?(o=e.naturalWidth,a=e.naturalHeight):(o=e.width,a=e.height),!this.autoResizeCanvas||o===this.wasmModule.canvas.width&&a===this.wasmModule.canvas.height||(this.wasmModule.canvas.width=o,this.wasmModule.canvas.height=a),[o,a]}processGl(e,t){const[r,o]=this.bindTextureToStream(e),a=this.wasmModule._malloc(16);this.wasmModule.HEAPU32[a/4]=r,this.wasmModule.HEAPU32[a/4+1]=o,this.wasmModule.HEAPF64[a/8+1]=t,this.wasmModule._processGl(a),this.wasmModule._free(a)}wrapStringPtr(e,t){this.hasMultiStreamSupport||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=this.wasmModule.stringToNewUTF8(e);t(r),this.wasmModule._free(r)}wrapStringPtrPtr(e,t){this.hasMultiStreamSupport||console.error("No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target");const r=new Uint32Array(e.length);for(let t=0;t<e.length;t++)r[t]=this.wasmModule.stringToNewUTF8(e[t]);const o=this.wasmModule._malloc(4*r.length);this.wasmModule.HEAPU32.set(r,o>>2),t(o);for(const e of r)this.wasmModule._free(e);this.wasmModule._free(o)}getCalculatorGraphConfig(t,r){const o=e.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME;this.setListener(o,(e=>{t(e)})),this.wrapStringPtr(o,(e=>{this.wasmModule._getGraphConfig(e,r)})),delete this.wasmModule.simpleListeners[o]}setListener(e,t){this.wasmModule.simpleListeners=this.wasmModule.simpleListeners||{},this.wasmModule.simpleListeners[e]=t}setVectorListener(e,t){let r=[];this.wasmModule.simpleListeners=this.wasmModule.simpleListeners||{},this.wasmModule.simpleListeners[e]=(e,o,a)=>{o?(t(r,a),r=[]):r.push(e)}}attachErrorListener(e){this.wasmModule.errorListener=e}attachEmptyPacketListener(e,t){this.wasmModule.emptyPacketListeners=this.wasmModule.emptyPacketListeners||{},this.wasmModule.emptyPacketListeners[e]=t}addAudioToStream(e,t,r){this.addAudioToStreamWithShape(e,0,0,t,r)}addAudioToStreamWithShape(e,t,r,o,a){const n=4*e.length;this.audioSize!==n&&(this.audioPtr&&this.wasmModule._free(this.audioPtr),this.audioPtr=this.wasmModule._malloc(n),this.audioSize=n),this.wasmModule.HEAPF32.set(e,this.audioPtr/4),this.wrapStringPtr(o,(e=>{this.wasmModule._addAudioToInputStream(this.audioPtr,t,r,e,a)}))}addGpuBufferToStream(e,t,r){this.wrapStringPtr(t,(t=>{const[o,a]=this.bindTextureToStream(e,t);this.wasmModule._addBoundTextureToStream(t,o,a,r)}))}addBoolToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wasmModule._addBoolToInputStream(e,t,r)}))}addDoubleToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wasmModule._addDoubleToInputStream(e,t,r)}))}addFloatToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wasmModule._addFloatToInputStream(e,t,r)}))}addIntToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wasmModule._addIntToInputStream(e,t,r)}))}addStringToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wrapStringPtr(e,(e=>{this.wasmModule._addStringToInputStream(e,t,r)}))}))}addStringRecordToStream(e,t,r){this.wrapStringPtr(t,(t=>{this.wrapStringPtrPtr(Object.keys(e),(o=>{this.wrapStringPtrPtr(Object.values(e),(a=>{this.wasmModule._addFlatHashMapToInputStream(o,a,Object.keys(e).length,t,r)}))}))}))}addProtoToStream(e,t,r,o){this.wrapStringPtr(r,(r=>{this.wrapStringPtr(t,(t=>{const a=this.wasmModule._malloc(e.length);this.wasmModule.HEAPU8.set(e,a),this.wasmModule._addProtoToInputStream(a,e.length,t,r,o),this.wasmModule._free(a)}))}))}addEmptyPacketToStream(e,t){this.wrapStringPtr(e,(e=>{this.wasmModule._addEmptyPacketToInputStream(e,t)}))}addBoolToInputSidePacket(e,t){this.wrapStringPtr(t,(t=>{this.wasmModule._addBoolToInputSidePacket(e,t)}))}addDoubleToInputSidePacket(e,t){this.wrapStringPtr(t,(t=>{this.wasmModule._addDoubleToInputSidePacket(e,t)}))}addFloatToInputSidePacket(e,t){this.wrapStringPtr(t,(t=>{this.wasmModule._addFloatToInputSidePacket(e,t)}))}addIntToInputSidePacket(e,t){this.wrapStringPtr(t,(t=>{this.wasmModule._addIntToInputSidePacket(e,t)}))}addStringToInputSidePacket(e,t){this.wrapStringPtr(t,(t=>{this.wrapStringPtr(e,(e=>{this.wasmModule._addStringToInputSidePacket(e,t)}))}))}addProtoToInputSidePacket(e,t,r){this.wrapStringPtr(r,(r=>{this.wrapStringPtr(t,(t=>{const o=this.wasmModule._malloc(e.length);this.wasmModule.HEAPU8.set(e,o),this.wasmModule._addProtoToInputSidePacket(o,e.length,t,r),this.wasmModule._free(o)}))}))}attachBoolListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachBoolListener(e)}))}attachBoolVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachBoolVectorListener(e)}))}attachIntListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachIntListener(e)}))}attachIntVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachIntVectorListener(e)}))}attachDoubleListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachDoubleListener(e)}))}attachDoubleVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachDoubleVectorListener(e)}))}attachFloatListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachFloatListener(e)}))}attachFloatVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachFloatVectorListener(e)}))}attachStringListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachStringListener(e)}))}attachStringVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachStringVectorListener(e)}))}attachProtoListener(e,t,r){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachProtoListener(e,r||!1)}))}attachProtoVectorListener(e,t,r){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmModule._attachProtoVectorListener(e,r||!1)}))}attachAudioListener(e,t,r){this.wasmModule._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep ":gl_graph_runner_audio_out" missing?'),this.setListener(e,((e,r)=>{const o=new Float32Array(e.buffer,e.byteOffset,e.length/4);t(o,r)})),this.wrapStringPtr(e,(e=>{this.wasmModule._attachAudioListener(e,r||!1)}))}finishProcessing(){this.wasmModule._waitUntilIdle()}closeGraph(){this.wasmModule._closeGraph(),this.wasmModule.simpleListeners=void 0,this.wasmModule.emptyPacketListeners=void 0}}async function o(e){if("function"!=typeof importScripts){const t=document.createElement("script");return t.setAttribute("src",e),t.setAttribute("crossorigin","anonymous"),new Promise((e=>{t.addEventListener("load",(()=>{e()}),!1),t.addEventListener("error",(()=>{e()}),!1),document.body.appendChild(t)}))}importScripts(e.toString())}async function a(e,t,r,a,n){const i=[];if(t&&i.push(t),r&&i.push(r),i.length&&await Promise.all(i.map(o)),!self.ModuleFactory)throw new Error("ModuleFactory not set.");if(self.Module&&n){const e=self.Module;e.locateFile=n.locateFile,n.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=n.mainScriptUrlOrBlob)}const s=await self.ModuleFactory(self.Module||n);return self.ModuleFactory=self.Module=void 0,new e(s,a)}e.GraphRunner=r,e.createMediaPipeLib=a,e.createGraphRunner=async function(e,t,o,n){return a(r,e,t,o,n)}}(graph_runner);var register_model_resources_graph_service={};function SupportModelResourcesGraphService(e){return class extends e{registerModelResourcesGraphService(){this.wasmModule._registerModelResourcesGraphService()}}}Object.defineProperty(register_model_resources_graph_service,"__esModule",{value:!0}),register_model_resources_graph_service.SupportModelResourcesGraphService=void 0,register_model_resources_graph_service.SupportModelResourcesGraphService=SupportModelResourcesGraphService,Object.defineProperty(task_runner,"__esModule",{value:!0}),task_runner.TaskRunner=task_runner.createTaskRunner=task_runner.CachedGraphRunner=void 0;const inference_calculator_pb_1=inference_calculator_pb,calculator_pb_1=calculator_pb,acceleration_pb_1=acceleration_pb,external_file_pb_1=external_file_pb,graph_runner_1$1=graph_runner,register_model_resources_graph_service_1$1=register_model_resources_graph_service,NO_ASSETS=void 0,FREE_MEMORY_STREAM="free_memory",UNUSED_STREAM_SUFFIX="_unused_out",CachedGraphRunnerType=(0,register_model_resources_graph_service_1$1.SupportModelResourcesGraphService)(graph_runner_1$1.GraphRunner);class CachedGraphRunner extends CachedGraphRunnerType{}async function createTaskRunner(e,t,r,o){const a={locateFile:()=>r.wasmBinaryPath.toString()},n=await(0,graph_runner_1$1.createMediaPipeLib)(e,r.wasmLoaderPath,NO_ASSETS,t,a);return await n.setOptions(o),n}task_runner.CachedGraphRunner=CachedGraphRunner,task_runner.createTaskRunner=createTaskRunner;class TaskRunner{static async createInstance(e,t,r,o){return createTaskRunner(e,t,r,o)}constructor(e){this.graphRunner=e,this.processingErrors=[],this.latestOutputTimestamp=0,this.graphRunner.setAutoRenderToScreen(!1)}applyOptions(e){var t,r,o,a,n,i;const s=e.baseOptions||{};if((null===(t=e.baseOptions)||void 0===t?void 0:t.modelAssetBuffer)&&(null===(r=e.baseOptions)||void 0===r?void 0:r.modelAssetPath))throw new Error("Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer");if(!((null===(o=this.baseOptions.getModelAsset())||void 0===o?void 0:o.hasFileContent())||(null===(a=this.baseOptions.getModelAsset())||void 0===a?void 0:a.hasFileName())||(null===(n=e.baseOptions)||void 0===n?void 0:n.modelAssetBuffer)||(null===(i=e.baseOptions)||void 0===i?void 0:i.modelAssetPath)))throw new Error("Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set");return this.setAcceleration(s),s.modelAssetPath?fetch(s.modelAssetPath.toString()).then((e=>{if(e.ok)return e.arrayBuffer();throw new Error(`Failed to fetch model: ${s.modelAssetPath} (${e.status})`)})).then((e=>{try{this.graphRunner.wasmModule.FS_unlink("/model.dat")}catch(e){}this.graphRunner.wasmModule.FS_createDataFile("/","model.dat",new Uint8Array(e),!0,!1,!1),this.setExternalFile("/model.dat"),this.refreshGraph(),this.onGraphRefreshed()})):(this.setExternalFile(s.modelAssetBuffer),this.refreshGraph(),this.onGraphRefreshed(),Promise.resolve())}onGraphRefreshed(){}getCalculatorGraphConfig(){let e;if(this.graphRunner.getCalculatorGraphConfig((t=>{e=calculator_pb_1.CalculatorGraphConfig.deserializeBinary(t)})),!e)throw new Error("Failed to retrieve CalculatorGraphConfig");return e}setGraph(e,t){this.graphRunner.attachErrorListener(((e,t)=>{this.processingErrors.push(new Error(t))})),this.graphRunner.registerModelResourcesGraphService(),this.graphRunner.setGraph(e,t),this.keepaliveNode=void 0,this.handleErrors()}finishProcessing(){this.graphRunner.finishProcessing(),this.handleErrors()}setLatestOutputTimestamp(e){this.latestOutputTimestamp=Math.max(this.latestOutputTimestamp,e)}getSynctheticTimestamp(){return this.latestOutputTimestamp+1}handleErrors(){try{const e=this.processingErrors.length;if(1===e)throw new Error(this.processingErrors[0].message);if(e>1)throw new Error("Encountered multiple errors: "+this.processingErrors.map((e=>e.message)).join(", "))}finally{this.processingErrors=[]}}setExternalFile(e){const t=this.baseOptions.getModelAsset()||new external_file_pb_1.ExternalFile;"string"==typeof e?(t.setFileName(e),t.clearFileContent()):e instanceof Uint8Array&&(t.setFileContent(e),t.clearFileName()),this.baseOptions.setModelAsset(t)}setAcceleration(e){let t=this.baseOptions.getAcceleration();t||(t=new acceleration_pb_1.Acceleration,t.setTflite(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.TfLite)),"delegate"in e&&("GPU"===e.delegate?t.setGpu(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.Gpu):t.setTflite(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.TfLite)),this.baseOptions.setAcceleration(t)}addKeepaliveNode(e){this.keepaliveNode=new calculator_pb_1.CalculatorGraphConfig.Node,this.keepaliveNode.setCalculator("PassThroughCalculator"),this.keepaliveNode.addInputStream(FREE_MEMORY_STREAM),this.keepaliveNode.addOutputStream(FREE_MEMORY_STREAM+UNUSED_STREAM_SUFFIX),e.addInputStream(FREE_MEMORY_STREAM),e.addNode(this.keepaliveNode)}keepStreamAlive(e){this.keepaliveNode.addInputStream(e),this.keepaliveNode.addOutputStream(e+UNUSED_STREAM_SUFFIX)}freeKeepaliveStreams(){this.graphRunner.addBoolToStream(!0,FREE_MEMORY_STREAM,this.latestOutputTimestamp)}close(){this.keepaliveNode=void 0,this.graphRunner.closeGraph()}}task_runner.TaskRunner=TaskRunner;var graph_runner_image_lib={};function SupportImage(e){return class extends e{get wasmImageModule(){return this.wasmModule}addGpuBufferAsImageToStream(e,t,r){this.wrapStringPtr(t,(t=>{const[o,a]=this.bindTextureToStream(e,t);this.wasmImageModule._addBoundTextureAsImageToStream(t,o,a,r)}))}attachImageListener(e,t){this.setListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmImageModule._attachImageListener(e)}))}attachImageVectorListener(e,t){this.setVectorListener(e,t),this.wrapStringPtr(e,(e=>{this.wasmImageModule._attachImageVectorListener(e)}))}}}Object.defineProperty(graph_runner_image_lib,"__esModule",{value:!0}),graph_runner_image_lib.SupportImage=void 0,graph_runner_image_lib.SupportImage=SupportImage,Object.defineProperty(vision_task_runner,"__esModule",{value:!0}),vision_task_runner.VisionTaskRunner=vision_task_runner.VisionGraphRunner=void 0;const rect_pb_1=rect_pb,task_runner_1=task_runner,image_1$1=image,image_shader_context_1=image_shader_context,mask_1$1=mask,graph_runner_1=graph_runner,graph_runner_image_lib_1=graph_runner_image_lib,platform_utils_1=platform_utils,register_model_resources_graph_service_1=register_model_resources_graph_service,GraphRunnerVisionType=(0,register_model_resources_graph_service_1.SupportModelResourcesGraphService)((0,graph_runner_image_lib_1.SupportImage)(graph_runner_1.GraphRunner));class VisionGraphRunner extends GraphRunnerVisionType{}function createCanvas(){return"undefined"==typeof OffscreenCanvas||(0,platform_utils_1.isWebKit)()?document.createElement("canvas"):void 0}vision_task_runner.VisionGraphRunner=VisionGraphRunner;class VisionTaskRunner extends task_runner_1.TaskRunner{static async createVisionInstance(e,t,r){var o;const a=null!==(o=r.canvas)&&void 0!==o?o:createCanvas();return task_runner_1.TaskRunner.createInstance(e,a,t,r)}constructor(e,t,r,o){super(e),this.graphRunner=e,this.imageStreamName=t,this.normRectStreamName=r,this.roiAllowed=o,this.shaderContext=new image_shader_context_1.MPImageShaderContext}applyOptions(e){if("runningMode"in e){const t=!!e.runningMode&&"IMAGE"!==e.runningMode;this.baseOptions.setUseStreamMode(t)}if(void 0!==e.canvas&&this.graphRunner.wasmModule.canvas!==e.canvas)throw new Error("You must create a new task to reset the canvas.");return super.applyOptions(e)}processImageData(e,t){var r;if(null===(r=this.baseOptions)||void 0===r?void 0:r.getUseStreamMode())throw new Error("Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.");this.process(e,t,this.getSynctheticTimestamp())}processVideoData(e,t,r){var o;if(!(null===(o=this.baseOptions)||void 0===o?void 0:o.getUseStreamMode()))throw new Error("Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.");this.process(e,t,r)}getImageSourceSize(e){return void 0!==e.videoWidth?[e.videoWidth,e.videoHeight]:void 0!==e.naturalWidth?[e.naturalWidth,e.naturalHeight]:[e.width,e.height]}convertToNormalizedRect(e,t){const r=new rect_pb_1.NormalizedRect;if(null==t?void 0:t.regionOfInterest){if(!this.roiAllowed)throw new Error("This task doesn't support region-of-interest.");const e=t.regionOfInterest;if(e.left>=e.right||e.top>=e.bottom)throw new Error("Expected RectF with left < right and top < bottom.");if(e.left<0||e.top<0||e.right>1||e.bottom>1)throw new Error("Expected RectF values to be in [0,1].");r.setXCenter((e.left+e.right)/2),r.setYCenter((e.top+e.bottom)/2),r.setWidth(e.right-e.left),r.setHeight(e.bottom-e.top)}else r.setXCenter(.5),r.setYCenter(.5),r.setWidth(1),r.setHeight(1);if(null==t?void 0:t.rotationDegrees){if((null==t?void 0:t.rotationDegrees)%90!=0)throw new Error("Expected rotation to be a multiple of 90°.");if(r.setRotation(-Math.PI*t.rotationDegrees/180),(null==t?void 0:t.rotationDegrees)%180!=0){const[t,o]=this.getImageSourceSize(e),a=r.getHeight()*o/t,n=r.getWidth()*t/o;r.setWidth(a),r.setHeight(n)}}return r}process(e,t,r){const o=this.convertToNormalizedRect(e,t);this.graphRunner.addProtoToStream(o.serializeBinary(),"mediapipe.NormalizedRect",this.normRectStreamName,r),this.graphRunner.addGpuBufferAsImageToStream(e,this.imageStreamName,null!=r?r:performance.now()),this.finishProcessing()}convertToMPImage(e,t){const{data:r,width:o,height:a}=e,n=o*a;let i;if(r instanceof Uint8Array)if(r.length===3*n){const e=new Uint8ClampedArray(4*n);for(let t=0;t<n;++t)e[4*t]=r[3*t],e[4*t+1]=r[3*t+1],e[4*t+2]=r[3*t+2],e[4*t+3]=255;i=new ImageData(e,o,a)}else{if(r.length!==4*n)throw new Error("Unsupported channel count: "+r.length/n);i=new ImageData(new Uint8ClampedArray(r.buffer,r.byteOffset,r.length),o,a)}else{if(!(r instanceof WebGLTexture))throw new Error(`Unsupported format: ${r.constructor.name}`);i=r}const s=new image_1$1.MPImage([i],!1,!1,this.graphRunner.wasmModule.canvas,this.shaderContext,o,a);return t?s.clone():s}convertToMPMask(e,t){const{data:r,width:o,height:a}=e,n=o*a;let i;if(r instanceof Uint8Array||r instanceof Float32Array){if(r.length!==n)throw new Error("Unsupported channel count: "+r.length/n);i=r}else i=r;const s=new mask_1$1.MPMask([i],!1,this.graphRunner.wasmModule.canvas,this.shaderContext,o,a);return t?s.clone():s}close(){this.shaderContext.close(),super.close()}}vision_task_runner.VisionTaskRunner=VisionTaskRunner;var face_detector_options={};Object.defineProperty(face_detector_options,"__esModule",{value:!0});var face_detector_result={};Object.defineProperty(face_detector_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.FaceDetector=void 0;const o=calculator_pb,a=calculator_options_pb,n=detection_pb,i=base_options_pb,s=face_detector_graph_options_pb,p=detection_result,d=vision_task_runner,l="image_in",c="norm_rect_in",u="detections";r(face_detector_options,e),r(face_detector_result,e);class g extends d.VisionTaskRunner{static createFromOptions(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,t)}static createFromModelBuffer(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,{baseOptions:{modelAssetBuffer:t}})}static async createFromModelPath(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new d.VisionGraphRunner(e,t),l,c,!1),this.result={detections:[]},this.options=new s.FaceDetectorGraphOptions,this.options.setBaseOptions(new i.BaseOptions),this.options.setMinDetectionConfidence(.5),this.options.setMinSuppressionThreshold(.3)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r;return"minDetectionConfidence"in e&&this.options.setMinDetectionConfidence(null!==(t=e.minDetectionConfidence)&&void 0!==t?t:.5),"minSuppressionThreshold"in e&&this.options.setMinSuppressionThreshold(null!==(r=e.minSuppressionThreshold)&&void 0!==r?r:.3),this.applyOptions(e)}detect(e,t){return this.result={detections:[]},this.processImageData(e,t),this.result}detectForVideo(e,t,r){return this.result={detections:[]},this.processVideoData(e,r,t),this.result}addJsFaceDetections(e){for(const t of e){const e=n.Detection.deserializeBinary(t);this.result.detections.push((0,p.convertFromDetectionProto)(e))}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(l),e.addInputStream(c),e.addOutputStream(u);const t=new a.CalculatorOptions;t.setExtension(s.FaceDetectorGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.face_detector.FaceDetectorGraph"),r.addInputStream("IMAGE:"+l),r.addInputStream("NORM_RECT:"+c),r.addOutputStream("DETECTIONS:"+u),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoVectorListener(u,((e,t)=>{this.addJsFaceDetections(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(u,(e=>{this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.FaceDetector=g}(face_detector);var face_landmarker={},classification_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.Classification",null,o),r.exportSymbol("proto.mediapipe.ClassificationList",null,o),r.exportSymbol("proto.mediapipe.ClassificationListCollection",null,o),proto.mediapipe.Classification=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Classification,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Classification.displayName="proto.mediapipe.Classification"),proto.mediapipe.ClassificationList=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.ClassificationList.repeatedFields_,null)},r.inherits(proto.mediapipe.ClassificationList,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.ClassificationList.displayName="proto.mediapipe.ClassificationList"),proto.mediapipe.ClassificationListCollection=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.ClassificationListCollection.repeatedFields_,null)},r.inherits(proto.mediapipe.ClassificationListCollection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.ClassificationListCollection.displayName="proto.mediapipe.ClassificationListCollection"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Classification.prototype.toObject=function(e){return proto.mediapipe.Classification.toObject(e,this)},proto.mediapipe.Classification.toObject=function(e,r){var o,a={index:null==(o=t.Message.getField(r,1))?void 0:o,score:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,label:null==(o=t.Message.getField(r,3))?void 0:o,displayName:null==(o=t.Message.getField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Classification.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Classification;return proto.mediapipe.Classification.deserializeBinaryFromReader(o,r)},proto.mediapipe.Classification.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setIndex(r);break;case 2:r=t.readFloat(),e.setScore(r);break;case 3:r=t.readString(),e.setLabel(r);break;case 4:r=t.readString(),e.setDisplayName(r);break;default:t.skipField()}return e},proto.mediapipe.Classification.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Classification.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Classification.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeString(3,o),null!=(o=t.Message.getField(e,4))&&r.writeString(4,o)},proto.mediapipe.Classification.prototype.getIndex=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.Classification.prototype.setIndex=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Classification.prototype.clearIndex=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Classification.prototype.hasIndex=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Classification.prototype.getScore=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.Classification.prototype.setScore=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Classification.prototype.clearScore=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Classification.prototype.hasScore=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Classification.prototype.getLabel=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.mediapipe.Classification.prototype.setLabel=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.Classification.prototype.clearLabel=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.Classification.prototype.hasLabel=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.Classification.prototype.getDisplayName=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.mediapipe.Classification.prototype.setDisplayName=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.Classification.prototype.clearDisplayName=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.Classification.prototype.hasDisplayName=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.ClassificationList.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.ClassificationList.prototype.toObject=function(e){return proto.mediapipe.ClassificationList.toObject(e,this)},proto.mediapipe.ClassificationList.toObject=function(e,r){var o={classificationList:t.Message.toObjectList(r.getClassificationList(),proto.mediapipe.Classification.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.ClassificationList.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.ClassificationList;return proto.mediapipe.ClassificationList.deserializeBinaryFromReader(o,r)},proto.mediapipe.ClassificationList.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.Classification;t.readMessage(r,proto.mediapipe.Classification.deserializeBinaryFromReader),e.addClassification(r)}else t.skipField();return e},proto.mediapipe.ClassificationList.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.ClassificationList.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.ClassificationList.serializeBinaryToWriter=function(e,t){var r;(r=e.getClassificationList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.Classification.serializeBinaryToWriter)},proto.mediapipe.ClassificationList.prototype.getClassificationList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.Classification,1)},proto.mediapipe.ClassificationList.prototype.setClassificationList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.ClassificationList.prototype.addClassification=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.Classification,r)},proto.mediapipe.ClassificationList.prototype.clearClassificationList=function(){return this.setClassificationList([])},proto.mediapipe.ClassificationListCollection.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.ClassificationListCollection.prototype.toObject=function(e){return proto.mediapipe.ClassificationListCollection.toObject(e,this)},proto.mediapipe.ClassificationListCollection.toObject=function(e,r){var o={classificationListList:t.Message.toObjectList(r.getClassificationListList(),proto.mediapipe.ClassificationList.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.ClassificationListCollection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.ClassificationListCollection;return proto.mediapipe.ClassificationListCollection.deserializeBinaryFromReader(o,r)},proto.mediapipe.ClassificationListCollection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.ClassificationList;t.readMessage(r,proto.mediapipe.ClassificationList.deserializeBinaryFromReader),e.addClassificationList(r)}else t.skipField();return e},proto.mediapipe.ClassificationListCollection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.ClassificationListCollection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.ClassificationListCollection.serializeBinaryToWriter=function(e,t){var r;(r=e.getClassificationListList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.ClassificationList.serializeBinaryToWriter)},proto.mediapipe.ClassificationListCollection.prototype.getClassificationListList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.ClassificationList,1)},proto.mediapipe.ClassificationListCollection.prototype.setClassificationListList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.ClassificationListCollection.prototype.addClassificationList=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.ClassificationList,r)},proto.mediapipe.ClassificationListCollection.prototype.clearClassificationListList=function(){return this.setClassificationListList([])},r.object.extend(e,proto.mediapipe)}(classification_pb);var landmark_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.Landmark",null,o),r.exportSymbol("proto.mediapipe.LandmarkList",null,o),r.exportSymbol("proto.mediapipe.LandmarkListCollection",null,o),r.exportSymbol("proto.mediapipe.NormalizedLandmark",null,o),r.exportSymbol("proto.mediapipe.NormalizedLandmarkList",null,o),r.exportSymbol("proto.mediapipe.NormalizedLandmarkListCollection",null,o),proto.mediapipe.Landmark=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Landmark,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Landmark.displayName="proto.mediapipe.Landmark"),proto.mediapipe.LandmarkList=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.LandmarkList.repeatedFields_,null)},r.inherits(proto.mediapipe.LandmarkList,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LandmarkList.displayName="proto.mediapipe.LandmarkList"),proto.mediapipe.LandmarkListCollection=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.LandmarkListCollection.repeatedFields_,null)},r.inherits(proto.mediapipe.LandmarkListCollection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LandmarkListCollection.displayName="proto.mediapipe.LandmarkListCollection"),proto.mediapipe.NormalizedLandmark=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.NormalizedLandmark,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.NormalizedLandmark.displayName="proto.mediapipe.NormalizedLandmark"),proto.mediapipe.NormalizedLandmarkList=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.NormalizedLandmarkList.repeatedFields_,null)},r.inherits(proto.mediapipe.NormalizedLandmarkList,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.NormalizedLandmarkList.displayName="proto.mediapipe.NormalizedLandmarkList"),proto.mediapipe.NormalizedLandmarkListCollection=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.NormalizedLandmarkListCollection.repeatedFields_,null)},r.inherits(proto.mediapipe.NormalizedLandmarkListCollection,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.NormalizedLandmarkListCollection.displayName="proto.mediapipe.NormalizedLandmarkListCollection"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Landmark.prototype.toObject=function(e){return proto.mediapipe.Landmark.toObject(e,this)},proto.mediapipe.Landmark.toObject=function(e,r){var o,a={x:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,y:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,z:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,visibility:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,presence:null==(o=t.Message.getOptionalFloatingPointField(r,5))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Landmark.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Landmark;return proto.mediapipe.Landmark.deserializeBinaryFromReader(o,r)},proto.mediapipe.Landmark.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readFloat();e.setX(r);break;case 2:r=t.readFloat(),e.setY(r);break;case 3:r=t.readFloat(),e.setZ(r);break;case 4:r=t.readFloat(),e.setVisibility(r);break;case 5:r=t.readFloat(),e.setPresence(r);break;default:t.skipField()}return e},proto.mediapipe.Landmark.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Landmark.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Landmark.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeFloat(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o),null!=(o=t.Message.getField(e,5))&&r.writeFloat(5,o)},proto.mediapipe.Landmark.prototype.getX=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.Landmark.prototype.setX=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Landmark.prototype.clearX=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Landmark.prototype.hasX=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Landmark.prototype.getY=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.Landmark.prototype.setY=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Landmark.prototype.clearY=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Landmark.prototype.hasY=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Landmark.prototype.getZ=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.Landmark.prototype.setZ=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.Landmark.prototype.clearZ=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.Landmark.prototype.hasZ=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.Landmark.prototype.getVisibility=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.Landmark.prototype.setVisibility=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.Landmark.prototype.clearVisibility=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.Landmark.prototype.hasVisibility=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.Landmark.prototype.getPresence=function(){return t.Message.getFloatingPointFieldWithDefault(this,5,0)},proto.mediapipe.Landmark.prototype.setPresence=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.Landmark.prototype.clearPresence=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.Landmark.prototype.hasPresence=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.LandmarkList.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LandmarkList.prototype.toObject=function(e){return proto.mediapipe.LandmarkList.toObject(e,this)},proto.mediapipe.LandmarkList.toObject=function(e,r){var o={landmarkList:t.Message.toObjectList(r.getLandmarkList(),proto.mediapipe.Landmark.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.LandmarkList.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LandmarkList;return proto.mediapipe.LandmarkList.deserializeBinaryFromReader(o,r)},proto.mediapipe.LandmarkList.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.Landmark;t.readMessage(r,proto.mediapipe.Landmark.deserializeBinaryFromReader),e.addLandmark(r)}else t.skipField();return e},proto.mediapipe.LandmarkList.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LandmarkList.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LandmarkList.serializeBinaryToWriter=function(e,t){var r;(r=e.getLandmarkList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.Landmark.serializeBinaryToWriter)},proto.mediapipe.LandmarkList.prototype.getLandmarkList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.Landmark,1)},proto.mediapipe.LandmarkList.prototype.setLandmarkList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.LandmarkList.prototype.addLandmark=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.Landmark,r)},proto.mediapipe.LandmarkList.prototype.clearLandmarkList=function(){return this.setLandmarkList([])},proto.mediapipe.LandmarkListCollection.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LandmarkListCollection.prototype.toObject=function(e){return proto.mediapipe.LandmarkListCollection.toObject(e,this)},proto.mediapipe.LandmarkListCollection.toObject=function(e,r){var o={landmarkListList:t.Message.toObjectList(r.getLandmarkListList(),proto.mediapipe.LandmarkList.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.LandmarkListCollection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LandmarkListCollection;return proto.mediapipe.LandmarkListCollection.deserializeBinaryFromReader(o,r)},proto.mediapipe.LandmarkListCollection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.LandmarkList;t.readMessage(r,proto.mediapipe.LandmarkList.deserializeBinaryFromReader),e.addLandmarkList(r)}else t.skipField();return e},proto.mediapipe.LandmarkListCollection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LandmarkListCollection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LandmarkListCollection.serializeBinaryToWriter=function(e,t){var r;(r=e.getLandmarkListList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.LandmarkList.serializeBinaryToWriter)},proto.mediapipe.LandmarkListCollection.prototype.getLandmarkListList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.LandmarkList,1)},proto.mediapipe.LandmarkListCollection.prototype.setLandmarkListList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.LandmarkListCollection.prototype.addLandmarkList=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.LandmarkList,r)},proto.mediapipe.LandmarkListCollection.prototype.clearLandmarkListList=function(){return this.setLandmarkListList([])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.NormalizedLandmark.prototype.toObject=function(e){return proto.mediapipe.NormalizedLandmark.toObject(e,this)},proto.mediapipe.NormalizedLandmark.toObject=function(e,r){var o,a={x:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,y:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,z:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,visibility:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,presence:null==(o=t.Message.getOptionalFloatingPointField(r,5))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.NormalizedLandmark.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.NormalizedLandmark;return proto.mediapipe.NormalizedLandmark.deserializeBinaryFromReader(o,r)},proto.mediapipe.NormalizedLandmark.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readFloat();e.setX(r);break;case 2:r=t.readFloat(),e.setY(r);break;case 3:r=t.readFloat(),e.setZ(r);break;case 4:r=t.readFloat(),e.setVisibility(r);break;case 5:r=t.readFloat(),e.setPresence(r);break;default:t.skipField()}return e},proto.mediapipe.NormalizedLandmark.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.NormalizedLandmark.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.NormalizedLandmark.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeFloat(1,o),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o),null!=(o=t.Message.getField(e,5))&&r.writeFloat(5,o)},proto.mediapipe.NormalizedLandmark.prototype.getX=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.NormalizedLandmark.prototype.setX=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.NormalizedLandmark.prototype.clearX=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.NormalizedLandmark.prototype.hasX=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.NormalizedLandmark.prototype.getY=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.NormalizedLandmark.prototype.setY=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.NormalizedLandmark.prototype.clearY=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.NormalizedLandmark.prototype.hasY=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.NormalizedLandmark.prototype.getZ=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.NormalizedLandmark.prototype.setZ=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.NormalizedLandmark.prototype.clearZ=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.NormalizedLandmark.prototype.hasZ=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.NormalizedLandmark.prototype.getVisibility=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.NormalizedLandmark.prototype.setVisibility=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.NormalizedLandmark.prototype.clearVisibility=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.NormalizedLandmark.prototype.hasVisibility=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.NormalizedLandmark.prototype.getPresence=function(){return t.Message.getFloatingPointFieldWithDefault(this,5,0)},proto.mediapipe.NormalizedLandmark.prototype.setPresence=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.NormalizedLandmark.prototype.clearPresence=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.NormalizedLandmark.prototype.hasPresence=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.NormalizedLandmarkList.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.NormalizedLandmarkList.prototype.toObject=function(e){return proto.mediapipe.NormalizedLandmarkList.toObject(e,this)},proto.mediapipe.NormalizedLandmarkList.toObject=function(e,r){var o={landmarkList:t.Message.toObjectList(r.getLandmarkList(),proto.mediapipe.NormalizedLandmark.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.NormalizedLandmarkList.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.NormalizedLandmarkList;return proto.mediapipe.NormalizedLandmarkList.deserializeBinaryFromReader(o,r)},proto.mediapipe.NormalizedLandmarkList.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.NormalizedLandmark;t.readMessage(r,proto.mediapipe.NormalizedLandmark.deserializeBinaryFromReader),e.addLandmark(r)}else t.skipField();return e},proto.mediapipe.NormalizedLandmarkList.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.NormalizedLandmarkList.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.NormalizedLandmarkList.serializeBinaryToWriter=function(e,t){var r;(r=e.getLandmarkList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.NormalizedLandmark.serializeBinaryToWriter)},proto.mediapipe.NormalizedLandmarkList.prototype.getLandmarkList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.NormalizedLandmark,1)},proto.mediapipe.NormalizedLandmarkList.prototype.setLandmarkList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.NormalizedLandmarkList.prototype.addLandmark=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.NormalizedLandmark,r)},proto.mediapipe.NormalizedLandmarkList.prototype.clearLandmarkList=function(){return this.setLandmarkList([])},proto.mediapipe.NormalizedLandmarkListCollection.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.NormalizedLandmarkListCollection.prototype.toObject=function(e){return proto.mediapipe.NormalizedLandmarkListCollection.toObject(e,this)},proto.mediapipe.NormalizedLandmarkListCollection.toObject=function(e,r){var o={landmarkListList:t.Message.toObjectList(r.getLandmarkListList(),proto.mediapipe.NormalizedLandmarkList.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.NormalizedLandmarkListCollection.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.NormalizedLandmarkListCollection;return proto.mediapipe.NormalizedLandmarkListCollection.deserializeBinaryFromReader(o,r)},proto.mediapipe.NormalizedLandmarkListCollection.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.NormalizedLandmarkList;t.readMessage(r,proto.mediapipe.NormalizedLandmarkList.deserializeBinaryFromReader),e.addLandmarkList(r)}else t.skipField();return e},proto.mediapipe.NormalizedLandmarkListCollection.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.NormalizedLandmarkListCollection.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.NormalizedLandmarkListCollection.serializeBinaryToWriter=function(e,t){var r;(r=e.getLandmarkListList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.NormalizedLandmarkList.serializeBinaryToWriter)},proto.mediapipe.NormalizedLandmarkListCollection.prototype.getLandmarkListList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.NormalizedLandmarkList,1)},proto.mediapipe.NormalizedLandmarkListCollection.prototype.setLandmarkListList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.NormalizedLandmarkListCollection.prototype.addLandmarkList=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.NormalizedLandmarkList,r)},proto.mediapipe.NormalizedLandmarkListCollection.prototype.clearLandmarkListList=function(){return this.setLandmarkListList([])},r.object.extend(e,proto.mediapipe)}(landmark_pb);var face_geometry_pb={},matrix_data_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.MatrixData",null,o),r.exportSymbol("proto.mediapipe.MatrixData.Layout",null,o),proto.mediapipe.MatrixData=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.MatrixData.repeatedFields_,null)},r.inherits(proto.mediapipe.MatrixData,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.MatrixData.displayName="proto.mediapipe.MatrixData"),proto.mediapipe.MatrixData.repeatedFields_=[3],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.MatrixData.prototype.toObject=function(e){return proto.mediapipe.MatrixData.toObject(e,this)},proto.mediapipe.MatrixData.toObject=function(e,r){var o,a={rows:null==(o=t.Message.getField(r,1))?void 0:o,cols:null==(o=t.Message.getField(r,2))?void 0:o,packedDataList:null==(o=t.Message.getRepeatedFloatingPointField(r,3))?void 0:o,layout:t.Message.getFieldWithDefault(r,4,0)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.MatrixData.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.MatrixData;return proto.mediapipe.MatrixData.deserializeBinaryFromReader(o,r)},proto.mediapipe.MatrixData.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setRows(r);break;case 2:r=t.readInt32(),e.setCols(r);break;case 3:for(var o=t.isDelimited()?t.readPackedFloat():[t.readFloat()],a=0;a<o.length;a++)e.addPackedData(o[a]);break;case 4:r=t.readEnum(),e.setLayout(r);break;default:t.skipField()}return e},proto.mediapipe.MatrixData.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.MatrixData.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.MatrixData.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),(o=e.getPackedDataList()).length>0&&r.writePackedFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeEnum(4,o)},proto.mediapipe.MatrixData.Layout={COLUMN_MAJOR:0,ROW_MAJOR:1},proto.mediapipe.MatrixData.prototype.getRows=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.MatrixData.prototype.setRows=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.MatrixData.prototype.clearRows=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.MatrixData.prototype.hasRows=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.MatrixData.prototype.getCols=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.MatrixData.prototype.setCols=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.MatrixData.prototype.clearCols=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.MatrixData.prototype.hasCols=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.MatrixData.prototype.getPackedDataList=function(){return t.Message.getRepeatedFloatingPointField(this,3)},proto.mediapipe.MatrixData.prototype.setPackedDataList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.MatrixData.prototype.addPackedData=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.MatrixData.prototype.clearPackedDataList=function(){return this.setPackedDataList([])},proto.mediapipe.MatrixData.prototype.getLayout=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.MatrixData.prototype.setLayout=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.MatrixData.prototype.clearLayout=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.MatrixData.prototype.hasLayout=function(){return null!=t.Message.getField(this,4)},r.object.extend(e,proto.mediapipe)}(matrix_data_pb);var mesh_3d_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d",null,o),r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.PrimitiveType",null,o),r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.VertexType",null,o),proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.displayName="proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d"),proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.repeatedFields_=[3,4],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.toObject(e,this)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.toObject=function(e,r){var o,a={vertexType:null==(o=t.Message.getField(r,1))?void 0:o,primitiveType:null==(o=t.Message.getField(r,2))?void 0:o,vertexBufferList:null==(o=t.Message.getRepeatedFloatingPointField(r,3))?void 0:o,indexBufferList:null==(o=t.Message.getRepeatedField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d;return proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readEnum();e.setVertexType(r);break;case 2:r=t.readEnum(),e.setPrimitiveType(r);break;case 3:for(var o=t.isDelimited()?t.readPackedFloat():[t.readFloat()],a=0;a<o.length;a++)e.addVertexBuffer(o[a]);break;case 4:for(o=t.isDelimited()?t.readPackedUint32():[t.readUint32()],a=0;a<o.length;a++)e.addIndexBuffer(o[a]);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeEnum(1,o),null!=(o=t.Message.getField(e,2))&&r.writeEnum(2,o),(o=e.getVertexBufferList()).length>0&&r.writeRepeatedFloat(3,o),(o=e.getIndexBufferList()).length>0&&r.writeRepeatedUint32(4,o)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.VertexType={VERTEX_PT:0},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.PrimitiveType={TRIANGLE:0},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.getVertexType=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.setVertexType=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.clearVertexType=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.hasVertexType=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.getPrimitiveType=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.setPrimitiveType=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.clearPrimitiveType=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.hasPrimitiveType=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.getVertexBufferList=function(){return t.Message.getRepeatedFloatingPointField(this,3)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.setVertexBufferList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.addVertexBuffer=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.clearVertexBufferList=function(){return this.setVertexBufferList([])},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.getIndexBufferList=function(){return t.Message.getRepeatedField(this,4)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.setIndexBufferList=function(e){return t.Message.setField(this,4,e||[])},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.addIndexBuffer=function(e,r){return t.Message.addToRepeatedField(this,4,e,r)},proto.mediapipe.tasks.vision.face_geometry.proto.Mesh3d.prototype.clearIndexBufferList=function(){return this.setIndexBufferList([])},r.object.extend(e,proto.mediapipe.tasks.vision.face_geometry.proto)}(mesh_3d_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=matrix_data_pb;r.object.extend(proto,a);var n=mesh_3d_pb;r.object.extend(proto,n),r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry",null,o),proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.displayName="proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.toObject(e,this)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.toObject=function(e,t){var r,o={mesh:(r=t.getMesh())&&n.Mesh3d.toObject(e,r),poseTransformMatrix:(r=t.getPoseTransformMatrix())&&a.MatrixData.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry;return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new n.Mesh3d;t.readMessage(r,n.Mesh3d.deserializeBinaryFromReader),e.setMesh(r);break;case 2:r=new a.MatrixData,t.readMessage(r,a.MatrixData.deserializeBinaryFromReader),e.setPoseTransformMatrix(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getMesh())&&t.writeMessage(1,r,n.Mesh3d.serializeBinaryToWriter),null!=(r=e.getPoseTransformMatrix())&&t.writeMessage(2,r,a.MatrixData.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.getMesh=function(){return t.Message.getWrapperField(this,n.Mesh3d,1)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.setMesh=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.clearMesh=function(){return this.setMesh(void 0)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.hasMesh=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.getPoseTransformMatrix=function(){return t.Message.getWrapperField(this,a.MatrixData,2)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.setPoseTransformMatrix=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.clearPoseTransformMatrix=function(){return this.setPoseTransformMatrix(void 0)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometry.prototype.hasPoseTransformMatrix=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.vision.face_geometry.proto)}(face_geometry_pb);var face_landmarker_graph_options_pb={},face_geometry_graph_options_pb={},geometry_pipeline_calculator_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_options_pb;r.object.extend(proto,a);var n=external_file_pb;r.object.extend(proto,n),r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions",null,o),proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.displayName="proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.toObject=function(e,t){var r,o={metadataFile:(r=t.getMetadataFile())&&n.ExternalFile.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions;return proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new n.ExternalFile;t.readMessage(r,n.ExternalFile.deserializeBinaryFromReader),e.setMetadataFile(r)}else t.skipField();return e},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.serializeBinaryToWriter=function(e,t){var r;null!=(r=e.getMetadataFile())&&t.writeMessage(1,r,n.ExternalFile.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext=new t.ExtensionFieldInfo(512499200,{ext:0},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.toObject,0),a.CalculatorOptions.extensionsBinary[512499200]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[512499200]=proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.getMetadataFile=function(){return t.Message.getWrapperField(this,n.ExternalFile,1)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.setMetadataFile=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.clearMetadataFile=function(){return this.setMetadataFile(void 0)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.prototype.hasMetadataFile=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext=new t.ExtensionFieldInfo(512499200,{ext:0},proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.toObject,0),a.CalculatorOptions.extensionsBinary[512499200]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[512499200]=proto.mediapipe.tasks.vision.face_geometry.FaceGeometryPipelineCalculatorOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_geometry)}(geometry_pipeline_calculator_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_options_pb;r.object.extend(proto,a);var n=geometry_pipeline_calculator_pb;r.object.extend(proto,n),r.exportSymbol("proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions",null,o),proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.displayName="proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.toObject=function(e,t){var r,o={geometryPipelineOptions:(r=t.getGeometryPipelineOptions())&&n.FaceGeometryPipelineCalculatorOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions;return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new n.FaceGeometryPipelineCalculatorOptions;t.readMessage(r,n.FaceGeometryPipelineCalculatorOptions.deserializeBinaryFromReader),e.setGeometryPipelineOptions(r)}else t.skipField();return e},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.serializeBinaryToWriter=function(e,t){var r;null!=(r=e.getGeometryPipelineOptions())&&t.writeMessage(1,r,n.FaceGeometryPipelineCalculatorOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext=new t.ExtensionFieldInfo(515723506,{ext:0},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.toObject,0),a.CalculatorOptions.extensionsBinary[515723506]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[515723506]=proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.getGeometryPipelineOptions=function(){return t.Message.getWrapperField(this,n.FaceGeometryPipelineCalculatorOptions,1)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.setGeometryPipelineOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.clearGeometryPipelineOptions=function(){return this.setGeometryPipelineOptions(void 0)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.prototype.hasGeometryPipelineOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext=new t.ExtensionFieldInfo(515723506,{ext:0},proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.toObject,0),a.CalculatorOptions.extensionsBinary[515723506]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[515723506]=proto.mediapipe.tasks.vision.face_geometry.proto.FaceGeometryGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_geometry.proto)}(face_geometry_graph_options_pb);var face_landmarks_detector_graph_options_pb={},face_blendshapes_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions",null,o),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.displayName="proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&i.BaseOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r)}else t.skipField();return e},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.serializeBinaryToWriter=function(e,t){var r;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,i.BaseOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext=new t.ExtensionFieldInfo(508981768,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508981768]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508981768]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext=new t.ExtensionFieldInfo(508981768,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508981768]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508981768]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceBlendshapesGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_landmarker.proto)}(face_blendshapes_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=face_blendshapes_graph_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5),smoothLandmarks:null==(o=t.Message.getBooleanField(r,4))?void 0:o,faceBlendshapesGraphOptions:(o=r.getFaceBlendshapesGraphOptions())&&s.FaceBlendshapesGraphOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;case 4:r=t.readBool(),e.setSmoothLandmarks(r);break;case 3:r=new s.FaceBlendshapesGraphOptions,t.readMessage(r,s.FaceBlendshapesGraphOptions.deserializeBinaryFromReader),e.setFaceBlendshapesGraphOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,4))&&r.writeBool(4,o),null!=(o=e.getFaceBlendshapesGraphOptions())&&r.writeMessage(3,o,s.FaceBlendshapesGraphOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(508968149,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508968149]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508968149]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.getSmoothLandmarks=function(){return t.Message.getBooleanFieldWithDefault(this,4,!1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.setSmoothLandmarks=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.clearSmoothLandmarks=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.hasSmoothLandmarks=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.getFaceBlendshapesGraphOptions=function(){return t.Message.getWrapperField(this,s.FaceBlendshapesGraphOptions,3)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.setFaceBlendshapesGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.clearFaceBlendshapesGraphOptions=function(){return this.setFaceBlendshapesGraphOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.prototype.hasFaceBlendshapesGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(508968149,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508968149]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508968149]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarksDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_landmarker.proto)}(face_landmarks_detector_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=face_detector_graph_options_pb;r.object.extend(proto,s);var p=face_geometry_graph_options_pb;r.object.extend(proto,p);var d=face_landmarks_detector_graph_options_pb;r.object.extend(proto,d),r.exportSymbol("proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions",null,o),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.displayName="proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),faceDetectorGraphOptions:(o=r.getFaceDetectorGraphOptions())&&s.FaceDetectorGraphOptions.toObject(e,o),faceLandmarksDetectorGraphOptions:(o=r.getFaceLandmarksDetectorGraphOptions())&&d.FaceLandmarksDetectorGraphOptions.toObject(e,o),minTrackingConfidence:t.Message.getFloatingPointFieldWithDefault(r,4,.5),faceGeometryGraphOptions:(o=r.getFaceGeometryGraphOptions())&&p.FaceGeometryGraphOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new s.FaceDetectorGraphOptions,t.readMessage(r,s.FaceDetectorGraphOptions.deserializeBinaryFromReader),e.setFaceDetectorGraphOptions(r);break;case 3:r=new d.FaceLandmarksDetectorGraphOptions,t.readMessage(r,d.FaceLandmarksDetectorGraphOptions.deserializeBinaryFromReader),e.setFaceLandmarksDetectorGraphOptions(r);break;case 4:r=t.readFloat(),e.setMinTrackingConfidence(r);break;case 5:r=new p.FaceGeometryGraphOptions,t.readMessage(r,p.FaceGeometryGraphOptions.deserializeBinaryFromReader),e.setFaceGeometryGraphOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=e.getFaceDetectorGraphOptions())&&r.writeMessage(2,o,s.FaceDetectorGraphOptions.serializeBinaryToWriter),null!=(o=e.getFaceLandmarksDetectorGraphOptions())&&r.writeMessage(3,o,d.FaceLandmarksDetectorGraphOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o),null!=(o=e.getFaceGeometryGraphOptions())&&r.writeMessage(5,o,p.FaceGeometryGraphOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(508968150,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508968150]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508968150]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.getFaceDetectorGraphOptions=function(){return t.Message.getWrapperField(this,s.FaceDetectorGraphOptions,2)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.setFaceDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.clearFaceDetectorGraphOptions=function(){return this.setFaceDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.hasFaceDetectorGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.getFaceLandmarksDetectorGraphOptions=function(){return t.Message.getWrapperField(this,d.FaceLandmarksDetectorGraphOptions,3)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.setFaceLandmarksDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.clearFaceLandmarksDetectorGraphOptions=function(){return this.setFaceLandmarksDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.hasFaceLandmarksDetectorGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.getMinTrackingConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,.5)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.setMinTrackingConfidence=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.clearMinTrackingConfidence=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.hasMinTrackingConfidence=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.getFaceGeometryGraphOptions=function(){return t.Message.getWrapperField(this,p.FaceGeometryGraphOptions,5)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.setFaceGeometryGraphOptions=function(e){return t.Message.setWrapperField(this,5,e)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.clearFaceGeometryGraphOptions=function(){return this.setFaceGeometryGraphOptions(void 0)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.prototype.hasFaceGeometryGraphOptions=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(508968150,{ext:0},proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[508968150]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[508968150]=proto.mediapipe.tasks.vision.face_landmarker.proto.FaceLandmarkerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_landmarker.proto)}(face_landmarker_graph_options_pb);var classifier_result={};Object.defineProperty(classifier_result,"__esModule",{value:!0}),classifier_result.convertFromClassificationResultProto=classifier_result.convertFromClassifications=void 0;const DEFAULT_INDEX$1=-1,DEFAULT_SCORE=0;function convertFromClassifications(e,t=DEFAULT_INDEX$1,r=""){return{categories:e.map((e=>{var t,r,o,a;return{index:null!==(t=e.getIndex())&&void 0!==t?t:DEFAULT_INDEX$1,score:null!==(r=e.getScore())&&void 0!==r?r:DEFAULT_SCORE,categoryName:null!==(o=e.getLabel())&&void 0!==o?o:"",displayName:null!==(a=e.getDisplayName())&&void 0!==a?a:""}})),headIndex:t,headName:r}}function convertFromClassificationsProto(e){var t,r;return convertFromClassifications(null!==(r=null===(t=e.getClassificationList())||void 0===t?void 0:t.getClassificationList())&&void 0!==r?r:[],e.getHeadIndex(),e.getHeadName())}function convertFromClassificationResultProto(e){const t={classifications:e.getClassificationsList().map((e=>convertFromClassificationsProto(e)))};return e.hasTimestampMs()&&(t.timestampMs=e.getTimestampMs()),t}classifier_result.convertFromClassifications=convertFromClassifications,classifier_result.convertFromClassificationResultProto=convertFromClassificationResultProto;var landmark_result={};function convertToLandmarks(e){var t,r,o;const a=[];for(const n of e.getLandmarkList())a.push({x:null!==(t=n.getX())&&void 0!==t?t:0,y:null!==(r=n.getY())&&void 0!==r?r:0,z:null!==(o=n.getZ())&&void 0!==o?o:0});return a}function convertToWorldLandmarks(e){var t,r,o;const a=[];for(const n of e.getLandmarkList())a.push({x:null!==(t=n.getX())&&void 0!==t?t:0,y:null!==(r=n.getY())&&void 0!==r?r:0,z:null!==(o=n.getZ())&&void 0!==o?o:0});return a}Object.defineProperty(landmark_result,"__esModule",{value:!0}),landmark_result.convertToWorldLandmarks=landmark_result.convertToLandmarks=void 0,landmark_result.convertToLandmarks=convertToLandmarks,landmark_result.convertToWorldLandmarks=convertToWorldLandmarks;var face_landmarks_connections={},exports$1;exports$1=face_landmarks_connections,Object.defineProperty(exports$1,"__esModule",{value:!0}),exports$1.FACE_LANDMARKS_TESSELATION=exports$1.FACE_LANDMARKS_CONTOURS=exports$1.FACE_LANDMARKS_FACE_OVAL=exports$1.FACE_LANDMARKS_RIGHT_IRIS=exports$1.FACE_LANDMARKS_RIGHT_EYEBROW=exports$1.FACE_LANDMARKS_RIGHT_EYE=exports$1.FACE_LANDMARKS_LEFT_IRIS=exports$1.FACE_LANDMARKS_LEFT_EYEBROW=exports$1.FACE_LANDMARKS_LEFT_EYE=exports$1.FACE_LANDMARKS_LIPS=void 0,exports$1.FACE_LANDMARKS_LIPS=[{start:61,end:146},{start:146,end:91},{start:91,end:181},{start:181,end:84},{start:84,end:17},{start:17,end:314},{start:314,end:405},{start:405,end:321},{start:321,end:375},{start:375,end:291},{start:61,end:185},{start:185,end:40},{start:40,end:39},{start:39,end:37},{start:37,end:0},{start:0,end:267},{start:267,end:269},{start:269,end:270},{start:270,end:409},{start:409,end:291},{start:78,end:95},{start:95,end:88},{start:88,end:178},{start:178,end:87},{start:87,end:14},{start:14,end:317},{start:317,end:402},{start:402,end:318},{start:318,end:324},{start:324,end:308},{start:78,end:191},{start:191,end:80},{start:80,end:81},{start:81,end:82},{start:82,end:13},{start:13,end:312},{start:312,end:311},{start:311,end:310},{start:310,end:415},{start:415,end:308}],exports$1.FACE_LANDMARKS_LEFT_EYE=[{start:263,end:249},{start:249,end:390},{start:390,end:373},{start:373,end:374},{start:374,end:380},{start:380,end:381},{start:381,end:382},{start:382,end:362},{start:263,end:466},{start:466,end:388},{start:388,end:387},{start:387,end:386},{start:386,end:385},{start:385,end:384},{start:384,end:398},{start:398,end:362}],exports$1.FACE_LANDMARKS_LEFT_EYEBROW=[{start:276,end:283},{start:283,end:282},{start:282,end:295},{start:295,end:285},{start:300,end:293},{start:293,end:334},{start:334,end:296},{start:296,end:336}],exports$1.FACE_LANDMARKS_LEFT_IRIS=[{start:474,end:475},{start:475,end:476},{start:476,end:477},{start:477,end:474}],exports$1.FACE_LANDMARKS_RIGHT_EYE=[{start:33,end:7},{start:7,end:163},{start:163,end:144},{start:144,end:145},{start:145,end:153},{start:153,end:154},{start:154,end:155},{start:155,end:133},{start:33,end:246},{start:246,end:161},{start:161,end:160},{start:160,end:159},{start:159,end:158},{start:158,end:157},{start:157,end:173},{start:173,end:133}],exports$1.FACE_LANDMARKS_RIGHT_EYEBROW=[{start:46,end:53},{start:53,end:52},{start:52,end:65},{start:65,end:55},{start:70,end:63},{start:63,end:105},{start:105,end:66},{start:66,end:107}],exports$1.FACE_LANDMARKS_RIGHT_IRIS=[{start:469,end:470},{start:470,end:471},{start:471,end:472},{start:472,end:469}],exports$1.FACE_LANDMARKS_FACE_OVAL=[{start:10,end:338},{start:338,end:297},{start:297,end:332},{start:332,end:284},{start:284,end:251},{start:251,end:389},{start:389,end:356},{start:356,end:454},{start:454,end:323},{start:323,end:361},{start:361,end:288},{start:288,end:397},{start:397,end:365},{start:365,end:379},{start:379,end:378},{start:378,end:400},{start:400,end:377},{start:377,end:152},{start:152,end:148},{start:148,end:176},{start:176,end:149},{start:149,end:150},{start:150,end:136},{start:136,end:172},{start:172,end:58},{start:58,end:132},{start:132,end:93},{start:93,end:234},{start:234,end:127},{start:127,end:162},{start:162,end:21},{start:21,end:54},{start:54,end:103},{start:103,end:67},{start:67,end:109},{start:109,end:10}],exports$1.FACE_LANDMARKS_CONTOURS=[...exports$1.FACE_LANDMARKS_LIPS,...exports$1.FACE_LANDMARKS_LEFT_EYE,...exports$1.FACE_LANDMARKS_LEFT_EYEBROW,...exports$1.FACE_LANDMARKS_RIGHT_EYE,...exports$1.FACE_LANDMARKS_RIGHT_EYEBROW,...exports$1.FACE_LANDMARKS_FACE_OVAL],exports$1.FACE_LANDMARKS_TESSELATION=[{start:127,end:34},{start:34,end:139},{start:139,end:127},{start:11,end:0},{start:0,end:37},{start:37,end:11},{start:232,end:231},{start:231,end:120},{start:120,end:232},{start:72,end:37},{start:37,end:39},{start:39,end:72},{start:128,end:121},{start:121,end:47},{start:47,end:128},{start:232,end:121},{start:121,end:128},{start:128,end:232},{start:104,end:69},{start:69,end:67},{start:67,end:104},{start:175,end:171},{start:171,end:148},{start:148,end:175},{start:118,end:50},{start:50,end:101},{start:101,end:118},{start:73,end:39},{start:39,end:40},{start:40,end:73},{start:9,end:151},{start:151,end:108},{start:108,end:9},{start:48,end:115},{start:115,end:131},{start:131,end:48},{start:194,end:204},{start:204,end:211},{start:211,end:194},{start:74,end:40},{start:40,end:185},{start:185,end:74},{start:80,end:42},{start:42,end:183},{start:183,end:80},{start:40,end:92},{start:92,end:186},{start:186,end:40},{start:230,end:229},{start:229,end:118},{start:118,end:230},{start:202,end:212},{start:212,end:214},{start:214,end:202},{start:83,end:18},{start:18,end:17},{start:17,end:83},{start:76,end:61},{start:61,end:146},{start:146,end:76},{start:160,end:29},{start:29,end:30},{start:30,end:160},{start:56,end:157},{start:157,end:173},{start:173,end:56},{start:106,end:204},{start:204,end:194},{start:194,end:106},{start:135,end:214},{start:214,end:192},{start:192,end:135},{start:203,end:165},{start:165,end:98},{start:98,end:203},{start:21,end:71},{start:71,end:68},{start:68,end:21},{start:51,end:45},{start:45,end:4},{start:4,end:51},{start:144,end:24},{start:24,end:23},{start:23,end:144},{start:77,end:146},{start:146,end:91},{start:91,end:77},{start:205,end:50},{start:50,end:187},{start:187,end:205},{start:201,end:200},{start:200,end:18},{start:18,end:201},{start:91,end:106},{start:106,end:182},{start:182,end:91},{start:90,end:91},{start:91,end:181},{start:181,end:90},{start:85,end:84},{start:84,end:17},{start:17,end:85},{start:206,end:203},{start:203,end:36},{start:36,end:206},{start:148,end:171},{start:171,end:140},{start:140,end:148},{start:92,end:40},{start:40,end:39},{start:39,end:92},{start:193,end:189},{start:189,end:244},{start:244,end:193},{start:159,end:158},{start:158,end:28},{start:28,end:159},{start:247,end:246},{start:246,end:161},{start:161,end:247},{start:236,end:3},{start:3,end:196},{start:196,end:236},{start:54,end:68},{start:68,end:104},{start:104,end:54},{start:193,end:168},{start:168,end:8},{start:8,end:193},{start:117,end:228},{start:228,end:31},{start:31,end:117},{start:189,end:193},{start:193,end:55},{start:55,end:189},{start:98,end:97},{start:97,end:99},{start:99,end:98},{start:126,end:47},{start:47,end:100},{start:100,end:126},{start:166,end:79},{start:79,end:218},{start:218,end:166},{start:155,end:154},{start:154,end:26},{start:26,end:155},{start:209,end:49},{start:49,end:131},{start:131,end:209},{start:135,end:136},{start:136,end:150},{start:150,end:135},{start:47,end:126},{start:126,end:217},{start:217,end:47},{start:223,end:52},{start:52,end:53},{start:53,end:223},{start:45,end:51},{start:51,end:134},{start:134,end:45},{start:211,end:170},{start:170,end:140},{start:140,end:211},{start:67,end:69},{start:69,end:108},{start:108,end:67},{start:43,end:106},{start:106,end:91},{start:91,end:43},{start:230,end:119},{start:119,end:120},{start:120,end:230},{start:226,end:130},{start:130,end:247},{start:247,end:226},{start:63,end:53},{start:53,end:52},{start:52,end:63},{start:238,end:20},{start:20,end:242},{start:242,end:238},{start:46,end:70},{start:70,end:156},{start:156,end:46},{start:78,end:62},{start:62,end:96},{start:96,end:78},{start:46,end:53},{start:53,end:63},{start:63,end:46},{start:143,end:34},{start:34,end:227},{start:227,end:143},{start:123,end:117},{start:117,end:111},{start:111,end:123},{start:44,end:125},{start:125,end:19},{start:19,end:44},{start:236,end:134},{start:134,end:51},{start:51,end:236},{start:216,end:206},{start:206,end:205},{start:205,end:216},{start:154,end:153},{start:153,end:22},{start:22,end:154},{start:39,end:37},{start:37,end:167},{start:167,end:39},{start:200,end:201},{start:201,end:208},{start:208,end:200},{start:36,end:142},{start:142,end:100},{start:100,end:36},{start:57,end:212},{start:212,end:202},{start:202,end:57},{start:20,end:60},{start:60,end:99},{start:99,end:20},{start:28,end:158},{start:158,end:157},{start:157,end:28},{start:35,end:226},{start:226,end:113},{start:113,end:35},{start:160,end:159},{start:159,end:27},{start:27,end:160},{start:204,end:202},{start:202,end:210},{start:210,end:204},{start:113,end:225},{start:225,end:46},{start:46,end:113},{start:43,end:202},{start:202,end:204},{start:204,end:43},{start:62,end:76},{start:76,end:77},{start:77,end:62},{start:137,end:123},{start:123,end:116},{start:116,end:137},{start:41,end:38},{start:38,end:72},{start:72,end:41},{start:203,end:129},{start:129,end:142},{start:142,end:203},{start:64,end:98},{start:98,end:240},{start:240,end:64},{start:49,end:102},{start:102,end:64},{start:64,end:49},{start:41,end:73},{start:73,end:74},{start:74,end:41},{start:212,end:216},{start:216,end:207},{start:207,end:212},{start:42,end:74},{start:74,end:184},{start:184,end:42},{start:169,end:170},{start:170,end:211},{start:211,end:169},{start:170,end:149},{start:149,end:176},{start:176,end:170},{start:105,end:66},{start:66,end:69},{start:69,end:105},{start:122,end:6},{start:6,end:168},{start:168,end:122},{start:123,end:147},{start:147,end:187},{start:187,end:123},{start:96,end:77},{start:77,end:90},{start:90,end:96},{start:65,end:55},{start:55,end:107},{start:107,end:65},{start:89,end:90},{start:90,end:180},{start:180,end:89},{start:101,end:100},{start:100,end:120},{start:120,end:101},{start:63,end:105},{start:105,end:104},{start:104,end:63},{start:93,end:137},{start:137,end:227},{start:227,end:93},{start:15,end:86},{start:86,end:85},{start:85,end:15},{start:129,end:102},{start:102,end:49},{start:49,end:129},{start:14,end:87},{start:87,end:86},{start:86,end:14},{start:55,end:8},{start:8,end:9},{start:9,end:55},{start:100,end:47},{start:47,end:121},{start:121,end:100},{start:145,end:23},{start:23,end:22},{start:22,end:145},{start:88,end:89},{start:89,end:179},{start:179,end:88},{start:6,end:122},{start:122,end:196},{start:196,end:6},{start:88,end:95},{start:95,end:96},{start:96,end:88},{start:138,end:172},{start:172,end:136},{start:136,end:138},{start:215,end:58},{start:58,end:172},{start:172,end:215},{start:115,end:48},{start:48,end:219},{start:219,end:115},{start:42,end:80},{start:80,end:81},{start:81,end:42},{start:195,end:3},{start:3,end:51},{start:51,end:195},{start:43,end:146},{start:146,end:61},{start:61,end:43},{start:171,end:175},{start:175,end:199},{start:199,end:171},{start:81,end:82},{start:82,end:38},{start:38,end:81},{start:53,end:46},{start:46,end:225},{start:225,end:53},{start:144,end:163},{start:163,end:110},{start:110,end:144},{start:52,end:65},{start:65,end:66},{start:66,end:52},{start:229,end:228},{start:228,end:117},{start:117,end:229},{start:34,end:127},{start:127,end:234},{start:234,end:34},{start:107,end:108},{start:108,end:69},{start:69,end:107},{start:109,end:108},{start:108,end:151},{start:151,end:109},{start:48,end:64},{start:64,end:235},{start:235,end:48},{start:62,end:78},{start:78,end:191},{start:191,end:62},{start:129,end:209},{start:209,end:126},{start:126,end:129},{start:111,end:35},{start:35,end:143},{start:143,end:111},{start:117,end:123},{start:123,end:50},{start:50,end:117},{start:222,end:65},{start:65,end:52},{start:52,end:222},{start:19,end:125},{start:125,end:141},{start:141,end:19},{start:221,end:55},{start:55,end:65},{start:65,end:221},{start:3,end:195},{start:195,end:197},{start:197,end:3},{start:25,end:7},{start:7,end:33},{start:33,end:25},{start:220,end:237},{start:237,end:44},{start:44,end:220},{start:70,end:71},{start:71,end:139},{start:139,end:70},{start:122,end:193},{start:193,end:245},{start:245,end:122},{start:247,end:130},{start:130,end:33},{start:33,end:247},{start:71,end:21},{start:21,end:162},{start:162,end:71},{start:170,end:169},{start:169,end:150},{start:150,end:170},{start:188,end:174},{start:174,end:196},{start:196,end:188},{start:216,end:186},{start:186,end:92},{start:92,end:216},{start:2,end:97},{start:97,end:167},{start:167,end:2},{start:141,end:125},{start:125,end:241},{start:241,end:141},{start:164,end:167},{start:167,end:37},{start:37,end:164},{start:72,end:38},{start:38,end:12},{start:12,end:72},{start:38,end:82},{start:82,end:13},{start:13,end:38},{start:63,end:68},{start:68,end:71},{start:71,end:63},{start:226,end:35},{start:35,end:111},{start:111,end:226},{start:101,end:50},{start:50,end:205},{start:205,end:101},{start:206,end:92},{start:92,end:165},{start:165,end:206},{start:209,end:198},{start:198,end:217},{start:217,end:209},{start:165,end:167},{start:167,end:97},{start:97,end:165},{start:220,end:115},{start:115,end:218},{start:218,end:220},{start:133,end:112},{start:112,end:243},{start:243,end:133},{start:239,end:238},{start:238,end:241},{start:241,end:239},{start:214,end:135},{start:135,end:169},{start:169,end:214},{start:190,end:173},{start:173,end:133},{start:133,end:190},{start:171,end:208},{start:208,end:32},{start:32,end:171},{start:125,end:44},{start:44,end:237},{start:237,end:125},{start:86,end:87},{start:87,end:178},{start:178,end:86},{start:85,end:86},{start:86,end:179},{start:179,end:85},{start:84,end:85},{start:85,end:180},{start:180,end:84},{start:83,end:84},{start:84,end:181},{start:181,end:83},{start:201,end:83},{start:83,end:182},{start:182,end:201},{start:137,end:93},{start:93,end:132},{start:132,end:137},{start:76,end:62},{start:62,end:183},{start:183,end:76},{start:61,end:76},{start:76,end:184},{start:184,end:61},{start:57,end:61},{start:61,end:185},{start:185,end:57},{start:212,end:57},{start:57,end:186},{start:186,end:212},{start:214,end:207},{start:207,end:187},{start:187,end:214},{start:34,end:143},{start:143,end:156},{start:156,end:34},{start:79,end:239},{start:239,end:237},{start:237,end:79},{start:123,end:137},{start:137,end:177},{start:177,end:123},{start:44,end:1},{start:1,end:4},{start:4,end:44},{start:201,end:194},{start:194,end:32},{start:32,end:201},{start:64,end:102},{start:102,end:129},{start:129,end:64},{start:213,end:215},{start:215,end:138},{start:138,end:213},{start:59,end:166},{start:166,end:219},{start:219,end:59},{start:242,end:99},{start:99,end:97},{start:97,end:242},{start:2,end:94},{start:94,end:141},{start:141,end:2},{start:75,end:59},{start:59,end:235},{start:235,end:75},{start:24,end:110},{start:110,end:228},{start:228,end:24},{start:25,end:130},{start:130,end:226},{start:226,end:25},{start:23,end:24},{start:24,end:229},{start:229,end:23},{start:22,end:23},{start:23,end:230},{start:230,end:22},{start:26,end:22},{start:22,end:231},{start:231,end:26},{start:112,end:26},{start:26,end:232},{start:232,end:112},{start:189,end:190},{start:190,end:243},{start:243,end:189},{start:221,end:56},{start:56,end:190},{start:190,end:221},{start:28,end:56},{start:56,end:221},{start:221,end:28},{start:27,end:28},{start:28,end:222},{start:222,end:27},{start:29,end:27},{start:27,end:223},{start:223,end:29},{start:30,end:29},{start:29,end:224},{start:224,end:30},{start:247,end:30},{start:30,end:225},{start:225,end:247},{start:238,end:79},{start:79,end:20},{start:20,end:238},{start:166,end:59},{start:59,end:75},{start:75,end:166},{start:60,end:75},{start:75,end:240},{start:240,end:60},{start:147,end:177},{start:177,end:215},{start:215,end:147},{start:20,end:79},{start:79,end:166},{start:166,end:20},{start:187,end:147},{start:147,end:213},{start:213,end:187},{start:112,end:233},{start:233,end:244},{start:244,end:112},{start:233,end:128},{start:128,end:245},{start:245,end:233},{start:128,end:114},{start:114,end:188},{start:188,end:128},{start:114,end:217},{start:217,end:174},{start:174,end:114},{start:131,end:115},{start:115,end:220},{start:220,end:131},{start:217,end:198},{start:198,end:236},{start:236,end:217},{start:198,end:131},{start:131,end:134},{start:134,end:198},{start:177,end:132},{start:132,end:58},{start:58,end:177},{start:143,end:35},{start:35,end:124},{start:124,end:143},{start:110,end:163},{start:163,end:7},{start:7,end:110},{start:228,end:110},{start:110,end:25},{start:25,end:228},{start:356,end:389},{start:389,end:368},{start:368,end:356},{start:11,end:302},{start:302,end:267},{start:267,end:11},{start:452,end:350},{start:350,end:349},{start:349,end:452},{start:302,end:303},{start:303,end:269},{start:269,end:302},{start:357,end:343},{start:343,end:277},{start:277,end:357},{start:452,end:453},{start:453,end:357},{start:357,end:452},{start:333,end:332},{start:332,end:297},{start:297,end:333},{start:175,end:152},{start:152,end:377},{start:377,end:175},{start:347,end:348},{start:348,end:330},{start:330,end:347},{start:303,end:304},{start:304,end:270},{start:270,end:303},{start:9,end:336},{start:336,end:337},{start:337,end:9},{start:278,end:279},{start:279,end:360},{start:360,end:278},{start:418,end:262},{start:262,end:431},{start:431,end:418},{start:304,end:408},{start:408,end:409},{start:409,end:304},{start:310,end:415},{start:415,end:407},{start:407,end:310},{start:270,end:409},{start:409,end:410},{start:410,end:270},{start:450,end:348},{start:348,end:347},{start:347,end:450},{start:422,end:430},{start:430,end:434},{start:434,end:422},{start:313,end:314},{start:314,end:17},{start:17,end:313},{start:306,end:307},{start:307,end:375},{start:375,end:306},{start:387,end:388},{start:388,end:260},{start:260,end:387},{start:286,end:414},{start:414,end:398},{start:398,end:286},{start:335,end:406},{start:406,end:418},{start:418,end:335},{start:364,end:367},{start:367,end:416},{start:416,end:364},{start:423,end:358},{start:358,end:327},{start:327,end:423},{start:251,end:284},{start:284,end:298},{start:298,end:251},{start:281,end:5},{start:5,end:4},{start:4,end:281},{start:373,end:374},{start:374,end:253},{start:253,end:373},{start:307,end:320},{start:320,end:321},{start:321,end:307},{start:425,end:427},{start:427,end:411},{start:411,end:425},{start:421,end:313},{start:313,end:18},{start:18,end:421},{start:321,end:405},{start:405,end:406},{start:406,end:321},{start:320,end:404},{start:404,end:405},{start:405,end:320},{start:315,end:16},{start:16,end:17},{start:17,end:315},{start:426,end:425},{start:425,end:266},{start:266,end:426},{start:377,end:400},{start:400,end:369},{start:369,end:377},{start:322,end:391},{start:391,end:269},{start:269,end:322},{start:417,end:465},{start:465,end:464},{start:464,end:417},{start:386,end:257},{start:257,end:258},{start:258,end:386},{start:466,end:260},{start:260,end:388},{start:388,end:466},{start:456,end:399},{start:399,end:419},{start:419,end:456},{start:284,end:332},{start:332,end:333},{start:333,end:284},{start:417,end:285},{start:285,end:8},{start:8,end:417},{start:346,end:340},{start:340,end:261},{start:261,end:346},{start:413,end:441},{start:441,end:285},{start:285,end:413},{start:327,end:460},{start:460,end:328},{start:328,end:327},{start:355,end:371},{start:371,end:329},{start:329,end:355},{start:392,end:439},{start:439,end:438},{start:438,end:392},{start:382,end:341},{start:341,end:256},{start:256,end:382},{start:429,end:420},{start:420,end:360},{start:360,end:429},{start:364,end:394},{start:394,end:379},{start:379,end:364},{start:277,end:343},{start:343,end:437},{start:437,end:277},{start:443,end:444},{start:444,end:283},{start:283,end:443},{start:275,end:440},{start:440,end:363},{start:363,end:275},{start:431,end:262},{start:262,end:369},{start:369,end:431},{start:297,end:338},{start:338,end:337},{start:337,end:297},{start:273,end:375},{start:375,end:321},{start:321,end:273},{start:450,end:451},{start:451,end:349},{start:349,end:450},{start:446,end:342},{start:342,end:467},{start:467,end:446},{start:293,end:334},{start:334,end:282},{start:282,end:293},{start:458,end:461},{start:461,end:462},{start:462,end:458},{start:276,end:353},{start:353,end:383},{start:383,end:276},{start:308,end:324},{start:324,end:325},{start:325,end:308},{start:276,end:300},{start:300,end:293},{start:293,end:276},{start:372,end:345},{start:345,end:447},{start:447,end:372},{start:352,end:345},{start:345,end:340},{start:340,end:352},{start:274,end:1},{start:1,end:19},{start:19,end:274},{start:456,end:248},{start:248,end:281},{start:281,end:456},{start:436,end:427},{start:427,end:425},{start:425,end:436},{start:381,end:256},{start:256,end:252},{start:252,end:381},{start:269,end:391},{start:391,end:393},{start:393,end:269},{start:200,end:199},{start:199,end:428},{start:428,end:200},{start:266,end:330},{start:330,end:329},{start:329,end:266},{start:287,end:273},{start:273,end:422},{start:422,end:287},{start:250,end:462},{start:462,end:328},{start:328,end:250},{start:258,end:286},{start:286,end:384},{start:384,end:258},{start:265,end:353},{start:353,end:342},{start:342,end:265},{start:387,end:259},{start:259,end:257},{start:257,end:387},{start:424,end:431},{start:431,end:430},{start:430,end:424},{start:342,end:353},{start:353,end:276},{start:276,end:342},{start:273,end:335},{start:335,end:424},{start:424,end:273},{start:292,end:325},{start:325,end:307},{start:307,end:292},{start:366,end:447},{start:447,end:345},{start:345,end:366},{start:271,end:303},{start:303,end:302},{start:302,end:271},{start:423,end:266},{start:266,end:371},{start:371,end:423},{start:294,end:455},{start:455,end:460},{start:460,end:294},{start:279,end:278},{start:278,end:294},{start:294,end:279},{start:271,end:272},{start:272,end:304},{start:304,end:271},{start:432,end:434},{start:434,end:427},{start:427,end:432},{start:272,end:407},{start:407,end:408},{start:408,end:272},{start:394,end:430},{start:430,end:431},{start:431,end:394},{start:395,end:369},{start:369,end:400},{start:400,end:395},{start:334,end:333},{start:333,end:299},{start:299,end:334},{start:351,end:417},{start:417,end:168},{start:168,end:351},{start:352,end:280},{start:280,end:411},{start:411,end:352},{start:325,end:319},{start:319,end:320},{start:320,end:325},{start:295,end:296},{start:296,end:336},{start:336,end:295},{start:319,end:403},{start:403,end:404},{start:404,end:319},{start:330,end:348},{start:348,end:349},{start:349,end:330},{start:293,end:298},{start:298,end:333},{start:333,end:293},{start:323,end:454},{start:454,end:447},{start:447,end:323},{start:15,end:16},{start:16,end:315},{start:315,end:15},{start:358,end:429},{start:429,end:279},{start:279,end:358},{start:14,end:15},{start:15,end:316},{start:316,end:14},{start:285,end:336},{start:336,end:9},{start:9,end:285},{start:329,end:349},{start:349,end:350},{start:350,end:329},{start:374,end:380},{start:380,end:252},{start:252,end:374},{start:318,end:402},{start:402,end:403},{start:403,end:318},{start:6,end:197},{start:197,end:419},{start:419,end:6},{start:318,end:319},{start:319,end:325},{start:325,end:318},{start:367,end:364},{start:364,end:365},{start:365,end:367},{start:435,end:367},{start:367,end:397},{start:397,end:435},{start:344,end:438},{start:438,end:439},{start:439,end:344},{start:272,end:271},{start:271,end:311},{start:311,end:272},{start:195,end:5},{start:5,end:281},{start:281,end:195},{start:273,end:287},{start:287,end:291},{start:291,end:273},{start:396,end:428},{start:428,end:199},{start:199,end:396},{start:311,end:271},{start:271,end:268},{start:268,end:311},{start:283,end:444},{start:444,end:445},{start:445,end:283},{start:373,end:254},{start:254,end:339},{start:339,end:373},{start:282,end:334},{start:334,end:296},{start:296,end:282},{start:449,end:347},{start:347,end:346},{start:346,end:449},{start:264,end:447},{start:447,end:454},{start:454,end:264},{start:336,end:296},{start:296,end:299},{start:299,end:336},{start:338,end:10},{start:10,end:151},{start:151,end:338},{start:278,end:439},{start:439,end:455},{start:455,end:278},{start:292,end:407},{start:407,end:415},{start:415,end:292},{start:358,end:371},{start:371,end:355},{start:355,end:358},{start:340,end:345},{start:345,end:372},{start:372,end:340},{start:346,end:347},{start:347,end:280},{start:280,end:346},{start:442,end:443},{start:443,end:282},{start:282,end:442},{start:19,end:94},{start:94,end:370},{start:370,end:19},{start:441,end:442},{start:442,end:295},{start:295,end:441},{start:248,end:419},{start:419,end:197},{start:197,end:248},{start:263,end:255},{start:255,end:359},{start:359,end:263},{start:440,end:275},{start:275,end:274},{start:274,end:440},{start:300,end:383},{start:383,end:368},{start:368,end:300},{start:351,end:412},{start:412,end:465},{start:465,end:351},{start:263,end:467},{start:467,end:466},{start:466,end:263},{start:301,end:368},{start:368,end:389},{start:389,end:301},{start:395,end:378},{start:378,end:379},{start:379,end:395},{start:412,end:351},{start:351,end:419},{start:419,end:412},{start:436,end:426},{start:426,end:322},{start:322,end:436},{start:2,end:164},{start:164,end:393},{start:393,end:2},{start:370,end:462},{start:462,end:461},{start:461,end:370},{start:164,end:0},{start:0,end:267},{start:267,end:164},{start:302,end:11},{start:11,end:12},{start:12,end:302},{start:268,end:12},{start:12,end:13},{start:13,end:268},{start:293,end:300},{start:300,end:301},{start:301,end:293},{start:446,end:261},{start:261,end:340},{start:340,end:446},{start:330,end:266},{start:266,end:425},{start:425,end:330},{start:426,end:423},{start:423,end:391},{start:391,end:426},{start:429,end:355},{start:355,end:437},{start:437,end:429},{start:391,end:327},{start:327,end:326},{start:326,end:391},{start:440,end:457},{start:457,end:438},{start:438,end:440},{start:341,end:382},{start:382,end:362},{start:362,end:341},{start:459,end:457},{start:457,end:461},{start:461,end:459},{start:434,end:430},{start:430,end:394},{start:394,end:434},{start:414,end:463},{start:463,end:362},{start:362,end:414},{start:396,end:369},{start:369,end:262},{start:262,end:396},{start:354,end:461},{start:461,end:457},{start:457,end:354},{start:316,end:403},{start:403,end:402},{start:402,end:316},{start:315,end:404},{start:404,end:403},{start:403,end:315},{start:314,end:405},{start:405,end:404},{start:404,end:314},{start:313,end:406},{start:406,end:405},{start:405,end:313},{start:421,end:418},{start:418,end:406},{start:406,end:421},{start:366,end:401},{start:401,end:361},{start:361,end:366},{start:306,end:408},{start:408,end:407},{start:407,end:306},{start:291,end:409},{start:409,end:408},{start:408,end:291},{start:287,end:410},{start:410,end:409},{start:409,end:287},{start:432,end:436},{start:436,end:410},{start:410,end:432},{start:434,end:416},{start:416,end:411},{start:411,end:434},{start:264,end:368},{start:368,end:383},{start:383,end:264},{start:309,end:438},{start:438,end:457},{start:457,end:309},{start:352,end:376},{start:376,end:401},{start:401,end:352},{start:274,end:275},{start:275,end:4},{start:4,end:274},{start:421,end:428},{start:428,end:262},{start:262,end:421},{start:294,end:327},{start:327,end:358},{start:358,end:294},{start:433,end:416},{start:416,end:367},{start:367,end:433},{start:289,end:455},{start:455,end:439},{start:439,end:289},{start:462,end:370},{start:370,end:326},{start:326,end:462},{start:2,end:326},{start:326,end:370},{start:370,end:2},{start:305,end:460},{start:460,end:455},{start:455,end:305},{start:254,end:449},{start:449,end:448},{start:448,end:254},{start:255,end:261},{start:261,end:446},{start:446,end:255},{start:253,end:450},{start:450,end:449},{start:449,end:253},{start:252,end:451},{start:451,end:450},{start:450,end:252},{start:256,end:452},{start:452,end:451},{start:451,end:256},{start:341,end:453},{start:453,end:452},{start:452,end:341},{start:413,end:464},{start:464,end:463},{start:463,end:413},{start:441,end:413},{start:413,end:414},{start:414,end:441},{start:258,end:442},{start:442,end:441},{start:441,end:258},{start:257,end:443},{start:443,end:442},{start:442,end:257},{start:259,end:444},{start:444,end:443},{start:443,end:259},{start:260,end:445},{start:445,end:444},{start:444,end:260},{start:467,end:342},{start:342,end:445},{start:445,end:467},{start:459,end:458},{start:458,end:250},{start:250,end:459},{start:289,end:392},{start:392,end:290},{start:290,end:289},{start:290,end:328},{start:328,end:460},{start:460,end:290},{start:376,end:433},{start:433,end:435},{start:435,end:376},{start:250,end:290},{start:290,end:392},{start:392,end:250},{start:411,end:416},{start:416,end:433},{start:433,end:411},{start:341,end:463},{start:463,end:464},{start:464,end:341},{start:453,end:464},{start:464,end:465},{start:465,end:453},{start:357,end:465},{start:465,end:412},{start:412,end:357},{start:343,end:412},{start:412,end:399},{start:399,end:343},{start:360,end:363},{start:363,end:440},{start:440,end:360},{start:437,end:399},{start:399,end:456},{start:456,end:437},{start:420,end:456},{start:456,end:363},{start:363,end:420},{start:401,end:435},{start:435,end:288},{start:288,end:401},{start:372,end:383},{start:383,end:353},{start:353,end:372},{start:339,end:255},{start:255,end:249},{start:249,end:339},{start:448,end:261},{start:261,end:255},{start:255,end:448},{start:133,end:243},{start:243,end:190},{start:190,end:133},{start:133,end:155},{start:155,end:112},{start:112,end:133},{start:33,end:246},{start:246,end:247},{start:247,end:33},{start:33,end:130},{start:130,end:25},{start:25,end:33},{start:398,end:384},{start:384,end:286},{start:286,end:398},{start:362,end:398},{start:398,end:414},{start:414,end:362},{start:362,end:463},{start:463,end:341},{start:341,end:362},{start:263,end:359},{start:359,end:467},{start:467,end:263},{start:263,end:249},{start:249,end:255},{start:255,end:263},{start:466,end:467},{start:467,end:260},{start:260,end:466},{start:75,end:60},{start:60,end:166},{start:166,end:75},{start:238,end:239},{start:239,end:79},{start:79,end:238},{start:162,end:127},{start:127,end:139},{start:139,end:162},{start:72,end:11},{start:11,end:37},{start:37,end:72},{start:121,end:232},{start:232,end:120},{start:120,end:121},{start:73,end:72},{start:72,end:39},{start:39,end:73},{start:114,end:128},{start:128,end:47},{start:47,end:114},{start:233,end:232},{start:232,end:128},{start:128,end:233},{start:103,end:104},{start:104,end:67},{start:67,end:103},{start:152,end:175},{start:175,end:148},{start:148,end:152},{start:119,end:118},{start:118,end:101},{start:101,end:119},{start:74,end:73},{start:73,end:40},{start:40,end:74},{start:107,end:9},{start:9,end:108},{start:108,end:107},{start:49,end:48},{start:48,end:131},{start:131,end:49},{start:32,end:194},{start:194,end:211},{start:211,end:32},{start:184,end:74},{start:74,end:185},{start:185,end:184},{start:191,end:80},{start:80,end:183},{start:183,end:191},{start:185,end:40},{start:40,end:186},{start:186,end:185},{start:119,end:230},{start:230,end:118},{start:118,end:119},{start:210,end:202},{start:202,end:214},{start:214,end:210},{start:84,end:83},{start:83,end:17},{start:17,end:84},{start:77,end:76},{start:76,end:146},{start:146,end:77},{start:161,end:160},{start:160,end:30},{start:30,end:161},{start:190,end:56},{start:56,end:173},{start:173,end:190},{start:182,end:106},{start:106,end:194},{start:194,end:182},{start:138,end:135},{start:135,end:192},{start:192,end:138},{start:129,end:203},{start:203,end:98},{start:98,end:129},{start:54,end:21},{start:21,end:68},{start:68,end:54},{start:5,end:51},{start:51,end:4},{start:4,end:5},{start:145,end:144},{start:144,end:23},{start:23,end:145},{start:90,end:77},{start:77,end:91},{start:91,end:90},{start:207,end:205},{start:205,end:187},{start:187,end:207},{start:83,end:201},{start:201,end:18},{start:18,end:83},{start:181,end:91},{start:91,end:182},{start:182,end:181},{start:180,end:90},{start:90,end:181},{start:181,end:180},{start:16,end:85},{start:85,end:17},{start:17,end:16},{start:205,end:206},{start:206,end:36},{start:36,end:205},{start:176,end:148},{start:148,end:140},{start:140,end:176},{start:165,end:92},{start:92,end:39},{start:39,end:165},{start:245,end:193},{start:193,end:244},{start:244,end:245},{start:27,end:159},{start:159,end:28},{start:28,end:27},{start:30,end:247},{start:247,end:161},{start:161,end:30},{start:174,end:236},{start:236,end:196},{start:196,end:174},{start:103,end:54},{start:54,end:104},{start:104,end:103},{start:55,end:193},{start:193,end:8},{start:8,end:55},{start:111,end:117},{start:117,end:31},{start:31,end:111},{start:221,end:189},{start:189,end:55},{start:55,end:221},{start:240,end:98},{start:98,end:99},{start:99,end:240},{start:142,end:126},{start:126,end:100},{start:100,end:142},{start:219,end:166},{start:166,end:218},{start:218,end:219},{start:112,end:155},{start:155,end:26},{start:26,end:112},{start:198,end:209},{start:209,end:131},{start:131,end:198},{start:169,end:135},{start:135,end:150},{start:150,end:169},{start:114,end:47},{start:47,end:217},{start:217,end:114},{start:224,end:223},{start:223,end:53},{start:53,end:224},{start:220,end:45},{start:45,end:134},{start:134,end:220},{start:32,end:211},{start:211,end:140},{start:140,end:32},{start:109,end:67},{start:67,end:108},{start:108,end:109},{start:146,end:43},{start:43,end:91},{start:91,end:146},{start:231,end:230},{start:230,end:120},{start:120,end:231},{start:113,end:226},{start:226,end:247},{start:247,end:113},{start:105,end:63},{start:63,end:52},{start:52,end:105},{start:241,end:238},{start:238,end:242},{start:242,end:241},{start:124,end:46},{start:46,end:156},{start:156,end:124},{start:95,end:78},{start:78,end:96},{start:96,end:95},{start:70,end:46},{start:46,end:63},{start:63,end:70},{start:116,end:143},{start:143,end:227},{start:227,end:116},{start:116,end:123},{start:123,end:111},{start:111,end:116},{start:1,end:44},{start:44,end:19},{start:19,end:1},{start:3,end:236},{start:236,end:51},{start:51,end:3},{start:207,end:216},{start:216,end:205},{start:205,end:207},{start:26,end:154},{start:154,end:22},{start:22,end:26},{start:165,end:39},{start:39,end:167},{start:167,end:165},{start:199,end:200},{start:200,end:208},{start:208,end:199},{start:101,end:36},{start:36,end:100},{start:100,end:101},{start:43,end:57},{start:57,end:202},{start:202,end:43},{start:242,end:20},{start:20,end:99},{start:99,end:242},{start:56,end:28},{start:28,end:157},{start:157,end:56},{start:124,end:35},{start:35,end:113},{start:113,end:124},{start:29,end:160},{start:160,end:27},{start:27,end:29},{start:211,end:204},{start:204,end:210},{start:210,end:211},{start:124,end:113},{start:113,end:46},{start:46,end:124},{start:106,end:43},{start:43,end:204},{start:204,end:106},{start:96,end:62},{start:62,end:77},{start:77,end:96},{start:227,end:137},{start:137,end:116},{start:116,end:227},{start:73,end:41},{start:41,end:72},{start:72,end:73},{start:36,end:203},{start:203,end:142},{start:142,end:36},{start:235,end:64},{start:64,end:240},{start:240,end:235},{start:48,end:49},{start:49,end:64},{start:64,end:48},{start:42,end:41},{start:41,end:74},{start:74,end:42},{start:214,end:212},{start:212,end:207},{start:207,end:214},{start:183,end:42},{start:42,end:184},{start:184,end:183},{start:210,end:169},{start:169,end:211},{start:211,end:210},{start:140,end:170},{start:170,end:176},{start:176,end:140},{start:104,end:105},{start:105,end:69},{start:69,end:104},{start:193,end:122},{start:122,end:168},{start:168,end:193},{start:50,end:123},{start:123,end:187},{start:187,end:50},{start:89,end:96},{start:96,end:90},{start:90,end:89},{start:66,end:65},{start:65,end:107},{start:107,end:66},{start:179,end:89},{start:89,end:180},{start:180,end:179},{start:119,end:101},{start:101,end:120},{start:120,end:119},{start:68,end:63},{start:63,end:104},{start:104,end:68},{start:234,end:93},{start:93,end:227},{start:227,end:234},{start:16,end:15},{start:15,end:85},{start:85,end:16},{start:209,end:129},{start:129,end:49},{start:49,end:209},{start:15,end:14},{start:14,end:86},{start:86,end:15},{start:107,end:55},{start:55,end:9},{start:9,end:107},{start:120,end:100},{start:100,end:121},{start:121,end:120},{start:153,end:145},{start:145,end:22},{start:22,end:153},{start:178,end:88},{start:88,end:179},{start:179,end:178},{start:197,end:6},{start:6,end:196},{start:196,end:197},{start:89,end:88},{start:88,end:96},{start:96,end:89},{start:135,end:138},{start:138,end:136},{start:136,end:135},{start:138,end:215},{start:215,end:172},{start:172,end:138},{start:218,end:115},{start:115,end:219},{start:219,end:218},{start:41,end:42},{start:42,end:81},{start:81,end:41},{start:5,end:195},{start:195,end:51},{start:51,end:5},{start:57,end:43},{start:43,end:61},{start:61,end:57},{start:208,end:171},{start:171,end:199},{start:199,end:208},{start:41,end:81},{start:81,end:38},{start:38,end:41},{start:224,end:53},{start:53,end:225},{start:225,end:224},{start:24,end:144},{start:144,end:110},{start:110,end:24},{start:105,end:52},{start:52,end:66},{start:66,end:105},{start:118,end:229},{start:229,end:117},{start:117,end:118},{start:227,end:34},{start:34,end:234},{start:234,end:227},{start:66,end:107},{start:107,end:69},{start:69,end:66},{start:10,end:109},{start:109,end:151},{start:151,end:10},{start:219,end:48},{start:48,end:235},{start:235,end:219},{start:183,end:62},{start:62,end:191},{start:191,end:183},{start:142,end:129},{start:129,end:126},{start:126,end:142},{start:116,end:111},{start:111,end:143},{start:143,end:116},{start:118,end:117},{start:117,end:50},{start:50,end:118},{start:223,end:222},{start:222,end:52},{start:52,end:223},{start:94,end:19},{start:19,end:141},{start:141,end:94},{start:222,end:221},{start:221,end:65},{start:65,end:222},{start:196,end:3},{start:3,end:197},{start:197,end:196},{start:45,end:220},{start:220,end:44},{start:44,end:45},{start:156,end:70},{start:70,end:139},{start:139,end:156},{start:188,end:122},{start:122,end:245},{start:245,end:188},{start:139,end:71},{start:71,end:162},{start:162,end:139},{start:149,end:170},{start:170,end:150},{start:150,end:149},{start:122,end:188},{start:188,end:196},{start:196,end:122},{start:206,end:216},{start:216,end:92},{start:92,end:206},{start:164,end:2},{start:2,end:167},{start:167,end:164},{start:242,end:141},{start:141,end:241},{start:241,end:242},{start:0,end:164},{start:164,end:37},{start:37,end:0},{start:11,end:72},{start:72,end:12},{start:12,end:11},{start:12,end:38},{start:38,end:13},{start:13,end:12},{start:70,end:63},{start:63,end:71},{start:71,end:70},{start:31,end:226},{start:226,end:111},{start:111,end:31},{start:36,end:101},{start:101,end:205},{start:205,end:36},{start:203,end:206},{start:206,end:165},{start:165,end:203},{start:126,end:209},{start:209,end:217},{start:217,end:126},{start:98,end:165},{start:165,end:97},{start:97,end:98},{start:237,end:220},{start:220,end:218},{start:218,end:237},{start:237,end:239},{start:239,end:241},{start:241,end:237},{start:210,end:214},{start:214,end:169},{start:169,end:210},{start:140,end:171},{start:171,end:32},{start:32,end:140},{start:241,end:125},{start:125,end:237},{start:237,end:241},{start:179,end:86},{start:86,end:178},{start:178,end:179},{start:180,end:85},{start:85,end:179},{start:179,end:180},{start:181,end:84},{start:84,end:180},{start:180,end:181},{start:182,end:83},{start:83,end:181},{start:181,end:182},{start:194,end:201},{start:201,end:182},{start:182,end:194},{start:177,end:137},{start:137,end:132},{start:132,end:177},{start:184,end:76},{start:76,end:183},{start:183,end:184},{start:185,end:61},{start:61,end:184},{start:184,end:185},{start:186,end:57},{start:57,end:185},{start:185,end:186},{start:216,end:212},{start:212,end:186},{start:186,end:216},{start:192,end:214},{start:214,end:187},{start:187,end:192},{start:139,end:34},{start:34,end:156},{start:156,end:139},{start:218,end:79},{start:79,end:237},{start:237,end:218},{start:147,end:123},{start:123,end:177},{start:177,end:147},{start:45,end:44},{start:44,end:4},{start:4,end:45},{start:208,end:201},{start:201,end:32},{start:32,end:208},{start:98,end:64},{start:64,end:129},{start:129,end:98},{start:192,end:213},{start:213,end:138},{start:138,end:192},{start:235,end:59},{start:59,end:219},{start:219,end:235},{start:141,end:242},{start:242,end:97},{start:97,end:141},{start:97,end:2},{start:2,end:141},{start:141,end:97},{start:240,end:75},{start:75,end:235},{start:235,end:240},{start:229,end:24},{start:24,end:228},{start:228,end:229},{start:31,end:25},{start:25,end:226},{start:226,end:31},{start:230,end:23},{start:23,end:229},{start:229,end:230},{start:231,end:22},{start:22,end:230},{start:230,end:231},{start:232,end:26},{start:26,end:231},{start:231,end:232},{start:233,end:112},{start:112,end:232},{start:232,end:233},{start:244,end:189},{start:189,end:243},{start:243,end:244},{start:189,end:221},{start:221,end:190},{start:190,end:189},{start:222,end:28},{start:28,end:221},{start:221,end:222},{start:223,end:27},{start:27,end:222},{start:222,end:223},{start:224,end:29},{start:29,end:223},{start:223,end:224},{start:225,end:30},{start:30,end:224},{start:224,end:225},{start:113,end:247},{start:247,end:225},{start:225,end:113},{start:99,end:60},{start:60,end:240},{start:240,end:99},{start:213,end:147},{start:147,end:215},{start:215,end:213},{start:60,end:20},{start:20,end:166},{start:166,end:60},{start:192,end:187},{start:187,end:213},{start:213,end:192},{start:243,end:112},{start:112,end:244},{start:244,end:243},{start:244,end:233},{start:233,end:245},{start:245,end:244},{start:245,end:128},{start:128,end:188},{start:188,end:245},{start:188,end:114},{start:114,end:174},{start:174,end:188},{start:134,end:131},{start:131,end:220},{start:220,end:134},{start:174,end:217},{start:217,end:236},{start:236,end:174},{start:236,end:198},{start:198,end:134},{start:134,end:236},{start:215,end:177},{start:177,end:58},{start:58,end:215},{start:156,end:143},{start:143,end:124},{start:124,end:156},{start:25,end:110},{start:110,end:7},{start:7,end:25},{start:31,end:228},{start:228,end:25},{start:25,end:31},{start:264,end:356},{start:356,end:368},{start:368,end:264},{start:0,end:11},{start:11,end:267},{start:267,end:0},{start:451,end:452},{start:452,end:349},{start:349,end:451},{start:267,end:302},{start:302,end:269},{start:269,end:267},{start:350,end:357},{start:357,end:277},{start:277,end:350},{start:350,end:452},{start:452,end:357},{start:357,end:350},{start:299,end:333},{start:333,end:297},{start:297,end:299},{start:396,end:175},{start:175,end:377},{start:377,end:396},{start:280,end:347},{start:347,end:330},{start:330,end:280},{start:269,end:303},{start:303,end:270},{start:270,end:269},{start:151,end:9},{start:9,end:337},{start:337,end:151},{start:344,end:278},{start:278,end:360},{start:360,end:344},{start:424,end:418},{start:418,end:431},{start:431,end:424},{start:270,end:304},{start:304,end:409},{start:409,end:270},{start:272,end:310},{start:310,end:407},{start:407,end:272},{start:322,end:270},{start:270,end:410},{start:410,end:322},{start:449,end:450},{start:450,end:347},{start:347,end:449},{start:432,end:422},{start:422,end:434},{start:434,end:432},{start:18,end:313},{start:313,end:17},{start:17,end:18},{start:291,end:306},{start:306,end:375},{start:375,end:291},{start:259,end:387},{start:387,end:260},{start:260,end:259},{start:424,end:335},{start:335,end:418},{start:418,end:424},{start:434,end:364},{start:364,end:416},{start:416,end:434},{start:391,end:423},{start:423,end:327},{start:327,end:391},{start:301,end:251},{start:251,end:298},{start:298,end:301},{start:275,end:281},{start:281,end:4},{start:4,end:275},{start:254,end:373},{start:373,end:253},{start:253,end:254},{start:375,end:307},{start:307,end:321},{start:321,end:375},{start:280,end:425},{start:425,end:411},{start:411,end:280},{start:200,end:421},{start:421,end:18},{start:18,end:200},{start:335,end:321},{start:321,end:406},{start:406,end:335},{start:321,end:320},{start:320,end:405},{start:405,end:321},{start:314,end:315},{start:315,end:17},{start:17,end:314},{start:423,end:426},{start:426,end:266},{start:266,end:423},{start:396,end:377},{start:377,end:369},{start:369,end:396},{start:270,end:322},{start:322,end:269},{start:269,end:270},{start:413,end:417},{start:417,end:464},{start:464,end:413},{start:385,end:386},{start:386,end:258},{start:258,end:385},{start:248,end:456},{start:456,end:419},{start:419,end:248},{start:298,end:284},{start:284,end:333},{start:333,end:298},{start:168,end:417},{start:417,end:8},{start:8,end:168},{start:448,end:346},{start:346,end:261},{start:261,end:448},{start:417,end:413},{start:413,end:285},{start:285,end:417},{start:326,end:327},{start:327,end:328},{start:328,end:326},{start:277,end:355},{start:355,end:329},{start:329,end:277},{start:309,end:392},{start:392,end:438},{start:438,end:309},{start:381,end:382},{start:382,end:256},{start:256,end:381},{start:279,end:429},{start:429,end:360},{start:360,end:279},{start:365,end:364},{start:364,end:379},{start:379,end:365},{start:355,end:277},{start:277,end:437},{start:437,end:355},{start:282,end:443},{start:443,end:283},{start:283,end:282},{start:281,end:275},{start:275,end:363},{start:363,end:281},{start:395,end:431},{start:431,end:369},{start:369,end:395},{start:299,end:297},{start:297,end:337},{start:337,end:299},{start:335,end:273},{start:273,end:321},{start:321,end:335},{start:348,end:450},{start:450,end:349},{start:349,end:348},{start:359,end:446},{start:446,end:467},{start:467,end:359},{start:283,end:293},{start:293,end:282},{start:282,end:283},{start:250,end:458},{start:458,end:462},{start:462,end:250},{start:300,end:276},{start:276,end:383},{start:383,end:300},{start:292,end:308},{start:308,end:325},{start:325,end:292},{start:283,end:276},{start:276,end:293},{start:293,end:283},{start:264,end:372},{start:372,end:447},{start:447,end:264},{start:346,end:352},{start:352,end:340},{start:340,end:346},{start:354,end:274},{start:274,end:19},{start:19,end:354},{start:363,end:456},{start:456,end:281},{start:281,end:363},{start:426,end:436},{start:436,end:425},{start:425,end:426},{start:380,end:381},{start:381,end:252},{start:252,end:380},{start:267,end:269},{start:269,end:393},{start:393,end:267},{start:421,end:200},{start:200,end:428},{start:428,end:421},{start:371,end:266},{start:266,end:329},{start:329,end:371},{start:432,end:287},{start:287,end:422},{start:422,end:432},{start:290,end:250},{start:250,end:328},{start:328,end:290},{start:385,end:258},{start:258,end:384},{start:384,end:385},{start:446,end:265},{start:265,end:342},{start:342,end:446},{start:386,end:387},{start:387,end:257},{start:257,end:386},{start:422,end:424},{start:424,end:430},{start:430,end:422},{start:445,end:342},{start:342,end:276},{start:276,end:445},{start:422,end:273},{start:273,end:424},{start:424,end:422},{start:306,end:292},{start:292,end:307},{start:307,end:306},{start:352,end:366},{start:366,end:345},{start:345,end:352},{start:268,end:271},{start:271,end:302},{start:302,end:268},{start:358,end:423},{start:423,end:371},{start:371,end:358},{start:327,end:294},{start:294,end:460},{start:460,end:327},{start:331,end:279},{start:279,end:294},{start:294,end:331},{start:303,end:271},{start:271,end:304},{start:304,end:303},{start:436,end:432},{start:432,end:427},{start:427,end:436},{start:304,end:272},{start:272,end:408},{start:408,end:304},{start:395,end:394},{start:394,end:431},{start:431,end:395},{start:378,end:395},{start:395,end:400},{start:400,end:378},{start:296,end:334},{start:334,end:299},{start:299,end:296},{start:6,end:351},{start:351,end:168},{start:168,end:6},{start:376,end:352},{start:352,end:411},{start:411,end:376},{start:307,end:325},{start:325,end:320},{start:320,end:307},{start:285,end:295},{start:295,end:336},{start:336,end:285},{start:320,end:319},{start:319,end:404},{start:404,end:320},{start:329,end:330},{start:330,end:349},{start:349,end:329},{start:334,end:293},{start:293,end:333},{start:333,end:334},{start:366,end:323},{start:323,end:447},{start:447,end:366},{start:316,end:15},{start:15,end:315},{start:315,end:316},{start:331,end:358},{start:358,end:279},{start:279,end:331},{start:317,end:14},{start:14,end:316},{start:316,end:317},{start:8,end:285},{start:285,end:9},{start:9,end:8},{start:277,end:329},{start:329,end:350},{start:350,end:277},{start:253,end:374},{start:374,end:252},{start:252,end:253},{start:319,end:318},{start:318,end:403},{start:403,end:319},{start:351,end:6},{start:6,end:419},{start:419,end:351},{start:324,end:318},{start:318,end:325},{start:325,end:324},{start:397,end:367},{start:367,end:365},{start:365,end:397},{start:288,end:435},{start:435,end:397},{start:397,end:288},{start:278,end:344},{start:344,end:439},{start:439,end:278},{start:310,end:272},{start:272,end:311},{start:311,end:310},{start:248,end:195},{start:195,end:281},{start:281,end:248},{start:375,end:273},{start:273,end:291},{start:291,end:375},{start:175,end:396},{start:396,end:199},{start:199,end:175},{start:312,end:311},{start:311,end:268},{start:268,end:312},{start:276,end:283},{start:283,end:445},{start:445,end:276},{start:390,end:373},{start:373,end:339},{start:339,end:390},{start:295,end:282},{start:282,end:296},{start:296,end:295},{start:448,end:449},{start:449,end:346},{start:346,end:448},{start:356,end:264},{start:264,end:454},{start:454,end:356},{start:337,end:336},{start:336,end:299},{start:299,end:337},{start:337,end:338},{start:338,end:151},{start:151,end:337},{start:294,end:278},{start:278,end:455},{start:455,end:294},{start:308,end:292},{start:292,end:415},{start:415,end:308},{start:429,end:358},{start:358,end:355},{start:355,end:429},{start:265,end:340},{start:340,end:372},{start:372,end:265},{start:352,end:346},{start:346,end:280},{start:280,end:352},{start:295,end:442},{start:442,end:282},{start:282,end:295},{start:354,end:19},{start:19,end:370},{start:370,end:354},{start:285,end:441},{start:441,end:295},{start:295,end:285},{start:195,end:248},{start:248,end:197},{start:197,end:195},{start:457,end:440},{start:440,end:274},{start:274,end:457},{start:301,end:300},{start:300,end:368},{start:368,end:301},{start:417,end:351},{start:351,end:465},{start:465,end:417},{start:251,end:301},{start:301,end:389},{start:389,end:251},{start:394,end:395},{start:395,end:379},{start:379,end:394},{start:399,end:412},{start:412,end:419},{start:419,end:399},{start:410,end:436},{start:436,end:322},{start:322,end:410},{start:326,end:2},{start:2,end:393},{start:393,end:326},{start:354,end:370},{start:370,end:461},{start:461,end:354},{start:393,end:164},{start:164,end:267},{start:267,end:393},{start:268,end:302},{start:302,end:12},{start:12,end:268},{start:312,end:268},{start:268,end:13},{start:13,end:312},{start:298,end:293},{start:293,end:301},{start:301,end:298},{start:265,end:446},{start:446,end:340},{start:340,end:265},{start:280,end:330},{start:330,end:425},{start:425,end:280},{start:322,end:426},{start:426,end:391},{start:391,end:322},{start:420,end:429},{start:429,end:437},{start:437,end:420},{start:393,end:391},{start:391,end:326},{start:326,end:393},{start:344,end:440},{start:440,end:438},{start:438,end:344},{start:458,end:459},{start:459,end:461},{start:461,end:458},{start:364,end:434},{start:434,end:394},{start:394,end:364},{start:428,end:396},{start:396,end:262},{start:262,end:428},{start:274,end:354},{start:354,end:457},{start:457,end:274},{start:317,end:316},{start:316,end:402},{start:402,end:317},{start:316,end:315},{start:315,end:403},{start:403,end:316},{start:315,end:314},{start:314,end:404},{start:404,end:315},{start:314,end:313},{start:313,end:405},{start:405,end:314},{start:313,end:421},{start:421,end:406},{start:406,end:313},{start:323,end:366},{start:366,end:361},{start:361,end:323},{start:292,end:306},{start:306,end:407},{start:407,end:292},{start:306,end:291},{start:291,end:408},{start:408,end:306},{start:291,end:287},{start:287,end:409},{start:409,end:291},{start:287,end:432},{start:432,end:410},{start:410,end:287},{start:427,end:434},{start:434,end:411},{start:411,end:427},{start:372,end:264},{start:264,end:383},{start:383,end:372},{start:459,end:309},{start:309,end:457},{start:457,end:459},{start:366,end:352},{start:352,end:401},{start:401,end:366},{start:1,end:274},{start:274,end:4},{start:4,end:1},{start:418,end:421},{start:421,end:262},{start:262,end:418},{start:331,end:294},{start:294,end:358},{start:358,end:331},{start:435,end:433},{start:433,end:367},{start:367,end:435},{start:392,end:289},{start:289,end:439},{start:439,end:392},{start:328,end:462},{start:462,end:326},{start:326,end:328},{start:94,end:2},{start:2,end:370},{start:370,end:94},{start:289,end:305},{start:305,end:455},{start:455,end:289},{start:339,end:254},{start:254,end:448},{start:448,end:339},{start:359,end:255},{start:255,end:446},{start:446,end:359},{start:254,end:253},{start:253,end:449},{start:449,end:254},{start:253,end:252},{start:252,end:450},{start:450,end:253},{start:252,end:256},{start:256,end:451},{start:451,end:252},{start:256,end:341},{start:341,end:452},{start:452,end:256},{start:414,end:413},{start:413,end:463},{start:463,end:414},{start:286,end:441},{start:441,end:414},{start:414,end:286},{start:286,end:258},{start:258,end:441},{start:441,end:286},{start:258,end:257},{start:257,end:442},{start:442,end:258},{start:257,end:259},{start:259,end:443},{start:443,end:257},{start:259,end:260},{start:260,end:444},{start:444,end:259},{start:260,end:467},{start:467,end:445},{start:445,end:260},{start:309,end:459},{start:459,end:250},{start:250,end:309},{start:305,end:289},{start:289,end:290},{start:290,end:305},{start:305,end:290},{start:290,end:460},{start:460,end:305},{start:401,end:376},{start:376,end:435},{start:435,end:401},{start:309,end:250},{start:250,end:392},{start:392,end:309},{start:376,end:411},{start:411,end:433},{start:433,end:376},{start:453,end:341},{start:341,end:464},{start:464,end:453},{start:357,end:453},{start:453,end:465},{start:465,end:357},{start:343,end:357},{start:357,end:412},{start:412,end:343},{start:437,end:343},{start:343,end:399},{start:399,end:437},{start:344,end:360},{start:360,end:440},{start:440,end:344},{start:420,end:437},{start:437,end:456},{start:456,end:420},{start:360,end:420},{start:420,end:363},{start:363,end:360},{start:361,end:401},{start:401,end:288},{start:288,end:361},{start:265,end:372},{start:372,end:353},{start:353,end:265},{start:390,end:339},{start:339,end:249},{start:249,end:390},{start:339,end:448},{start:448,end:255},{start:255,end:339}];var face_landmarker_options={};Object.defineProperty(face_landmarker_options,"__esModule",{value:!0});var face_landmarker_result={};Object.defineProperty(face_landmarker_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.FaceLandmarker=void 0;const o=calculator_pb,a=calculator_options_pb,n=classification_pb,i=landmark_pb,s=base_options_pb,p=face_detector_graph_options_pb,d=face_geometry_pb,l=face_landmarker_graph_options_pb,c=face_landmarks_detector_graph_options_pb,u=classifier_result,g=landmark_result,m=vision_task_runner,f=face_landmarks_connections;r(face_landmarker_options,e),r(face_landmarker_result,e);const h="image_in",y="norm_rect",_="face_landmarks",b="blendshapes",R="face_geometry",v=.5;class E extends m.VisionTaskRunner{static createFromOptions(e,t){return m.VisionTaskRunner.createVisionInstance(E,e,t)}static createFromModelBuffer(e,t){return m.VisionTaskRunner.createVisionInstance(E,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return m.VisionTaskRunner.createVisionInstance(E,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new m.VisionGraphRunner(e,t),h,y,!1),this.result={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFaceBlendshapes=!1,this.outputFacialTransformationMatrixes=!1,this.options=new l.FaceLandmarkerGraphOptions,this.options.setBaseOptions(new s.BaseOptions),this.faceLandmarksDetectorGraphOptions=new c.FaceLandmarksDetectorGraphOptions,this.options.setFaceLandmarksDetectorGraphOptions(this.faceLandmarksDetectorGraphOptions),this.faceDetectorGraphOptions=new p.FaceDetectorGraphOptions,this.options.setFaceDetectorGraphOptions(this.faceDetectorGraphOptions),this.initDefaults()}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r,o,a;return"numFaces"in e&&this.faceDetectorGraphOptions.setNumFaces(null!==(t=e.numFaces)&&void 0!==t?t:1),"minFaceDetectionConfidence"in e&&this.faceDetectorGraphOptions.setMinDetectionConfidence(null!==(r=e.minFaceDetectionConfidence)&&void 0!==r?r:v),"minTrackingConfidence"in e&&this.options.setMinTrackingConfidence(null!==(o=e.minTrackingConfidence)&&void 0!==o?o:v),"minFacePresenceConfidence"in e&&this.faceLandmarksDetectorGraphOptions.setMinDetectionConfidence(null!==(a=e.minFacePresenceConfidence)&&void 0!==a?a:v),"outputFaceBlendshapes"in e&&(this.outputFaceBlendshapes=!!e.outputFaceBlendshapes),"outputFacialTransformationMatrixes"in e&&(this.outputFacialTransformationMatrixes=!!e.outputFacialTransformationMatrixes),this.applyOptions(e)}detect(e,t){return this.resetResults(),this.processImageData(e,t),this.result}detectForVideo(e,t,r){return this.resetResults(),this.processVideoData(e,r,t),this.result}resetResults(){this.result={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}initDefaults(){this.faceDetectorGraphOptions.setNumFaces(1),this.faceDetectorGraphOptions.setMinDetectionConfidence(v),this.faceLandmarksDetectorGraphOptions.setMinDetectionConfidence(v),this.options.setMinTrackingConfidence(v)}addJsLandmarks(e){for(const t of e){const e=i.NormalizedLandmarkList.deserializeBinary(t);this.result.faceLandmarks.push((0,g.convertToLandmarks)(e))}}addBlenshape(e){var t;if(this.outputFaceBlendshapes)for(const r of e){const e=n.ClassificationList.deserializeBinary(r);this.result.faceBlendshapes.push((0,u.convertFromClassifications)(null!==(t=e.getClassificationList())&&void 0!==t?t:[]))}}addFacialTransformationMatrixes(e){var t,r,o;if(this.outputFacialTransformationMatrixes)for(const a of e){const e=d.FaceGeometry.deserializeBinary(a).getPoseTransformMatrix();e&&this.result.facialTransformationMatrixes.push({rows:null!==(t=e.getRows())&&void 0!==t?t:0,columns:null!==(r=e.getCols())&&void 0!==r?r:0,data:null!==(o=e.getPackedDataList())&&void 0!==o?o:[]})}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(h),e.addInputStream(y),e.addOutputStream(_);const t=new a.CalculatorOptions;t.setExtension(l.FaceLandmarkerGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph"),r.addInputStream("IMAGE:"+h),r.addInputStream("NORM_RECT:"+y),r.addOutputStream("NORM_LANDMARKS:"+_),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoVectorListener(_,((e,t)=>{this.addJsLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(_,(e=>{this.setLatestOutputTimestamp(e)})),this.outputFaceBlendshapes&&(e.addOutputStream(b),r.addOutputStream("BLENDSHAPES:"+b),this.graphRunner.attachProtoVectorListener(b,((e,t)=>{this.addBlenshape(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(b,(e=>{this.setLatestOutputTimestamp(e)}))),this.outputFacialTransformationMatrixes&&(e.addOutputStream(R),r.addOutputStream("FACE_GEOMETRY:"+R),this.graphRunner.attachProtoVectorListener(R,((e,t)=>{this.addFacialTransformationMatrixes(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(R,(e=>{this.setLatestOutputTimestamp(e)})));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.FaceLandmarker=E,E.FACE_LANDMARKS_LIPS=f.FACE_LANDMARKS_LIPS,E.FACE_LANDMARKS_LEFT_EYE=f.FACE_LANDMARKS_LEFT_EYE,E.FACE_LANDMARKS_LEFT_EYEBROW=f.FACE_LANDMARKS_LEFT_EYEBROW,E.FACE_LANDMARKS_LEFT_IRIS=f.FACE_LANDMARKS_LEFT_IRIS,E.FACE_LANDMARKS_RIGHT_EYE=f.FACE_LANDMARKS_RIGHT_EYE,E.FACE_LANDMARKS_RIGHT_EYEBROW=f.FACE_LANDMARKS_RIGHT_EYEBROW,E.FACE_LANDMARKS_RIGHT_IRIS=f.FACE_LANDMARKS_RIGHT_IRIS,E.FACE_LANDMARKS_FACE_OVAL=f.FACE_LANDMARKS_FACE_OVAL,E.FACE_LANDMARKS_CONTOURS=f.FACE_LANDMARKS_CONTOURS,E.FACE_LANDMARKS_TESSELATION=f.FACE_LANDMARKS_TESSELATION}(face_landmarker);var face_stylizer={},face_stylizer_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=face_landmarker_graph_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions",null,o),proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.displayName="proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),faceLandmarkerGraphOptions:(o=r.getFaceLandmarkerGraphOptions())&&s.FaceLandmarkerGraphOptions.toObject(e,o),faceAlignmentSize:t.Message.getFieldWithDefault(r,3,256)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions;return proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new s.FaceLandmarkerGraphOptions,t.readMessage(r,s.FaceLandmarkerGraphOptions.deserializeBinaryFromReader),e.setFaceLandmarkerGraphOptions(r);break;case 3:r=t.readInt32(),e.setFaceAlignmentSize(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=e.getFaceLandmarkerGraphOptions())&&r.writeMessage(2,o,s.FaceLandmarkerGraphOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext=new t.ExtensionFieldInfo(513916220,{ext:0},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[513916220]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[513916220]=proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.getFaceLandmarkerGraphOptions=function(){return t.Message.getWrapperField(this,s.FaceLandmarkerGraphOptions,2)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.setFaceLandmarkerGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.clearFaceLandmarkerGraphOptions=function(){return this.setFaceLandmarkerGraphOptions(void 0)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.hasFaceLandmarkerGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.getFaceAlignmentSize=function(){return t.Message.getFieldWithDefault(this,3,256)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.setFaceAlignmentSize=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.clearFaceAlignmentSize=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.prototype.hasFaceAlignmentSize=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext=new t.ExtensionFieldInfo(513916220,{ext:0},proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[513916220]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[513916220]=proto.mediapipe.tasks.vision.face_stylizer.proto.FaceStylizerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.face_stylizer.proto)}(face_stylizer_graph_options_pb);var face_stylizer_options={};Object.defineProperty(face_stylizer_options,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.FaceStylizer=void 0;const o=calculator_pb,a=calculator_options_pb,n=base_options_pb,i=face_stylizer_graph_options_pb,s=vision_task_runner;r(face_stylizer_options,e);const p="image_in",d="norm_rect",l="stylized_image";class c extends s.VisionTaskRunner{static createFromOptions(e,t){return s.VisionTaskRunner.createVisionInstance(c,e,t)}static createFromModelBuffer(e,t){return s.VisionTaskRunner.createVisionInstance(c,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return s.VisionTaskRunner.createVisionInstance(c,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new s.VisionGraphRunner(e,t),p,d,!0),this.options=new i.FaceStylizerGraphOptions,this.options.setBaseOptions(new n.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){return super.applyOptions(e)}stylize(e,t,r){const o="function"!=typeof t?t:{};if(this.userCallback="function"==typeof t?t:r,this.processImageData(e,null!=o?o:{}),!this.userCallback)return this.result}stylizeForVideo(e,t,r,o){const a="function"!=typeof r?r:{};if(this.userCallback="function"==typeof r?r:o,this.processVideoData(e,a,t),this.userCallback=void 0,!this.userCallback)return this.result}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(p),e.addInputStream(d),e.addOutputStream(l);const t=new a.CalculatorOptions;t.setExtension(i.FaceStylizerGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph"),r.addInputStream("IMAGE:"+p),r.addInputStream("NORM_RECT:"+d),r.addOutputStream("STYLIZED_IMAGE:"+l),r.setOptions(t),e.addNode(r),this.graphRunner.attachImageListener(l,((e,t)=>{const r=this.convertToMPImage(e,!this.userCallback);this.result=r,this.userCallback&&this.userCallback(r),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(l,(e=>{this.result=null,this.userCallback&&this.userCallback(null),this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.FaceStylizer=c}(face_stylizer);var gesture_recognizer={},gesture_classifier_graph_options_pb={},classifier_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.components.processors.proto.ClassifierOptions",null,o),proto.mediapipe.tasks.components.processors.proto.ClassifierOptions=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.components.processors.proto.ClassifierOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.displayName="proto.mediapipe.tasks.components.processors.proto.ClassifierOptions"),proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.repeatedFields_=[4,5],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.toObject(e,this)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.toObject=function(e,r){var o,a={displayNamesLocale:t.Message.getFieldWithDefault(r,1,"en"),maxResults:t.Message.getFieldWithDefault(r,2,-1),scoreThreshold:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,categoryAllowlistList:null==(o=t.Message.getRepeatedField(r,4))?void 0:o,categoryDenylistList:null==(o=t.Message.getRepeatedField(r,5))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.processors.proto.ClassifierOptions;return proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setDisplayNamesLocale(r);break;case 2:r=t.readInt32(),e.setMaxResults(r);break;case 3:r=t.readFloat(),e.setScoreThreshold(r);break;case 4:r=t.readString(),e.addCategoryAllowlist(r);break;case 5:r=t.readString(),e.addCategoryDenylist(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),(o=e.getCategoryAllowlistList()).length>0&&r.writeRepeatedString(4,o),(o=e.getCategoryDenylistList()).length>0&&r.writeRepeatedString(5,o)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getDisplayNamesLocale=function(){return t.Message.getFieldWithDefault(this,1,"en")},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setDisplayNamesLocale=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearDisplayNamesLocale=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasDisplayNamesLocale=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getMaxResults=function(){return t.Message.getFieldWithDefault(this,2,-1)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setMaxResults=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearMaxResults=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasMaxResults=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getScoreThreshold=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setScoreThreshold=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearScoreThreshold=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasScoreThreshold=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getCategoryAllowlistList=function(){return t.Message.getRepeatedField(this,4)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setCategoryAllowlistList=function(e){return t.Message.setField(this,4,e||[])},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.addCategoryAllowlist=function(e,r){return t.Message.addToRepeatedField(this,4,e,r)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearCategoryAllowlistList=function(){return this.setCategoryAllowlistList([])},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getCategoryDenylistList=function(){return t.Message.getRepeatedField(this,5)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setCategoryDenylistList=function(e){return t.Message.setField(this,5,e||[])},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.addCategoryDenylist=function(e,r){return t.Message.addToRepeatedField(this,5,e,r)},proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearCategoryDenylistList=function(){return this.setCategoryDenylistList([])},r.object.extend(e,proto.mediapipe.tasks.components.processors.proto)}(classifier_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=classifier_options_pb;r.object.extend(proto,i);var s=base_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions",null,o),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.displayName="proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&s.BaseOptions.toObject(e,r),classifierOptions:(r=t.getClassifierOptions())&&i.ClassifierOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new s.BaseOptions;t.readMessage(r,s.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new i.ClassifierOptions,t.readMessage(r,i.ClassifierOptions.deserializeBinaryFromReader),e.setClassifierOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,s.BaseOptions.serializeBinaryToWriter),null!=(r=e.getClassifierOptions())&&t.writeMessage(2,r,i.ClassifierOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext=new t.ExtensionFieldInfo(478825465,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[478825465]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[478825465]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,s.BaseOptions,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.getClassifierOptions=function(){return t.Message.getWrapperField(this,i.ClassifierOptions,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.setClassifierOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.clearClassifierOptions=function(){return this.setClassifierOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.prototype.hasClassifierOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext=new t.ExtensionFieldInfo(478825465,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[478825465]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[478825465]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureClassifierGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.gesture_recognizer.proto)}(gesture_classifier_graph_options_pb);var gesture_recognizer_graph_options_pb={},hand_gesture_recognizer_graph_options_pb={},gesture_embedder_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions",null,o),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.displayName="proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&i.BaseOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r)}else t.skipField();return e},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.serializeBinaryToWriter=function(e,t){var r;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,i.BaseOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext=new t.ExtensionFieldInfo(478825422,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[478825422]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[478825422]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext=new t.ExtensionFieldInfo(478825422,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[478825422]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[478825422]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureEmbedderGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.gesture_recognizer.proto)}(gesture_embedder_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=gesture_classifier_graph_options_pb;r.object.extend(proto,s);var p=gesture_embedder_graph_options_pb;r.object.extend(proto,p),r.exportSymbol("proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions",null,o),proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.displayName="proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&i.BaseOptions.toObject(e,r),gestureEmbedderGraphOptions:(r=t.getGestureEmbedderGraphOptions())&&p.GestureEmbedderGraphOptions.toObject(e,r),cannedGestureClassifierGraphOptions:(r=t.getCannedGestureClassifierGraphOptions())&&s.GestureClassifierGraphOptions.toObject(e,r),customGestureClassifierGraphOptions:(r=t.getCustomGestureClassifierGraphOptions())&&s.GestureClassifierGraphOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new p.GestureEmbedderGraphOptions,t.readMessage(r,p.GestureEmbedderGraphOptions.deserializeBinaryFromReader),e.setGestureEmbedderGraphOptions(r);break;case 3:r=new s.GestureClassifierGraphOptions,t.readMessage(r,s.GestureClassifierGraphOptions.deserializeBinaryFromReader),e.setCannedGestureClassifierGraphOptions(r);break;case 4:r=new s.GestureClassifierGraphOptions,t.readMessage(r,s.GestureClassifierGraphOptions.deserializeBinaryFromReader),e.setCustomGestureClassifierGraphOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,i.BaseOptions.serializeBinaryToWriter),null!=(r=e.getGestureEmbedderGraphOptions())&&t.writeMessage(2,r,p.GestureEmbedderGraphOptions.serializeBinaryToWriter),null!=(r=e.getCannedGestureClassifierGraphOptions())&&t.writeMessage(3,r,s.GestureClassifierGraphOptions.serializeBinaryToWriter),null!=(r=e.getCustomGestureClassifierGraphOptions())&&t.writeMessage(4,r,s.GestureClassifierGraphOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext=new t.ExtensionFieldInfo(463370452,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[463370452]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[463370452]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.getGestureEmbedderGraphOptions=function(){return t.Message.getWrapperField(this,p.GestureEmbedderGraphOptions,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.setGestureEmbedderGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.clearGestureEmbedderGraphOptions=function(){return this.setGestureEmbedderGraphOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.hasGestureEmbedderGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.getCannedGestureClassifierGraphOptions=function(){return t.Message.getWrapperField(this,s.GestureClassifierGraphOptions,3)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.setCannedGestureClassifierGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.clearCannedGestureClassifierGraphOptions=function(){return this.setCannedGestureClassifierGraphOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.hasCannedGestureClassifierGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.getCustomGestureClassifierGraphOptions=function(){return t.Message.getWrapperField(this,s.GestureClassifierGraphOptions,4)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.setCustomGestureClassifierGraphOptions=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.clearCustomGestureClassifierGraphOptions=function(){return this.setCustomGestureClassifierGraphOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.prototype.hasCustomGestureClassifierGraphOptions=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext=new t.ExtensionFieldInfo(463370452,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[463370452]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[463370452]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.HandGestureRecognizerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.gesture_recognizer.proto)}(hand_gesture_recognizer_graph_options_pb);var hand_landmarker_graph_options_pb={},hand_detector_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5),numHands:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions;return proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;case 3:r=t.readInt32(),e.setNumHands(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext=new t.ExtensionFieldInfo(464864288,{ext:0},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[464864288]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[464864288]=proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.getNumHands=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.setNumHands=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.clearNumHands=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.prototype.hasNumHands=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext=new t.ExtensionFieldInfo(464864288,{ext:0},proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[464864288]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[464864288]=proto.mediapipe.tasks.vision.hand_detector.proto.HandDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.hand_detector.proto)}(hand_detector_graph_options_pb);var hand_landmarks_detector_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions;return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(474472470,{ext:0},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[474472470]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[474472470]=proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(474472470,{ext:0},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[474472470]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[474472470]=proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarksDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.hand_landmarker.proto)}(hand_landmarks_detector_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=hand_detector_graph_options_pb;r.object.extend(proto,s);var p=hand_landmarks_detector_graph_options_pb;r.object.extend(proto,p),r.exportSymbol("proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions",null,o),proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.displayName="proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),handDetectorGraphOptions:(o=r.getHandDetectorGraphOptions())&&s.HandDetectorGraphOptions.toObject(e,o),handLandmarksDetectorGraphOptions:(o=r.getHandLandmarksDetectorGraphOptions())&&p.HandLandmarksDetectorGraphOptions.toObject(e,o),minTrackingConfidence:t.Message.getFloatingPointFieldWithDefault(r,4,.5)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions;return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new s.HandDetectorGraphOptions,t.readMessage(r,s.HandDetectorGraphOptions.deserializeBinaryFromReader),e.setHandDetectorGraphOptions(r);break;case 3:r=new p.HandLandmarksDetectorGraphOptions,t.readMessage(r,p.HandLandmarksDetectorGraphOptions.deserializeBinaryFromReader),e.setHandLandmarksDetectorGraphOptions(r);break;case 4:r=t.readFloat(),e.setMinTrackingConfidence(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=e.getHandDetectorGraphOptions())&&r.writeMessage(2,o,s.HandDetectorGraphOptions.serializeBinaryToWriter),null!=(o=e.getHandLandmarksDetectorGraphOptions())&&r.writeMessage(3,o,p.HandLandmarksDetectorGraphOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(462713202,{ext:0},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[462713202]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[462713202]=proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.getHandDetectorGraphOptions=function(){return t.Message.getWrapperField(this,s.HandDetectorGraphOptions,2)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.setHandDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.clearHandDetectorGraphOptions=function(){return this.setHandDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.hasHandDetectorGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.getHandLandmarksDetectorGraphOptions=function(){return t.Message.getWrapperField(this,p.HandLandmarksDetectorGraphOptions,3)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.setHandLandmarksDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.clearHandLandmarksDetectorGraphOptions=function(){return this.setHandLandmarksDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.hasHandLandmarksDetectorGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.getMinTrackingConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,.5)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.setMinTrackingConfidence=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.clearMinTrackingConfidence=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.prototype.hasMinTrackingConfidence=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(462713202,{ext:0},proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[462713202]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[462713202]=proto.mediapipe.tasks.vision.hand_landmarker.proto.HandLandmarkerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.hand_landmarker.proto)}(hand_landmarker_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=hand_gesture_recognizer_graph_options_pb;r.object.extend(proto,s);var p=hand_landmarker_graph_options_pb;r.object.extend(proto,p),r.exportSymbol("proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions",null,o),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.displayName="proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&i.BaseOptions.toObject(e,r),handLandmarkerGraphOptions:(r=t.getHandLandmarkerGraphOptions())&&p.HandLandmarkerGraphOptions.toObject(e,r),handGestureRecognizerGraphOptions:(r=t.getHandGestureRecognizerGraphOptions())&&s.HandGestureRecognizerGraphOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new p.HandLandmarkerGraphOptions,t.readMessage(r,p.HandLandmarkerGraphOptions.deserializeBinaryFromReader),e.setHandLandmarkerGraphOptions(r);break;case 3:r=new s.HandGestureRecognizerGraphOptions,t.readMessage(r,s.HandGestureRecognizerGraphOptions.deserializeBinaryFromReader),e.setHandGestureRecognizerGraphOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,i.BaseOptions.serializeBinaryToWriter),null!=(r=e.getHandLandmarkerGraphOptions())&&t.writeMessage(2,r,p.HandLandmarkerGraphOptions.serializeBinaryToWriter),null!=(r=e.getHandGestureRecognizerGraphOptions())&&t.writeMessage(3,r,s.HandGestureRecognizerGraphOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext=new t.ExtensionFieldInfo(479097054,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[479097054]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[479097054]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.getHandLandmarkerGraphOptions=function(){return t.Message.getWrapperField(this,p.HandLandmarkerGraphOptions,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.setHandLandmarkerGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.clearHandLandmarkerGraphOptions=function(){return this.setHandLandmarkerGraphOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.hasHandLandmarkerGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.getHandGestureRecognizerGraphOptions=function(){return t.Message.getWrapperField(this,s.HandGestureRecognizerGraphOptions,3)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.setHandGestureRecognizerGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.clearHandGestureRecognizerGraphOptions=function(){return this.setHandGestureRecognizerGraphOptions(void 0)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.prototype.hasHandGestureRecognizerGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext=new t.ExtensionFieldInfo(479097054,{ext:0},proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[479097054]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[479097054]=proto.mediapipe.tasks.vision.gesture_recognizer.proto.GestureRecognizerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.gesture_recognizer.proto)}(gesture_recognizer_graph_options_pb);var classifier_options={};Object.defineProperty(classifier_options,"__esModule",{value:!0}),classifier_options.convertClassifierOptionsToProto=void 0;const classifier_options_pb_1=classifier_options_pb;function convertClassifierOptionsToProto(e,t){const r=t?t.clone():new classifier_options_pb_1.ClassifierOptions;return void 0!==e.displayNamesLocale?r.setDisplayNamesLocale(e.displayNamesLocale):void 0===e.displayNamesLocale&&r.clearDisplayNamesLocale(),void 0!==e.maxResults?r.setMaxResults(e.maxResults):"maxResults"in e&&r.clearMaxResults(),void 0!==e.scoreThreshold?r.setScoreThreshold(e.scoreThreshold):"scoreThreshold"in e&&r.clearScoreThreshold(),void 0!==e.categoryAllowlist?r.setCategoryAllowlistList(e.categoryAllowlist):"categoryAllowlist"in e&&r.clearCategoryAllowlistList(),void 0!==e.categoryDenylist?r.setCategoryDenylistList(e.categoryDenylist):"categoryDenylist"in e&&r.clearCategoryDenylistList(),r}classifier_options.convertClassifierOptionsToProto=convertClassifierOptionsToProto;var hand_landmarks_connections={};Object.defineProperty(hand_landmarks_connections,"__esModule",{value:!0}),hand_landmarks_connections.HAND_CONNECTIONS=void 0,hand_landmarks_connections.HAND_CONNECTIONS=[{start:0,end:1},{start:1,end:2},{start:2,end:3},{start:3,end:4},{start:0,end:5},{start:5,end:6},{start:6,end:7},{start:7,end:8},{start:5,end:9},{start:9,end:10},{start:10,end:11},{start:11,end:12},{start:9,end:13},{start:13,end:14},{start:14,end:15},{start:15,end:16},{start:13,end:17},{start:0,end:17},{start:17,end:18},{start:18,end:19},{start:19,end:20}];var gesture_recognizer_options={};Object.defineProperty(gesture_recognizer_options,"__esModule",{value:!0});var gesture_recognizer_result={};Object.defineProperty(gesture_recognizer_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.GestureRecognizer=void 0;const o=calculator_pb,a=calculator_options_pb,n=classification_pb,i=landmark_pb,s=base_options_pb,p=gesture_classifier_graph_options_pb,d=gesture_recognizer_graph_options_pb,l=hand_gesture_recognizer_graph_options_pb,c=hand_detector_graph_options_pb,u=hand_landmarker_graph_options_pb,g=hand_landmarks_detector_graph_options_pb,m=classifier_options,f=vision_task_runner,h=hand_landmarks_connections;r(gesture_recognizer_options,e),r(gesture_recognizer_result,e);const y="image_in",_="norm_rect",b="hand_gestures",R="hand_landmarks",v="world_hand_landmarks",E="handedness",M=.5;class O extends f.VisionTaskRunner{static createFromOptions(e,t){return f.VisionTaskRunner.createVisionInstance(O,e,t)}static createFromModelBuffer(e,t){return f.VisionTaskRunner.createVisionInstance(O,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return f.VisionTaskRunner.createVisionInstance(O,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new f.VisionGraphRunner(e,t),y,_,!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handednesses=[],this.options=new d.GestureRecognizerGraphOptions,this.options.setBaseOptions(new s.BaseOptions),this.handLandmarkerGraphOptions=new u.HandLandmarkerGraphOptions,this.options.setHandLandmarkerGraphOptions(this.handLandmarkerGraphOptions),this.handLandmarksDetectorGraphOptions=new g.HandLandmarksDetectorGraphOptions,this.handLandmarkerGraphOptions.setHandLandmarksDetectorGraphOptions(this.handLandmarksDetectorGraphOptions),this.handDetectorGraphOptions=new c.HandDetectorGraphOptions,this.handLandmarkerGraphOptions.setHandDetectorGraphOptions(this.handDetectorGraphOptions),this.handGestureRecognizerGraphOptions=new l.HandGestureRecognizerGraphOptions,this.options.setHandGestureRecognizerGraphOptions(this.handGestureRecognizerGraphOptions),this.handDetectorGraphOptions.setMinDetectionConfidence(M),this.handLandmarkerGraphOptions.setMinTrackingConfidence(M),this.handLandmarksDetectorGraphOptions.setMinDetectionConfidence(M)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r,o,a,n,i,s,d;if(this.handDetectorGraphOptions.setNumHands(null!==(t=e.numHands)&&void 0!==t?t:1),"minHandDetectionConfidence"in e&&this.handDetectorGraphOptions.setMinDetectionConfidence(null!==(r=e.minHandDetectionConfidence)&&void 0!==r?r:M),"minTrackingConfidence"in e&&this.handLandmarkerGraphOptions.setMinTrackingConfidence(null!==(o=e.minTrackingConfidence)&&void 0!==o?o:M),"minHandPresenceConfidence"in e&&this.handLandmarksDetectorGraphOptions.setMinDetectionConfidence(null!==(a=e.minHandPresenceConfidence)&&void 0!==a?a:M),e.cannedGesturesClassifierOptions){const t=new p.GestureClassifierGraphOptions;t.setClassifierOptions((0,m.convertClassifierOptionsToProto)(e.cannedGesturesClassifierOptions,null===(n=this.handGestureRecognizerGraphOptions.getCannedGestureClassifierGraphOptions())||void 0===n?void 0:n.getClassifierOptions())),this.handGestureRecognizerGraphOptions.setCannedGestureClassifierGraphOptions(t)}else void 0===e.cannedGesturesClassifierOptions&&(null===(i=this.handGestureRecognizerGraphOptions.getCannedGestureClassifierGraphOptions())||void 0===i||i.clearClassifierOptions());if(e.customGesturesClassifierOptions){const t=new p.GestureClassifierGraphOptions;t.setClassifierOptions((0,m.convertClassifierOptionsToProto)(e.customGesturesClassifierOptions,null===(s=this.handGestureRecognizerGraphOptions.getCustomGestureClassifierGraphOptions())||void 0===s?void 0:s.getClassifierOptions())),this.handGestureRecognizerGraphOptions.setCustomGestureClassifierGraphOptions(t)}else void 0===e.customGesturesClassifierOptions&&(null===(d=this.handGestureRecognizerGraphOptions.getCustomGestureClassifierGraphOptions())||void 0===d||d.clearClassifierOptions());return this.applyOptions(e)}recognize(e,t){return this.resetResults(),this.processImageData(e,t),this.processResults()}recognizeForVideo(e,t,r){return this.resetResults(),this.processVideoData(e,r,t),this.processResults()}resetResults(){this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handednesses=[]}processResults(){return 0===this.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handednesses:[]}:{gestures:this.gestures,landmarks:this.landmarks,worldLandmarks:this.worldLandmarks,handednesses:this.handednesses}}toJsCategories(e,t=!0){var r,o,a;const i=[];for(const s of e){const e=n.ClassificationList.deserializeBinary(s),p=[];for(const n of e.getClassificationList()){const e=t&&n.hasIndex()?n.getIndex():-1;p.push({score:null!==(r=n.getScore())&&void 0!==r?r:0,index:e,categoryName:null!==(o=n.getLabel())&&void 0!==o?o:"",displayName:null!==(a=n.getDisplayName())&&void 0!==a?a:""})}i.push(p)}return i}addJsLandmarks(e){var t,r,o;for(const a of e){const e=i.NormalizedLandmarkList.deserializeBinary(a),n=[];for(const a of e.getLandmarkList())n.push({x:null!==(t=a.getX())&&void 0!==t?t:0,y:null!==(r=a.getY())&&void 0!==r?r:0,z:null!==(o=a.getZ())&&void 0!==o?o:0});this.landmarks.push(n)}}adddJsWorldLandmarks(e){var t,r,o;for(const a of e){const e=i.LandmarkList.deserializeBinary(a),n=[];for(const a of e.getLandmarkList())n.push({x:null!==(t=a.getX())&&void 0!==t?t:0,y:null!==(r=a.getY())&&void 0!==r?r:0,z:null!==(o=a.getZ())&&void 0!==o?o:0});this.worldLandmarks.push(n)}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(y),e.addInputStream(_),e.addOutputStream(b),e.addOutputStream(R),e.addOutputStream(v),e.addOutputStream(E);const t=new a.CalculatorOptions;t.setExtension(d.GestureRecognizerGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph"),r.addInputStream("IMAGE:"+y),r.addInputStream("NORM_RECT:"+_),r.addOutputStream("HAND_GESTURES:"+b),r.addOutputStream("LANDMARKS:"+R),r.addOutputStream("WORLD_LANDMARKS:"+v),r.addOutputStream("HANDEDNESS:"+E),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoVectorListener(R,((e,t)=>{this.addJsLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(R,(e=>{this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(v,((e,t)=>{this.adddJsWorldLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(v,(e=>{this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(b,((e,t)=>{this.gestures.push(...this.toJsCategories(e,!1)),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(b,(e=>{this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(E,((e,t)=>{this.handednesses.push(...this.toJsCategories(e)),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(E,(e=>{this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.GestureRecognizer=O,O.HAND_CONNECTIONS=h.HAND_CONNECTIONS}(gesture_recognizer);var hand_landmarker={},hand_landmarker_options={};Object.defineProperty(hand_landmarker_options,"__esModule",{value:!0});var hand_landmarker_result={};Object.defineProperty(hand_landmarker_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.HandLandmarker=void 0;const o=calculator_pb,a=calculator_options_pb,n=classification_pb,i=landmark_pb,s=base_options_pb,p=hand_detector_graph_options_pb,d=hand_landmarker_graph_options_pb,l=hand_landmarks_detector_graph_options_pb,c=landmark_result,u=vision_task_runner,g=hand_landmarks_connections;r(hand_landmarker_options,e),r(hand_landmarker_result,e);const m="image_in",f="norm_rect",h="hand_landmarks",y="world_hand_landmarks",_="handedness",b=.5;class R extends u.VisionTaskRunner{static createFromOptions(e,t){return u.VisionTaskRunner.createVisionInstance(R,e,t)}static createFromModelBuffer(e,t){return u.VisionTaskRunner.createVisionInstance(R,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return u.VisionTaskRunner.createVisionInstance(R,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new u.VisionGraphRunner(e,t),m,f,!1),this.landmarks=[],this.worldLandmarks=[],this.handednesses=[],this.options=new d.HandLandmarkerGraphOptions,this.options.setBaseOptions(new s.BaseOptions),this.handLandmarksDetectorGraphOptions=new l.HandLandmarksDetectorGraphOptions,this.options.setHandLandmarksDetectorGraphOptions(this.handLandmarksDetectorGraphOptions),this.handDetectorGraphOptions=new p.HandDetectorGraphOptions,this.options.setHandDetectorGraphOptions(this.handDetectorGraphOptions),this.initDefaults()}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r,o,a;return"numHands"in e&&this.handDetectorGraphOptions.setNumHands(null!==(t=e.numHands)&&void 0!==t?t:1),"minHandDetectionConfidence"in e&&this.handDetectorGraphOptions.setMinDetectionConfidence(null!==(r=e.minHandDetectionConfidence)&&void 0!==r?r:b),"minTrackingConfidence"in e&&this.options.setMinTrackingConfidence(null!==(o=e.minTrackingConfidence)&&void 0!==o?o:b),"minHandPresenceConfidence"in e&&this.handLandmarksDetectorGraphOptions.setMinDetectionConfidence(null!==(a=e.minHandPresenceConfidence)&&void 0!==a?a:b),this.applyOptions(e)}detect(e,t){return this.resetResults(),this.processImageData(e,t),this.processResults()}detectForVideo(e,t,r){return this.resetResults(),this.processVideoData(e,r,t),this.processResults()}resetResults(){this.landmarks=[],this.worldLandmarks=[],this.handednesses=[]}processResults(){return{landmarks:this.landmarks,worldLandmarks:this.worldLandmarks,handednesses:this.handednesses}}initDefaults(){this.handDetectorGraphOptions.setNumHands(1),this.handDetectorGraphOptions.setMinDetectionConfidence(b),this.handLandmarksDetectorGraphOptions.setMinDetectionConfidence(b),this.options.setMinTrackingConfidence(b)}toJsCategories(e){var t,r,o,a;const i=[];for(const s of e){const e=n.ClassificationList.deserializeBinary(s),p=[];for(const n of e.getClassificationList())p.push({score:null!==(t=n.getScore())&&void 0!==t?t:0,index:null!==(r=n.getIndex())&&void 0!==r?r:-1,categoryName:null!==(o=n.getLabel())&&void 0!==o?o:"",displayName:null!==(a=n.getDisplayName())&&void 0!==a?a:""});i.push(p)}return i}addJsLandmarks(e){for(const t of e){const e=i.NormalizedLandmarkList.deserializeBinary(t);this.landmarks.push((0,c.convertToLandmarks)(e))}}adddJsWorldLandmarks(e){for(const t of e){const e=i.LandmarkList.deserializeBinary(t);this.worldLandmarks.push((0,c.convertToWorldLandmarks)(e))}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(m),e.addInputStream(f),e.addOutputStream(h),e.addOutputStream(y),e.addOutputStream(_);const t=new a.CalculatorOptions;t.setExtension(d.HandLandmarkerGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph"),r.addInputStream("IMAGE:"+m),r.addInputStream("NORM_RECT:"+f),r.addOutputStream("LANDMARKS:"+h),r.addOutputStream("WORLD_LANDMARKS:"+y),r.addOutputStream("HANDEDNESS:"+_),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoVectorListener(h,((e,t)=>{this.addJsLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(h,(e=>{this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(y,((e,t)=>{this.adddJsWorldLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(y,(e=>{this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(_,((e,t)=>{this.handednesses.push(...this.toJsCategories(e)),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(_,(e=>{this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.HandLandmarker=R,R.HAND_CONNECTIONS=g.HAND_CONNECTIONS}(hand_landmarker);var image_classifier={},classifications_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=classification_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.ClassificationResult",null,o),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.Classifications",null,o),proto.mediapipe.tasks.components.containers.proto.Classifications=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.components.containers.proto.Classifications,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.Classifications.displayName="proto.mediapipe.tasks.components.containers.proto.Classifications"),proto.mediapipe.tasks.components.containers.proto.ClassificationResult=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.components.containers.proto.ClassificationResult.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.components.containers.proto.ClassificationResult,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.ClassificationResult.displayName="proto.mediapipe.tasks.components.containers.proto.ClassificationResult"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.Classifications.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.Classifications.toObject=function(e,r){var o,n={classificationList:(o=r.getClassificationList())&&a.ClassificationList.toObject(e,o),headIndex:null==(o=t.Message.getField(r,2))?void 0:o,headName:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.Classifications;return proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 4:var r=new a.ClassificationList;t.readMessage(r,a.ClassificationList.deserializeBinaryFromReader),e.setClassificationList(r);break;case 2:r=t.readInt32(),e.setHeadIndex(r);break;case 3:r=t.readString(),e.setHeadName(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getClassificationList())&&r.writeMessage(4,o,a.ClassificationList.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeString(3,o)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getClassificationList=function(){return t.Message.getWrapperField(this,a.ClassificationList,4)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setClassificationList=function(e){return t.Message.setWrapperField(this,4,e)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearClassificationList=function(){return this.setClassificationList(void 0)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasClassificationList=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getHeadIndex=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setHeadIndex=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearHeadIndex=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasHeadIndex=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getHeadName=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setHeadName=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearHeadName=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasHeadName=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.ClassificationResult.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.toObject=function(e,r){var o,a={classificationsList:t.Message.toObjectList(r.getClassificationsList(),proto.mediapipe.tasks.components.containers.proto.Classifications.toObject,e),timestampMs:null==(o=t.Message.getField(r,2))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.ClassificationResult;return proto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.tasks.components.containers.proto.Classifications;t.readMessage(r,proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader),e.addClassifications(r);break;case 2:r=t.readInt64(),e.setTimestampMs(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.ClassificationResult.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.serializeBinaryToWriter=function(e,r){var o=void 0;(o=e.getClassificationsList()).length>0&&r.writeRepeatedMessage(1,o,proto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeInt64(2,o)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.getClassificationsList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.tasks.components.containers.proto.Classifications,1)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.setClassificationsList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.addClassifications=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.tasks.components.containers.proto.Classifications,r)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.clearClassificationsList=function(){return this.setClassificationsList([])},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.getTimestampMs=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.setTimestampMs=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.clearTimestampMs=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.hasTimestampMs=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.components.containers.proto)}(classifications_pb);var image_classifier_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=classifier_options_pb;r.object.extend(proto,i);var s=base_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions",null,o),proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.displayName="proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&s.BaseOptions.toObject(e,r),classifierOptions:(r=t.getClassifierOptions())&&i.ClassifierOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions;return proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new s.BaseOptions;t.readMessage(r,s.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new i.ClassifierOptions,t.readMessage(r,i.ClassifierOptions.deserializeBinaryFromReader),e.setClassifierOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,s.BaseOptions.serializeBinaryToWriter),null!=(r=e.getClassifierOptions())&&t.writeMessage(2,r,i.ClassifierOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext=new t.ExtensionFieldInfo(456383383,{ext:0},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[456383383]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[456383383]=proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,s.BaseOptions,1)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.getClassifierOptions=function(){return t.Message.getWrapperField(this,i.ClassifierOptions,2)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.setClassifierOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.clearClassifierOptions=function(){return this.setClassifierOptions(void 0)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.prototype.hasClassifierOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext=new t.ExtensionFieldInfo(456383383,{ext:0},proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[456383383]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[456383383]=proto.mediapipe.tasks.vision.image_classifier.proto.ImageClassifierGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.image_classifier.proto)}(image_classifier_graph_options_pb);var image_classifier_options={};Object.defineProperty(image_classifier_options,"__esModule",{value:!0});var image_classifier_result={};Object.defineProperty(image_classifier_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.ImageClassifier=void 0;const o=calculator_pb,a=calculator_options_pb,n=classifications_pb,i=base_options_pb,s=image_classifier_graph_options_pb,p=classifier_options,d=classifier_result,l=vision_task_runner,c="input_image",u="norm_rect",g="classifications";r(image_classifier_options,e),r(image_classifier_result,e);class m extends l.VisionTaskRunner{static createFromOptions(e,t){return l.VisionTaskRunner.createVisionInstance(m,e,t)}static createFromModelBuffer(e,t){return l.VisionTaskRunner.createVisionInstance(m,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return l.VisionTaskRunner.createVisionInstance(m,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new l.VisionGraphRunner(e,t),c,u,!0),this.classificationResult={classifications:[]},this.options=new s.ImageClassifierGraphOptions,this.options.setBaseOptions(new i.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){return this.options.setClassifierOptions((0,p.convertClassifierOptionsToProto)(e,this.options.getClassifierOptions())),this.applyOptions(e)}classify(e,t){return this.classificationResult={classifications:[]},this.processImageData(e,t),this.classificationResult}classifyForVideo(e,t,r){return this.classificationResult={classifications:[]},this.processVideoData(e,r,t),this.classificationResult}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(c),e.addInputStream(u),e.addOutputStream(g);const t=new a.CalculatorOptions;t.setExtension(s.ImageClassifierGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.image_classifier.ImageClassifierGraph"),r.addInputStream("IMAGE:"+c),r.addInputStream("NORM_RECT:"+u),r.addOutputStream("CLASSIFICATIONS:"+g),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoListener(g,((e,t)=>{this.classificationResult=(0,d.convertFromClassificationResultProto)(n.ClassificationResult.deserializeBinary(e)),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(g,(e=>{this.setLatestOutputTimestamp(e)}));const i=e.serializeBinary();this.setGraph(new Uint8Array(i),!0)}}e.ImageClassifier=m}(image_classifier);var image_embedder={},embeddings_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.Embedding",null,o),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase",null,o),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.EmbeddingResult",null,o),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.FloatEmbedding",null,o),r.exportSymbol("proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding",null,o),proto.mediapipe.tasks.components.containers.proto.FloatEmbedding=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.components.containers.proto.FloatEmbedding,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.displayName="proto.mediapipe.tasks.components.containers.proto.FloatEmbedding"),proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.displayName="proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding"),proto.mediapipe.tasks.components.containers.proto.Embedding=function(e){t.Message.initialize(this,e,0,-1,null,proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_)},r.inherits(proto.mediapipe.tasks.components.containers.proto.Embedding,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.Embedding.displayName="proto.mediapipe.tasks.components.containers.proto.Embedding"),proto.mediapipe.tasks.components.containers.proto.EmbeddingResult=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.components.containers.proto.EmbeddingResult,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.displayName="proto.mediapipe.tasks.components.containers.proto.EmbeddingResult"),proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject=function(e,r){var o,a={valuesList:null==(o=t.Message.getRepeatedFloatingPointField(r,1))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.FloatEmbedding;return proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber())for(var r=t.isDelimited()?t.readPackedFloat():[t.readFloat()],o=0;o<r.length;o++)e.addValues(r[o]);else t.skipField();return e},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter=function(e,t){var r;(r=e.getValuesList()).length>0&&t.writePackedFloat(1,r)},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.getValuesList=function(){return t.Message.getRepeatedFloatingPointField(this,1)},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.setValuesList=function(e){return t.Message.setField(this,1,e||[])},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.addValues=function(e,r){return t.Message.addToRepeatedField(this,1,e,r)},proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.clearValuesList=function(){return this.setValuesList([])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject=function(e,t){var r={values:t.getValues_asB64()};return e&&(r.$jspbMessageInstance=t),r}),proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding;return proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=t.readBytes();e.setValues(r)}else t.skipField();return e},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter=function(e,r){var o;null!=(o=t.Message.getField(e,1))&&r.writeBytes(1,o)},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues_asB64=function(){return t.Message.bytesAsB64(this.getValues())},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues_asU8=function(){return t.Message.bytesAsU8(this.getValues())},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.setValues=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.clearValues=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.hasValues=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_=[[1,2]],proto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase={EMBEDDING_NOT_SET:0,FLOAT_EMBEDDING:1,QUANTIZED_EMBEDDING:2},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getEmbeddingCase=function(){return t.Message.computeOneofCase(this,proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.Embedding.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.Embedding.toObject=function(e,r){var o,a={floatEmbedding:(o=r.getFloatEmbedding())&&proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject(e,o),quantizedEmbedding:(o=r.getQuantizedEmbedding())&&proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject(e,o),headIndex:null==(o=t.Message.getField(r,3))?void 0:o,headName:null==(o=t.Message.getField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.Embedding;return proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.tasks.components.containers.proto.FloatEmbedding;t.readMessage(r,proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader),e.setFloatEmbedding(r);break;case 2:r=new proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding,t.readMessage(r,proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader),e.setQuantizedEmbedding(r);break;case 3:r=t.readInt32(),e.setHeadIndex(r);break;case 4:r=t.readString(),e.setHeadName(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getFloatEmbedding())&&r.writeMessage(1,o,proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter),null!=(o=e.getQuantizedEmbedding())&&r.writeMessage(2,o,proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o),null!=(o=t.Message.getField(e,4))&&r.writeString(4,o)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getFloatEmbedding=function(){return t.Message.getWrapperField(this,proto.mediapipe.tasks.components.containers.proto.FloatEmbedding,1)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setFloatEmbedding=function(e){return t.Message.setOneofWrapperField(this,1,proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0],e)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearFloatEmbedding=function(){return this.setFloatEmbedding(void 0)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasFloatEmbedding=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getQuantizedEmbedding=function(){return t.Message.getWrapperField(this,proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding,2)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setQuantizedEmbedding=function(e){return t.Message.setOneofWrapperField(this,2,proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0],e)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearQuantizedEmbedding=function(){return this.setQuantizedEmbedding(void 0)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasQuantizedEmbedding=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getHeadIndex=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setHeadIndex=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearHeadIndex=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasHeadIndex=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getHeadName=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setHeadName=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearHeadName=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasHeadName=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.toObject=function(e){return proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.toObject(e,this)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.toObject=function(e,r){var o,a={embeddingsList:t.Message.toObjectList(r.getEmbeddingsList(),proto.mediapipe.tasks.components.containers.proto.Embedding.toObject,e),timestampMs:null==(o=t.Message.getField(r,2))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.containers.proto.EmbeddingResult;return proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.tasks.components.containers.proto.Embedding;t.readMessage(r,proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader),e.addEmbeddings(r);break;case 2:r=t.readInt64(),e.setTimestampMs(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.serializeBinaryToWriter=function(e,r){var o=void 0;(o=e.getEmbeddingsList()).length>0&&r.writeRepeatedMessage(1,o,proto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeInt64(2,o)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.getEmbeddingsList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.tasks.components.containers.proto.Embedding,1)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.setEmbeddingsList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.addEmbeddings=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.tasks.components.containers.proto.Embedding,r)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.clearEmbeddingsList=function(){return this.setEmbeddingsList([])},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.getTimestampMs=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.setTimestampMs=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.clearTimestampMs=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.hasTimestampMs=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.components.containers.proto)}(embeddings_pb);var image_embedder_graph_options_pb={},embedder_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.components.processors.proto.EmbedderOptions",null,o),proto.mediapipe.tasks.components.processors.proto.EmbedderOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.components.processors.proto.EmbedderOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.displayName="proto.mediapipe.tasks.components.processors.proto.EmbedderOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.toObject(e,this)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.toObject=function(e,r){var o,a={l2Normalize:null==(o=t.Message.getBooleanField(r,1))?void 0:o,quantize:null==(o=t.Message.getBooleanField(r,2))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.components.processors.proto.EmbedderOptions;return proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readBool();e.setL2Normalize(r);break;case 2:r=t.readBool(),e.setQuantize(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeBool(1,o),null!=(o=t.Message.getField(e,2))&&r.writeBool(2,o)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.getL2Normalize=function(){return t.Message.getBooleanFieldWithDefault(this,1,!1)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.setL2Normalize=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.clearL2Normalize=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.hasL2Normalize=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.getQuantize=function(){return t.Message.getBooleanFieldWithDefault(this,2,!1)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.setQuantize=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.clearQuantize=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.hasQuantize=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.components.processors.proto)}(embedder_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=embedder_options_pb;r.object.extend(proto,i);var s=base_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions",null,o),proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.displayName="proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.toObject=function(e,t){var r,o={baseOptions:(r=t.getBaseOptions())&&s.BaseOptions.toObject(e,r),embedderOptions:(r=t.getEmbedderOptions())&&i.EmbedderOptions.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions;return proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new s.BaseOptions;t.readMessage(r,s.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new i.EmbedderOptions,t.readMessage(r,i.EmbedderOptions.deserializeBinaryFromReader),e.setEmbedderOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getBaseOptions())&&t.writeMessage(1,r,s.BaseOptions.serializeBinaryToWriter),null!=(r=e.getEmbedderOptions())&&t.writeMessage(2,r,i.EmbedderOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext=new t.ExtensionFieldInfo(476348187,{ext:0},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[476348187]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[476348187]=proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,s.BaseOptions,1)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.getEmbedderOptions=function(){return t.Message.getWrapperField(this,i.EmbedderOptions,2)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.setEmbedderOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.clearEmbedderOptions=function(){return this.setEmbedderOptions(void 0)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.prototype.hasEmbedderOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext=new t.ExtensionFieldInfo(476348187,{ext:0},proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[476348187]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[476348187]=proto.mediapipe.tasks.vision.image_embedder.proto.ImageEmbedderGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.image_embedder.proto)}(image_embedder_graph_options_pb);var embedder_options={};Object.defineProperty(embedder_options,"__esModule",{value:!0}),embedder_options.convertEmbedderOptionsToProto=void 0;const embedder_options_pb_1=embedder_options_pb;function convertEmbedderOptionsToProto(e,t){const r=t?t.clone():new embedder_options_pb_1.EmbedderOptions;return void 0!==e.l2Normalize?r.setL2Normalize(e.l2Normalize):"l2Normalize"in e&&r.clearL2Normalize(),void 0!==e.quantize?r.setQuantize(e.quantize):"quantize"in e&&r.clearQuantize(),r}embedder_options.convertEmbedderOptionsToProto=convertEmbedderOptionsToProto;var embedder_result={};Object.defineProperty(embedder_result,"__esModule",{value:!0}),embedder_result.convertFromEmbeddingResultProto=void 0;const DEFAULT_INDEX=-1;function convertFromEmbeddingsProto(e){var t,r,o,a;const n={headIndex:null!==(t=e.getHeadIndex())&&void 0!==t?t:DEFAULT_INDEX,headName:null!==(r=e.getHeadName())&&void 0!==r?r:""};if(e.hasFloatEmbedding())n.floatEmbedding=e.getFloatEmbedding().getValuesList();else{const t=null!==(a=null===(o=e.getQuantizedEmbedding())||void 0===o?void 0:o.getValues())&&void 0!==a?a:"";n.quantizedEmbedding="string"==typeof t?Uint8Array.from(atob(t),(e=>e.charCodeAt(0))):t}return n}function convertFromEmbeddingResultProto(e){return{embeddings:e.getEmbeddingsList().map((e=>convertFromEmbeddingsProto(e))),timestampMs:e.getTimestampMs()}}embedder_result.convertFromEmbeddingResultProto=convertFromEmbeddingResultProto;var cosine_similarity={};function computeCosineSimilarity(e,t){if(e.floatEmbedding&&t.floatEmbedding)return compute(e.floatEmbedding,t.floatEmbedding);if(e.quantizedEmbedding&&t.quantizedEmbedding)return compute(convertToBytes(e.quantizedEmbedding),convertToBytes(t.quantizedEmbedding));throw new Error("Cannot compute cosine similarity between quantized and float embeddings.")}function convertToBytes(e){return Array.from(e,(e=>e>127?e-256:e))}function compute(e,t){if(e.length!==t.length)throw new Error(`Cannot compute cosine similarity between embeddings of different sizes (${e.length} vs. ${t.length}).`);let r=0,o=0,a=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n],o+=e[n]*e[n],a+=t[n]*t[n];if(o<=0||a<=0)throw new Error("Cannot compute cosine similarity on embedding with 0 norm.");return r/Math.sqrt(o*a)}Object.defineProperty(cosine_similarity,"__esModule",{value:!0}),cosine_similarity.computeCosineSimilarity=void 0,cosine_similarity.computeCosineSimilarity=computeCosineSimilarity;var image_embedder_options={};Object.defineProperty(image_embedder_options,"__esModule",{value:!0});var image_embedder_result={};Object.defineProperty(image_embedder_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.ImageEmbedder=void 0;const o=calculator_pb,a=calculator_options_pb,n=embeddings_pb,i=base_options_pb,s=image_embedder_graph_options_pb,p=embedder_options,d=embedder_result,l=cosine_similarity,c=vision_task_runner,u="image_in",g="norm_rect",m="embeddings_out";r(image_embedder_options,e),r(image_embedder_result,e);class f extends c.VisionTaskRunner{static createFromOptions(e,t){return c.VisionTaskRunner.createVisionInstance(f,e,t)}static createFromModelBuffer(e,t){return c.VisionTaskRunner.createVisionInstance(f,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return c.VisionTaskRunner.createVisionInstance(f,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new c.VisionGraphRunner(e,t),u,g,!0),this.options=new s.ImageEmbedderGraphOptions,this.embeddings={embeddings:[]},this.options.setBaseOptions(new i.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){return this.options.setEmbedderOptions((0,p.convertEmbedderOptionsToProto)(e,this.options.getEmbedderOptions())),this.applyOptions(e)}embed(e,t){return this.processImageData(e,t),this.embeddings}embedForVideo(e,t,r){return this.processVideoData(e,r,t),this.embeddings}static cosineSimilarity(e,t){return(0,l.computeCosineSimilarity)(e,t)}addJsImageEmdedding(e){const t=n.EmbeddingResult.deserializeBinary(e);this.embeddings=(0,d.convertFromEmbeddingResultProto)(t)}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(u),e.addInputStream(g),e.addOutputStream(m);const t=new a.CalculatorOptions;t.setExtension(s.ImageEmbedderGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph"),r.addInputStream("IMAGE:"+u),r.addInputStream("NORM_RECT:"+g),r.addOutputStream("EMBEDDINGS:"+m),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoListener(m,((e,t)=>{this.addJsImageEmdedding(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(m,(e=>{this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.ImageEmbedder=f}(image_embedder);var image_segmenter={},tensors_to_segmentation_calculator_pb={},segmenter_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions",null,o),r.exportSymbol("proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.Activation",null,o),r.exportSymbol("proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.OutputType",null,o),proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.displayName="proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.toObject(e,this)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.toObject=function(e,r){var o,a={outputType:null==(o=t.Message.getField(r,1))?void 0:o,activation:t.Message.getFieldWithDefault(r,2,0)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions;return proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readEnum();e.setOutputType(r);break;case 2:r=t.readEnum(),e.setActivation(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeEnum(1,o),null!=(o=t.Message.getField(e,2))&&r.writeEnum(2,o)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.OutputType={UNSPECIFIED:0,CATEGORY_MASK:1,CONFIDENCE_MASK:2},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.Activation={NONE:0,SIGMOID:1,SOFTMAX:2},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.getOutputType=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.setOutputType=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.clearOutputType=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.hasOutputType=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.getActivation=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.setActivation=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.clearActivation=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.image_segmenter.proto.SegmenterOptions.prototype.hasActivation=function(){return null!=t.Message.getField(this,2)},r.object.extend(e,proto.mediapipe.tasks.vision.image_segmenter.proto)}(segmenter_options_pb);var label_map_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.LabelMapItem",null,o),proto.mediapipe.LabelMapItem=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.LabelMapItem.repeatedFields_,null)},r.inherits(proto.mediapipe.LabelMapItem,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.LabelMapItem.displayName="proto.mediapipe.LabelMapItem"),proto.mediapipe.LabelMapItem.repeatedFields_=[3],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.LabelMapItem.prototype.toObject=function(e){return proto.mediapipe.LabelMapItem.toObject(e,this)},proto.mediapipe.LabelMapItem.toObject=function(e,r){var o,a={name:null==(o=t.Message.getField(r,1))?void 0:o,displayName:null==(o=t.Message.getField(r,2))?void 0:o,childNameList:null==(o=t.Message.getRepeatedField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.LabelMapItem.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.LabelMapItem;return proto.mediapipe.LabelMapItem.deserializeBinaryFromReader(o,r)},proto.mediapipe.LabelMapItem.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setName(r);break;case 2:r=t.readString(),e.setDisplayName(r);break;case 3:r=t.readString(),e.addChildName(r);break;default:t.skipField()}return e},proto.mediapipe.LabelMapItem.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.LabelMapItem.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.LabelMapItem.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),(o=e.getChildNameList()).length>0&&r.writeRepeatedString(3,o)},proto.mediapipe.LabelMapItem.prototype.getName=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.LabelMapItem.prototype.setName=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.LabelMapItem.prototype.clearName=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.LabelMapItem.prototype.hasName=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.LabelMapItem.prototype.getDisplayName=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.LabelMapItem.prototype.setDisplayName=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.LabelMapItem.prototype.clearDisplayName=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.LabelMapItem.prototype.hasDisplayName=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.LabelMapItem.prototype.getChildNameList=function(){return t.Message.getRepeatedField(this,3)},proto.mediapipe.LabelMapItem.prototype.setChildNameList=function(e){return t.Message.setField(this,3,e||[])},proto.mediapipe.LabelMapItem.prototype.addChildName=function(e,r){return t.Message.addToRepeatedField(this,3,e,r)},proto.mediapipe.LabelMapItem.prototype.clearChildNameList=function(){return this.setChildNameList([])},r.object.extend(e,proto.mediapipe)}(label_map_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_options_pb;r.object.extend(proto,a);var n=segmenter_options_pb;r.object.extend(proto,n);var i=label_map_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions",null,o),proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.displayName="proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.toObject(e,this)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.toObject=function(e,t){var r,o={segmenterOptions:(r=t.getSegmenterOptions())&&n.SegmenterOptions.toObject(e,r),labelItemsMap:(r=t.getLabelItemsMap())?r.toObject(e,proto.mediapipe.LabelMapItem.toObject):[]};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions;return proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)switch(r.getFieldNumber()){case 1:var o=new n.SegmenterOptions;r.readMessage(o,n.SegmenterOptions.deserializeBinaryFromReader),e.setSegmenterOptions(o);break;case 2:o=e.getLabelItemsMap(),r.readMessage(o,(function(e,r){t.Map.deserializeBinary(e,r,t.BinaryReader.prototype.readInt64,t.BinaryReader.prototype.readMessage,proto.mediapipe.LabelMapItem.deserializeBinaryFromReader,0,new proto.mediapipe.LabelMapItem)}));break;default:r.skipField()}return e},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getSegmenterOptions())&&r.writeMessage(1,o,n.SegmenterOptions.serializeBinaryToWriter),(o=e.getLabelItemsMap(!0))&&o.getLength()>0&&o.serializeBinary(2,r,t.BinaryWriter.prototype.writeInt64,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.LabelMapItem.serializeBinaryToWriter)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext=new t.ExtensionFieldInfo(458105876,{ext:0},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.toObject,0),a.CalculatorOptions.extensionsBinary[458105876]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[458105876]=proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.getSegmenterOptions=function(){return t.Message.getWrapperField(this,n.SegmenterOptions,1)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.setSegmenterOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.clearSegmenterOptions=function(){return this.setSegmenterOptions(void 0)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.hasSegmenterOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.getLabelItemsMap=function(e){return t.Message.getMapField(this,2,e,proto.mediapipe.LabelMapItem)},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.prototype.clearLabelItemsMap=function(){return this.getLabelItemsMap().clear(),this},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext=new t.ExtensionFieldInfo(458105876,{ext:0},proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.toObject,0),a.CalculatorOptions.extensionsBinary[458105876]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.deserializeBinaryFromReader,!1),a.CalculatorOptions.extensions[458105876]=proto.mediapipe.tasks.TensorsToSegmentationCalculatorOptions.ext,r.object.extend(e,proto.mediapipe.tasks)}(tensors_to_segmentation_calculator_pb);var image_segmenter_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=segmenter_options_pb;r.object.extend(proto,s),r.exportSymbol("proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions",null,o),proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.displayName="proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),displayNamesLocale:t.Message.getFieldWithDefault(r,2,"en"),segmenterOptions:(o=r.getSegmenterOptions())&&s.SegmenterOptions.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions;return proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readString(),e.setDisplayNamesLocale(r);break;case 3:r=new s.SegmenterOptions,t.readMessage(r,s.SegmenterOptions.deserializeBinaryFromReader),e.setSegmenterOptions(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=e.getSegmenterOptions())&&r.writeMessage(3,o,s.SegmenterOptions.serializeBinaryToWriter)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext=new t.ExtensionFieldInfo(458105758,{ext:0},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[458105758]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[458105758]=proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.getDisplayNamesLocale=function(){return t.Message.getFieldWithDefault(this,2,"en")},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.setDisplayNamesLocale=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.clearDisplayNamesLocale=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.hasDisplayNamesLocale=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.getSegmenterOptions=function(){return t.Message.getWrapperField(this,s.SegmenterOptions,3)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.setSegmenterOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.clearSegmenterOptions=function(){return this.setSegmenterOptions(void 0)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.prototype.hasSegmenterOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext=new t.ExtensionFieldInfo(458105758,{ext:0},proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[458105758]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[458105758]=proto.mediapipe.tasks.vision.image_segmenter.proto.ImageSegmenterGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.image_segmenter.proto)}(image_segmenter_graph_options_pb);var image_segmenter_result={};Object.defineProperty(image_segmenter_result,"__esModule",{value:!0}),image_segmenter_result.ImageSegmenterResult=void 0;class ImageSegmenterResult{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null===(e=this.confidenceMasks)||void 0===e||e.forEach((e=>{e.close()})),null===(t=this.categoryMask)||void 0===t||t.close()}}image_segmenter_result.ImageSegmenterResult=ImageSegmenterResult;var image_segmenter_options={};Object.defineProperty(image_segmenter_options,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.ImageSegmenter=void 0;const o=calculator_pb,a=calculator_options_pb,n=base_options_pb,i=tensors_to_segmentation_calculator_pb,s=image_segmenter_graph_options_pb,p=segmenter_options_pb,d=vision_task_runner,l=image_segmenter_result;r(image_segmenter_options,e),r(image_segmenter_result,e);const c="image_in",u="norm_rect",g="confidence_masks",m="category_mask",f="quality_scores",h="mediapipe.tasks.TensorsToSegmentationCalculator";class y extends d.VisionTaskRunner{static createFromOptions(e,t){return d.VisionTaskRunner.createVisionInstance(y,e,t)}static createFromModelBuffer(e,t){return d.VisionTaskRunner.createVisionInstance(y,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return d.VisionTaskRunner.createVisionInstance(y,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new d.VisionGraphRunner(e,t),c,u,!1),this.labels=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.options=new s.ImageSegmenterGraphOptions,this.segmenterOptions=new p.SegmenterOptions,this.options.setSegmenterOptions(this.segmenterOptions),this.options.setBaseOptions(new n.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r;return void 0!==e.displayNamesLocale?this.options.setDisplayNamesLocale(e.displayNamesLocale):"displayNamesLocale"in e&&this.options.clearDisplayNamesLocale(),"outputCategoryMask"in e&&(this.outputCategoryMask=null!==(t=e.outputCategoryMask)&&void 0!==t&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null===(r=e.outputConfidenceMasks)||void 0===r||r),super.applyOptions(e)}onGraphRefreshed(){this.populateLabels()}populateLabels(){var e,t,r;const o=this.getCalculatorGraphConfig().getNodeList().filter((e=>e.getName().includes(h)));if(this.labels=[],o.length>1)throw new Error(`The graph has more than one ${h}.`);1===o.length&&(null!==(r=null===(t=null===(e=o[0].getOptions())||void 0===e?void 0:e.getExtension(i.TensorsToSegmentationCalculatorOptions.ext))||void 0===t?void 0:t.getLabelItemsMap())&&void 0!==r?r:new Map).forEach(((e,t)=>{this.labels[Number(t)]=e.getName()}))}segment(e,t,r){const o="function"!=typeof t?t:{};return this.userCallback="function"==typeof t?t:r,this.reset(),this.processImageData(e,o),this.processResults()}segmentForVideo(e,t,r,o){const a="function"!=typeof r?r:{};return this.userCallback="function"==typeof r?r:o,this.reset(),this.processVideoData(e,a,t),this.processResults()}getLabels(){return this.labels}reset(){this.categoryMask=void 0,this.confidenceMasks=void 0,this.qualityScores=void 0}processResults(){try{const e=new l.ImageSegmenterResult(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.userCallback)return e;this.userCallback(e)}finally{this.freeKeepaliveStreams()}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(c),e.addInputStream(u);const t=new a.CalculatorOptions;t.setExtension(s.ImageSegmenterGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph"),r.addInputStream("IMAGE:"+c),r.addInputStream("NORM_RECT:"+u),r.setOptions(t),e.addNode(r),this.addKeepaliveNode(e),this.outputConfidenceMasks&&(e.addOutputStream(g),r.addOutputStream("CONFIDENCE_MASKS:"+g),this.keepStreamAlive(g),this.graphRunner.attachImageVectorListener(g,((e,t)=>{this.confidenceMasks=e.map((e=>this.convertToMPMask(e,!this.userCallback))),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(g,(e=>{this.confidenceMasks=[],this.setLatestOutputTimestamp(e)}))),this.outputCategoryMask&&(e.addOutputStream(m),r.addOutputStream("CATEGORY_MASK:"+m),this.keepStreamAlive(m),this.graphRunner.attachImageListener(m,((e,t)=>{this.categoryMask=this.convertToMPMask(e,!this.userCallback),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(m,(e=>{this.categoryMask=void 0,this.setLatestOutputTimestamp(e)}))),e.addOutputStream(f),r.addOutputStream("QUALITY_SCORES:"+f),this.graphRunner.attachFloatVectorListener(f,((e,t)=>{this.qualityScores=e,this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(f,(e=>{this.categoryMask=void 0,this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.ImageSegmenter=y}(image_segmenter);var interactive_segmenter={},color_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")();r.exportSymbol("proto.mediapipe.Color",null,o),r.exportSymbol("proto.mediapipe.ColorMap",null,o),proto.mediapipe.Color=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.Color,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.Color.displayName="proto.mediapipe.Color"),proto.mediapipe.ColorMap=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.ColorMap,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.ColorMap.displayName="proto.mediapipe.ColorMap"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.Color.prototype.toObject=function(e){return proto.mediapipe.Color.toObject(e,this)},proto.mediapipe.Color.toObject=function(e,r){var o,a={r:null==(o=t.Message.getField(r,1))?void 0:o,g:null==(o=t.Message.getField(r,2))?void 0:o,b:null==(o=t.Message.getField(r,3))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.Color.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.Color;return proto.mediapipe.Color.deserializeBinaryFromReader(o,r)},proto.mediapipe.Color.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readInt32();e.setR(r);break;case 2:r=t.readInt32(),e.setG(r);break;case 3:r=t.readInt32(),e.setB(r);break;default:t.skipField()}return e},proto.mediapipe.Color.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.Color.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.Color.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeInt32(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o)},proto.mediapipe.Color.prototype.getR=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.mediapipe.Color.prototype.setR=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.Color.prototype.clearR=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.Color.prototype.hasR=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.Color.prototype.getG=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.Color.prototype.setG=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.Color.prototype.clearG=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.Color.prototype.hasG=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.Color.prototype.getB=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.Color.prototype.setB=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.Color.prototype.clearB=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.Color.prototype.hasB=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.ColorMap.prototype.toObject=function(e){return proto.mediapipe.ColorMap.toObject(e,this)},proto.mediapipe.ColorMap.toObject=function(e,t){var r,o={labelToColorMap:(r=t.getLabelToColorMap())?r.toObject(e,proto.mediapipe.Color.toObject):[]};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.ColorMap.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.ColorMap;return proto.mediapipe.ColorMap.deserializeBinaryFromReader(o,r)},proto.mediapipe.ColorMap.deserializeBinaryFromReader=function(e,r){for(;r.nextField()&&!r.isEndGroup();)if(1===r.getFieldNumber()){var o=e.getLabelToColorMap();r.readMessage(o,(function(e,r){t.Map.deserializeBinary(e,r,t.BinaryReader.prototype.readString,t.BinaryReader.prototype.readMessage,proto.mediapipe.Color.deserializeBinaryFromReader,"",new proto.mediapipe.Color)}))}else r.skipField();return e},proto.mediapipe.ColorMap.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.ColorMap.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.ColorMap.serializeBinaryToWriter=function(e,r){var o=void 0;(o=e.getLabelToColorMap(!0))&&o.getLength()>0&&o.serializeBinary(1,r,t.BinaryWriter.prototype.writeString,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.Color.serializeBinaryToWriter)},proto.mediapipe.ColorMap.prototype.getLabelToColorMap=function(e){return t.Message.getMapField(this,1,e,proto.mediapipe.Color)},proto.mediapipe.ColorMap.prototype.clearLabelToColorMap=function(){return this.getLabelToColorMap().clear(),this},r.object.extend(e,proto.mediapipe)}(color_pb);var render_data_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=color_pb;r.object.extend(proto,a),r.exportSymbol("proto.mediapipe.RenderAnnotation",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Arrow",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.DataCase",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.FilledOval",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.FilledRectangle",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.FilledRoundedRectangle",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.GradientLine",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Line",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Line.LineType",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Oval",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Point",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Rectangle",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.RoundedRectangle",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Scribble",null,o),r.exportSymbol("proto.mediapipe.RenderAnnotation.Text",null,o),r.exportSymbol("proto.mediapipe.RenderData",null,o),r.exportSymbol("proto.mediapipe.RenderViewport",null,o),proto.mediapipe.RenderData=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.RenderData.repeatedFields_,null)},r.inherits(proto.mediapipe.RenderData,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderData.displayName="proto.mediapipe.RenderData"),proto.mediapipe.RenderAnnotation=function(e){t.Message.initialize(this,e,0,-1,null,proto.mediapipe.RenderAnnotation.oneofGroups_)},r.inherits(proto.mediapipe.RenderAnnotation,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.displayName="proto.mediapipe.RenderAnnotation"),proto.mediapipe.RenderAnnotation.Rectangle=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Rectangle,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Rectangle.displayName="proto.mediapipe.RenderAnnotation.Rectangle"),proto.mediapipe.RenderAnnotation.FilledRectangle=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.FilledRectangle,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.FilledRectangle.displayName="proto.mediapipe.RenderAnnotation.FilledRectangle"),proto.mediapipe.RenderAnnotation.RoundedRectangle=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.RoundedRectangle,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.RoundedRectangle.displayName="proto.mediapipe.RenderAnnotation.RoundedRectangle"),proto.mediapipe.RenderAnnotation.FilledRoundedRectangle=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.FilledRoundedRectangle,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.displayName="proto.mediapipe.RenderAnnotation.FilledRoundedRectangle"),proto.mediapipe.RenderAnnotation.Oval=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Oval,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Oval.displayName="proto.mediapipe.RenderAnnotation.Oval"),proto.mediapipe.RenderAnnotation.FilledOval=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.FilledOval,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.FilledOval.displayName="proto.mediapipe.RenderAnnotation.FilledOval"),proto.mediapipe.RenderAnnotation.Point=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Point,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Point.displayName="proto.mediapipe.RenderAnnotation.Point"),proto.mediapipe.RenderAnnotation.Line=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Line,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Line.displayName="proto.mediapipe.RenderAnnotation.Line"),proto.mediapipe.RenderAnnotation.GradientLine=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.GradientLine,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.GradientLine.displayName="proto.mediapipe.RenderAnnotation.GradientLine"),proto.mediapipe.RenderAnnotation.Scribble=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.RenderAnnotation.Scribble.repeatedFields_,null)},r.inherits(proto.mediapipe.RenderAnnotation.Scribble,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Scribble.displayName="proto.mediapipe.RenderAnnotation.Scribble"),proto.mediapipe.RenderAnnotation.Arrow=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Arrow,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Arrow.displayName="proto.mediapipe.RenderAnnotation.Arrow"),proto.mediapipe.RenderAnnotation.Text=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderAnnotation.Text,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderAnnotation.Text.displayName="proto.mediapipe.RenderAnnotation.Text"),proto.mediapipe.RenderViewport=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.RenderViewport,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.RenderViewport.displayName="proto.mediapipe.RenderViewport"),proto.mediapipe.RenderData.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderData.prototype.toObject=function(e){return proto.mediapipe.RenderData.toObject(e,this)},proto.mediapipe.RenderData.toObject=function(e,r){var o,a={renderAnnotationsList:t.Message.toObjectList(r.getRenderAnnotationsList(),proto.mediapipe.RenderAnnotation.toObject,e),sceneClass:null==(o=t.Message.getField(r,2))?void 0:o,sceneViewport:(o=r.getSceneViewport())&&proto.mediapipe.RenderViewport.toObject(e,o)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderData.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderData;return proto.mediapipe.RenderData.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderData.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation;t.readMessage(r,proto.mediapipe.RenderAnnotation.deserializeBinaryFromReader),e.addRenderAnnotations(r);break;case 2:r=t.readString(),e.setSceneClass(r);break;case 3:r=new proto.mediapipe.RenderViewport,t.readMessage(r,proto.mediapipe.RenderViewport.deserializeBinaryFromReader),e.setSceneViewport(r);break;default:t.skipField()}return e},proto.mediapipe.RenderData.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderData.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderData.serializeBinaryToWriter=function(e,r){var o=void 0;(o=e.getRenderAnnotationsList()).length>0&&r.writeRepeatedMessage(1,o,proto.mediapipe.RenderAnnotation.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=e.getSceneViewport())&&r.writeMessage(3,o,proto.mediapipe.RenderViewport.serializeBinaryToWriter)},proto.mediapipe.RenderData.prototype.getRenderAnnotationsList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.RenderAnnotation,1)},proto.mediapipe.RenderData.prototype.setRenderAnnotationsList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.RenderData.prototype.addRenderAnnotations=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.RenderAnnotation,r)},proto.mediapipe.RenderData.prototype.clearRenderAnnotationsList=function(){return this.setRenderAnnotationsList([])},proto.mediapipe.RenderData.prototype.getSceneClass=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.mediapipe.RenderData.prototype.setSceneClass=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderData.prototype.clearSceneClass=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderData.prototype.hasSceneClass=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderData.prototype.getSceneViewport=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderViewport,3)},proto.mediapipe.RenderData.prototype.setSceneViewport=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.RenderData.prototype.clearSceneViewport=function(){return this.setSceneViewport(void 0)},proto.mediapipe.RenderData.prototype.hasSceneViewport=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.oneofGroups_=[[1,2,3,4,5,6,7,8,9,10,14,15]],proto.mediapipe.RenderAnnotation.DataCase={DATA_NOT_SET:0,RECTANGLE:1,FILLED_RECTANGLE:2,OVAL:3,FILLED_OVAL:4,POINT:5,LINE:6,ARROW:7,TEXT:8,ROUNDED_RECTANGLE:9,FILLED_ROUNDED_RECTANGLE:10,GRADIENT_LINE:14,SCRIBBLE:15},proto.mediapipe.RenderAnnotation.prototype.getDataCase=function(){return t.Message.computeOneofCase(this,proto.mediapipe.RenderAnnotation.oneofGroups_[0])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.toObject(e,this)},proto.mediapipe.RenderAnnotation.toObject=function(e,r){var o,n={rectangle:(o=r.getRectangle())&&proto.mediapipe.RenderAnnotation.Rectangle.toObject(e,o),filledRectangle:(o=r.getFilledRectangle())&&proto.mediapipe.RenderAnnotation.FilledRectangle.toObject(e,o),oval:(o=r.getOval())&&proto.mediapipe.RenderAnnotation.Oval.toObject(e,o),filledOval:(o=r.getFilledOval())&&proto.mediapipe.RenderAnnotation.FilledOval.toObject(e,o),point:(o=r.getPoint())&&proto.mediapipe.RenderAnnotation.Point.toObject(e,o),line:(o=r.getLine())&&proto.mediapipe.RenderAnnotation.Line.toObject(e,o),arrow:(o=r.getArrow())&&proto.mediapipe.RenderAnnotation.Arrow.toObject(e,o),text:(o=r.getText())&&proto.mediapipe.RenderAnnotation.Text.toObject(e,o),roundedRectangle:(o=r.getRoundedRectangle())&&proto.mediapipe.RenderAnnotation.RoundedRectangle.toObject(e,o),filledRoundedRectangle:(o=r.getFilledRoundedRectangle())&&proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.toObject(e,o),gradientLine:(o=r.getGradientLine())&&proto.mediapipe.RenderAnnotation.GradientLine.toObject(e,o),scribble:(o=r.getScribble())&&proto.mediapipe.RenderAnnotation.Scribble.toObject(e,o),thickness:t.Message.getFloatingPointFieldWithDefault(r,11,1),color:(o=r.getColor())&&a.Color.toObject(e,o),sceneTag:null==(o=t.Message.getField(r,13))?void 0:o};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.RenderAnnotation.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation;return proto.mediapipe.RenderAnnotation.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation.Rectangle;t.readMessage(r,proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader),e.setRectangle(r);break;case 2:r=new proto.mediapipe.RenderAnnotation.FilledRectangle,t.readMessage(r,proto.mediapipe.RenderAnnotation.FilledRectangle.deserializeBinaryFromReader),e.setFilledRectangle(r);break;case 3:r=new proto.mediapipe.RenderAnnotation.Oval,t.readMessage(r,proto.mediapipe.RenderAnnotation.Oval.deserializeBinaryFromReader),e.setOval(r);break;case 4:r=new proto.mediapipe.RenderAnnotation.FilledOval,t.readMessage(r,proto.mediapipe.RenderAnnotation.FilledOval.deserializeBinaryFromReader),e.setFilledOval(r);break;case 5:r=new proto.mediapipe.RenderAnnotation.Point,t.readMessage(r,proto.mediapipe.RenderAnnotation.Point.deserializeBinaryFromReader),e.setPoint(r);break;case 6:r=new proto.mediapipe.RenderAnnotation.Line,t.readMessage(r,proto.mediapipe.RenderAnnotation.Line.deserializeBinaryFromReader),e.setLine(r);break;case 7:r=new proto.mediapipe.RenderAnnotation.Arrow,t.readMessage(r,proto.mediapipe.RenderAnnotation.Arrow.deserializeBinaryFromReader),e.setArrow(r);break;case 8:r=new proto.mediapipe.RenderAnnotation.Text,t.readMessage(r,proto.mediapipe.RenderAnnotation.Text.deserializeBinaryFromReader),e.setText(r);break;case 9:r=new proto.mediapipe.RenderAnnotation.RoundedRectangle,t.readMessage(r,proto.mediapipe.RenderAnnotation.RoundedRectangle.deserializeBinaryFromReader),e.setRoundedRectangle(r);break;case 10:r=new proto.mediapipe.RenderAnnotation.FilledRoundedRectangle,t.readMessage(r,proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.deserializeBinaryFromReader),e.setFilledRoundedRectangle(r);break;case 14:r=new proto.mediapipe.RenderAnnotation.GradientLine,t.readMessage(r,proto.mediapipe.RenderAnnotation.GradientLine.deserializeBinaryFromReader),e.setGradientLine(r);break;case 15:r=new proto.mediapipe.RenderAnnotation.Scribble,t.readMessage(r,proto.mediapipe.RenderAnnotation.Scribble.deserializeBinaryFromReader),e.setScribble(r);break;case 11:r=t.readDouble(),e.setThickness(r);break;case 12:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setColor(r);break;case 13:r=t.readString(),e.setSceneTag(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getRectangle())&&r.writeMessage(1,o,proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter),null!=(o=e.getFilledRectangle())&&r.writeMessage(2,o,proto.mediapipe.RenderAnnotation.FilledRectangle.serializeBinaryToWriter),null!=(o=e.getOval())&&r.writeMessage(3,o,proto.mediapipe.RenderAnnotation.Oval.serializeBinaryToWriter),null!=(o=e.getFilledOval())&&r.writeMessage(4,o,proto.mediapipe.RenderAnnotation.FilledOval.serializeBinaryToWriter),null!=(o=e.getPoint())&&r.writeMessage(5,o,proto.mediapipe.RenderAnnotation.Point.serializeBinaryToWriter),null!=(o=e.getLine())&&r.writeMessage(6,o,proto.mediapipe.RenderAnnotation.Line.serializeBinaryToWriter),null!=(o=e.getArrow())&&r.writeMessage(7,o,proto.mediapipe.RenderAnnotation.Arrow.serializeBinaryToWriter),null!=(o=e.getText())&&r.writeMessage(8,o,proto.mediapipe.RenderAnnotation.Text.serializeBinaryToWriter),null!=(o=e.getRoundedRectangle())&&r.writeMessage(9,o,proto.mediapipe.RenderAnnotation.RoundedRectangle.serializeBinaryToWriter),null!=(o=e.getFilledRoundedRectangle())&&r.writeMessage(10,o,proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.serializeBinaryToWriter),null!=(o=e.getGradientLine())&&r.writeMessage(14,o,proto.mediapipe.RenderAnnotation.GradientLine.serializeBinaryToWriter),null!=(o=e.getScribble())&&r.writeMessage(15,o,proto.mediapipe.RenderAnnotation.Scribble.serializeBinaryToWriter),null!=(o=t.Message.getField(e,11))&&r.writeDouble(11,o),null!=(o=e.getColor())&&r.writeMessage(12,o,a.Color.serializeBinaryToWriter),null!=(o=t.Message.getField(e,13))&&r.writeString(13,o)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Rectangle.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Rectangle.toObject(e,this)},proto.mediapipe.RenderAnnotation.Rectangle.toObject=function(e,r){var o,a={left:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,top:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,right:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,bottom:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,normalized:t.Message.getBooleanFieldWithDefault(r,5,!1),rotation:null==(o=t.Message.getOptionalFloatingPointField(r,6))?void 0:o,topLeftThickness:null==(o=t.Message.getOptionalFloatingPointField(r,7))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Rectangle;return proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readDouble();e.setLeft(r);break;case 2:r=t.readDouble(),e.setTop(r);break;case 3:r=t.readDouble(),e.setRight(r);break;case 4:r=t.readDouble(),e.setBottom(r);break;case 5:r=t.readBool(),e.setNormalized(r);break;case 6:r=t.readDouble(),e.setRotation(r);break;case 7:r=t.readDouble(),e.setTopLeftThickness(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.Rectangle.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeDouble(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeDouble(3,o),null!=(o=t.Message.getField(e,4))&&r.writeDouble(4,o),null!=(o=t.Message.getField(e,5))&&r.writeBool(5,o),null!=(o=t.Message.getField(e,6))&&r.writeDouble(6,o),null!=(o=t.Message.getField(e,7))&&r.writeDouble(7,o)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getLeft=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setLeft=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearLeft=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasLeft=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getTop=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setTop=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearTop=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasTop=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getRight=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setRight=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearRight=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasRight=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getBottom=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setBottom=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearBottom=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasBottom=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setNormalized=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearNormalized=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasNormalized=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getRotation=function(){return t.Message.getFloatingPointFieldWithDefault(this,6,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setRotation=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearRotation=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasRotation=function(){return null!=t.Message.getField(this,6)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.getTopLeftThickness=function(){return t.Message.getFloatingPointFieldWithDefault(this,7,0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.setTopLeftThickness=function(e){return t.Message.setField(this,7,e)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.clearTopLeftThickness=function(){return t.Message.setField(this,7,void 0)},proto.mediapipe.RenderAnnotation.Rectangle.prototype.hasTopLeftThickness=function(){return null!=t.Message.getField(this,7)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.FilledRectangle.toObject(e,this)},proto.mediapipe.RenderAnnotation.FilledRectangle.toObject=function(e,t){var r,o={rectangle:(r=t.getRectangle())&&proto.mediapipe.RenderAnnotation.Rectangle.toObject(e,r),fillColor:(r=t.getFillColor())&&a.Color.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.RenderAnnotation.FilledRectangle.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.FilledRectangle;return proto.mediapipe.RenderAnnotation.FilledRectangle.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.FilledRectangle.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation.Rectangle;t.readMessage(r,proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader),e.setRectangle(r);break;case 2:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setFillColor(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.FilledRectangle.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.FilledRectangle.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getRectangle())&&t.writeMessage(1,r,proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter),null!=(r=e.getFillColor())&&t.writeMessage(2,r,a.Color.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.getRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Rectangle,1)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.setRectangle=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.clearRectangle=function(){return this.setRectangle(void 0)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.hasRectangle=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.getFillColor=function(){return t.Message.getWrapperField(this,a.Color,2)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.setFillColor=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.clearFillColor=function(){return this.setFillColor(void 0)},proto.mediapipe.RenderAnnotation.FilledRectangle.prototype.hasFillColor=function(){return null!=t.Message.getField(this,2)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.RoundedRectangle.toObject(e,this)},proto.mediapipe.RenderAnnotation.RoundedRectangle.toObject=function(e,r){var o,a={rectangle:(o=r.getRectangle())&&proto.mediapipe.RenderAnnotation.Rectangle.toObject(e,o),cornerRadius:t.Message.getFieldWithDefault(r,2,0),lineType:t.Message.getFieldWithDefault(r,3,4)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderAnnotation.RoundedRectangle.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.RoundedRectangle;return proto.mediapipe.RenderAnnotation.RoundedRectangle.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.RoundedRectangle.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation.Rectangle;t.readMessage(r,proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader),e.setRectangle(r);break;case 2:r=t.readInt32(),e.setCornerRadius(r);break;case 3:r=t.readInt32(),e.setLineType(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.RoundedRectangle.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.RoundedRectangle.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getRectangle())&&r.writeMessage(1,o,proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.getRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Rectangle,1)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.setRectangle=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.clearRectangle=function(){return this.setRectangle(void 0)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.hasRectangle=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.getCornerRadius=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.setCornerRadius=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.clearCornerRadius=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.hasCornerRadius=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.getLineType=function(){return t.Message.getFieldWithDefault(this,3,4)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.setLineType=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.clearLineType=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.RoundedRectangle.prototype.hasLineType=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.toObject(e,this)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.toObject=function(e,t){var r,o={roundedRectangle:(r=t.getRoundedRectangle())&&proto.mediapipe.RenderAnnotation.RoundedRectangle.toObject(e,r),fillColor:(r=t.getFillColor())&&a.Color.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.FilledRoundedRectangle;return proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation.RoundedRectangle;t.readMessage(r,proto.mediapipe.RenderAnnotation.RoundedRectangle.deserializeBinaryFromReader),e.setRoundedRectangle(r);break;case 2:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setFillColor(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getRoundedRectangle())&&t.writeMessage(1,r,proto.mediapipe.RenderAnnotation.RoundedRectangle.serializeBinaryToWriter),null!=(r=e.getFillColor())&&t.writeMessage(2,r,a.Color.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.getRoundedRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.RoundedRectangle,1)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.setRoundedRectangle=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.clearRoundedRectangle=function(){return this.setRoundedRectangle(void 0)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.hasRoundedRectangle=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.getFillColor=function(){return t.Message.getWrapperField(this,a.Color,2)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.setFillColor=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.clearFillColor=function(){return this.setFillColor(void 0)},proto.mediapipe.RenderAnnotation.FilledRoundedRectangle.prototype.hasFillColor=function(){return null!=t.Message.getField(this,2)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Oval.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Oval.toObject(e,this)},proto.mediapipe.RenderAnnotation.Oval.toObject=function(e,t){var r,o={rectangle:(r=t.getRectangle())&&proto.mediapipe.RenderAnnotation.Rectangle.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.RenderAnnotation.Oval.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Oval;return proto.mediapipe.RenderAnnotation.Oval.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Oval.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.RenderAnnotation.Rectangle;t.readMessage(r,proto.mediapipe.RenderAnnotation.Rectangle.deserializeBinaryFromReader),e.setRectangle(r)}else t.skipField();return e},proto.mediapipe.RenderAnnotation.Oval.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Oval.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Oval.serializeBinaryToWriter=function(e,t){var r;null!=(r=e.getRectangle())&&t.writeMessage(1,r,proto.mediapipe.RenderAnnotation.Rectangle.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.Oval.prototype.getRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Rectangle,1)},proto.mediapipe.RenderAnnotation.Oval.prototype.setRectangle=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.Oval.prototype.clearRectangle=function(){return this.setRectangle(void 0)},proto.mediapipe.RenderAnnotation.Oval.prototype.hasRectangle=function(){return null!=t.Message.getField(this,1)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.FilledOval.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.FilledOval.toObject(e,this)},proto.mediapipe.RenderAnnotation.FilledOval.toObject=function(e,t){var r,o={oval:(r=t.getOval())&&proto.mediapipe.RenderAnnotation.Oval.toObject(e,r),fillColor:(r=t.getFillColor())&&a.Color.toObject(e,r)};return e&&(o.$jspbMessageInstance=t),o}),proto.mediapipe.RenderAnnotation.FilledOval.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.FilledOval;return proto.mediapipe.RenderAnnotation.FilledOval.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.FilledOval.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new proto.mediapipe.RenderAnnotation.Oval;t.readMessage(r,proto.mediapipe.RenderAnnotation.Oval.deserializeBinaryFromReader),e.setOval(r);break;case 2:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setFillColor(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.FilledOval.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.FilledOval.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.FilledOval.serializeBinaryToWriter=function(e,t){var r=void 0;null!=(r=e.getOval())&&t.writeMessage(1,r,proto.mediapipe.RenderAnnotation.Oval.serializeBinaryToWriter),null!=(r=e.getFillColor())&&t.writeMessage(2,r,a.Color.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.getOval=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Oval,1)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.setOval=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.clearOval=function(){return this.setOval(void 0)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.hasOval=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.getFillColor=function(){return t.Message.getWrapperField(this,a.Color,2)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.setFillColor=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.clearFillColor=function(){return this.setFillColor(void 0)},proto.mediapipe.RenderAnnotation.FilledOval.prototype.hasFillColor=function(){return null!=t.Message.getField(this,2)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Point.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Point.toObject(e,this)},proto.mediapipe.RenderAnnotation.Point.toObject=function(e,r){var o,a={x:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,y:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,normalized:t.Message.getBooleanFieldWithDefault(r,3,!1)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderAnnotation.Point.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Point;return proto.mediapipe.RenderAnnotation.Point.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Point.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readDouble();e.setX(r);break;case 2:r=t.readDouble(),e.setY(r);break;case 3:r=t.readBool(),e.setNormalized(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.Point.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Point.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Point.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeDouble(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeBool(3,o)},proto.mediapipe.RenderAnnotation.Point.prototype.getX=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.RenderAnnotation.Point.prototype.setX=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.Point.prototype.clearX=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.Point.prototype.hasX=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.Point.prototype.getY=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.Point.prototype.setY=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.Point.prototype.clearY=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.Point.prototype.hasY=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.Point.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,3,!1)},proto.mediapipe.RenderAnnotation.Point.prototype.setNormalized=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.Point.prototype.clearNormalized=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.Point.prototype.hasNormalized=function(){return null!=t.Message.getField(this,3)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Line.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Line.toObject(e,this)},proto.mediapipe.RenderAnnotation.Line.toObject=function(e,r){var o,a={xStart:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,yStart:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,xEnd:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,yEnd:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,normalized:t.Message.getBooleanFieldWithDefault(r,5,!1),lineType:t.Message.getFieldWithDefault(r,6,1)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderAnnotation.Line.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Line;return proto.mediapipe.RenderAnnotation.Line.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Line.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readDouble();e.setXStart(r);break;case 2:r=t.readDouble(),e.setYStart(r);break;case 3:r=t.readDouble(),e.setXEnd(r);break;case 4:r=t.readDouble(),e.setYEnd(r);break;case 5:r=t.readBool(),e.setNormalized(r);break;case 6:r=t.readEnum(),e.setLineType(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.Line.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Line.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Line.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeDouble(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeDouble(3,o),null!=(o=t.Message.getField(e,4))&&r.writeDouble(4,o),null!=(o=t.Message.getField(e,5))&&r.writeBool(5,o),null!=(o=t.Message.getField(e,6))&&r.writeEnum(6,o)},proto.mediapipe.RenderAnnotation.Line.LineType={UNKNOWN:0,SOLID:1,DASHED:2},proto.mediapipe.RenderAnnotation.Line.prototype.getXStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.RenderAnnotation.Line.prototype.setXStart=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearXStart=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasXStart=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.Line.prototype.getYStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.Line.prototype.setYStart=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearYStart=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasYStart=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.Line.prototype.getXEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.RenderAnnotation.Line.prototype.setXEnd=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearXEnd=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasXEnd=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.Line.prototype.getYEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.RenderAnnotation.Line.prototype.setYEnd=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearYEnd=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasYEnd=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.Line.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.RenderAnnotation.Line.prototype.setNormalized=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearNormalized=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasNormalized=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.RenderAnnotation.Line.prototype.getLineType=function(){return t.Message.getFieldWithDefault(this,6,1)},proto.mediapipe.RenderAnnotation.Line.prototype.setLineType=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.RenderAnnotation.Line.prototype.clearLineType=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.RenderAnnotation.Line.prototype.hasLineType=function(){return null!=t.Message.getField(this,6)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.GradientLine.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.GradientLine.toObject(e,this)},proto.mediapipe.RenderAnnotation.GradientLine.toObject=function(e,r){var o,n={xStart:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,yStart:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,xEnd:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,yEnd:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,normalized:t.Message.getBooleanFieldWithDefault(r,5,!1),color1:(o=r.getColor1())&&a.Color.toObject(e,o),color2:(o=r.getColor2())&&a.Color.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.RenderAnnotation.GradientLine.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.GradientLine;return proto.mediapipe.RenderAnnotation.GradientLine.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.GradientLine.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readDouble();e.setXStart(r);break;case 2:r=t.readDouble(),e.setYStart(r);break;case 3:r=t.readDouble(),e.setXEnd(r);break;case 4:r=t.readDouble(),e.setYEnd(r);break;case 5:r=t.readBool(),e.setNormalized(r);break;case 6:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setColor1(r);break;case 7:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setColor2(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.GradientLine.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.GradientLine.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.GradientLine.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeDouble(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeDouble(3,o),null!=(o=t.Message.getField(e,4))&&r.writeDouble(4,o),null!=(o=t.Message.getField(e,5))&&r.writeBool(5,o),null!=(o=e.getColor1())&&r.writeMessage(6,o,a.Color.serializeBinaryToWriter),null!=(o=e.getColor2())&&r.writeMessage(7,o,a.Color.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getXStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setXStart=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearXStart=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasXStart=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getYStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setYStart=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearYStart=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasYStart=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getXEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setXEnd=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearXEnd=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasXEnd=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getYEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setYEnd=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearYEnd=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasYEnd=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setNormalized=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearNormalized=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasNormalized=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getColor1=function(){return t.Message.getWrapperField(this,a.Color,6)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setColor1=function(e){return t.Message.setWrapperField(this,6,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearColor1=function(){return this.setColor1(void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasColor1=function(){return null!=t.Message.getField(this,6)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.getColor2=function(){return t.Message.getWrapperField(this,a.Color,7)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.setColor2=function(e){return t.Message.setWrapperField(this,7,e)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.clearColor2=function(){return this.setColor2(void 0)},proto.mediapipe.RenderAnnotation.GradientLine.prototype.hasColor2=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.RenderAnnotation.Scribble.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Scribble.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Scribble.toObject(e,this)},proto.mediapipe.RenderAnnotation.Scribble.toObject=function(e,r){var o={pointList:t.Message.toObjectList(r.getPointList(),proto.mediapipe.RenderAnnotation.Point.toObject,e)};return e&&(o.$jspbMessageInstance=r),o}),proto.mediapipe.RenderAnnotation.Scribble.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Scribble;return proto.mediapipe.RenderAnnotation.Scribble.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Scribble.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)if(1===t.getFieldNumber()){var r=new proto.mediapipe.RenderAnnotation.Point;t.readMessage(r,proto.mediapipe.RenderAnnotation.Point.deserializeBinaryFromReader),e.addPoint(r)}else t.skipField();return e},proto.mediapipe.RenderAnnotation.Scribble.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Scribble.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Scribble.serializeBinaryToWriter=function(e,t){var r;(r=e.getPointList()).length>0&&t.writeRepeatedMessage(1,r,proto.mediapipe.RenderAnnotation.Point.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.Scribble.prototype.getPointList=function(){return t.Message.getRepeatedWrapperField(this,proto.mediapipe.RenderAnnotation.Point,1)},proto.mediapipe.RenderAnnotation.Scribble.prototype.setPointList=function(e){return t.Message.setRepeatedWrapperField(this,1,e)},proto.mediapipe.RenderAnnotation.Scribble.prototype.addPoint=function(e,r){return t.Message.addToRepeatedWrapperField(this,1,e,proto.mediapipe.RenderAnnotation.Point,r)},proto.mediapipe.RenderAnnotation.Scribble.prototype.clearPointList=function(){return this.setPointList([])},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Arrow.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Arrow.toObject(e,this)},proto.mediapipe.RenderAnnotation.Arrow.toObject=function(e,r){var o,a={xStart:null==(o=t.Message.getOptionalFloatingPointField(r,1))?void 0:o,yStart:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,xEnd:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,yEnd:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,normalized:t.Message.getBooleanFieldWithDefault(r,5,!1)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderAnnotation.Arrow.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Arrow;return proto.mediapipe.RenderAnnotation.Arrow.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Arrow.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readDouble();e.setXStart(r);break;case 2:r=t.readDouble(),e.setYStart(r);break;case 3:r=t.readDouble(),e.setXEnd(r);break;case 4:r=t.readDouble(),e.setYEnd(r);break;case 5:r=t.readBool(),e.setNormalized(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.Arrow.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Arrow.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Arrow.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeDouble(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeDouble(3,o),null!=(o=t.Message.getField(e,4))&&r.writeDouble(4,o),null!=(o=t.Message.getField(e,5))&&r.writeBool(5,o)},proto.mediapipe.RenderAnnotation.Arrow.prototype.getXStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.setXStart=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.Arrow.prototype.clearXStart=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.hasXStart=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.Arrow.prototype.getYStart=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.setYStart=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.Arrow.prototype.clearYStart=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.hasYStart=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.Arrow.prototype.getXEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.setXEnd=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.Arrow.prototype.clearXEnd=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.hasXEnd=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.Arrow.prototype.getYEnd=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.setYEnd=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderAnnotation.Arrow.prototype.clearYEnd=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.hasYEnd=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.Arrow.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.RenderAnnotation.Arrow.prototype.setNormalized=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.RenderAnnotation.Arrow.prototype.clearNormalized=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.RenderAnnotation.Arrow.prototype.hasNormalized=function(){return null!=t.Message.getField(this,5)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderAnnotation.Text.prototype.toObject=function(e){return proto.mediapipe.RenderAnnotation.Text.toObject(e,this)},proto.mediapipe.RenderAnnotation.Text.toObject=function(e,r){var o,n={displayText:null==(o=t.Message.getField(r,1))?void 0:o,left:null==(o=t.Message.getOptionalFloatingPointField(r,2))?void 0:o,baseline:null==(o=t.Message.getOptionalFloatingPointField(r,3))?void 0:o,fontHeight:t.Message.getFloatingPointFieldWithDefault(r,4,8),normalized:t.Message.getBooleanFieldWithDefault(r,5,!1),fontFace:t.Message.getFieldWithDefault(r,6,0),centerHorizontally:t.Message.getBooleanFieldWithDefault(r,7,!1),centerVertically:t.Message.getBooleanFieldWithDefault(r,8,!1),outlineThickness:t.Message.getFloatingPointFieldWithDefault(r,11,0),outlineColor:(o=r.getOutlineColor())&&a.Color.toObject(e,o)};return e&&(n.$jspbMessageInstance=r),n}),proto.mediapipe.RenderAnnotation.Text.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderAnnotation.Text;return proto.mediapipe.RenderAnnotation.Text.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderAnnotation.Text.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setDisplayText(r);break;case 2:r=t.readDouble(),e.setLeft(r);break;case 3:r=t.readDouble(),e.setBaseline(r);break;case 4:r=t.readDouble(),e.setFontHeight(r);break;case 5:r=t.readBool(),e.setNormalized(r);break;case 6:r=t.readInt32(),e.setFontFace(r);break;case 7:r=t.readBool(),e.setCenterHorizontally(r);break;case 8:r=t.readBool(),e.setCenterVertically(r);break;case 11:r=t.readDouble(),e.setOutlineThickness(r);break;case 12:r=new a.Color,t.readMessage(r,a.Color.deserializeBinaryFromReader),e.setOutlineColor(r);break;default:t.skipField()}return e},proto.mediapipe.RenderAnnotation.Text.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderAnnotation.Text.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderAnnotation.Text.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeDouble(2,o),null!=(o=t.Message.getField(e,3))&&r.writeDouble(3,o),null!=(o=t.Message.getField(e,4))&&r.writeDouble(4,o),null!=(o=t.Message.getField(e,5))&&r.writeBool(5,o),null!=(o=t.Message.getField(e,6))&&r.writeInt32(6,o),null!=(o=t.Message.getField(e,7))&&r.writeBool(7,o),null!=(o=t.Message.getField(e,8))&&r.writeBool(8,o),null!=(o=t.Message.getField(e,11))&&r.writeDouble(11,o),null!=(o=e.getOutlineColor())&&r.writeMessage(12,o,a.Color.serializeBinaryToWriter)},proto.mediapipe.RenderAnnotation.Text.prototype.getDisplayText=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.RenderAnnotation.Text.prototype.setDisplayText=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearDisplayText=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasDisplayText=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.Text.prototype.getLeft=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,0)},proto.mediapipe.RenderAnnotation.Text.prototype.setLeft=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearLeft=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasLeft=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.Text.prototype.getBaseline=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,0)},proto.mediapipe.RenderAnnotation.Text.prototype.setBaseline=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearBaseline=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasBaseline=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.Text.prototype.getFontHeight=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,8)},proto.mediapipe.RenderAnnotation.Text.prototype.setFontHeight=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearFontHeight=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasFontHeight=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.Text.prototype.getNormalized=function(){return t.Message.getBooleanFieldWithDefault(this,5,!1)},proto.mediapipe.RenderAnnotation.Text.prototype.setNormalized=function(e){return t.Message.setField(this,5,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearNormalized=function(){return t.Message.setField(this,5,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasNormalized=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.RenderAnnotation.Text.prototype.getFontFace=function(){return t.Message.getFieldWithDefault(this,6,0)},proto.mediapipe.RenderAnnotation.Text.prototype.setFontFace=function(e){return t.Message.setField(this,6,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearFontFace=function(){return t.Message.setField(this,6,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasFontFace=function(){return null!=t.Message.getField(this,6)},proto.mediapipe.RenderAnnotation.Text.prototype.getCenterHorizontally=function(){return t.Message.getBooleanFieldWithDefault(this,7,!1)},proto.mediapipe.RenderAnnotation.Text.prototype.setCenterHorizontally=function(e){return t.Message.setField(this,7,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearCenterHorizontally=function(){return t.Message.setField(this,7,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasCenterHorizontally=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.RenderAnnotation.Text.prototype.getCenterVertically=function(){return t.Message.getBooleanFieldWithDefault(this,8,!1)},proto.mediapipe.RenderAnnotation.Text.prototype.setCenterVertically=function(e){return t.Message.setField(this,8,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearCenterVertically=function(){return t.Message.setField(this,8,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasCenterVertically=function(){return null!=t.Message.getField(this,8)},proto.mediapipe.RenderAnnotation.Text.prototype.getOutlineThickness=function(){return t.Message.getFloatingPointFieldWithDefault(this,11,0)},proto.mediapipe.RenderAnnotation.Text.prototype.setOutlineThickness=function(e){return t.Message.setField(this,11,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearOutlineThickness=function(){return t.Message.setField(this,11,void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasOutlineThickness=function(){return null!=t.Message.getField(this,11)},proto.mediapipe.RenderAnnotation.Text.prototype.getOutlineColor=function(){return t.Message.getWrapperField(this,a.Color,12)},proto.mediapipe.RenderAnnotation.Text.prototype.setOutlineColor=function(e){return t.Message.setWrapperField(this,12,e)},proto.mediapipe.RenderAnnotation.Text.prototype.clearOutlineColor=function(){return this.setOutlineColor(void 0)},proto.mediapipe.RenderAnnotation.Text.prototype.hasOutlineColor=function(){return null!=t.Message.getField(this,12)},proto.mediapipe.RenderAnnotation.prototype.getRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Rectangle,1)},proto.mediapipe.RenderAnnotation.prototype.setRectangle=function(e){return t.Message.setOneofWrapperField(this,1,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearRectangle=function(){return this.setRectangle(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasRectangle=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderAnnotation.prototype.getFilledRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.FilledRectangle,2)},proto.mediapipe.RenderAnnotation.prototype.setFilledRectangle=function(e){return t.Message.setOneofWrapperField(this,2,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearFilledRectangle=function(){return this.setFilledRectangle(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasFilledRectangle=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderAnnotation.prototype.getOval=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Oval,3)},proto.mediapipe.RenderAnnotation.prototype.setOval=function(e){return t.Message.setOneofWrapperField(this,3,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearOval=function(){return this.setOval(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasOval=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderAnnotation.prototype.getFilledOval=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.FilledOval,4)},proto.mediapipe.RenderAnnotation.prototype.setFilledOval=function(e){return t.Message.setOneofWrapperField(this,4,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearFilledOval=function(){return this.setFilledOval(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasFilledOval=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.RenderAnnotation.prototype.getPoint=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Point,5)},proto.mediapipe.RenderAnnotation.prototype.setPoint=function(e){return t.Message.setOneofWrapperField(this,5,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearPoint=function(){return this.setPoint(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasPoint=function(){return null!=t.Message.getField(this,5)},proto.mediapipe.RenderAnnotation.prototype.getLine=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Line,6)},proto.mediapipe.RenderAnnotation.prototype.setLine=function(e){return t.Message.setOneofWrapperField(this,6,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearLine=function(){return this.setLine(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasLine=function(){return null!=t.Message.getField(this,6)},proto.mediapipe.RenderAnnotation.prototype.getArrow=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Arrow,7)},proto.mediapipe.RenderAnnotation.prototype.setArrow=function(e){return t.Message.setOneofWrapperField(this,7,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearArrow=function(){return this.setArrow(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasArrow=function(){return null!=t.Message.getField(this,7)},proto.mediapipe.RenderAnnotation.prototype.getText=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Text,8)},proto.mediapipe.RenderAnnotation.prototype.setText=function(e){return t.Message.setOneofWrapperField(this,8,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearText=function(){return this.setText(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasText=function(){return null!=t.Message.getField(this,8)},proto.mediapipe.RenderAnnotation.prototype.getRoundedRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.RoundedRectangle,9)},proto.mediapipe.RenderAnnotation.prototype.setRoundedRectangle=function(e){return t.Message.setOneofWrapperField(this,9,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearRoundedRectangle=function(){return this.setRoundedRectangle(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasRoundedRectangle=function(){return null!=t.Message.getField(this,9)},proto.mediapipe.RenderAnnotation.prototype.getFilledRoundedRectangle=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.FilledRoundedRectangle,10)},proto.mediapipe.RenderAnnotation.prototype.setFilledRoundedRectangle=function(e){return t.Message.setOneofWrapperField(this,10,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearFilledRoundedRectangle=function(){return this.setFilledRoundedRectangle(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasFilledRoundedRectangle=function(){return null!=t.Message.getField(this,10)},proto.mediapipe.RenderAnnotation.prototype.getGradientLine=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.GradientLine,14)},proto.mediapipe.RenderAnnotation.prototype.setGradientLine=function(e){return t.Message.setOneofWrapperField(this,14,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearGradientLine=function(){return this.setGradientLine(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasGradientLine=function(){return null!=t.Message.getField(this,14)},proto.mediapipe.RenderAnnotation.prototype.getScribble=function(){return t.Message.getWrapperField(this,proto.mediapipe.RenderAnnotation.Scribble,15)},proto.mediapipe.RenderAnnotation.prototype.setScribble=function(e){return t.Message.setOneofWrapperField(this,15,proto.mediapipe.RenderAnnotation.oneofGroups_[0],e)},proto.mediapipe.RenderAnnotation.prototype.clearScribble=function(){return this.setScribble(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasScribble=function(){return null!=t.Message.getField(this,15)},proto.mediapipe.RenderAnnotation.prototype.getThickness=function(){return t.Message.getFloatingPointFieldWithDefault(this,11,1)},proto.mediapipe.RenderAnnotation.prototype.setThickness=function(e){return t.Message.setField(this,11,e)},proto.mediapipe.RenderAnnotation.prototype.clearThickness=function(){return t.Message.setField(this,11,void 0)},proto.mediapipe.RenderAnnotation.prototype.hasThickness=function(){return null!=t.Message.getField(this,11)},proto.mediapipe.RenderAnnotation.prototype.getColor=function(){return t.Message.getWrapperField(this,a.Color,12)},proto.mediapipe.RenderAnnotation.prototype.setColor=function(e){return t.Message.setWrapperField(this,12,e)},proto.mediapipe.RenderAnnotation.prototype.clearColor=function(){return this.setColor(void 0)},proto.mediapipe.RenderAnnotation.prototype.hasColor=function(){return null!=t.Message.getField(this,12)},proto.mediapipe.RenderAnnotation.prototype.getSceneTag=function(){return t.Message.getFieldWithDefault(this,13,"")},proto.mediapipe.RenderAnnotation.prototype.setSceneTag=function(e){return t.Message.setField(this,13,e)},proto.mediapipe.RenderAnnotation.prototype.clearSceneTag=function(){return t.Message.setField(this,13,void 0)},proto.mediapipe.RenderAnnotation.prototype.hasSceneTag=function(){return null!=t.Message.getField(this,13)},t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.RenderViewport.prototype.toObject=function(e){return proto.mediapipe.RenderViewport.toObject(e,this)},proto.mediapipe.RenderViewport.toObject=function(e,r){var o,a={id:null==(o=t.Message.getField(r,1))?void 0:o,widthPx:null==(o=t.Message.getField(r,2))?void 0:o,heightPx:null==(o=t.Message.getField(r,3))?void 0:o,composeOnVideo:null==(o=t.Message.getBooleanField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.RenderViewport.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.RenderViewport;return proto.mediapipe.RenderViewport.deserializeBinaryFromReader(o,r)},proto.mediapipe.RenderViewport.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=t.readString();e.setId(r);break;case 2:r=t.readInt32(),e.setWidthPx(r);break;case 3:r=t.readInt32(),e.setHeightPx(r);break;case 4:r=t.readBool(),e.setComposeOnVideo(r);break;default:t.skipField()}return e},proto.mediapipe.RenderViewport.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.RenderViewport.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.RenderViewport.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=t.Message.getField(e,1))&&r.writeString(1,o),null!=(o=t.Message.getField(e,2))&&r.writeInt32(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o),null!=(o=t.Message.getField(e,4))&&r.writeBool(4,o)},proto.mediapipe.RenderViewport.prototype.getId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.mediapipe.RenderViewport.prototype.setId=function(e){return t.Message.setField(this,1,e)},proto.mediapipe.RenderViewport.prototype.clearId=function(){return t.Message.setField(this,1,void 0)},proto.mediapipe.RenderViewport.prototype.hasId=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.RenderViewport.prototype.getWidthPx=function(){return t.Message.getFieldWithDefault(this,2,0)},proto.mediapipe.RenderViewport.prototype.setWidthPx=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.RenderViewport.prototype.clearWidthPx=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.RenderViewport.prototype.hasWidthPx=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.RenderViewport.prototype.getHeightPx=function(){return t.Message.getFieldWithDefault(this,3,0)},proto.mediapipe.RenderViewport.prototype.setHeightPx=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.RenderViewport.prototype.clearHeightPx=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.RenderViewport.prototype.hasHeightPx=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.RenderViewport.prototype.getComposeOnVideo=function(){return t.Message.getBooleanFieldWithDefault(this,4,!1)},proto.mediapipe.RenderViewport.prototype.setComposeOnVideo=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.RenderViewport.prototype.clearComposeOnVideo=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.RenderViewport.prototype.hasComposeOnVideo=function(){return null!=t.Message.getField(this,4)},r.object.extend(e,proto.mediapipe)}(render_data_pb);var interactive_segmenter_result={};Object.defineProperty(interactive_segmenter_result,"__esModule",{value:!0}),interactive_segmenter_result.InteractiveSegmenterResult=void 0;class InteractiveSegmenterResult{constructor(e,t,r){this.confidenceMasks=e,this.categoryMask=t,this.qualityScores=r}close(){var e,t;null===(e=this.confidenceMasks)||void 0===e||e.forEach((e=>{e.close()})),null===(t=this.categoryMask)||void 0===t||t.close()}}interactive_segmenter_result.InteractiveSegmenterResult=InteractiveSegmenterResult;var interactive_segmenter_options={};Object.defineProperty(interactive_segmenter_options,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.InteractiveSegmenter=void 0;const o=calculator_pb,a=calculator_options_pb,n=base_options_pb,i=image_segmenter_graph_options_pb,s=segmenter_options_pb,p=vision_task_runner,d=color_pb,l=render_data_pb,c=interactive_segmenter_result;r(interactive_segmenter_options,e),r(interactive_segmenter_result,e);const u="image_in",g="norm_rect_in",m="roi_in",f="confidence_masks",h="category_mask",y="quality_scores";class _ extends p.VisionTaskRunner{static createFromOptions(e,t){return p.VisionTaskRunner.createVisionInstance(_,e,t)}static createFromModelBuffer(e,t){return p.VisionTaskRunner.createVisionInstance(_,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return p.VisionTaskRunner.createVisionInstance(_,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new p.VisionGraphRunner(e,t),u,g,!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.options=new i.ImageSegmenterGraphOptions,this.segmenterOptions=new s.SegmenterOptions,this.options.setSegmenterOptions(this.segmenterOptions),this.options.setBaseOptions(new n.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r;return"outputCategoryMask"in e&&(this.outputCategoryMask=null!==(t=e.outputCategoryMask)&&void 0!==t&&t),"outputConfidenceMasks"in e&&(this.outputConfidenceMasks=null===(r=e.outputConfidenceMasks)||void 0===r||r),super.applyOptions(e)}segment(e,t,r,o){const a="function"!=typeof r?r:{};return this.userCallback="function"==typeof r?r:o,this.reset(),this.processRenderData(t,this.getSynctheticTimestamp()),this.processImageData(e,a),this.processResults()}reset(){this.confidenceMasks=void 0,this.categoryMask=void 0,this.qualityScores=void 0}processResults(){try{const e=new c.InteractiveSegmenterResult(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.userCallback)return e;this.userCallback(e)}finally{this.freeKeepaliveStreams()}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(u),e.addInputStream(m),e.addInputStream(g);const t=new a.CalculatorOptions;t.setExtension(i.ImageSegmenterGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph"),r.addInputStream("IMAGE:"+u),r.addInputStream("ROI:"+m),r.addInputStream("NORM_RECT:"+g),r.setOptions(t),e.addNode(r),this.addKeepaliveNode(e),this.outputConfidenceMasks&&(e.addOutputStream(f),r.addOutputStream("CONFIDENCE_MASKS:"+f),this.keepStreamAlive(f),this.graphRunner.attachImageVectorListener(f,((e,t)=>{this.confidenceMasks=e.map((e=>this.convertToMPMask(e,!this.userCallback))),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(f,(e=>{this.confidenceMasks=[],this.setLatestOutputTimestamp(e)}))),this.outputCategoryMask&&(e.addOutputStream(h),r.addOutputStream("CATEGORY_MASK:"+h),this.keepStreamAlive(h),this.graphRunner.attachImageListener(h,((e,t)=>{this.categoryMask=this.convertToMPMask(e,!this.userCallback),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(h,(e=>{this.categoryMask=void 0,this.setLatestOutputTimestamp(e)}))),e.addOutputStream(y),r.addOutputStream("QUALITY_SCORES:"+y),this.graphRunner.attachFloatVectorListener(y,((e,t)=>{this.qualityScores=e,this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(y,(e=>{this.categoryMask=void 0,this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}processRenderData(e,t){const r=new l.RenderData,o=new l.RenderAnnotation,a=new d.Color;if(a.setR(255),o.setColor(a),e.keypoint&&e.scribble)throw new Error("Cannot provide both keypoint and scribble.");if(e.keypoint){const t=new l.RenderAnnotation.Point;t.setNormalized(!0),t.setX(e.keypoint.x),t.setY(e.keypoint.y),o.setPoint(t)}else{if(!e.scribble)throw new Error("Must provide either a keypoint or a scribble.");{const t=new l.RenderAnnotation.Scribble;for(const r of e.scribble){const e=new l.RenderAnnotation.Point;e.setNormalized(!0),e.setX(r.x),e.setY(r.y),t.addPoint(e)}o.setScribble(t)}}r.addRenderAnnotations(o),this.graphRunner.addProtoToStream(r.serializeBinary(),"drishti.RenderData",m,t)}}e.InteractiveSegmenter=_}(interactive_segmenter);var object_detector={},object_detector_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions",null,o),proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions=function(e){t.Message.initialize(this,e,0,-1,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.repeatedFields_,null)},r.inherits(proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.displayName="proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions"),proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.repeatedFields_=[5,6],t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.toObject(e,this)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),displayNamesLocale:t.Message.getFieldWithDefault(r,2,"en"),maxResults:t.Message.getFieldWithDefault(r,3,-1),scoreThreshold:null==(o=t.Message.getOptionalFloatingPointField(r,4))?void 0:o,categoryAllowlistList:null==(o=t.Message.getRepeatedField(r,5))?void 0:o,categoryDenylistList:null==(o=t.Message.getRepeatedField(r,6))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions;return proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readString(),e.setDisplayNamesLocale(r);break;case 3:r=t.readInt32(),e.setMaxResults(r);break;case 4:r=t.readFloat(),e.setScoreThreshold(r);break;case 5:r=t.readString(),e.addCategoryAllowlist(r);break;case 6:r=t.readString(),e.addCategoryDenylist(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeString(2,o),null!=(o=t.Message.getField(e,3))&&r.writeInt32(3,o),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o),(o=e.getCategoryAllowlistList()).length>0&&r.writeRepeatedString(5,o),(o=e.getCategoryDenylistList()).length>0&&r.writeRepeatedString(6,o)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext=new t.ExtensionFieldInfo(443442058,{ext:0},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.toObject,0),n.CalculatorOptions.extensionsBinary[443442058]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[443442058]=proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getDisplayNamesLocale=function(){return t.Message.getFieldWithDefault(this,2,"en")},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setDisplayNamesLocale=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearDisplayNamesLocale=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.hasDisplayNamesLocale=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getMaxResults=function(){return t.Message.getFieldWithDefault(this,3,-1)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setMaxResults=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearMaxResults=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.hasMaxResults=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getScoreThreshold=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,0)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setScoreThreshold=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearScoreThreshold=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.hasScoreThreshold=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getCategoryAllowlistList=function(){return t.Message.getRepeatedField(this,5)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setCategoryAllowlistList=function(e){return t.Message.setField(this,5,e||[])},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.addCategoryAllowlist=function(e,r){return t.Message.addToRepeatedField(this,5,e,r)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearCategoryAllowlistList=function(){return this.setCategoryAllowlistList([])},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.getCategoryDenylistList=function(){return t.Message.getRepeatedField(this,6)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.setCategoryDenylistList=function(e){return t.Message.setField(this,6,e||[])},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.addCategoryDenylist=function(e,r){return t.Message.addToRepeatedField(this,6,e,r)},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.prototype.clearCategoryDenylistList=function(){return this.setCategoryDenylistList([])},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext=new t.ExtensionFieldInfo(443442058,{ext:0},proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.toObject,0),n.CalculatorOptions.extensionsBinary[443442058]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[443442058]=proto.mediapipe.tasks.vision.object_detector.proto.ObjectDetectorOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.object_detector.proto)}(object_detector_options_pb);var object_detector_options={};Object.defineProperty(object_detector_options,"__esModule",{value:!0});var object_detector_result={};Object.defineProperty(object_detector_result,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectDetector=void 0;const o=calculator_pb,a=calculator_options_pb,n=detection_pb,i=base_options_pb,s=object_detector_options_pb,p=detection_result,d=vision_task_runner,l="input_frame_gpu",c="norm_rect",u="detections";r(object_detector_options,e),r(object_detector_result,e);class g extends d.VisionTaskRunner{static createFromOptions(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,t)}static createFromModelBuffer(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,{baseOptions:{modelAssetBuffer:t}})}static async createFromModelPath(e,t){return d.VisionTaskRunner.createVisionInstance(g,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new d.VisionGraphRunner(e,t),l,c,!1),this.result={detections:[]},this.options=new s.ObjectDetectorOptions,this.options.setBaseOptions(new i.BaseOptions)}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){return void 0!==e.displayNamesLocale?this.options.setDisplayNamesLocale(e.displayNamesLocale):"displayNamesLocale"in e&&this.options.clearDisplayNamesLocale(),void 0!==e.maxResults?this.options.setMaxResults(e.maxResults):"maxResults"in e&&this.options.clearMaxResults(),void 0!==e.scoreThreshold?this.options.setScoreThreshold(e.scoreThreshold):"scoreThreshold"in e&&this.options.clearScoreThreshold(),void 0!==e.categoryAllowlist?this.options.setCategoryAllowlistList(e.categoryAllowlist):"categoryAllowlist"in e&&this.options.clearCategoryAllowlistList(),void 0!==e.categoryDenylist?this.options.setCategoryDenylistList(e.categoryDenylist):"categoryDenylist"in e&&this.options.clearCategoryDenylistList(),this.applyOptions(e)}detect(e,t){return this.result={detections:[]},this.processImageData(e,t),this.result}detectForVideo(e,t,r){return this.result={detections:[]},this.processVideoData(e,r,t),this.result}addJsObjectDetections(e){for(const t of e){const e=n.Detection.deserializeBinary(t);this.result.detections.push((0,p.convertFromDetectionProto)(e))}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(l),e.addInputStream(c),e.addOutputStream(u);const t=new a.CalculatorOptions;t.setExtension(s.ObjectDetectorOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.ObjectDetectorGraph"),r.addInputStream("IMAGE:"+l),r.addInputStream("NORM_RECT:"+c),r.addOutputStream("DETECTIONS:"+u),r.setOptions(t),e.addNode(r),this.graphRunner.attachProtoVectorListener(u,((e,t)=>{this.addJsObjectDetections(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(u,(e=>{this.setLatestOutputTimestamp(e)}));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.ObjectDetector=g}(object_detector);var pose_landmarker={},pose_detector_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5),minSuppressionThreshold:t.Message.getFloatingPointFieldWithDefault(r,3,.5),numPoses:null==(o=t.Message.getField(r,4))?void 0:o};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions;return proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;case 3:r=t.readFloat(),e.setMinSuppressionThreshold(r);break;case 4:r=t.readInt32(),e.setNumPoses(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o),null!=(o=t.Message.getField(e,3))&&r.writeFloat(3,o),null!=(o=t.Message.getField(e,4))&&r.writeInt32(4,o)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext=new t.ExtensionFieldInfo(514774813,{ext:0},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[514774813]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[514774813]=proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.getMinSuppressionThreshold=function(){return t.Message.getFloatingPointFieldWithDefault(this,3,.5)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.setMinSuppressionThreshold=function(e){return t.Message.setField(this,3,e)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.clearMinSuppressionThreshold=function(){return t.Message.setField(this,3,void 0)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.hasMinSuppressionThreshold=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.getNumPoses=function(){return t.Message.getFieldWithDefault(this,4,0)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.setNumPoses=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.clearNumPoses=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.prototype.hasNumPoses=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext=new t.ExtensionFieldInfo(514774813,{ext:0},proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[514774813]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[514774813]=proto.mediapipe.tasks.vision.pose_detector.proto.PoseDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.pose_detector.proto)}(pose_detector_graph_options_pb);var pose_landmarker_graph_options_pb={},pose_landmarks_detector_graph_options_pb={};!function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i),r.exportSymbol("proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions",null,o),proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.displayName="proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),minDetectionConfidence:t.Message.getFloatingPointFieldWithDefault(r,2,.5)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions;return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=t.readFloat(),e.setMinDetectionConfidence(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,2))&&r.writeFloat(2,o)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(518928384,{ext:0},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[518928384]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[518928384]=proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.getMinDetectionConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,2,.5)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.setMinDetectionConfidence=function(e){return t.Message.setField(this,2,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.clearMinDetectionConfidence=function(){return t.Message.setField(this,2,void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.prototype.hasMinDetectionConfidence=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext=new t.ExtensionFieldInfo(518928384,{ext:0},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[518928384]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[518928384]=proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarksDetectorGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.pose_landmarker.proto)}(pose_landmarks_detector_graph_options_pb),function(e){var t=googleProtobuf,r=t,o="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof window&&window||void 0!==o&&o||"undefined"!=typeof self&&self||function(){return this}.call(null)||Function("return this")(),a=calculator_pb;r.object.extend(proto,a);var n=calculator_options_pb;r.object.extend(proto,n);var i=base_options_pb;r.object.extend(proto,i);var s=pose_detector_graph_options_pb;r.object.extend(proto,s);var p=pose_landmarks_detector_graph_options_pb;r.object.extend(proto,p),r.exportSymbol("proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions",null,o),proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions=function(e){t.Message.initialize(this,e,0,-1,null,null)},r.inherits(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions,t.Message),r.DEBUG&&!COMPILED&&(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.displayName="proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions"),t.Message.GENERATE_TO_OBJECT&&(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.toObject=function(e){return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.toObject(e,this)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.toObject=function(e,r){var o,a={baseOptions:(o=r.getBaseOptions())&&i.BaseOptions.toObject(e,o),poseDetectorGraphOptions:(o=r.getPoseDetectorGraphOptions())&&s.PoseDetectorGraphOptions.toObject(e,o),poseLandmarksDetectorGraphOptions:(o=r.getPoseLandmarksDetectorGraphOptions())&&p.PoseLandmarksDetectorGraphOptions.toObject(e,o),minTrackingConfidence:t.Message.getFloatingPointFieldWithDefault(r,4,.5)};return e&&(a.$jspbMessageInstance=r),a}),proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.deserializeBinary=function(e){var r=new t.BinaryReader(e),o=new proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions;return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.deserializeBinaryFromReader(o,r)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.deserializeBinaryFromReader=function(e,t){for(;t.nextField()&&!t.isEndGroup();)switch(t.getFieldNumber()){case 1:var r=new i.BaseOptions;t.readMessage(r,i.BaseOptions.deserializeBinaryFromReader),e.setBaseOptions(r);break;case 2:r=new s.PoseDetectorGraphOptions,t.readMessage(r,s.PoseDetectorGraphOptions.deserializeBinaryFromReader),e.setPoseDetectorGraphOptions(r);break;case 3:r=new p.PoseLandmarksDetectorGraphOptions,t.readMessage(r,p.PoseLandmarksDetectorGraphOptions.deserializeBinaryFromReader),e.setPoseLandmarksDetectorGraphOptions(r);break;case 4:r=t.readFloat(),e.setMinTrackingConfidence(r);break;default:t.skipField()}return e},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.serializeBinary=function(){var e=new t.BinaryWriter;return proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.serializeBinaryToWriter(this,e),e.getResultBuffer()},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.serializeBinaryToWriter=function(e,r){var o=void 0;null!=(o=e.getBaseOptions())&&r.writeMessage(1,o,i.BaseOptions.serializeBinaryToWriter),null!=(o=e.getPoseDetectorGraphOptions())&&r.writeMessage(2,o,s.PoseDetectorGraphOptions.serializeBinaryToWriter),null!=(o=e.getPoseLandmarksDetectorGraphOptions())&&r.writeMessage(3,o,p.PoseLandmarksDetectorGraphOptions.serializeBinaryToWriter),null!=(o=t.Message.getField(e,4))&&r.writeFloat(4,o)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(516587230,{ext:0},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[516587230]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[516587230]=proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.getBaseOptions=function(){return t.Message.getWrapperField(this,i.BaseOptions,1)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.setBaseOptions=function(e){return t.Message.setWrapperField(this,1,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.clearBaseOptions=function(){return this.setBaseOptions(void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.hasBaseOptions=function(){return null!=t.Message.getField(this,1)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.getPoseDetectorGraphOptions=function(){return t.Message.getWrapperField(this,s.PoseDetectorGraphOptions,2)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.setPoseDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,2,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.clearPoseDetectorGraphOptions=function(){return this.setPoseDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.hasPoseDetectorGraphOptions=function(){return null!=t.Message.getField(this,2)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.getPoseLandmarksDetectorGraphOptions=function(){return t.Message.getWrapperField(this,p.PoseLandmarksDetectorGraphOptions,3)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.setPoseLandmarksDetectorGraphOptions=function(e){return t.Message.setWrapperField(this,3,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.clearPoseLandmarksDetectorGraphOptions=function(){return this.setPoseLandmarksDetectorGraphOptions(void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.hasPoseLandmarksDetectorGraphOptions=function(){return null!=t.Message.getField(this,3)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.getMinTrackingConfidence=function(){return t.Message.getFloatingPointFieldWithDefault(this,4,.5)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.setMinTrackingConfidence=function(e){return t.Message.setField(this,4,e)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.clearMinTrackingConfidence=function(){return t.Message.setField(this,4,void 0)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.prototype.hasMinTrackingConfidence=function(){return null!=t.Message.getField(this,4)},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext=new t.ExtensionFieldInfo(516587230,{ext:0},proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.toObject,0),n.CalculatorOptions.extensionsBinary[516587230]=new t.ExtensionFieldBinaryInfo(proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext,t.BinaryReader.prototype.readMessage,t.BinaryWriter.prototype.writeMessage,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.serializeBinaryToWriter,proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.deserializeBinaryFromReader,!1),n.CalculatorOptions.extensions[516587230]=proto.mediapipe.tasks.vision.pose_landmarker.proto.PoseLandmarkerGraphOptions.ext,r.object.extend(e,proto.mediapipe.tasks.vision.pose_landmarker.proto)}(pose_landmarker_graph_options_pb);var pose_landmarker_result={};Object.defineProperty(pose_landmarker_result,"__esModule",{value:!0}),pose_landmarker_result.PoseLandmarkerResult=void 0;class PoseLandmarkerResult{constructor(e,t,r){this.landmarks=e,this.worldLandmarks=t,this.segmentationMasks=r}close(){var e;null===(e=this.segmentationMasks)||void 0===e||e.forEach((e=>{e.close()}))}}pose_landmarker_result.PoseLandmarkerResult=PoseLandmarkerResult;var pose_landmarker_options={};Object.defineProperty(pose_landmarker_options,"__esModule",{value:!0}),function(e){var t=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var a=Object.getOwnPropertyDescriptor(t,r);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,a)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),r=commonjsGlobal&&commonjsGlobal.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||t(r,e,o)};Object.defineProperty(e,"__esModule",{value:!0}),e.PoseLandmarker=void 0;const o=calculator_pb,a=calculator_options_pb,n=landmark_pb,i=base_options_pb,s=pose_detector_graph_options_pb,p=pose_landmarker_graph_options_pb,d=pose_landmarks_detector_graph_options_pb,l=landmark_result,c=vision_task_runner,u=pose_landmarker_result;r(pose_landmarker_options,e),r(pose_landmarker_result,e);const g="image_in",m="norm_rect",f="normalized_landmarks",h="world_landmarks",y="segmentation_masks",_=.5;class b extends c.VisionTaskRunner{static createFromOptions(e,t){return c.VisionTaskRunner.createVisionInstance(b,e,t)}static createFromModelBuffer(e,t){return c.VisionTaskRunner.createVisionInstance(b,e,{baseOptions:{modelAssetBuffer:t}})}static createFromModelPath(e,t){return c.VisionTaskRunner.createVisionInstance(b,e,{baseOptions:{modelAssetPath:t}})}constructor(e,t){super(new c.VisionGraphRunner(e,t),g,m,!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,this.options=new p.PoseLandmarkerGraphOptions,this.options.setBaseOptions(new i.BaseOptions),this.poseLandmarksDetectorGraphOptions=new d.PoseLandmarksDetectorGraphOptions,this.options.setPoseLandmarksDetectorGraphOptions(this.poseLandmarksDetectorGraphOptions),this.poseDetectorGraphOptions=new s.PoseDetectorGraphOptions,this.options.setPoseDetectorGraphOptions(this.poseDetectorGraphOptions),this.initDefaults()}get baseOptions(){return this.options.getBaseOptions()}set baseOptions(e){this.options.setBaseOptions(e)}setOptions(e){var t,r,o,a,n;return"numPoses"in e&&this.poseDetectorGraphOptions.setNumPoses(null!==(t=e.numPoses)&&void 0!==t?t:1),"minPoseDetectionConfidence"in e&&this.poseDetectorGraphOptions.setMinDetectionConfidence(null!==(r=e.minPoseDetectionConfidence)&&void 0!==r?r:_),"minTrackingConfidence"in e&&this.options.setMinTrackingConfidence(null!==(o=e.minTrackingConfidence)&&void 0!==o?o:_),"minPosePresenceConfidence"in e&&this.poseLandmarksDetectorGraphOptions.setMinDetectionConfidence(null!==(a=e.minPosePresenceConfidence)&&void 0!==a?a:_),"outputSegmentationMasks"in e&&(this.outputSegmentationMasks=null!==(n=e.outputSegmentationMasks)&&void 0!==n&&n),this.applyOptions(e)}detect(e,t,r){const o="function"!=typeof t?t:{};return this.userCallback="function"==typeof t?t:r,this.resetResults(),this.processImageData(e,o),this.processResults()}detectForVideo(e,t,r,o){const a="function"!=typeof r?r:{};return this.userCallback="function"==typeof r?r:o,this.resetResults(),this.processVideoData(e,a,t),this.processResults()}resetResults(){this.landmarks=[],this.worldLandmarks=[],this.segmentationMasks=void 0}processResults(){try{const e=new u.PoseLandmarkerResult(this.landmarks,this.worldLandmarks,this.segmentationMasks);if(!this.userCallback)return e;this.userCallback(e)}finally{this.freeKeepaliveStreams()}}initDefaults(){this.poseDetectorGraphOptions.setNumPoses(1),this.poseDetectorGraphOptions.setMinDetectionConfidence(_),this.poseLandmarksDetectorGraphOptions.setMinDetectionConfidence(_),this.options.setMinTrackingConfidence(_)}addJsLandmarks(e){this.landmarks=[];for(const t of e){const e=n.NormalizedLandmarkList.deserializeBinary(t);this.landmarks.push((0,l.convertToLandmarks)(e))}}adddJsWorldLandmarks(e){this.worldLandmarks=[];for(const t of e){const e=n.LandmarkList.deserializeBinary(t);this.worldLandmarks.push((0,l.convertToWorldLandmarks)(e))}}refreshGraph(){const e=new o.CalculatorGraphConfig;e.addInputStream(g),e.addInputStream(m),e.addOutputStream(f),e.addOutputStream(h),e.addOutputStream(y);const t=new a.CalculatorOptions;t.setExtension(p.PoseLandmarkerGraphOptions.ext,this.options);const r=new o.CalculatorGraphConfig.Node;r.setCalculator("mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph"),r.addInputStream("IMAGE:"+g),r.addInputStream("NORM_RECT:"+m),r.addOutputStream("NORM_LANDMARKS:"+f),r.addOutputStream("WORLD_LANDMARKS:"+h),r.setOptions(t),e.addNode(r),this.addKeepaliveNode(e),this.graphRunner.attachProtoVectorListener(f,((e,t)=>{this.addJsLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(f,(e=>{this.landmarks=[],this.setLatestOutputTimestamp(e)})),this.graphRunner.attachProtoVectorListener(h,((e,t)=>{this.adddJsWorldLandmarks(e),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(h,(e=>{this.worldLandmarks=[],this.setLatestOutputTimestamp(e)})),this.outputSegmentationMasks&&(r.addOutputStream("SEGMENTATION_MASK:"+y),this.keepStreamAlive(y),this.graphRunner.attachImageVectorListener(y,((e,t)=>{this.segmentationMasks=e.map((e=>this.convertToMPMask(e,!this.userCallback))),this.setLatestOutputTimestamp(t)})),this.graphRunner.attachEmptyPacketListener(y,(e=>{this.segmentationMasks=[],this.setLatestOutputTimestamp(e)})));const n=e.serializeBinary();this.setGraph(new Uint8Array(n),!0)}}e.PoseLandmarker=b,b.POSE_CONNECTIONS=[{start:0,end:1},{start:1,end:2},{start:2,end:3},{start:3,end:7},{start:0,end:4},{start:4,end:5},{start:5,end:6},{start:6,end:8},{start:9,end:10},{start:11,end:12},{start:11,end:13},{start:13,end:15},{start:15,end:17},{start:15,end:19},{start:15,end:21},{start:17,end:19},{start:12,end:14},{start:14,end:16},{start:16,end:18},{start:16,end:20},{start:16,end:22},{start:18,end:20},{start:11,end:23},{start:12,end:24},{start:23,end:24},{start:23,end:25},{start:24,end:26},{start:25,end:27},{start:26,end:28},{start:27,end:29},{start:28,end:30},{start:29,end:31},{start:30,end:32},{start:27,end:31},{start:28,end:32}]}(pose_landmarker),Object.defineProperty(vision,"__esModule",{value:!0}),vision.PoseLandmarker=vision.ObjectDetector=vision.InteractiveSegmenter=vision.ImageSegmenter=vision.ImageEmbedder=vision.ImageClassifier=vision.HandLandmarker=vision.GestureRecognizer=vision.FaceStylizer=FaceLandmarker_1=vision.FaceLandmarker=vision.FaceDetector=vision.MPMask=vision.MPImage=FilesetResolver_1=vision.FilesetResolver=vision.DrawingUtils=void 0;const fileset_resolver_1=fileset_resolver,drawing_utils_1=drawing_utils,image_1=image,mask_1=mask,face_detector_1=face_detector,face_landmarker_1=face_landmarker,face_stylizer_1=face_stylizer,gesture_recognizer_1=gesture_recognizer,hand_landmarker_1=hand_landmarker,image_classifier_1=image_classifier,image_embedder_1=image_embedder,image_segmenter_1=image_segmenter,interactive_segmenter_1=interactive_segmenter,object_detector_1=object_detector,pose_landmarker_1=pose_landmarker,DrawingUtils=drawing_utils_1.DrawingUtils;vision.DrawingUtils=DrawingUtils;const FilesetResolver=fileset_resolver_1.FilesetResolver;var FilesetResolver_1=vision.FilesetResolver=FilesetResolver;const MPImage=image_1.MPImage;vision.MPImage=MPImage;const MPMask=mask_1.MPMask;vision.MPMask=MPMask;const FaceDetector=face_detector_1.FaceDetector;vision.FaceDetector=FaceDetector;const FaceLandmarker$1=face_landmarker_1.FaceLandmarker;var FaceLandmarker_1=vision.FaceLandmarker=FaceLandmarker$1;const FaceStylizer=face_stylizer_1.FaceStylizer;vision.FaceStylizer=FaceStylizer;const GestureRecognizer=gesture_recognizer_1.GestureRecognizer;vision.GestureRecognizer=GestureRecognizer;const HandLandmarker=hand_landmarker_1.HandLandmarker;vision.HandLandmarker=HandLandmarker;const ImageClassifier=image_classifier_1.ImageClassifier;vision.ImageClassifier=ImageClassifier;const ImageEmbedder=image_embedder_1.ImageEmbedder;vision.ImageEmbedder=ImageEmbedder;const ImageSegmenter=image_segmenter_1.ImageSegmenter;vision.ImageSegmenter=ImageSegmenter;const InteractiveSegmenter=interactive_segmenter_1.InteractiveSegmenter;vision.InteractiveSegmenter=InteractiveSegmenter;const ObjectDetector=object_detector_1.ObjectDetector;vision.ObjectDetector=ObjectDetector;const PoseLandmarker=pose_landmarker_1.PoseLandmarker;vision.PoseLandmarker=PoseLandmarker;const FaceLandmarkerContext=React.createContext({}),FaceLandmarkerDefaults={basePath:"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.0/wasm",options:{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task",delegate:"GPU"},runningMode:"VIDEO",outputFaceBlendshapes:!0,outputFacialTransformationMatrixes:!0}};function FaceLandmarker({basePath:e=FaceLandmarkerDefaults.basePath,options:t=FaceLandmarkerDefaults.options,children:r}){const o=JSON.stringify(t),a=suspendReact.suspend((async()=>await FilesetResolver_1.forVisionTasks(e).then((e=>FaceLandmarker_1.createFromOptions(e,t)))),[e,o]);return React.useEffect((()=>()=>{null==a||a.close(),suspendReact.clear([e,o])}),[a,e,o]),React__namespace.createElement(FaceLandmarkerContext.Provider,{value:a},r)}function useFaceLandmarker(){return React.useContext(FaceLandmarkerContext)}function mean(e,t){return e.clone().add(t).multiplyScalar(.5)}function localToLocal(e,t,r){const o=e.localToWorld(t);return r.worldToLocal(o)}const FaceControlsContext=React.createContext({}),FaceControls=React.forwardRef((({camera:e,autostart:t=!0,webcam:r=!0,webcamVideoTextureSrc:o,manualUpdate:a=!1,manualDetect:n=!1,onVideoFrame:i,smoothTime:s=.25,offset:p=!0,offsetScalar:d=80,eyes:l=!1,eyesAsOrigin:c=!0,depth:u=.15,debug:g=!1,facemesh:m,makeDefault:f},h)=>{var y,_;const b=FIBER.useThree((e=>e.scene)),R=FIBER.useThree((e=>e.camera)),v=FIBER.useThree((e=>e.set)),E=FIBER.useThree((e=>e.get)),M=e||R,O=React.useRef(null),F=React.useRef(null),[x]=React.useState((()=>new THREE__namespace.Object3D)),[T]=React.useState((()=>new THREE__namespace.Vector3)),[S]=React.useState((()=>new THREE__namespace.Vector3)),[k]=React.useState((()=>new THREE__namespace.Vector3)),[C]=React.useState((()=>new THREE__namespace.Vector3)),B=React.useCallback((()=>{x.parent=M.parent;const e=F.current;if(e){const{outerRef:t,eyeRightRef:r,eyeLeftRef:o}=e;if(r.current&&o.current){const{irisDirRef:e}=r.current,{irisDirRef:a}=o.current;e.current&&a.current&&t.current&&(T.copy(localToLocal(e.current,new THREE__namespace.Vector3(0,0,0),t.current)),S.copy(localToLocal(a.current,new THREE__namespace.Vector3(0,0,0),t.current)),x.position.copy(localToLocal(t.current,mean(T,S),M.parent||b)),k.copy(localToLocal(e.current,new THREE__namespace.Vector3(0,0,1),t.current)),C.copy(localToLocal(a.current,new THREE__namespace.Vector3(0,0,1),t.current)),x.lookAt(t.current.localToWorld(mean(k,C))))}else t.current&&(x.position.copy(localToLocal(t.current,new THREE__namespace.Vector3(0,0,0),M.parent||b)),x.lookAt(t.current.localToWorld(new THREE__namespace.Vector3(0,0,1))))}return x}),[M,S,C,T,k,b,x]),[w]=React.useState((()=>new THREE__namespace.Object3D)),L=React.useCallback((function(e,t){if(M){var r;if(null!==(r=t)&&void 0!==r||(t=B()),s>0){const r=1e-9;maath.easing.damp3(w.position,t.position,s,e,void 0,void 0,r),maath.easing.dampE(w.rotation,t.rotation,s,e,void 0,void 0,r)}else w.position.copy(t.position),w.rotation.copy(t.rotation);M.position.copy(w.position),M.rotation.copy(w.rotation)}}),[M,B,s,w.position,w.rotation]),[A,D]=React.useState(),I=useFaceLandmarker(),z=React.useCallback(((e,t)=>{const r=null==I?void 0:I.detectForVideo(e,t);D(r)}),[I]);FIBER.useFrame(((e,t)=>{a||L(t)}));const P=React.useMemo((()=>Object.assign(Object.create(THREE__namespace.EventDispatcher.prototype),{detect:z,computeTarget:B,update:L,facemeshApiRef:F,webcamApiRef:O,play:()=>{var e,t;null==(e=O.current)||null==(t=e.videoTextureApiRef.current)||t.texture.source.data.play()},pause:()=>{var e,t;null==(e=O.current)||null==(t=e.videoTextureApiRef.current)||t.texture.source.data.pause()}})),[z,B,L]);React.useImperativeHandle(h,(()=>P),[P]),React.useEffect((()=>{const e=e=>{n||z(e.texture.source.data,e.time),i&&i(e)};return P.addEventListener("videoFrame",e),()=>{P.removeEventListener("videoFrame",e)}}),[P,z,I,n,i]),React.useEffect((()=>{if(f){const e=E().controls;return v({controls:P}),()=>v({controls:e})}}),[f,P,E,v]);const j=null==A?void 0:A.faceLandmarks[0],G=null==A||null==(y=A.facialTransformationMatrixes)?void 0:y[0],N=null==A||null==(_=A.faceBlendshapes)?void 0:_[0];return React__namespace.createElement(FaceControlsContext.Provider,{value:P},r&&React__namespace.createElement(React.Suspense,{fallback:null},React__namespace.createElement(Webcam,{ref:O,autostart:t,videoTextureSrc:o})),React__namespace.createElement(Facemesh,_extends__default.default({ref:F},m,{points:j,depth:u,facialTransformationMatrix:G,faceBlendshapes:N,eyes:l,eyesAsOrigin:c,offset:p,offsetScalar:d,debug:g,"rotation-z":Math.PI,visible:g}),React__namespace.createElement("meshBasicMaterial",{side:THREE__namespace.DoubleSide})))})),useFaceControls=()=>React.useContext(FaceControlsContext),Webcam=React.forwardRef((({videoTextureSrc:e,autostart:t=!0},r)=>{const o=React.useRef(null),a=useFaceControls(),n=suspendReact.suspend((async()=>e?Promise.resolve(null):await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:"user"}})),[e]);React.useEffect((()=>(a.dispatchEvent({type:"stream",stream:n}),()=>{null==n||n.getTracks().forEach((e=>e.stop())),suspendReact.clear([e])})),[n,a,e]);const i=React.useMemo((()=>({videoTextureApiRef:o})),[]);return React.useImperativeHandle(r,(()=>i),[i]),React__namespace.createElement(React.Suspense,{fallback:null},React__namespace.createElement(VideoTexture,{ref:o,src:e||n,start:t}))})),VideoTexture=React.forwardRef((({src:e,start:t},r)=>{const o=useVideoTexture(e,{start:t}),a=o.source.data,n=useFaceControls(),i=React.useCallback((e=>{n.dispatchEvent({type:"videoFrame",texture:o,time:e})}),[o,n]);useVideoFrame(a,i);const s=React.useMemo((()=>({texture:o})),[o]);return React.useImperativeHandle(r,(()=>s),[s]),React__namespace.createElement(React__namespace.Fragment,null)})),useVideoFrame=(e,t)=>{React.useEffect((()=>{if(!e||!e.requestVideoFrameCallback)return;let r;return e.requestVideoFrameCallback((function o(...a){t(...a),r=e.requestVideoFrameCallback(o)})),()=>e.cancelVideoFrameCallback(r)}),[e,t])};function RenderHud({defaultScene:e,defaultCamera:t,renderPriority:r=1}){const{gl:o,scene:a,camera:n}=FIBER.useThree();let i;return FIBER.useFrame((()=>{i=o.autoClear,1===r&&(o.autoClear=!0,o.render(e,t)),o.autoClear=!1,o.clearDepth(),o.render(a,n),o.autoClear=i}),r),React__namespace.createElement("group",{onPointerOver:()=>null})}function Hud({children:e,renderPriority:t=1}){const{scene:r,camera:o}=FIBER.useThree(),[a]=React__namespace.useState((()=>new THREE__namespace.Scene));return React__namespace.createElement(React__namespace.Fragment,null,FIBER.createPortal(React__namespace.createElement(React__namespace.Fragment,null,e,React__namespace.createElement(RenderHud,{defaultScene:r,defaultCamera:o,renderPriority:t})),a,{events:{priority:t+1}}))}const Context=React__namespace.createContext({}),useGizmoContext=()=>React__namespace.useContext(Context),turnRate=2*Math.PI,dummy=new THREE.Object3D,matrix=new THREE.Matrix4,[q1,q2]=[new THREE.Quaternion,new THREE.Quaternion],target=new THREE.Vector3,targetPosition=new THREE.Vector3,isOrbitControls=e=>"minPolarAngle"in e,GizmoHelper=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:r=1,onUpdate:o,onTarget:a,children:n})=>{const i=FIBER.useThree((e=>e.size)),s=FIBER.useThree((e=>e.camera)),p=FIBER.useThree((e=>e.controls)),d=FIBER.useThree((e=>e.invalidate)),l=React__namespace.useRef(),c=React__namespace.useRef(null),u=React__namespace.useRef(!1),g=React__namespace.useRef(0),m=React__namespace.useRef(new THREE.Vector3(0,0,0)),f=React__namespace.useRef(new THREE.Vector3(0,0,0));React__namespace.useEffect((()=>{f.current.copy(s.up)}),[s]);const h=React__namespace.useCallback((e=>{u.current=!0,(p||a)&&(m.current=(null==p?void 0:p.target)||(null==a?void 0:a())),g.current=s.position.distanceTo(target),q1.copy(s.quaternion),targetPosition.copy(e).multiplyScalar(g.current).add(target),dummy.lookAt(targetPosition),dummy.up.copy(s.up),q2.copy(dummy.quaternion),d()}),[p,s,a,d]);FIBER.useFrame(((e,t)=>{if(c.current&&l.current){var r;if(u.current)if(q1.angleTo(q2)<.01)u.current=!1,isOrbitControls(p)&&s.up.copy(f.current);else{const e=t*turnRate;q1.rotateTowards(q2,e),s.position.set(0,0,1).applyQuaternion(q1).multiplyScalar(g.current).add(m.current),s.up.set(0,1,0).applyQuaternion(q1).normalize(),s.quaternion.copy(q1),o?o():p&&p.update(),d()}matrix.copy(s.matrix).invert(),null==(r=l.current)||r.quaternion.setFromRotationMatrix(matrix)}}));const y=React__namespace.useMemo((()=>({tweenCamera:h})),[h]),[_,b]=t,R=e.endsWith("-center")?0:e.endsWith("-left")?-i.width/2+_:i.width/2-_,v=e.startsWith("center-")?0:e.startsWith("top-")?i.height/2-b:-i.height/2+b;return React__namespace.createElement(Hud,{renderPriority:r},React__namespace.createElement(Context.Provider,{value:y},React__namespace.createElement(OrthographicCamera,{makeDefault:!0,ref:c,position:[0,0,200]}),React__namespace.createElement("group",{ref:l,position:[R,v,0]},n)))},colors={bg:"#f0f0f0",hover:"#999",text:"black",stroke:"black"},defaultFaces=["Right","Left","Top","Bottom","Front","Back"],makePositionVector=e=>new THREE.Vector3(...e).multiplyScalar(.38),corners=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(makePositionVector),cornerDimensions=[.25,.25,.25],edges=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(makePositionVector),edgeDimensions=edges.map((e=>e.toArray().map((e=>0==e?.5:.25)))),FaceMaterial=({hover:e,index:t,font:r="20px Inter var, Arial, sans-serif",faces:o=defaultFaces,color:a=colors.bg,hoverColor:n=colors.hover,textColor:i=colors.text,strokeColor:s=colors.stroke,opacity:p=1})=>{const d=FIBER.useThree((e=>e.gl)),l=React__namespace.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const n=e.getContext("2d");return n.fillStyle=a,n.fillRect(0,0,e.width,e.height),n.strokeStyle=s,n.strokeRect(0,0,e.width,e.height),n.font=r,n.textAlign="center",n.fillStyle=i,n.fillText(o[t].toUpperCase(),64,76),new THREE.CanvasTexture(e)}),[t,o,r,a,i,s]);return React__namespace.createElement("meshLambertMaterial",{map:l,"map-anisotropy":d.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?n:"white",transparent:!0,opacity:p})},FaceCube=e=>{const{tweenCamera:t}=useGizmoContext(),[r,o]=React__namespace.useState(null);return React__namespace.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),o(null)},onPointerMove:e=>{e.stopPropagation(),o(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,o)=>React__namespace.createElement(FaceMaterial,_extends__default.default({key:o,index:o,hover:r===o},e)))),React__namespace.createElement("boxGeometry",null))},EdgeCube=({onClick:e,dimensions:t,position:r,hoverColor:o=colors.hover})=>{const{tweenCamera:a}=useGizmoContext(),[n,i]=React__namespace.useState(!1);return React__namespace.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),i(!0)},onPointerOut:e=>{e.stopPropagation(),i(!1)},onClick:e||(e=>{e.stopPropagation(),a(r)})},React__namespace.createElement("meshBasicMaterial",{color:n?o:"white",transparent:!0,opacity:.6,visible:n}),React__namespace.createElement("boxGeometry",{args:t}))},GizmoViewcube=e=>React__namespace.createElement("group",{scale:[60,60,60]},React__namespace.createElement(FaceCube,e),edges.map(((t,r)=>React__namespace.createElement(EdgeCube,_extends__default.default({key:r,position:t,dimensions:edgeDimensions[r]},e)))),corners.map(((t,r)=>React__namespace.createElement(EdgeCube,_extends__default.default({key:r,position:t,dimensions:cornerDimensions},e)))),React__namespace.createElement("ambientLight",{intensity:.5}),React__namespace.createElement("pointLight",{position:[10,10,10],intensity:.5}));function Axis({scale:e=[.8,.05,.05],color:t,rotation:r}){return React__namespace.createElement("group",{rotation:r},React__namespace.createElement("mesh",{position:[.4,0,0]},React__namespace.createElement("boxGeometry",{args:e}),React__namespace.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function AxisHead({onClick:e,font:t,disabled:r,arcStyle:o,label:a,labelColor:n,axisHeadScale:i=1,...s}){const p=FIBER.useThree((e=>e.gl)),d=React__namespace.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=o,r.fill(),a&&(r.font=t,r.textAlign="center",r.fillStyle=n,r.fillText(a,32,41)),new THREE.CanvasTexture(e)}),[o,a,n,t]),[l,c]=React__namespace.useState(!1),u=(a?1:.75)*(l?1.2:1)*i;return React__namespace.createElement("sprite",_extends__default.default({scale:u,onPointerOver:r?void 0:e=>{e.stopPropagation(),c(!0)},onPointerOut:r?void 0:e||(e=>{e.stopPropagation(),c(!1)})},s),React__namespace.createElement("spriteMaterial",{map:d,"map-anisotropy":p.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:a?1:.75,toneMapped:!1}))}const GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:o="18px Inter var, Arial, sans-serif",axisColors:a=["#ff2060","#20df80","#2080ff"],axisHeadScale:n=1,axisScale:i,labels:s=["X","Y","Z"],labelColor:p="#000",onClick:d,...l})=>{const[c,u,g]=a,{tweenCamera:m}=useGizmoContext(),f={font:o,disabled:r,labelColor:p,onClick:d,axisHeadScale:n,onPointerDown:r?void 0:e=>{m(e.object.position),e.stopPropagation()}};return React__namespace.createElement("group",_extends__default.default({scale:40},l),React__namespace.createElement(Axis,{color:c,rotation:[0,0,0],scale:i}),React__namespace.createElement(Axis,{color:u,rotation:[0,0,Math.PI/2],scale:i}),React__namespace.createElement(Axis,{color:g,rotation:[0,-Math.PI/2,0],scale:i}),!t&&React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:c,position:[1,0,0],label:s[0]},f)),React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:u,position:[0,1,0],label:s[1]},f)),React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:g,position:[0,0,1],label:s[2]},f)),!e&&React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:c,position:[-1,0,0]},f)),React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:u,position:[0,-1,0]},f)),React__namespace.createElement(AxisHead,_extends__default.default({arcStyle:g,position:[0,0,-1]},f)))),React__namespace.createElement("ambientLight",{intensity:.5}),React__namespace.createElement("pointLight",{position:[10,10,10],intensity:.5}))},GridMaterial=shaderMaterial({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,cellThickness:.5,sectionThickness:1,cellColor:new THREE__namespace.Color,sectionColor:new THREE__namespace.Color,infiniteGrid:!1,followCamera:!1},"\n varying vec3 worldPosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n worldPosition = position.xzy;\n if (infiniteGrid) worldPosition *= 1.0 + fadeDistance;\n if (followCamera) worldPosition.xz +=cameraPosition.xz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4(worldPosition, 1.0);\n }\n ","\n varying vec3 worldPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = worldPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1. - thickness;\n return 1.0 - min(line, 1.);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n float d = 1.0 - min(distance(cameraPosition.xz, worldPosition.xz) / fadeDistance, 1.);\n vec3 color = mix(cellColor, sectionColor, min(1.,sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d,fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }\n "),Grid=React__namespace.forwardRef((({args:e,cellColor:t="#000000",sectionColor:r="#2080ff",cellSize:o=.5,sectionSize:a=1,followCamera:n=!1,infiniteGrid:i=!1,fadeDistance:s=100,fadeStrength:p=1,cellThickness:d=.5,sectionThickness:l=1,side:c=THREE__namespace.BackSide,...u},g)=>{FIBER.extend({GridMaterial:GridMaterial});const m={cellSize:o,sectionSize:a,cellColor:t,sectionColor:r,cellThickness:d,sectionThickness:l},f={fadeDistance:s,fadeStrength:p,infiniteGrid:i,followCamera:n};return React__namespace.createElement("mesh",_extends__default.default({ref:g,frustumCulled:!1},u),React__namespace.createElement("gridMaterial",_extends__default.default({transparent:!0,"extensions-derivatives":!0,side:c},m,f)),React__namespace.createElement("planeGeometry",{args:e}))}));function useCubeTexture(e,{path:t}){const[r]=FIBER.useLoader(THREE.CubeTextureLoader,[e],(e=>e.setPath(t)));return r}function useFBX(e){return FIBER.useLoader(threeStdlib.FBXLoader,e)}useCubeTexture.preload=(e,{path:t})=>FIBER.useLoader.preload(THREE.CubeTextureLoader,[e],(e=>e.setPath(t))),useFBX.preload=e=>FIBER.useLoader.preload(threeStdlib.FBXLoader,e),useFBX.clear=e=>FIBER.useLoader.clear(threeStdlib.FBXLoader,e);const cdn="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master";function useKTX2(e,t=`${cdn}/basis/`){const r=FIBER.useThree((e=>e.gl)),o=FIBER.useLoader(threeStdlib.KTX2Loader,IsObject(e)?Object.values(e):e,(e=>{e.detectSupport(r),e.setTranscoderPath(t)}));if(React.useEffect((()=>{(Array.isArray(o)?o:[o]).forEach(r.initTexture)}),[r,o]),IsObject(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:o[t.indexOf(e)]}))),r}return o}function call(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}function useEffectfulState(e,t=[],r){const[o,a]=React__namespace.useState();return React__namespace.useLayoutEffect((()=>{const t=e();return a(t),call(r,t),()=>call(r,null)}),t),o}function Stats({showPanel:e=0,className:t,parent:r}){const o=useEffectfulState((()=>new StatsImpl__default.default),[]);return React__namespace.useEffect((()=>{if(o){const a=r&&r.current||document.body;o.showPanel(e),null==a||a.appendChild(o.dom),t&&o.dom.classList.add(...t.split(" ").filter((e=>e)));const n=FIBER.addEffect((()=>o.begin())),i=FIBER.addAfterEffect((()=>o.end()));return()=>{null==a||a.removeChild(o.dom),n(),i()}}}),[r,o,t,e]),null}function useDepthBuffer({size:e=256,frames:t=1/0}={}){const r=FIBER.useThree((e=>e.viewport.dpr)),{width:o,height:a}=FIBER.useThree((e=>e.size)),n=e||o*r,i=e||a*r,s=React__namespace.useMemo((()=>{const e=new THREE.DepthTexture(n,i);return e.format=THREE.DepthFormat,e.type=THREE.UnsignedShortType,{depthTexture:e}}),[n,i]);let p=0;const d=useFBO(n,i,s);return FIBER.useFrame((e=>{(t===1/0||p<t)&&(e.gl.setRenderTarget(d),e.gl.render(e.scene,e.camera),e.gl.setRenderTarget(null),p++)})),d.depthTexture}function useAspect(e,t,r=1){const o=FIBER.useThree((e=>e.viewport)),a=t*(o.aspect>e/t?o.width/e:o.height/t);return[e*(o.aspect>e/t?o.width/e:o.height/t)*r,a*r,1]}function useCamera(e,t){const r=FIBER.useThree((e=>e.pointer)),[o]=React__namespace.useState((()=>{const o=new THREE.Raycaster;return t&&FIBER.applyProps(o,t,{}),function(t,a){o.setFromCamera(r,e instanceof THREE.Camera?e:e.current);const n=this.constructor.prototype.raycast.bind(this);n&&n(o,a)}}));return o}useKTX2.preload=(e,t=`${cdn}/basis/`)=>FIBER.useLoader.preload(threeStdlib.KTX2Loader,e,(e=>{e.setTranscoderPath(t)})),useKTX2.clear=e=>FIBER.useLoader.clear(threeStdlib.KTX2Loader,e);const useDetectGPU=e=>suspendReact.suspend((()=>detectGpu.getGPUTier(e)),["useDetectGPU"]);function useHelper(e,t,...r){const o=React__namespace.useRef(),a=FIBER.useThree((e=>e.scene));return React__namespace.useLayoutEffect((()=>{let n;if(e&&null!=e&&e.current&&t&&(o.current=n=new t(e.current,...r)),n)return a.add(n),()=>{o.current=void 0,a.remove(n),null==n.dispose||n.dispose()}}),[a,t,e,...r]),FIBER.useFrame((()=>{var e;null==(e=o.current)||null==e.update||e.update()})),o}const isMesh=e=>e.isMesh;function useBVH(e,t){t={strategy:threeMeshBvh.SAH,verbose:!1,setBoundingBox:!0,maxDepth:40,maxLeafTris:10,...t},React__namespace.useEffect((()=>{if(e.current){e.current.raycast=threeMeshBvh.acceleratedRaycast;const r=e.current.geometry;return r.computeBoundsTree=threeMeshBvh.computeBoundsTree,r.disposeBoundsTree=threeMeshBvh.disposeBoundsTree,r.computeBoundsTree(t),()=>{r.boundsTree&&r.disposeBoundsTree()}}}),[e,JSON.stringify(t)])}const Bvh=React__namespace.forwardRef((({enabled:e=!0,firstHitOnly:t=!1,children:r,strategy:o=threeMeshBvh.SAH,verbose:a=!1,setBoundingBox:n=!0,maxDepth:i=40,maxLeafTris:s=10,...p},d)=>{const l=React__namespace.useRef(null),c=FIBER.useThree((e=>e.raycaster));return React__namespace.useImperativeHandle(d,(()=>l.current),[]),React__namespace.useEffect((()=>{if(e){const e={strategy:o,verbose:a,setBoundingBox:n,maxDepth:i,maxLeafTris:s},r=l.current;return c.firstHitOnly=t,r.traverse((t=>{isMesh(t)&&!t.geometry.boundsTree&&t.raycast===THREE.Mesh.prototype.raycast&&(t.raycast=threeMeshBvh.acceleratedRaycast,t.geometry.computeBoundsTree=threeMeshBvh.computeBoundsTree,t.geometry.disposeBoundsTree=threeMeshBvh.disposeBoundsTree,t.geometry.computeBoundsTree(e))})),()=>{delete c.firstHitOnly,r.traverse((e=>{isMesh(e)&&e.geometry.boundsTree&&(e.geometry.disposeBoundsTree(),e.raycast=THREE.Mesh.prototype.raycast)}))}}})),React__namespace.createElement("group",_extends__default.default({ref:l},p),r)}));function useContextBridge(...e){const t=React__namespace.useRef([]);return t.current=e.map((e=>React__namespace.useContext(e))),React__namespace.useMemo((()=>({children:r})=>e.reduceRight(((e,r,o)=>React__namespace.createElement(r.Provider,{value:t.current[o],children:e})),r)),[])}function useAnimations(e,t){const r=React__namespace.useRef(),[o]=React__namespace.useState((()=>t?t instanceof THREE.Object3D?{current:t}:t:r)),[a]=React__namespace.useState((()=>new THREE.AnimationMixer(void 0)));React__namespace.useLayoutEffect((()=>{a._root=o.current}),[a,t]);const n=React__namespace.useRef({}),[i]=React__namespace.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(o.current)return n.current[e.name]||(n.current[e.name]=a.clipAction(e,o.current))},configurable:!0}))),{ref:o,clips:e,actions:t,names:e.map((e=>e.name)),mixer:a}}));return FIBER.useFrame(((e,t)=>a.update(t))),React__namespace.useEffect((()=>{const e=o.current;return()=>{n.current={},Object.values(i.actions).forEach((t=>{e&&a.uncacheAction(t,e)}))}}),[e]),React__namespace.useEffect((()=>()=>{a.stopAllAction()}),[a]),i}function useIntersect(e){const t=React__namespace.useRef(null),r=React__namespace.useRef(!1),o=React__namespace.useRef(!1),a=React__namespace.useRef(e);return React__namespace.useLayoutEffect((()=>{a.current=e}),[e]),React__namespace.useEffect((()=>{const e=t.current;if(e){const t=FIBER.addEffect((()=>(r.current=!1,!0))),n=e.onBeforeRender;e.onBeforeRender=()=>r.current=!0;const i=FIBER.addAfterEffect((()=>(r.current!==o.current&&(null==a.current||a.current(o.current=r.current)),!0)));return()=>{e.onBeforeRender=n,t(),i()}}}),[]),t}const worldposReplace="\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n #ifdef BOX_PROJECTED_ENV_MAP\n vWorldPosition = worldPosition.xyz;\n #endif\n#endif\n",boxProjectDefinitions="\n#ifdef BOX_PROJECTED_ENV_MAP\n uniform vec3 envMapSize;\n uniform vec3 envMapPosition;\n varying vec3 vWorldPosition;\n \n vec3 parallaxCorrectNormal( vec3 v, vec3 cubeSize, vec3 cubePos ) {\n vec3 nDir = normalize( v );\n vec3 rbmax = ( .5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbmin = ( -.5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbminmax;\n rbminmax.x = ( nDir.x > 0. ) ? rbmax.x : rbmin.x;\n rbminmax.y = ( nDir.y > 0. ) ? rbmax.y : rbmin.y;\n rbminmax.z = ( nDir.z > 0. ) ? rbmax.z : rbmin.z;\n float correction = min( min( rbminmax.x, rbminmax.y ), rbminmax.z );\n vec3 boxIntersection = vWorldPosition + nDir * correction; \n return boxIntersection - cubePos;\n }\n#endif\n",getIBLIrradiance_patch="\n#ifdef BOX_PROJECTED_ENV_MAP\n worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition );\n#endif\n",getIBLRadiance_patch="\n#ifdef BOX_PROJECTED_ENV_MAP\n reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition );\n#endif\n";function boxProjectedEnvMap(e,t,r){e.defines.BOX_PROJECTED_ENV_MAP=!0,e.uniforms.envMapPosition={value:t},e.uniforms.envMapSize={value:r},e.vertexShader=`\n varying vec3 vWorldPosition;\n ${e.vertexShader.replace("#include <worldpos_vertex>",worldposReplace)}`,e.fragmentShader=`\n ${boxProjectDefinitions}\n ${e.fragmentShader.replace("#include <envmap_physical_pars_fragment>",THREE__namespace.ShaderChunk.envmap_physical_pars_fragment).replace("vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );",`vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n ${getIBLIrradiance_patch}\n `).replace("reflectVec = inverseTransformDirection( reflectVec, viewMatrix );",`reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n ${getIBLRadiance_patch}\n `)}`}function useBoxProjectedEnv(e=new THREE__namespace.Vector3,t=new THREE__namespace.Vector3){const[r]=React__namespace.useState((()=>({position:new THREE__namespace.Vector3,size:new THREE__namespace.Vector3})));FIBER.applyProps(r,{position:e,size:t});const o=React__namespace.useRef(null),a=React__namespace.useMemo((()=>({ref:o,onBeforeCompile:e=>boxProjectedEnvMap(e,r.position,r.size),customProgramCacheKey:()=>JSON.stringify(r.position.toArray())+JSON.stringify(r.size.toArray())})),[...r.position.toArray(),...r.size.toArray()]);return React__namespace.useLayoutEffect((()=>{o.current.needsUpdate=!0}),[r]),a}const boundingBox=new THREE__namespace.Box3,boundingBoxSize=new THREE__namespace.Vector3,BBAnchor=({anchor:e,...t})=>{const r=React__namespace.useRef(null),o=React__namespace.useRef(null);return React__namespace.useEffect((()=>{var e,t;null!=(e=r.current)&&null!=(t=e.parent)&&t.parent&&(o.current=r.current.parent,r.current.parent.parent.add(r.current))}),[]),FIBER.useFrame((()=>{o.current&&(boundingBox.setFromObject(o.current),boundingBox.getSize(boundingBoxSize),r.current.position.set(o.current.position.x+boundingBoxSize.x*e[0]/2,o.current.position.y+boundingBoxSize.y*e[1]/2,o.current.position.z+boundingBoxSize.z*e[2]/2))})),React__namespace.createElement("group",_extends__default.default({ref:r},t))};function smoothAverage(e,t,r=.9){return t*r+e*(1-r)}const easeCircleOut=e=>Math.sqrt(1-Math.pow(e-1,2));class TrailTexture{constructor({size:e=256,maxAge:t=750,radius:r=.3,intensity:o=.2,interpolate:a=0,smoothing:n=0,minForce:i=.3,blend:s="screen",ease:p=easeCircleOut}={}){this.size=e,this.maxAge=t,this.radius=r,this.intensity=o,this.ease=p,this.interpolate=a,this.smoothing=n,this.minForce=i,this.blend=s,this.trail=[],this.force=0,this.initTexture()}initTexture(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.texture=new THREE.Texture(this.canvas),this.canvas.id="touchTexture",this.canvas.style.width=this.canvas.style.height=`${this.canvas.width}px`}update(e){this.clear(),this.trail.forEach(((t,r)=>{t.age+=1e3*e,t.age>this.maxAge&&this.trail.splice(r,1)})),this.trail.length||(this.force=0),this.trail.forEach((e=>{this.drawTouch(e)})),this.texture.needsUpdate=!0}clear(){this.ctx.globalCompositeOperation="source-over",this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}addTouch(e){const t=this.trail[this.trail.length-1];if(t){const r=t.x-e.x,o=t.y-e.y,a=r*r+o*o,n=Math.max(this.minForce,Math.min(1e4*a,1));if(this.force=smoothAverage(n,this.force,this.smoothing),this.interpolate){const e=Math.ceil(a/Math.pow(.5*this.radius/this.interpolate,2));if(e>1)for(let a=1;a<e;a++)this.trail.push({x:t.x-r/e*a,y:t.y-o/e*a,age:0,force:n})}}this.trail.push({x:e.x,y:e.y,age:0,force:this.force})}drawTouch(e){const t={x:e.x*this.size,y:(1-e.y)*this.size};let r=1;r=e.age<.3*this.maxAge?this.ease(e.age/(.3*this.maxAge)):this.ease(1-(e.age-.3*this.maxAge)/(.7*this.maxAge)),r*=e.force,this.ctx.globalCompositeOperation=this.blend;const o=this.size*this.radius*r,a=this.ctx.createRadialGradient(t.x,t.y,Math.max(0,.25*o),t.x,t.y,Math.max(0,o));a.addColorStop(0,`rgba(255, 255, 255, ${this.intensity})`),a.addColorStop(1,"rgba(0, 0, 0, 0.0)"),this.ctx.beginPath(),this.ctx.fillStyle=a,this.ctx.arc(t.x,t.y,Math.max(0,o),0,2*Math.PI),this.ctx.fill()}}function useTrailTexture(e={}){const{size:t,maxAge:r,radius:o,intensity:a,interpolate:n,smoothing:i,minForce:s,blend:p,ease:d}=e,l=React.useMemo((()=>new TrailTexture(e)),[t,r,o,a,n,i,s,p,d]);FIBER.useFrame(((e,t)=>{l.update(t)}));const c=React.useCallback((e=>l.addTouch(e.uv)),[l]);return[l.texture,c]}const Center=React__namespace.forwardRef((function({children:e,disable:t,disableX:r,disableY:o,disableZ:a,left:n,right:i,top:s,bottom:p,front:d,back:l,onCentered:c,precise:u=!0,cacheKey:g=0,...m},f){const h=React__namespace.useRef(null),y=React__namespace.useRef(null),_=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{y.current.matrixWorld.identity();const e=(new THREE.Box3).setFromObject(_.current,u),g=new THREE.Vector3,m=new THREE.Sphere,f=e.max.x-e.min.x,b=e.max.y-e.min.y,R=e.max.z-e.min.z;e.getCenter(g),e.getBoundingSphere(m);const v=s?b/2:p?-b/2:0,E=n?-f/2:i?f/2:0,M=d?R/2:l?-R/2:0;y.current.position.set(t||r?0:-g.x+E,t||o?0:-g.y+v,t||a?0:-g.z+M),void 0!==c&&c({parent:h.current.parent,container:h.current,width:f,height:b,depth:R,boundingBox:e,boundingSphere:m,center:g,verticalAlignment:v,horizontalAlignment:E,depthAlignment:M})}),[g,c,s,n,d,t,r,o,a,u,i,p,l]),React__namespace.useImperativeHandle(f,(()=>h.current),[]),React__namespace.createElement("group",_extends__default.default({ref:h},m),React__namespace.createElement("group",{ref:y},React__namespace.createElement("group",{ref:_},e)))})),Example=React__namespace.forwardRef((({font:e,color:t="#cbcbcb",bevelSize:r=.04,debug:o=!1,children:a,...n},i)=>{const[s,p]=React__namespace.useState(0),d=React__namespace.useCallback(((e=1)=>p(s+e)),[s]),l=React__namespace.useCallback(((e=1)=>p(s-e)),[s]),c=React__namespace.useMemo((()=>({incr:d,decr:l})),[d,l]);return React__namespace.useImperativeHandle(i,(()=>c),[c]),React__namespace.createElement("group",n,React__namespace.createElement(React__namespace.Suspense,{fallback:null},React__namespace.createElement(Center,{top:!0,cacheKey:JSON.stringify({counter:s,font:e})},React__namespace.createElement(Text3D,{bevelEnabled:!0,bevelSize:r,font:e},o?React__namespace.createElement("meshNormalMaterial",{wireframe:!0}):React__namespace.createElement("meshStandardMaterial",{color:t}),s))),a)})),SpriteAnimator=({startFrame:e,endFrame:t,fps:r,frameName:o,textureDataURL:a,textureImageURL:n,loop:i,numberOfFrames:s,autoPlay:p,animationNames:d,onStart:l,onEnd:c,onLoopEnd:u,onFrame:g,play:m,pause:f,flipX:h,alphaTest:y,children:_,...b},R)=>{FIBER.useThree((e=>e.viewport));const v=React__namespace.useRef(null),[E,M]=React__namespace.useState(!1),O=React__namespace.useRef(),F=React__namespace.useRef(),x=React__namespace.useRef(window.performance.now()),T=React__namespace.useRef(),S=React__namespace.useRef(e||0),k=React__namespace.useRef(o||""),C=1e3/(r||30),[B,w]=React__namespace.useState(new THREE__namespace.Texture),L=React__namespace.useRef(0),[A,D]=React__namespace.useState([1,1,1]),I=h?-1:1;const z=(e,t)=>{const r=t/e;return F.current.scale.set(1,r,1),[1,r,1]};React__namespace.useEffect((()=>{if(a&&n)!function(e,t,r){const o=new THREE__namespace.TextureLoader,a=fetch(e).then((e=>e.json())),n=new Promise((e=>{o.load(t,e)}));Promise.all([a,n]).then((e=>{r(e[0],e[1])}))}(a,n,P);else if(n){const e=new THREE__namespace.TextureLoader;new Promise((t=>{e.load(n,t)})).then((e=>{P(null,e)}))}}),[]),React__namespace.useLayoutEffect((()=>{G()}),[B]),React__namespace.useEffect((()=>{}),[f]),React__namespace.useEffect((()=>{k.current!==o&&o&&(S.current=0,k.current=o)}),[o]);const P=(e,t)=>{if(null===e){if(t&&s){const e=t.image.width,r=t.image.height,o=e/s,a=r;if(T.current=t,L.current=s,v.current={frames:[],meta:{version:"1.0",size:{w:e,h:r},scale:"1"}},parseInt(o.toString(),10)===o)for(let e=0;e<s;e++)v.current.frames.push({frame:{x:e*o,y:0,w:o,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:o,h:a},sourceSize:{w:o,h:r}})}}else if(t){v.current=e,v.current.frames=Array.isArray(e.frames)?e.frames:j(),L.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,T.current=t;const{w:r,h:o}=N(e.frames).sourceSize,a=z(r,o);D(a),O.current&&(O.current.map=t)}t.premultiplyAlpha=!1,w(t)},j=()=>{const e={},t=v.current,r=d;if(r)for(let o=0;o<r.length;o++){e[r[o]]=[];for(let a in t.frames){const n=t.frames[a],i=n.frame,s=i.x,p=i.y,d=i.w,l=i.h,c=n.sourceSize.w,u=n.sourceSize.h;"string"==typeof a&&-1!==a.toLowerCase().indexOf(r[o].toLowerCase())&&e[r[o]].push({x:s,y:p,w:d,h:l,frame:i,sourceSize:{w:c,h:u}})}}return e},G=()=>{if(!v.current)return;const{meta:{size:e},frames:t}=v.current,{w:r,h:a}=Array.isArray(t)?t[0].sourceSize:o&&t[o]?t[o][0].sourceSize:{w:0,h:0};O.current.map.wrapS=O.current.map.wrapT=THREE__namespace.RepeatWrapping,O.current.map.center.set(0,0),O.current.map.repeat.set(1*I/(e.w/r),1/(e.h/a));const n=1/((e.h-1)/a);O.current.map.offset.x=0,O.current.map.offset.y=1-n,M(!0),l&&l({currentFrameName:o,currentFrame:S.current})};FIBER.useFrame(((r,a)=>{var n,s;null!=(n=v.current)&&n.frames&&null!=(s=O.current)&&s.map&&(f||(p||m)&&((()=>{const r=window.performance.now(),a=r-x.current,{meta:{size:n},frames:s}=v.current,{w:p,h:d}=N(s).sourceSize,l=Array.isArray(s)?s:o?s[o]:[];let g=0,m=0;const f=t||l.length-1;if(S.current>f&&(S.current=i&&null!=e?e:0,i?null==u||u({currentFrameName:o,currentFrame:S.current}):null==c||c({currentFrameName:o,currentFrame:S.current}),!i))return;if(a<=C)return;x.current=r-a%C,z(p,d);const h=(n.w-1)/p,y=(n.h-1)/d,{frame:{x:_,y:b},sourceSize:{w:R,h:E}}=l[S.current],M=1/h,F=1/y;g=I>0?M*(_/R):M*(_/R)-O.current.map.repeat.x,m=Math.abs(1-F)-F*(b/E),O.current.map.offset.x=g,O.current.map.offset.y=m,S.current+=1})(),g&&g({currentFrameName:k.current,currentFrame:S.current})))}));const N=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){return e[Object.keys(e)[0]][0]}return{w:0,h:0}};return React__namespace.createElement("group",b,React__namespace.createElement(React__namespace.Suspense,{fallback:null},React__namespace.createElement("sprite",{ref:F,scale:A},React__namespace.createElement("spriteMaterial",{toneMapped:!1,ref:O,map:B,transparent:!0,alphaTest:null!=y?y:0}))),_)},CurveModifier=React__namespace.forwardRef((({children:e,curve:t},r)=>{const[o]=React__namespace.useState((()=>new THREE__namespace.Scene)),[a,n]=React__namespace.useState(),i=React__namespace.useRef();return React__namespace.useEffect((()=>{i.current=new threeStdlib.Flow(o.children[0]),n(i.current.object3D)}),[e]),React__namespace.useEffect((()=>{var e;t&&(null==(e=i.current)||e.updateCurve(0,t))}),[t]),React__namespace.useImperativeHandle(r,(()=>({moveAlongCurve:e=>{var t;null==(t=i.current)||t.moveAlongCurve(e)}}))),React__namespace.createElement(React__namespace.Fragment,null,FIBER.createPortal(e,o),a&&React__namespace.createElement("primitive",{object:a}))}));var distort="#define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}";class DistortMaterialImpl extends THREE.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n ${distort}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const MeshDistortMaterial=React__namespace.forwardRef((({speed:e=1,...t},r)=>{const[o]=React__namespace.useState((()=>new DistortMaterialImpl));return FIBER.useFrame((t=>o&&(o.time=t.clock.getElapsedTime()*e))),React__namespace.createElement("primitive",_extends__default.default({object:o,ref:r,attach:"material"},t))}));class WobbleMaterialImpl extends THREE.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const MeshWobbleMaterial=React__namespace.forwardRef((({speed:e=1,...t},r)=>{const[o]=React__namespace.useState((()=>new WobbleMaterialImpl));return FIBER.useFrame((t=>o&&(o.time=t.clock.getElapsedTime()*e))),React__namespace.createElement("primitive",_extends__default.default({object:o,ref:r,attach:"material"},t))}));class ConvolutionMaterial extends THREE.ShaderMaterial{constructor(e=new THREE.Vector2){super({uniforms:{inputBuffer:new THREE.Uniform(null),depthBuffer:new THREE.Uniform(null),resolution:new THREE.Uniform(new THREE.Vector2),texelSize:new THREE.Uniform(new THREE.Vector2),halfTexelSize:new THREE.Uniform(new THREE.Vector2),kernel:new THREE.Uniform(0),scale:new THREE.Uniform(1),cameraNear:new THREE.Uniform(0),cameraFar:new THREE.Uniform(1),minDepthThreshold:new THREE.Uniform(0),maxDepthThreshold:new THREE.Uniform(1),depthScale:new THREE.Uniform(0),depthToBlurRatioBias:new THREE.Uniform(.25)},fragmentShader:"#include <common>\n #include <dithering_pars_fragment> \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include <dithering_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:THREE.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(e.x,e.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t),this.uniforms.halfTexelSize.value.set(e,t).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}class BlurPass{constructor({gl:e,resolution:t,width:r=500,height:o=500,minDepthThreshold:a=0,maxDepthThreshold:n=1,depthScale:i=0,depthToBlurRatioBias:s=.25}){this.renderToScreen=!1,this.renderTargetA=new THREE.WebGLRenderTarget(t,t,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,stencilBuffer:!1,depthBuffer:!1,type:THREE.HalfFloatType}),this.renderTargetB=this.renderTargetA.clone(),this.convolutionMaterial=new ConvolutionMaterial,this.convolutionMaterial.setTexelSize(1/r,1/o),this.convolutionMaterial.setResolution(new THREE.Vector2(r,o)),this.scene=new THREE.Scene,this.camera=new THREE.Camera,this.convolutionMaterial.uniforms.minDepthThreshold.value=a,this.convolutionMaterial.uniforms.maxDepthThreshold.value=n,this.convolutionMaterial.uniforms.depthScale.value=i,this.convolutionMaterial.uniforms.depthToBlurRatioBias.value=s,this.convolutionMaterial.defines.USE_DEPTH=i>0;const p=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),d=new Float32Array([0,0,2,0,0,2]),l=new THREE.BufferGeometry;l.setAttribute("position",new THREE.BufferAttribute(p,3)),l.setAttribute("uv",new THREE.BufferAttribute(d,2)),this.screen=new THREE.Mesh(l,this.convolutionMaterial),this.screen.frustumCulled=!1,this.scene.add(this.screen)}render(e,t,r){const o=this.scene,a=this.camera,n=this.renderTargetA,i=this.renderTargetB;let s=this.convolutionMaterial,p=s.uniforms;p.depthBuffer.value=t.depthTexture;const d=s.kernel;let l,c,u,g=t;for(c=0,u=d.length-1;c<u;++c)l=0==(1&c)?n:i,p.kernel.value=d[c],p.inputBuffer.value=g.texture,e.setRenderTarget(l),e.render(o,a),g=l;p.kernel.value=d[c],p.inputBuffer.value=g.texture,e.setRenderTarget(this.renderToScreen?null:r),e.render(o,a)}}class MeshReflectorMaterial$1 extends THREE.MeshStandardMaterial{constructor(e={}){super(e),this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv;\n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv;\n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n\n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n\n vec4 merge = base;\n\n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n\n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n\n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}FIBER.extend({MeshReflectorMaterialImpl:MeshReflectorMaterial$1});const MeshReflectorMaterial=React__namespace.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:r=256,blur:o=[0,0],minDepthThreshold:a=.9,maxDepthThreshold:n=1,depthScale:i=0,depthToBlurRatioBias:s=.25,mirror:p=0,distortion:d=1,mixContrast:l=1,distortionMap:c,reflectorOffset:u=0,...g},m)=>{const f=FIBER.useThree((({gl:e})=>e)),h=FIBER.useThree((({camera:e})=>e)),y=FIBER.useThree((({scene:e})=>e)),_=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,b=React__namespace.useRef(null),[R]=React__namespace.useState((()=>new THREE.Plane)),[v]=React__namespace.useState((()=>new THREE.Vector3)),[E]=React__namespace.useState((()=>new THREE.Vector3)),[M]=React__namespace.useState((()=>new THREE.Vector3)),[O]=React__namespace.useState((()=>new THREE.Matrix4)),[F]=React__namespace.useState((()=>new THREE.Vector3(0,0,-1))),[x]=React__namespace.useState((()=>new THREE.Vector4)),[T]=React__namespace.useState((()=>new THREE.Vector3)),[S]=React__namespace.useState((()=>new THREE.Vector3)),[k]=React__namespace.useState((()=>new THREE.Vector4)),[C]=React__namespace.useState((()=>new THREE.Matrix4)),[B]=React__namespace.useState((()=>new THREE.PerspectiveCamera)),w=React__namespace.useCallback((()=>{var e;const t=b.current.parent||(null==(e=b.current)?void 0:e.__r3f.parent);if(!t)return;if(E.setFromMatrixPosition(t.matrixWorld),M.setFromMatrixPosition(h.matrixWorld),O.extractRotation(t.matrixWorld),v.set(0,0,1),v.applyMatrix4(O),E.addScaledVector(v,u),T.subVectors(E,M),T.dot(v)>0)return;T.reflect(v).negate(),T.add(E),O.extractRotation(h.matrixWorld),F.set(0,0,-1),F.applyMatrix4(O),F.add(M),S.subVectors(E,F),S.reflect(v).negate(),S.add(E),B.position.copy(T),B.up.set(0,1,0),B.up.applyMatrix4(O),B.up.reflect(v),B.lookAt(S),B.far=h.far,B.updateMatrixWorld(),B.projectionMatrix.copy(h.projectionMatrix),C.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),C.multiply(B.projectionMatrix),C.multiply(B.matrixWorldInverse),C.multiply(t.matrixWorld),R.setFromNormalAndCoplanarPoint(v,E),R.applyMatrix4(B.matrixWorldInverse),x.set(R.normal.x,R.normal.y,R.normal.z,R.constant);const r=B.projectionMatrix;k.x=(Math.sign(x.x)+r.elements[8])/r.elements[0],k.y=(Math.sign(x.y)+r.elements[9])/r.elements[5],k.z=-1,k.w=(1+r.elements[10])/r.elements[14],x.multiplyScalar(2/x.dot(k)),r.elements[2]=x.x,r.elements[6]=x.y,r.elements[10]=x.z+1,r.elements[14]=x.w}),[h,u]),[L,A,D,I]=React__namespace.useMemo((()=>{const u={minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,type:THREE.HalfFloatType},g=new THREE.WebGLRenderTarget(r,r,u);g.depthBuffer=!0,g.depthTexture=new THREE.DepthTexture(r,r),g.depthTexture.format=THREE.DepthFormat,g.depthTexture.type=THREE.UnsignedShortType;const m=new THREE.WebGLRenderTarget(r,r,u);return[g,m,new BlurPass({gl:f,resolution:r,width:o[0],height:o[1],minDepthThreshold:a,maxDepthThreshold:n,depthScale:i,depthToBlurRatioBias:s}),{mirror:p,textureMatrix:C,mixBlur:e,tDiffuse:g.texture,tDepth:g.depthTexture,tDiffuseBlur:m.texture,hasBlur:_,mixStrength:t,minDepthThreshold:a,maxDepthThreshold:n,depthScale:i,depthToBlurRatioBias:s,distortion:d,distortionMap:c,mixContrast:l,"defines-USE_BLUR":_?"":void 0,"defines-USE_DEPTH":i>0?"":void 0,"defines-USE_DISTORTION":c?"":void 0}]}),[f,o,C,r,p,_,e,t,a,n,i,s,d,c,l]);return FIBER.useFrame((()=>{var e;const t=b.current.parent||(null==(e=b.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=f.xr.enabled,o=f.shadowMap.autoUpdate;w(),f.xr.enabled=!1,f.shadowMap.autoUpdate=!1,f.setRenderTarget(L),f.state.buffers.depth.setMask(!0),f.autoClear||f.clear(),f.render(y,B),_&&D.render(f,L,A),f.xr.enabled=r,f.shadowMap.autoUpdate=o,t.visible=!0,f.setRenderTarget(null)})),React__namespace.createElement("meshReflectorMaterialImpl",_extends__default.default({attach:"material",key:"key"+I["defines-USE_BLUR"]+I["defines-USE_DEPTH"]+I["defines-USE_DISTORTION"],ref:mergeRefs__default.default([b,m])},I,g))})),MeshRefractionMaterial$1=shaderMaterial({envMap:null,bounces:3,ior:2.4,correctMips:!0,aberrationStrength:.01,fresnel:0,bvh:new threeMeshBvh.MeshBVHUniformStruct,color:new THREE__namespace.Color("white"),resolution:new THREE__namespace.Vector2,viewMatrixInverse:new THREE__namespace.Matrix4,projectionMatrixInverse:new THREE__namespace.Matrix4},"\n uniform mat4 viewMatrixInverse;\n\n varying vec3 vWorldPosition; \n varying vec3 vNormal;\n varying mat4 vModelMatrixInverse;\n\n #ifdef USE_INSTANCING_COLOR\n varying vec3 vInstanceColor;\n #endif\n\n void main() { \n vec4 transformedNormal = vec4(normal, 0.0);\n vec4 transformedPosition = vec4(position, 1.0);\n #ifdef USE_INSTANCING\n transformedNormal = instanceMatrix * transformedNormal;\n transformedPosition = instanceMatrix * transformedPosition;\n #endif\n\n #ifdef USE_INSTANCING\n vModelMatrixInverse = inverse(modelMatrix * instanceMatrix);\n #else\n vModelMatrixInverse = inverse(modelMatrix);\n #endif\n\n #ifdef USE_INSTANCING_COLOR\n vInstanceColor = instanceColor.rgb;\n #endif\n\n vWorldPosition = (modelMatrix * transformedPosition).xyz;\n vNormal = normalize((viewMatrixInverse * vec4(normalMatrix * transformedNormal.xyz, 0.0)).xyz);\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * transformedPosition;\n }",`\n #define ENVMAP_TYPE_CUBE_UV\n precision highp isampler2D;\n precision highp usampler2D;\n varying vec3 vWorldPosition;\n varying vec3 vNormal;\n varying mat4 vModelMatrixInverse;\n\n #ifdef USE_INSTANCING_COLOR\n varying vec3 vInstanceColor;\n #endif\n \n #ifdef ENVMAP_TYPE_CUBEM\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n uniform float bounces;\n ${threeMeshBvh.shaderStructs}\n ${threeMeshBvh.shaderIntersectFunction}\n uniform BVH bvh;\n uniform float ior;\n uniform bool correctMips;\n uniform vec2 resolution;\n uniform float fresnel;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrixInverse;\n uniform mat4 viewMatrixInverse;\n uniform float aberrationStrength;\n uniform vec3 color;\n \n float fresnelFunc(vec3 viewDirection, vec3 worldNormal) {\n return pow( 1.0 + dot( viewDirection, worldNormal), 10.0 );\n }\n \n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 normal, float ior, mat4 modelMatrixInverse) {\n vec3 rayOrigin = ro;\n vec3 rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = vWorldPosition + rayDirection * 0.001;\n rayOrigin = (modelMatrixInverse * vec4(rayOrigin, 1.0)).xyz;\n rayDirection = normalize((modelMatrixInverse * vec4(rayDirection, 0.0)).xyz);\n for(float i = 0.0; i < bounces; i++) {\n uvec4 faceIndices = uvec4( 0u );\n vec3 faceNormal = vec3( 0.0, 0.0, 1.0 );\n vec3 barycoord = vec3( 0.0 );\n float side = 1.0;\n float dist = 0.0;\n bvhIntersectFirstHit( bvh, rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist );\n vec3 hitPos = rayOrigin + rayDirection * max(dist - 0.001, 0.0); \n vec3 tempDir = refract(rayDirection, faceNormal, ior);\n if (length(tempDir) != 0.0) {\n rayDirection = tempDir;\n break;\n }\n rayDirection = reflect(rayDirection, faceNormal);\n rayOrigin = hitPos + rayDirection * 0.01;\n }\n rayDirection = normalize((modelMatrix * vec4(rayDirection, 0.0)).xyz);\n return rayDirection;\n }\n \n #include <common>\n #include <cube_uv_reflection_fragment>\n \n #ifdef ENVMAP_TYPE_CUBEM\n vec4 textureGradient(samplerCube envMap, vec3 rayDirection, vec3 directionCamPerfect) {\n return textureGrad(envMap, rayDirection, dFdx(correctMips ? directionCamPerfect: rayDirection), dFdy(correctMips ? directionCamPerfect: rayDirection));\n }\n #else\n vec4 textureGradient(sampler2D envMap, vec3 rayDirection, vec3 directionCamPerfect) {\n vec2 uvv = equirectUv( rayDirection );\n vec2 smoothUv = equirectUv( directionCamPerfect );\n return textureGrad(envMap, uvv, dFdx(correctMips ? smoothUv : uvv), dFdy(correctMips ? smoothUv : uvv));\n }\n #endif\n \n void main() {\n vec2 uv = gl_FragCoord.xy / resolution;\n vec3 directionCamPerfect = (projectionMatrixInverse * vec4(uv * 2.0 - 1.0, 0.0, 1.0)).xyz;\n directionCamPerfect = (viewMatrixInverse * vec4(directionCamPerfect, 0.0)).xyz;\n directionCamPerfect = normalize(directionCamPerfect);\n vec3 normal = vNormal;\n vec3 rayOrigin = cameraPosition;\n vec3 rayDirection = normalize(vWorldPosition - cameraPosition);\n vec3 finalColor;\n #ifdef CHROMATIC_ABERRATIONS\n vec3 rayDirectionG = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior, 1.0), vModelMatrixInverse);\n #ifdef FAST_CHROMA \n vec3 rayDirectionR = normalize(rayDirectionG + 1.0 * vec3(aberrationStrength / 2.0));\n vec3 rayDirectionB = normalize(rayDirectionG - 1.0 * vec3(aberrationStrength / 2.0));\n #else\n vec3 rayDirectionR = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior * (1.0 - aberrationStrength), 1.0), vModelMatrixInverse);\n vec3 rayDirectionB = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior * (1.0 + aberrationStrength), 1.0), vModelMatrixInverse);\n #endif\n float finalColorR = textureGradient(envMap, rayDirectionR, directionCamPerfect).r;\n float finalColorG = textureGradient(envMap, rayDirectionG, directionCamPerfect).g;\n float finalColorB = textureGradient(envMap, rayDirectionB, directionCamPerfect).b;\n finalColor = vec3(finalColorR, finalColorG, finalColorB);\n #else\n rayDirection = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior, 1.0), vModelMatrixInverse);\n finalColor = textureGradient(envMap, rayDirection, directionCamPerfect).rgb; \n #endif\n\n finalColor *= color;\n #ifdef USE_INSTANCING_COLOR\n finalColor *= vInstanceColor;\n #endif\n\n vec3 viewDirection = normalize(vWorldPosition - cameraPosition);\n float nFresnel = fresnelFunc(viewDirection, normal) * fresnel;\n gl_FragColor = vec4(mix(finalColor, vec3(1.0), nFresnel), 1.0); \n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }`),isCubeTexture=e=>e&&e.isCubeTexture;function MeshRefractionMaterial({aberrationStrength:e=0,fastChroma:t=!0,envMap:r,...o}){FIBER.extend({MeshRefractionMaterial:MeshRefractionMaterial$1});const a=React.useRef(),{size:n}=FIBER.useThree(),i=React.useMemo((()=>{var o,a;const n={},i=isCubeTexture(r),s=(null!==(o=i?null==(a=r.image[0])?void 0:a.width:r.image.width)&&void 0!==o?o:1024)/4,p=Math.floor(Math.log2(s)),d=Math.pow(2,p),l=3*Math.max(d,112),c=4*d;return i&&(n.ENVMAP_TYPE_CUBEM=""),n.CUBEUV_TEXEL_WIDTH=""+1/l,n.CUBEUV_TEXEL_HEIGHT=""+1/c,n.CUBEUV_MAX_MIP=`${p}.0`,e>0&&(n.CHROMATIC_ABERRATIONS=""),t&&(n.FAST_CHROMA=""),n}),[e,t]);return React.useLayoutEffect((()=>{var e,t,r;const o=null==(e=a.current)||null==(t=e.__r3f)||null==(r=t.parent)?void 0:r.geometry;o&&(a.current.bvh=new threeMeshBvh.MeshBVHUniformStruct,a.current.bvh.updateFrom(new threeMeshBvh.MeshBVH(o.clone().toNonIndexed(),{lazyGeneration:!1,strategy:threeMeshBvh.SAH})))}),[]),FIBER.useFrame((({camera:e})=>{a.current.viewMatrixInverse=e.matrixWorld,a.current.projectionMatrixInverse=e.projectionMatrixInverse})),React__namespace.createElement("meshRefractionMaterial",_extends__default.default({key:JSON.stringify(i),defines:i,ref:a,resolution:[n.width,n.height],aberrationStrength:e,envMap:r},o))}const DiscardMaterial=shaderMaterial({},"void main() { }","void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard; }");class MeshTransmissionMaterialImpl extends THREE__namespace.MeshPhysicalMaterial{constructor(e=6,t=!1){super(),this.uniforms={chromaticAberration:{value:.05},transmission:{value:0},_transmission:{value:1},transmissionMap:{value:null},roughness:{value:0},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:1/0},attenuationColor:{value:new THREE__namespace.Color("white")},anisotropicBlur:{value:.1},time:{value:0},distortion:{value:0},distortionScale:{value:.5},temporalDistortion:{value:0},buffer:{value:null}},this.onBeforeCompile=r=>{r.uniforms={...r.uniforms,...this.uniforms},t?r.defines.USE_SAMPLER="":r.defines.USE_TRANSMISSION="",r.fragmentShader="\n uniform float chromaticAberration; \n uniform float anisotropicBlur; \n uniform float time;\n uniform float distortion;\n uniform float distortionScale;\n uniform float temporalDistortion;\n uniform sampler2D buffer;\n\n vec3 random3(vec3 c) {\n float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\n vec3 r;\n r.z = fract(512.0*j);\n j *= .125;\n r.x = fract(512.0*j);\n j *= .125;\n r.y = fract(512.0*j);\n return r-0.5;\n }\n\n float seed = 0.0;\n uint hash( uint x ) {\n x += ( x << 10u );\n x ^= ( x >> 6u );\n x += ( x << 3u );\n x ^= ( x >> 11u );\n x += ( x << 15u );\n return x;\n }\n\n // Compound versions of the hashing algorithm I whipped together.\n uint hash( uvec2 v ) { return hash( v.x ^ hash(v.y) ); }\n uint hash( uvec3 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ); }\n uint hash( uvec4 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ^ hash(v.w) ); }\n\n // Construct a float with half-open range [0:1] using low 23 bits.\n // All zeroes yields 0.0, all ones yields the next smallest representable value below 1.0.\n float floatConstruct( uint m ) {\n const uint ieeeMantissa = 0x007FFFFFu; // binary32 mantissa bitmask\n const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32\n m &= ieeeMantissa; // Keep only mantissa bits (fractional part)\n m |= ieeeOne; // Add fractional part to 1.0\n float f = uintBitsToFloat( m ); // Range [1:2]\n return f - 1.0; // Range [0:1]\n }\n\n // Pseudo-random value in half-open range [0:1].\n float random( float x ) { return floatConstruct(hash(floatBitsToUint(x))); }\n float random( vec2 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec3 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec4 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n\n float rand() {\n float result = random(vec3(gl_FragCoord.xy, seed));\n seed += 1.0;\n return result;\n }\n\n const float F3 = 0.3333333;\n const float G3 = 0.1666667;\n\n float snoise(vec3 p) {\n vec3 s = floor(p + dot(p, vec3(F3)));\n vec3 x = p - s + dot(s, vec3(G3));\n vec3 e = step(vec3(0.0), x - x.yzx);\n vec3 i1 = e*(1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy*(1.0 - e);\n vec3 x1 = x - i1 + G3;\n vec3 x2 = x - i2 + 2.0*G3;\n vec3 x3 = x - 1.0 + 3.0*G3;\n vec4 w, d;\n w.x = dot(x, x);\n w.y = dot(x1, x1);\n w.z = dot(x2, x2);\n w.w = dot(x3, x3);\n w = max(0.6 - w, 0.0);\n d.x = dot(random3(s), x);\n d.y = dot(random3(s + i1), x1);\n d.z = dot(random3(s + i2), x2);\n d.w = dot(random3(s + 1.0), x3);\n w *= w;\n w *= w;\n d *= w;\n return dot(d, vec4(52.0));\n }\n\n float snoiseFractal(vec3 m) {\n return 0.5333333* snoise(m)\n +0.2666667* snoise(2.0*m)\n +0.1333333* snoise(4.0*m)\n +0.0666667* snoise(8.0*m);\n }\n"+r.fragmentShader,r.fragmentShader=r.fragmentShader.replace("#include <transmission_pars_fragment>","\n #ifdef USE_TRANSMISSION\n // Transmission code is based on glTF-Sampler-Viewer\n // https://github.com/KhronosGroup/glTF-Sample-Viewer\n uniform float _transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n // Direction of refracted light.\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n // Compute rotation-independant scaling of the model matrix.\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n // The thickness is specified in local space.\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\n // an IOR of 1.5 results in the default amount of microfacet refraction.\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); \n #ifdef USE_SAMPLER\n #ifdef texture2DLodEXT\n return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #else\n return texture2D(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #endif\n #else\n return texture2D(buffer, fragCoord.xy);\n #endif\n }\n vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n // Attenuation distance is +∞, i.e. the transmitted color is not attenuated at all.\n return radiance;\n } else {\n // Compute light attenuation using Beer's law.\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\n return transmittance * radiance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n // Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n // Sample framebuffer to get pixel the refracted ray hits.\n vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n // Get the specular component.\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n }\n #endif\n"),r.fragmentShader=r.fragmentShader.replace("#include <transmission_fragment>",` \n // Improve the refraction to use the world pos\n material.transmission = _transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vUv ).g;\n #endif\n \n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec3 transmission = vec3(0.0);\n float transmissionR, transmissionB, transmissionG;\n float randomCoords = rand();\n float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);\n vec3 distortionNormal = vec3(0.0);\n vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;\n if (distortion > 0.0) {\n distortionNormal = distortion * vec3(snoiseFractal(vec3((pos * distortionScale + temporalOffset))), snoiseFractal(vec3(pos.zxy * distortionScale - temporalOffset)), snoiseFractal(vec3(pos.yxz * distortionScale + temporalOffset)));\n }\n for (float i = 0.0; i < ${e}.0; i ++) {\n vec3 sampleNorm = normalize(n + roughnessFactor * roughnessFactor * 2.0 * normalize(vec3(rand() - 0.5, rand() - 0.5, rand() - 0.5)) * pow(rand(), 0.33) + distortionNormal);\n transmissionR = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).r;\n transmissionG = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + chromaticAberration * (i + randomCoords) / float(${e})) , material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).g;\n transmissionB = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + 2.0 * chromaticAberration * (i + randomCoords) / float(${e})), material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).b;\n transmission.r += transmissionR;\n transmission.g += transmissionG;\n transmission.b += transmissionB;\n }\n transmission /= ${e}.0;\n totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n`)},Object.keys(this.uniforms).forEach((e=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t})))}}const MeshTransmissionMaterial=React__namespace.forwardRef((({buffer:e,transmissionSampler:t=!1,backside:r=!1,side:o=THREE__namespace.FrontSide,transmission:a=1,thickness:n=0,backsideThickness:i=0,samples:s=10,resolution:p,backsideResolution:d,background:l,anisotropy:c,anisotropicBlur:u,...g},m)=>{FIBER.extend({MeshTransmissionMaterial:MeshTransmissionMaterialImpl});const f=React__namespace.useRef(null),[h]=React__namespace.useState((()=>new DiscardMaterial)),y=useFBO(d||p),_=useFBO(p);let b,R,v;return FIBER.useFrame((e=>{f.current.time=e.clock.getElapsedTime(),f.current.buffer!==_.texture||t||(v=f.current.__r3f.parent,v&&(R=e.gl.toneMapping,b=e.scene.background,e.gl.toneMapping=THREE__namespace.NoToneMapping,l&&(e.scene.background=l),v.material=h,r&&(e.gl.setRenderTarget(y),e.gl.render(e.scene,e.camera),v.material=f.current,v.material.buffer=y.texture,v.material.thickness=i,v.material.side=THREE__namespace.BackSide),e.gl.setRenderTarget(_),e.gl.render(e.scene,e.camera),v.material.thickness=n,v.material.side=o,v.material.buffer=_.texture,e.scene.background=b,e.gl.setRenderTarget(null),v.material=f.current,e.gl.toneMapping=R))})),React__namespace.useImperativeHandle(m,(()=>f.current),[]),React__namespace.createElement("meshTransmissionMaterial",_extends__default.default({args:[s,t],ref:f},g,{buffer:e||_.texture,_transmission:a,anisotropicBlur:null!=u?u:c,transmission:t?a:0,thickness:n,side:o}))})),MeshDiscardMaterial=React__namespace.forwardRef(((e,t)=>(FIBER.extend({DiscardMaterialImpl:DiscardMaterial}),React__namespace.createElement("discardMaterialImpl",_extends__default.default({ref:t},e)))));class PointMaterialImpl extends THREE__namespace.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace("#include <output_fragment>",`\n ${r?"#include <output_fragment>":"#extension GL_OES_standard_derivatives : enable\n#include <output_fragment>"}\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n `)}}}const PointMaterial=React__namespace.forwardRef(((e,t)=>{const[r]=React__namespace.useState((()=>new PointMaterialImpl(null)));return React__namespace.createElement("primitive",_extends__default.default({},e,{object:r,ref:t,attach:"material"}))})),pcss=({focus:e=0,size:t=25,samples:r=10}={})=>`\n#define PENUMBRA_FILTER_SIZE float(${t})\n#define RGB_NOISE_FUNCTION(uv) (randRGB(uv))\nvec3 randRGB(vec2 uv) {\n return vec3(\n fract(sin(dot(uv, vec2(12.75613, 38.12123))) * 13234.76575),\n fract(sin(dot(uv, vec2(19.45531, 58.46547))) * 43678.23431),\n fract(sin(dot(uv, vec2(23.67817, 78.23121))) * 93567.23423)\n );\n}\n\nvec3 lowPassRandRGB(vec2 uv) {\n // 3x3 convolution (average)\n // can be implemented as separable with an extra buffer for a total of 6 samples instead of 9\n vec3 result = vec3(0);\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, +1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, +1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, +1.0));\n result *= 0.111111111; // 1.0 / 9.0\n return result;\n}\nvec3 highPassRandRGB(vec2 uv) {\n // by subtracting the low-pass signal from the original signal, we're being left with the high-pass signal\n // hp(x) = x - lp(x)\n return RGB_NOISE_FUNCTION(uv) - lowPassRandRGB(uv) + 0.5;\n}\n\n\nvec2 vogelDiskSample(int sampleIndex, int sampleCount, float angle) {\n const float goldenAngle = 2.399963f; // radians\n float r = sqrt(float(sampleIndex) + 0.5f) / sqrt(float(sampleCount));\n float theta = float(sampleIndex) * goldenAngle + angle;\n float sine = sin(theta);\n float cosine = cos(theta);\n return vec2(cosine, sine) * r;\n}\nfloat penumbraSize( const in float zReceiver, const in float zBlocker ) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\nfloat findBlocker(sampler2D shadowMap, vec2 uv, float compare, float angle) {\n float texelSize = 1.0 / float(textureSize(shadowMap, 0).x);\n float blockerDepthSum = float(${e});\n float blockers = 0.0;\n\n int j = 0;\n vec2 offset = vec2(0.);\n float depth = 0.;\n\n #pragma unroll_loop_start\n for(int i = 0; i < ${r}; i ++) {\n offset = (vogelDiskSample(j, ${r}, angle) * texelSize) * 2.0 * PENUMBRA_FILTER_SIZE;\n depth = unpackRGBAToDepth( texture2D( shadowMap, uv + offset));\n if (depth < compare) {\n blockerDepthSum += depth;\n blockers++;\n }\n j++;\n }\n #pragma unroll_loop_end\n\n if (blockers > 0.0) {\n return blockerDepthSum / blockers;\n }\n return -1.0;\n}\n\n \nfloat vogelFilter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius, float angle) {\n float texelSize = 1.0 / float(textureSize(shadowMap, 0).x);\n float shadow = 0.0f;\n int j = 0;\n vec2 vogelSample = vec2(0.0);\n vec2 offset = vec2(0.0);\n #pragma unroll_loop_start\n for (int i = 0; i < ${r}; i++) {\n vogelSample = vogelDiskSample(j, ${r}, angle) * texelSize;\n offset = vogelSample * (1.0 + filterRadius * float(${t}));\n shadow += step( zReceiver, unpackRGBAToDepth( texture2D( shadowMap, uv + offset ) ) );\n j++;\n }\n #pragma unroll_loop_end\n return shadow * 1.0 / ${r}.0;\n}\n\nfloat PCSS (sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n float angle = highPassRandRGB(gl_FragCoord.xy).r * PI2;\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver, angle);\n if (avgBlockerDepth == -1.0) {\n return 1.0;\n }\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle);\n}`;function reset(e,t,r){t.traverse((t=>{t.material&&(e.properties.remove(t.material),null==t.material.dispose||t.material.dispose())})),e.info.programs.length=0,e.compile(t,r)}function SoftShadows({focus:e=0,samples:t=10,size:r=25}){const o=FIBER.useThree((e=>e.gl)),a=FIBER.useThree((e=>e.scene)),n=FIBER.useThree((e=>e.camera));return React__namespace.useEffect((()=>{const i=THREE__namespace.ShaderChunk.shadowmap_pars_fragment;return THREE__namespace.ShaderChunk.shadowmap_pars_fragment=THREE__namespace.ShaderChunk.shadowmap_pars_fragment.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+pcss({size:r,samples:t,focus:e})).replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),reset(o,a,n),()=>{THREE__namespace.ShaderChunk.shadowmap_pars_fragment=i,reset(o,a,n)}}),[e,r,t]),null}function create(e,t){const r=e+"Geometry";return React__namespace.forwardRef((({args:e,children:o,...a},n)=>{const i=React__namespace.useRef(null);return React__namespace.useImperativeHandle(n,(()=>i.current)),React__namespace.useLayoutEffect((()=>{null==t||t(i.current)})),React__namespace.createElement("mesh",_extends__default.default({ref:i},a),React__namespace.createElement(r,{attach:"geometry",args:e}),o)}))}const Box=create("box"),Circle=create("circle"),Cone=create("cone"),Cylinder=create("cylinder"),Sphere=create("sphere"),Plane=create("plane"),Tube=create("tube"),Torus=create("torus"),TorusKnot=create("torusKnot"),Tetrahedron=create("tetrahedron"),Ring=create("ring"),Polyhedron=create("polyhedron"),Icosahedron=create("icosahedron"),Octahedron=create("octahedron"),Dodecahedron=create("dodecahedron"),Extrude=create("extrude"),Lathe=create("lathe"),Capsule=create("capsule"),Shape=create("shape",(({geometry:e})=>{const t=e.attributes.position,r=(new THREE__namespace.Box3).setFromBufferAttribute(t),o=new THREE__namespace.Vector3;r.getSize(o);const a=[];let n=0,i=0,s=0,p=0;for(let e=0;e<t.count;e++)n=t.getX(e),i=t.getY(e),s=(n-r.min.x)/o.x,p=(i-r.min.y)/o.y,a.push(s,p);e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(a,2))})),eps=1e-5;function createShape(e,t,r){const o=new THREE.Shape,a=r-eps;return o.absarc(eps,eps,eps,-Math.PI/2,-Math.PI,!0),o.absarc(eps,t-2*a,eps,Math.PI,Math.PI/2,!0),o.absarc(e-2*a,t-2*a,eps,Math.PI/2,0,!0),o.absarc(e-2*a,eps,eps,0,-Math.PI/2,!0),o}const RoundedBox=React__namespace.forwardRef((function({args:[e=1,t=1,r=1]=[],radius:o=.05,steps:a=1,smoothness:n=4,creaseAngle:i=.4,children:s,...p},d){const l=React__namespace.useMemo((()=>createShape(e,t,o)),[e,t,o]),c=React__namespace.useMemo((()=>({depth:r-2*o,bevelEnabled:!0,bevelSegments:2*n,steps:a,bevelSize:o-eps,bevelThickness:o,curveSegments:n})),[r,o,n]),u=React__namespace.useRef();return React__namespace.useLayoutEffect((()=>{u.current&&(u.current.center(),threeStdlib.toCreasedNormals(u.current,i))}),[l,c]),React__namespace.createElement("mesh",_extends__default.default({ref:d},p),React__namespace.createElement("extrudeGeometry",{ref:u,args:[l,c]}),s)}));function createScreenQuadGeometry(){const e=new THREE__namespace.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new THREE__namespace.BufferAttribute(t,2)),e}const ScreenQuad=React__namespace.forwardRef((function({children:e,...t},r){const o=React__namespace.useMemo(createScreenQuadGeometry,[]);return React__namespace.createElement("mesh",_extends__default.default({ref:r,geometry:o,frustumCulled:!1},t),e)})),Resize=React__namespace.forwardRef((({children:e,width:t,height:r,depth:o,box3:a,precise:n=!0,...i},s)=>{const p=React__namespace.useRef(null),d=React__namespace.useRef(null),l=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{d.current.matrixWorld.identity();let e=a||(new THREE__namespace.Box3).setFromObject(l.current,n);const i=e.max.x-e.min.x,s=e.max.y-e.min.y,p=e.max.z-e.min.z;let c=Math.max(i,s,p);t&&(c=i),r&&(c=s),o&&(c=p),d.current.scale.setScalar(1/c)}),[t,r,o,a,n]),React__namespace.useImperativeHandle(s,(()=>p.current),[]),React__namespace.createElement("group",_extends__default.default({ref:p},i),React__namespace.createElement("group",{ref:d},React__namespace.createElement("group",{ref:l},e)))})),isOrthographic=e=>e&&e.isOrthographicCamera,isBox3=e=>e&&e.isBox3,context$4=React__namespace.createContext(null);function Bounds({children:e,damping:t=6,fit:r,clip:o,observe:a,margin:n=1.2,eps:i=.01,onFit:s}){const p=React__namespace.useRef(null),{camera:d,invalidate:l,size:c,controls:u}=FIBER.useThree(),g=u,m=React__namespace.useRef(s);function f(e,t){return Math.abs(e.x-t.x)<i&&Math.abs(e.y-t.y)<i&&Math.abs(e.z-t.z)<i}function h(e,t,r,o){e.x=THREE__namespace.MathUtils.damp(e.x,t.x,r,o),e.y=THREE__namespace.MathUtils.damp(e.y,t.y,r,o),e.z=THREE__namespace.MathUtils.damp(e.z,t.z,r,o)}m.current=s;const[y]=React__namespace.useState((()=>({animating:!1,focus:new THREE__namespace.Vector3,camera:new THREE__namespace.Vector3,zoom:1}))),[_]=React__namespace.useState((()=>({focus:new THREE__namespace.Vector3,camera:new THREE__namespace.Vector3,zoom:1}))),[b]=React__namespace.useState((()=>new THREE__namespace.Box3)),R=React__namespace.useMemo((()=>{function e(){const e=b.getSize(new THREE__namespace.Vector3),t=b.getCenter(new THREE__namespace.Vector3),r=Math.max(e.x,e.y,e.z),o=isOrthographic(d)?4*r:r/(2*Math.atan(Math.PI*d.fov/360)),a=isOrthographic(d)?4*r:o/d.aspect,i=n*Math.max(o,a);return{box:b,size:e,center:t,distance:i}}return{getSize:e,refresh(t){if(isBox3(t))b.copy(t);else{const e=t||p.current;e.updateWorldMatrix(!0,!0),b.setFromObject(e)}if(b.isEmpty()){const e=d.position.length()||10;b.setFromCenterAndSize(new THREE__namespace.Vector3,new THREE__namespace.Vector3(e,e,e))}if("OrthographicTrackballControls"===(null==g?void 0:g.constructor.name)){const{distance:t}=e(),r=d.position.clone().sub(g.target).normalize().multiplyScalar(t),o=g.target.clone().add(r);d.position.copy(o)}return this},clip(){const{distance:t}=e();return g&&(g.maxDistance=10*t),d.near=t/100,d.far=100*t,d.updateProjectionMatrix(),g&&g.update(),l(),this},to({position:r,target:o}){y.camera.copy(d.position);const{center:a}=e();return _.camera.set(...r),o?_.focus.set(...o):_.focus.copy(a),t?y.animating=!0:d.position.set(...r),this},fit(){y.camera.copy(d.position),g&&y.focus.copy(g.target);const{center:r,distance:o}=e(),a=r.clone().sub(d.position).normalize().multiplyScalar(o);if(_.camera.copy(r).sub(a),_.focus.copy(r),isOrthographic(d)){y.zoom=d.zoom;let e=0,o=0;const a=[new THREE__namespace.Vector3(b.min.x,b.min.y,b.min.z),new THREE__namespace.Vector3(b.min.x,b.max.y,b.min.z),new THREE__namespace.Vector3(b.min.x,b.min.y,b.max.z),new THREE__namespace.Vector3(b.min.x,b.max.y,b.max.z),new THREE__namespace.Vector3(b.max.x,b.max.y,b.max.z),new THREE__namespace.Vector3(b.max.x,b.max.y,b.min.z),new THREE__namespace.Vector3(b.max.x,b.min.y,b.max.z),new THREE__namespace.Vector3(b.max.x,b.min.y,b.min.z)];r.applyMatrix4(d.matrixWorldInverse);for(const t of a)t.applyMatrix4(d.matrixWorldInverse),e=Math.max(e,Math.abs(t.y-r.y)),o=Math.max(o,Math.abs(t.x-r.x));e*=2,o*=2;const i=(d.top-d.bottom)/e,s=(d.right-d.left)/o;_.zoom=Math.min(i,s)/n,t||(d.zoom=_.zoom,d.updateProjectionMatrix())}return t?y.animating=!0:(d.position.copy(_.camera),d.lookAt(_.focus),g&&(g.target.copy(_.focus),g.update())),m.current&&m.current(this.getSize()),l(),this}}}),[b,d,g,n,t,l]);React__namespace.useLayoutEffect((()=>{if(g){const e=()=>y.animating=!1;return g.addEventListener("start",e),()=>g.removeEventListener("start",e)}}),[g]);const v=React__namespace.useRef(0);return React__namespace.useLayoutEffect((()=>{(a||0==v.current++)&&(R.refresh(),r&&R.fit(),o&&R.clip())}),[c,o,r,a,d,g]),FIBER.useFrame(((e,r)=>{if(y.animating){if(h(y.focus,_.focus,t,r),h(y.camera,_.camera,t,r),y.zoom=THREE__namespace.MathUtils.damp(y.zoom,_.zoom,t,r),d.position.copy(y.camera),isOrthographic(d)&&(d.zoom=y.zoom,d.updateProjectionMatrix()),g?(g.target.copy(y.focus),g.update()):d.lookAt(y.focus),l(),isOrthographic(d)&&!(Math.abs(y.zoom-_.zoom)<i))return;if(!isOrthographic(d)&&!f(y.camera,_.camera))return;if(g&&!f(y.focus,_.focus))return;y.animating=!1}})),React__namespace.createElement("group",{ref:p},React__namespace.createElement(context$4.Provider,{value:R},e))}function useBounds(){return React__namespace.useContext(context$4)}const CameraShake=React__namespace.forwardRef((({intensity:e=1,decay:t,decayRate:r=.65,maxYaw:o=.1,maxPitch:a=.1,maxRoll:n=.1,yawFrequency:i=.1,pitchFrequency:s=.1,rollFrequency:p=.1},d)=>{const l=FIBER.useThree((e=>e.camera)),c=FIBER.useThree((e=>e.controls)),u=React__namespace.useRef(e),g=React__namespace.useRef(l.rotation.clone()),[m]=React__namespace.useState((()=>new threeStdlib.SimplexNoise)),[f]=React__namespace.useState((()=>new threeStdlib.SimplexNoise)),[h]=React__namespace.useState((()=>new threeStdlib.SimplexNoise)),y=()=>{(u.current<0||u.current>1)&&(u.current=u.current<0?0:1)};return React__namespace.useImperativeHandle(d,(()=>({getIntensity:()=>u.current,setIntensity:e=>{u.current=e,y()}})),[]),React__namespace.useEffect((()=>{if(c){const e=()=>{g.current=l.rotation.clone()};return c.addEventListener("change",e),e(),()=>{c.removeEventListener("change",e)}}}),[l,c]),FIBER.useFrame(((e,d)=>{const c=Math.pow(u.current,2),_=o*c*m.noise(e.clock.elapsedTime*i,1),b=a*c*f.noise(e.clock.elapsedTime*s,1),R=n*c*h.noise(e.clock.elapsedTime*p,1);l.rotation.set(g.current.x+b,g.current.y+_,g.current.z+R),t&&u.current>0&&(u.current-=r*d,y())})),null})),Float=React__namespace.forwardRef((({children:e,enabled:t=!0,speed:r=1,rotationIntensity:o=1,floatIntensity:a=1,floatingRange:n=[-.1,.1],...i},s)=>{const p=React__namespace.useRef(null),d=React__namespace.useRef(1e4*Math.random());return FIBER.useFrame((e=>{var i,s;if(!t||0===r)return;const l=d.current+e.clock.getElapsedTime();p.current.rotation.x=Math.cos(l/4*r)/8*o,p.current.rotation.y=Math.sin(l/4*r)/8*o,p.current.rotation.z=Math.sin(l/4*r)/20*o;let c=Math.sin(l/4*r)/10;c=THREE__namespace.MathUtils.mapLinear(c,-.1,.1,null!==(i=null==n?void 0:n[0])&&void 0!==i?i:-.1,null!==(s=null==n?void 0:n[1])&&void 0!==s?s:.1),p.current.position.y=c*a,p.current.updateMatrix()})),React__namespace.createElement("group",i,React__namespace.createElement("group",{ref:mergeRefs__default.default([p,s]),matrixAutoUpdate:!1},e))})),presetsObj={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},CUBEMAP_ROOT="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",isArray=e=>Array.isArray(e);function useEnvironment({files:e=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:t="",preset:r,encoding:o,extensions:a}={}){var n;let i,s=null,p=!1;if(r){if(!(r in presetsObj))throw new Error("Preset must be one of: "+Object.keys(presetsObj).join(", "));e=presetsObj[r],t=CUBEMAP_ROOT}if(p=isArray(e),i=isArray(e)?"cube":e.startsWith("data:application/exr")?"exr":e.startsWith("data:application/hdr")?"hdr":null==(n=e.split(".").pop())?void 0:n.toLowerCase(),s=p?THREE.CubeTextureLoader:"hdr"===i?threeStdlib.RGBELoader:"exr"===i?threeStdlib.EXRLoader:null,!s)throw new Error("useEnvironment: Unrecognized file extension: "+e);const d=FIBER.useLoader(s,p?[e]:e,(e=>{null==e.setPath||e.setPath(t),a&&a(e)})),l=p?d[0]:d;l.mapping=p?THREE.CubeReflectionMapping:THREE.EquirectangularReflectionMapping;return"colorSpace"in l?l.colorSpace=(null!=o?o:p)?"srgb":"srgb-linear":l.encoding=(null!=o?o:p)?3001:3e3,l}const isRef$1=e=>e.current&&e.current.isScene,resolveScene=e=>isRef$1(e)?e.current:e;function setEnvProps(e,t,r,o,a=0){const n=resolveScene(t||r),i=n.background,s=n.environment,p=n.backgroundBlurriness||0;return"only"!==e&&(n.environment=o),e&&(n.background=o),e&&void 0!==n.backgroundBlurriness&&(n.backgroundBlurriness=a),()=>{"only"!==e&&(n.environment=s),e&&(n.background=i),e&&void 0!==n.backgroundBlurriness&&(n.backgroundBlurriness=p)}}function EnvironmentMap({scene:e,background:t=!1,blur:r,map:o}){const a=FIBER.useThree((e=>e.scene));return React__namespace.useLayoutEffect((()=>{if(o)return setEnvProps(t,e,a,o,r)}),[a,e,o,t,r]),null}function EnvironmentCube({background:e=!1,scene:t,blur:r,...o}){const a=useEnvironment(o),n=FIBER.useThree((e=>e.scene));return React__namespace.useLayoutEffect((()=>setEnvProps(e,t,n,a,r)),[a,e,t,n,r]),null}function EnvironmentPortal({children:e,near:t=1,far:r=1e3,resolution:o=256,frames:a=1,map:n,background:i=!1,blur:s,scene:p,files:d,path:l,preset:c,extensions:u}){const g=FIBER.useThree((e=>e.gl)),m=FIBER.useThree((e=>e.scene)),f=React__namespace.useRef(null),[h]=React__namespace.useState((()=>new THREE.Scene)),y=React__namespace.useMemo((()=>{const e=new THREE.WebGLCubeRenderTarget(o);return e.texture.type=THREE.HalfFloatType,e}),[o]);React__namespace.useLayoutEffect((()=>(1===a&&f.current.update(g,h),setEnvProps(i,p,m,y.texture,s))),[e,h,y.texture,p,m,i,a,g]);let _=1;return FIBER.useFrame((()=>{(a===1/0||_<a)&&(f.current.update(g,h),_++)})),React__namespace.createElement(React__namespace.Fragment,null,FIBER.createPortal(React__namespace.createElement(React__namespace.Fragment,null,e,React__namespace.createElement("cubeCamera",{ref:f,args:[t,r,y]}),d||c?React__namespace.createElement(EnvironmentCube,{background:!0,files:d,preset:c,path:l,extensions:u}):n?React__namespace.createElement(EnvironmentMap,{background:!0,map:n,extensions:u}):null),h))}function EnvironmentGround(e){var t,r,o,a;const n=useEnvironment(e),i=e.map||n;React__namespace.useMemo((()=>FIBER.extend({GroundProjectedEnvImpl:threeStdlib.GroundProjectedEnv})),[]);const s=React__namespace.useMemo((()=>[i]),[i]),p=null==(t=e.ground)?void 0:t.height,d=null==(r=e.ground)?void 0:r.radius,l=null!==(o=null==(a=e.ground)?void 0:a.scale)&&void 0!==o?o:1e3;return React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement(EnvironmentMap,_extends__default.default({},e,{map:i})),React__namespace.createElement("groundProjectedEnvImpl",{args:s,scale:l,height:p,radius:d}))}function Environment(e){return e.ground?React__namespace.createElement(EnvironmentGround,e):e.map?React__namespace.createElement(EnvironmentMap,e):e.children?React__namespace.createElement(EnvironmentPortal,e):React__namespace.createElement(EnvironmentCube,e)}const ContactShadows=React__namespace.forwardRef((({scale:e=10,frames:t=1/0,opacity:r=1,width:o=1,height:a=1,blur:n=1,far:i=10,resolution:s=512,smooth:p=!0,color:d="#000000",depthWrite:l=!1,renderOrder:c,...u},g)=>{const m=React__namespace.useRef(null),f=FIBER.useThree((e=>e.scene)),h=FIBER.useThree((e=>e.gl)),y=React__namespace.useRef(null);o*=Array.isArray(e)?e[0]:e||1,a*=Array.isArray(e)?e[1]:e||1;const[_,b,R,v,E,M,O]=React__namespace.useMemo((()=>{const e=new THREE__namespace.WebGLRenderTarget(s,s),t=new THREE__namespace.WebGLRenderTarget(s,s);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const r=new THREE__namespace.PlaneGeometry(o,a).rotateX(Math.PI/2),n=new THREE__namespace.Mesh(r),i=new THREE__namespace.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new THREE__namespace.Color(d)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const p=new THREE__namespace.ShaderMaterial(threeStdlib.HorizontalBlurShader),l=new THREE__namespace.ShaderMaterial(threeStdlib.VerticalBlurShader);return l.depthTest=p.depthTest=!1,[e,r,i,n,p,l,t]}),[s,o,a,e,d]),F=e=>{v.visible=!0,v.material=E,E.uniforms.tDiffuse.value=_.texture,E.uniforms.h.value=1*e/256,h.setRenderTarget(O),h.render(v,y.current),v.material=M,M.uniforms.tDiffuse.value=O.texture,M.uniforms.v.value=1*e/256,h.setRenderTarget(_),h.render(v,y.current),v.visible=!1};let x,T,S=0;return FIBER.useFrame((()=>{y.current&&(t===1/0||S<t)&&(S++,x=f.background,T=f.overrideMaterial,m.current.visible=!1,f.background=null,f.overrideMaterial=R,h.setRenderTarget(_),h.render(f,y.current),F(n),p&&F(.4*n),h.setRenderTarget(null),m.current.visible=!0,f.overrideMaterial=T,f.background=x)})),React__namespace.useImperativeHandle(g,(()=>m.current),[]),React__namespace.createElement("group",_extends__default.default({"rotation-x":Math.PI/2},u,{ref:m}),React__namespace.createElement("mesh",{renderOrder:c,geometry:b,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},React__namespace.createElement("meshBasicMaterial",{transparent:!0,map:_.texture,opacity:r,depthWrite:l})),React__namespace.createElement("orthographicCamera",{ref:y,args:[-o/2,o/2,a/2,-a/2,0,i]}))}));function isLight(e){return e.isLight}function isGeometry$1(e){return!!e.geometry}const accumulativeContext=React__namespace.createContext(null),SoftShadowMaterial=shaderMaterial({color:new THREE__namespace.Color,blend:2,alphaTest:.75,opacity:0,map:null},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }","varying vec2 vUv;\n uniform sampler2D map;\n uniform vec3 color;\n uniform float opacity;\n uniform float alphaTest;\n uniform float blend;\n void main() {\n vec4 sampledDiffuseColor = texture2D(map, vUv);\n gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),AccumulativeShadows=React__namespace.forwardRef((({children:e,temporal:t,frames:r=40,limit:o=1/0,blend:a=20,scale:n=10,opacity:i=1,alphaTest:s=.75,color:p="black",colorBlend:d=2,resolution:l=1024,toneMapped:c=!0,...u},g)=>{FIBER.extend({SoftShadowMaterial:SoftShadowMaterial});const m=FIBER.useThree((e=>e.gl)),f=FIBER.useThree((e=>e.scene)),h=FIBER.useThree((e=>e.camera)),y=FIBER.useThree((e=>e.invalidate)),_=React__namespace.useRef(null),b=React__namespace.useRef(null),[R]=React__namespace.useState((()=>new ProgressiveLightMap(m,f,l)));React__namespace.useLayoutEffect((()=>{R.configure(_.current)}),[]);const v=React__namespace.useMemo((()=>({lights:new Map,temporal:!!t,frames:Math.max(2,r),blend:Math.max(2,r===1/0?a:r),count:0,getMesh:()=>_.current,reset:()=>{R.clear();const e=_.current.material;e.opacity=0,e.alphaTest=0,v.count=0},update:(e=1)=>{const t=_.current.material;v.temporal?(t.opacity=Math.min(i,t.opacity+i/v.blend),t.alphaTest=Math.min(s,t.alphaTest+s/v.blend)):(t.opacity=i,t.alphaTest=s),b.current.visible=!0,R.prepare();for(let t=0;t<e;t++)v.lights.forEach((e=>e.update())),R.update(h,v.blend);b.current.visible=!1,R.finish()}})),[R,h,f,t,r,a,i,s]);return React__namespace.useLayoutEffect((()=>{v.reset(),v.temporal||v.frames===1/0||v.update(v.blend)})),React__namespace.useImperativeHandle(g,(()=>v),[v]),FIBER.useFrame((()=>{(v.temporal||v.frames===1/0)&&v.count<v.frames&&v.count<o&&(y(),v.update(),v.count++)})),React__namespace.createElement("group",u,React__namespace.createElement("group",{traverse:()=>null,ref:b},React__namespace.createElement(accumulativeContext.Provider,{value:v},e)),React__namespace.createElement("mesh",{receiveShadow:!0,ref:_,scale:n,rotation:[-Math.PI/2,0,0]},React__namespace.createElement("planeGeometry",null),React__namespace.createElement("softShadowMaterial",{transparent:!0,depthWrite:!1,toneMapped:c,color:p,blend:d,map:R.progressiveLightMap2.texture})))})),RandomizedLight=React__namespace.forwardRef((({castShadow:e=!0,bias:t=.001,mapSize:r=512,size:o=5,near:a=.5,far:n=500,frames:i=1,position:s=[0,0,0],radius:p=1,amount:d=8,intensity:l=1,ambient:c=.5,...u},g)=>{const m=React__namespace.useRef(null),f=new THREE__namespace.Vector3(...s).length(),h=React__namespace.useContext(accumulativeContext),y=React__namespace.useCallback((()=>{let e;if(m.current)for(let t=0;t<m.current.children.length;t++)if(e=m.current.children[t],Math.random()>c)e.position.set(s[0]+THREE__namespace.MathUtils.randFloatSpread(p),s[1]+THREE__namespace.MathUtils.randFloatSpread(p),s[2]+THREE__namespace.MathUtils.randFloatSpread(p));else{let t=Math.acos(2*Math.random()-1)-Math.PI/2,r=2*Math.PI*Math.random();e.position.set(Math.cos(t)*Math.cos(r)*f,Math.abs(Math.cos(t)*Math.sin(r)*f),Math.sin(t)*f)}}),[p,c,f,...s]),_=React__namespace.useMemo((()=>({update:y})),[y]);return React__namespace.useImperativeHandle(g,(()=>_),[_]),React__namespace.useLayoutEffect((()=>{const e=m.current;return h&&h.lights.set(e.uuid,_),()=>{h.lights.delete(e.uuid)}}),[h,_]),React__namespace.createElement("group",_extends__default.default({ref:m},u),Array.from({length:d},((i,s)=>React__namespace.createElement("directionalLight",{key:s,castShadow:e,"shadow-bias":t,"shadow-mapSize":[r,r],intensity:l/d},React__namespace.createElement("orthographicCamera",{attach:"shadow-camera",args:[-o,o,o,-o,a,n]})))))}));class ProgressiveLightMap{constructor(e,t,r=1024){this.renderer=e,this.res=r,this.scene=t,this.buffer1Active=!1,this.lights=[],this.meshes=[],this.object=null,this.clearColor=new THREE__namespace.Color,this.clearAlpha=0;const o=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?THREE__namespace.HalfFloatType:THREE__namespace.FloatType;this.progressiveLightMap1=new THREE__namespace.WebGLRenderTarget(this.res,this.res,{type:o}),this.progressiveLightMap2=new THREE__namespace.WebGLRenderTarget(this.res,this.res,{type:o}),this.discardMat=new DiscardMaterial,this.targetMat=new THREE__namespace.MeshLambertMaterial({fog:!1}),this.previousShadowMap={value:this.progressiveLightMap1.texture},this.averagingWindow={value:100},this.targetMat.onBeforeCompile=e=>{e.vertexShader="varying vec2 vUv;\n"+e.vertexShader.slice(0,-1)+"vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv;\n"+e.fragmentShader.slice(0,t)+"uniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;\n gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);\n }",e.uniforms.previousShadowMap=this.previousShadowMap,e.uniforms.averagingWindow=this.averagingWindow}}clear(){this.renderer.getClearColor(this.clearColor),this.clearAlpha=this.renderer.getClearAlpha(),this.renderer.setClearColor("black",1),this.renderer.setRenderTarget(this.progressiveLightMap1),this.renderer.clear(),this.renderer.setRenderTarget(this.progressiveLightMap2),this.renderer.clear(),this.renderer.setRenderTarget(null),this.renderer.setClearColor(this.clearColor,this.clearAlpha),this.lights=[],this.meshes=[],this.scene.traverse((e=>{isGeometry$1(e)?this.meshes.push({object:e,material:e.material}):isLight(e)&&this.lights.push({object:e,intensity:e.intensity})}))}prepare(){this.lights.forEach((e=>e.object.intensity=0)),this.meshes.forEach((e=>e.object.material=this.discardMat))}finish(){this.lights.forEach((e=>e.object.intensity=e.intensity)),this.meshes.forEach((e=>e.object.material=e.material))}configure(e){this.object=e}update(e,t=100){if(!this.object)return;this.averagingWindow.value=t,this.object.material=this.targetMat;const r=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,o=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1,a=this.scene.background;this.scene.background=null,this.renderer.setRenderTarget(r),this.previousShadowMap.value=o.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e),this.renderer.setRenderTarget(null),this.scene.background=a}}const presets={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function Refit({radius:e,adjustCamera:t}){const r=useBounds();return React__namespace.useEffect((()=>{t&&r.refresh().clip().fit()}),[e,t]),null}function Stage({children:e,center:t,adjustCamera:r=!0,intensity:o=.5,shadows:a="contact",environment:n="city",preset:i="rembrandt",...s}){var p,d,l,c,u,g,m,f;const h="string"==typeof i?presets[i]:i,[{radius:y,height:_},b]=React__namespace.useState({radius:0,width:0,height:0,depth:0}),R=null!==(p=null==a?void 0:a.bias)&&void 0!==p?p:-1e-4,v=null!==(d=null==a?void 0:a.normalBias)&&void 0!==d?d:0,E=null!==(l=null==a?void 0:a.size)&&void 0!==l?l:1024,M=null!==(c=null==a?void 0:a.offset)&&void 0!==c?c:0,O="contact"===a||"contact"===(null==a?void 0:a.type),F="accumulative"===a||"accumulative"===(null==a?void 0:a.type),x={..."object"==typeof a?a:{}},T=n?"string"==typeof n?{preset:n}:n:null,S=React__namespace.useCallback((e=>{const{width:r,height:o,depth:a,boundingSphere:n}=e;b({radius:n.radius,width:r,height:o,depth:a}),null!=t&&t.onCentered&&t.onCentered(e)}),[]);return React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("ambientLight",{intensity:o/3}),React__namespace.createElement("spotLight",{penumbra:1,position:[h.main[0]*y,h.main[1]*y,h.main[2]*y],intensity:2*o,castShadow:!!a,"shadow-bias":R,"shadow-normalBias":v,"shadow-mapSize":E}),React__namespace.createElement("pointLight",{position:[h.fill[0]*y,h.fill[1]*y,h.fill[2]*y],intensity:o}),React__namespace.createElement(Bounds,_extends__default.default({fit:!!r,clip:!!r,margin:Number(r),observe:!0},s),React__namespace.createElement(Refit,{radius:y,adjustCamera:r}),React__namespace.createElement(Center,_extends__default.default({},t,{position:[0,M/2,0],onCentered:S}),e)),React__namespace.createElement("group",{position:[0,-_/2-M/2,0]},O&&React__namespace.createElement(ContactShadows,_extends__default.default({scale:4*y,far:y,blur:2},x)),F&&React__namespace.createElement(AccumulativeShadows,_extends__default.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*y},x),React__namespace.createElement(RandomizedLight,{amount:null!==(u=x.amount)&&void 0!==u?u:8,radius:null!==(g=x.radius)&&void 0!==g?g:y,ambient:null!==(m=x.ambient)&&void 0!==m?m:.5,intensity:null!==(f=x.intensity)&&void 0!==f?f:1,position:[h.main[0]*y,h.main[1]*y,h.main[2]*y],size:4*y,bias:-R,mapSize:E}))),n&&React__namespace.createElement(Environment,T))}const easeInExpo=e=>0===e?0:Math.pow(2,10*e-10);function Backdrop({children:e,floor:t=.25,segments:r=20,receiveShadow:o,...a}){const n=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{let e=0;const o=r/r/2,a=n.current.attributes.position;for(let n=0;n<r+1;n++)for(let i=0;i<r+1;i++)a.setXYZ(e++,n/r-o+(0===n?-t:0),i/r-o,easeInExpo(n/r));a.needsUpdate=!0,n.current.computeVertexNormals()}),[r,t]),React__namespace.createElement("group",a,React__namespace.createElement("mesh",{receiveShadow:o,rotation:[-Math.PI/2,0,Math.PI/2]},React__namespace.createElement("planeGeometry",{ref:n,args:[1,1,r,r]}),e))}const Shadow=React__namespace.forwardRef((({fog:e=!1,renderOrder:t,depthWrite:r=!1,colorStop:o=0,color:a="black",opacity:n=.5,...i},s)=>{const p=React__namespace.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const t=e.getContext("2d"),r=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return r.addColorStop(o,new THREE.Color(a).getStyle()),r.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=r,t.fillRect(0,0,e.width,e.height),e}),[a,o]);return React__namespace.createElement("mesh",_extends__default.default({renderOrder:t,ref:s,"rotation-x":-Math.PI/2},i),React__namespace.createElement("planeGeometry",null),React__namespace.createElement("meshBasicMaterial",{transparent:!0,opacity:n,fog:e,depthWrite:r,side:THREE.DoubleSide},React__namespace.createElement("canvasTexture",{attach:"map",args:[p]})))}));function createNormalMaterial(e=THREE__namespace.FrontSide){const t={value:new THREE__namespace.Matrix4};return Object.assign(new THREE__namespace.MeshNormalMaterial({side:e}),{viewMatrix:t,onBeforeCompile:e=>{e.uniforms.viewMatrix=t,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const CausticsProjectionMaterial=shaderMaterial({causticsTexture:null,causticsTextureB:null,color:new THREE__namespace.Color,lightProjMatrix:new THREE__namespace.Matrix4,lightViewMatrix:new THREE__namespace.Matrix4},"varying vec3 vWorldPosition; \n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }","varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture; \n uniform sampler2D causticsTextureB; \n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics \n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5; \n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),CausticsMaterial=shaderMaterial({cameraMatrixWorld:new THREE__namespace.Matrix4,cameraProjectionMatrixInv:new THREE__namespace.Matrix4,normalTexture:null,depthTexture:null,lightDir:new THREE__namespace.Vector3(0,1,0),lightPlaneNormal:new THREE__namespace.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new THREE__namespace.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }"," \n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n } \n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),NORMALPROPS={depth:!0,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,encoding:THREE__namespace.LinearEncoding,type:THREE__namespace.UnsignedByteType},CAUSTICPROPS={minFilter:THREE__namespace.LinearMipmapLinearFilter,magFilter:THREE__namespace.LinearFilter,encoding:THREE__namespace.LinearEncoding,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,generateMipmaps:!0},Caustics=React__namespace.forwardRef((({debug:e,children:t,frames:r=1,ior:o=1.1,color:a="white",causticsOnly:n=!1,backside:i=!1,backsideIOR:s=1.1,worldRadius:p=.3125,intensity:d=.05,resolution:l=2024,lightSource:c=[5,5,5],...u},g)=>{FIBER.extend({CausticsProjectionMaterial:CausticsProjectionMaterial});const m=React__namespace.useRef(null),f=React__namespace.useRef(null),h=React__namespace.useRef(null),y=React__namespace.useRef(null),_=FIBER.useThree((e=>e.gl)),b=useHelper(e&&f,THREE__namespace.CameraHelper),R=useFBO(l,l,NORMALPROPS),v=useFBO(l,l,NORMALPROPS),E=useFBO(l,l,CAUSTICPROPS),M=useFBO(l,l,CAUSTICPROPS),[O]=React__namespace.useState((()=>createNormalMaterial())),[F]=React__namespace.useState((()=>createNormalMaterial(THREE__namespace.BackSide))),[x]=React__namespace.useState((()=>new CausticsMaterial)),[T]=React__namespace.useState((()=>new threeStdlib.FullScreenQuad(x)));React__namespace.useLayoutEffect((()=>{m.current.updateWorldMatrix(!1,!0)}));let S=0;const k=new THREE__namespace.Vector3,C=new THREE__namespace.Frustum,B=new THREE__namespace.Matrix4,w=new THREE__namespace.Plane,L=new THREE__namespace.Vector3,A=new THREE__namespace.Vector3,D=new THREE__namespace.Box3,I=new THREE__namespace.Vector3;return FIBER.useFrame(((t,a)=>{if(r===1/0||S++<r){var u,g;Array.isArray(c)?L.fromArray(c).normalize():L.copy(m.current.worldToLocal(c.current.getWorldPosition(k)).normalize()),A.copy(L).multiplyScalar(-1);let t=[];null==(u=h.current.parent)||u.matrixWorld.identity(),D.setFromObject(h.current,!0),t.push(new THREE__namespace.Vector3(D.min.x,D.min.y,D.min.z)),t.push(new THREE__namespace.Vector3(D.min.x,D.min.y,D.max.z)),t.push(new THREE__namespace.Vector3(D.min.x,D.max.y,D.min.z)),t.push(new THREE__namespace.Vector3(D.min.x,D.max.y,D.max.z)),t.push(new THREE__namespace.Vector3(D.max.x,D.min.y,D.min.z)),t.push(new THREE__namespace.Vector3(D.max.x,D.min.y,D.max.z)),t.push(new THREE__namespace.Vector3(D.max.x,D.max.y,D.min.z)),t.push(new THREE__namespace.Vector3(D.max.x,D.max.y,D.max.z));const r=t.map((e=>e.clone()));D.getCenter(I),t=t.map((e=>e.clone().sub(I)));const a=w.set(A,0),S=t.map((e=>a.projectPoint(e,new THREE__namespace.Vector3))),z=S.reduce(((e,t)=>e.add(t)),k.set(0,0,0)).divideScalar(S.length),P=S.map((e=>e.distanceTo(z))).reduce(((e,t)=>Math.max(e,t))),j=t.map((e=>e.dot(L))).reduce(((e,t)=>Math.max(e,t)));f.current.position.copy(L.clone().multiplyScalar(j).add(I)),f.current.lookAt(h.current.localToWorld(I.clone()));const G=B.lookAt(f.current.position,I,k.set(0,1,0));f.current.left=-P,f.current.right=P,f.current.top=P,f.current.bottom=-P;const N=k.set(0,P,0).applyMatrix4(G),W=(f.current.position.y+N.y)/L.y;f.current.near=.1,f.current.far=W,f.current.updateProjectionMatrix(),f.current.updateMatrixWorld();const H=r.map((e=>e.add(L.clone().multiplyScalar(-e.y/L.y)))),U=H.reduce(((e,t)=>e.add(t)),k.set(0,0,0)).divideScalar(H.length),V=2*H.map((e=>Math.hypot(e.x-U.x,e.z-U.z))).reduce(((e,t)=>Math.max(e,t)));y.current.scale.setScalar(V),y.current.position.copy(U),e&&(null==(g=b.current)||g.update()),F.viewMatrix.value=O.viewMatrix.value=f.current.matrixWorldInverse;const $=C.setFromProjectionMatrix(B.multiplyMatrices(f.current.projectionMatrix,f.current.matrixWorldInverse)).planes[4];x.cameraMatrixWorld=f.current.matrixWorld,x.cameraProjectionMatrixInv=f.current.projectionMatrixInverse,x.lightDir=A,x.lightPlaneNormal=$.normal,x.lightPlaneConstant=$.constant,x.near=f.current.near,x.far=f.current.far,x.resolution=l,x.size=P,x.intensity=d,x.worldRadius=p,h.current.visible=!0,_.setRenderTarget(R),_.clear(),h.current.overrideMaterial=O,_.render(h.current,f.current),_.setRenderTarget(v),_.clear(),i&&(h.current.overrideMaterial=F,_.render(h.current,f.current)),h.current.overrideMaterial=null,x.ior=o,y.current.material.lightProjMatrix=f.current.projectionMatrix,y.current.material.lightViewMatrix=f.current.matrixWorldInverse,x.normalTexture=R.texture,x.depthTexture=R.depthTexture,_.setRenderTarget(E),_.clear(),T.render(_),x.ior=s,x.normalTexture=v.texture,x.depthTexture=v.depthTexture,_.setRenderTarget(M),_.clear(),i&&T.render(_),_.setRenderTarget(null),n&&(h.current.visible=!1)}})),React__namespace.useImperativeHandle(g,(()=>m.current),[]),React__namespace.createElement("group",_extends__default.default({ref:m},u),React__namespace.createElement("scene",{ref:h},React__namespace.createElement("orthographicCamera",{ref:f,up:[0,1,0]}),t),React__namespace.createElement("mesh",{renderOrder:2,ref:y,"rotation-x":-Math.PI/2},React__namespace.createElement("planeGeometry",null),React__namespace.createElement("causticsProjectionMaterial",{transparent:!0,color:a,causticsTexture:E.texture,causticsTextureB:M.texture,blending:THREE__namespace.CustomBlending,blendSrc:THREE__namespace.OneFactor,blendDst:THREE__namespace.SrcAlphaFactor,depthWrite:!1}),e&&React__namespace.createElement(Edges,null,React__namespace.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));FIBER.extend({MeshReflectorMaterial:MeshReflectorMaterial$1});const Reflector=React__namespace.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:r=256,blur:o=[0,0],args:a=[1,1],minDepthThreshold:n=.9,maxDepthThreshold:i=1,depthScale:s=0,depthToBlurRatioBias:p=.25,mirror:d=0,children:l,debug:c=0,distortion:u=1,mixContrast:g=1,distortionMap:m,...f},h)=>{React__namespace.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const y=FIBER.useThree((({gl:e})=>e)),_=FIBER.useThree((({camera:e})=>e)),b=FIBER.useThree((({scene:e})=>e)),R=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,v=React__namespace.useRef(null),[E]=React__namespace.useState((()=>new THREE.Plane)),[M]=React__namespace.useState((()=>new THREE.Vector3)),[O]=React__namespace.useState((()=>new THREE.Vector3)),[F]=React__namespace.useState((()=>new THREE.Vector3)),[x]=React__namespace.useState((()=>new THREE.Matrix4)),[T]=React__namespace.useState((()=>new THREE.Vector3(0,0,-1))),[S]=React__namespace.useState((()=>new THREE.Vector4)),[k]=React__namespace.useState((()=>new THREE.Vector3)),[C]=React__namespace.useState((()=>new THREE.Vector3)),[B]=React__namespace.useState((()=>new THREE.Vector4)),[w]=React__namespace.useState((()=>new THREE.Matrix4)),[L]=React__namespace.useState((()=>new THREE.PerspectiveCamera)),A=React__namespace.useCallback((()=>{if(O.setFromMatrixPosition(v.current.matrixWorld),F.setFromMatrixPosition(_.matrixWorld),x.extractRotation(v.current.matrixWorld),M.set(0,0,1),M.applyMatrix4(x),k.subVectors(O,F),k.dot(M)>0)return;k.reflect(M).negate(),k.add(O),x.extractRotation(_.matrixWorld),T.set(0,0,-1),T.applyMatrix4(x),T.add(F),C.subVectors(O,T),C.reflect(M).negate(),C.add(O),L.position.copy(k),L.up.set(0,1,0),L.up.applyMatrix4(x),L.up.reflect(M),L.lookAt(C),L.far=_.far,L.updateMatrixWorld(),L.projectionMatrix.copy(_.projectionMatrix),w.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),w.multiply(L.projectionMatrix),w.multiply(L.matrixWorldInverse),w.multiply(v.current.matrixWorld),E.setFromNormalAndCoplanarPoint(M,O),E.applyMatrix4(L.matrixWorldInverse),S.set(E.normal.x,E.normal.y,E.normal.z,E.constant);const e=L.projectionMatrix;B.x=(Math.sign(S.x)+e.elements[8])/e.elements[0],B.y=(Math.sign(S.y)+e.elements[9])/e.elements[5],B.z=-1,B.w=(1+e.elements[10])/e.elements[14],S.multiplyScalar(2/S.dot(B)),e.elements[2]=S.x,e.elements[6]=S.y,e.elements[10]=S.z+1,e.elements[14]=S.w}),[]),[D,I,z,P]=React__namespace.useMemo((()=>{const a={type:THREE.HalfFloatType,minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter},l=new THREE.WebGLRenderTarget(r,r,a);l.depthBuffer=!0,l.depthTexture=new THREE.DepthTexture(r,r),l.depthTexture.format=THREE.DepthFormat,l.depthTexture.type=THREE.UnsignedShortType;const f=new THREE.WebGLRenderTarget(r,r,a);return[l,f,new BlurPass({gl:y,resolution:r,width:o[0],height:o[1],minDepthThreshold:n,maxDepthThreshold:i,depthScale:s,depthToBlurRatioBias:p}),{mirror:d,textureMatrix:w,mixBlur:e,tDiffuse:l.texture,tDepth:l.depthTexture,tDiffuseBlur:f.texture,hasBlur:R,mixStrength:t,minDepthThreshold:n,maxDepthThreshold:i,depthScale:s,depthToBlurRatioBias:p,transparent:!0,debug:c,distortion:u,distortionMap:m,mixContrast:g,"defines-USE_BLUR":R?"":void 0,"defines-USE_DEPTH":s>0?"":void 0,"defines-USE_DISTORTION":m?"":void 0}]}),[y,o,w,r,d,R,e,t,n,i,s,p,c,u,m,g]);return FIBER.useFrame((()=>{if(null==v||!v.current)return;v.current.visible=!1;const e=y.xr.enabled,t=y.shadowMap.autoUpdate;A(),y.xr.enabled=!1,y.shadowMap.autoUpdate=!1,y.setRenderTarget(D),y.state.buffers.depth.setMask(!0),y.autoClear||y.clear(),y.render(b,L),R&&z.render(y,D,I),y.xr.enabled=e,y.shadowMap.autoUpdate=t,v.current.visible=!0,y.setRenderTarget(null)})),React__namespace.createElement("mesh",_extends__default.default({ref:mergeRefs__default.default([v,h])},f),React__namespace.createElement("planeGeometry",{args:a}),l?l("meshReflectorMaterial",P):React__namespace.createElement("meshReflectorMaterial",P))}));class SpotLightMaterial extends THREE.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new THREE.Vector3(0,0,0)},lightColor:{value:new THREE.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new THREE.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n\n #include <tonemapping_fragment>\n\t #include <encodings_fragment>\n }"})}}var SpotlightShadowShader="#define GLSLIFY 1\nvarying vec2 vUv;uniform sampler2D uShadowMap;uniform float uTime;void main(){vec3 color=texture2D(uShadowMap,vUv).xyz;gl_FragColor=vec4(color,1.);}";const isSpotLight=e=>null==e?void 0:e.isSpotLight;function VolumetricMesh({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:o,color:a="white",distance:n=5,angle:i=.15,attenuation:s=5,anglePower:p=5}){const d=React__namespace.useRef(null),l=FIBER.useThree((e=>e.size)),c=FIBER.useThree((e=>e.camera)),u=FIBER.useThree((e=>e.viewport.dpr)),[g]=React__namespace.useState((()=>new SpotLightMaterial)),[m]=React__namespace.useState((()=>new THREE.Vector3));t=void 0===t?.1:t,r=void 0===r?7*i:r,FIBER.useFrame((()=>{g.uniforms.spotPosition.value.copy(d.current.getWorldPosition(m)),d.current.lookAt(d.current.parent.target.getWorldPosition(m))}));const f=React__namespace.useMemo((()=>{const e=new THREE.CylinderGeometry(t,r,n,128,64,!0);return e.applyMatrix4((new THREE.Matrix4).makeTranslation(0,-n/2,0)),e.applyMatrix4((new THREE.Matrix4).makeRotationX(-Math.PI/2)),e}),[n,t,r]);return React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("mesh",{ref:d,geometry:f,raycast:()=>null},React__namespace.createElement("primitive",{object:g,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":a,"uniforms-attenuation-value":s,"uniforms-anglePower-value":p,"uniforms-depth-value":o,"uniforms-cameraNear-value":c.near,"uniforms-cameraFar-value":c.far,"uniforms-resolution-value":o?[l.width*u,l.height*u]:[0,0]})))}function useCommon(e,t,r,o,a){const[[n,i]]=React__namespace.useState((()=>[new THREE.Vector3,new THREE.Vector3]));React__namespace.useLayoutEffect((()=>{if(!isSpotLight(e.current))throw new Error("SpotlightShadow must be a child of a SpotLight");e.current.shadow.mapSize.set(r,o),e.current.shadow.needsUpdate=!0}),[e,r,o]),FIBER.useFrame((()=>{if(!e.current)return;const r=e.current.position,o=e.current.target.position;i.copy(o).sub(r);var s=i.length();i.normalize().multiplyScalar(s*a),n.copy(r).add(i),t.current.position.copy(n),t.current.lookAt(e.current.target.position)}))}function SpotlightShadowWithShader({distance:e=.4,alphaTest:t=.5,map:r,shader:o=SpotlightShadowShader,width:a=512,height:n=512,scale:i=1,children:s,...p}){const d=React__namespace.useRef(null),l=p.spotlightRef,c=p.debug;useCommon(l,d,a,n,e);const u=React__namespace.useMemo((()=>new THREE.WebGLRenderTarget(a,n,{format:THREE.RGBAFormat,encoding:THREE.LinearEncoding,stencilBuffer:!1})),[a,n]),g=React__namespace.useRef({uShadowMap:{value:r},uTime:{value:0}});React__namespace.useEffect((()=>{g.current.uShadowMap.value=r}),[r]);const m=React__namespace.useMemo((()=>new threeStdlib.FullScreenQuad(new THREE.ShaderMaterial({uniforms:g.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:o}))),[o]);return React__namespace.useEffect((()=>()=>{m.material.dispose(),m.dispose()}),[m]),React__namespace.useEffect((()=>()=>u.dispose()),[u]),FIBER.useFrame((({gl:e},t)=>{g.current.uTime.value+=t,e.setRenderTarget(u),m.render(e),e.setRenderTarget(null)})),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("mesh",{ref:d,scale:i,castShadow:!0},React__namespace.createElement("planeGeometry",null),React__namespace.createElement("meshBasicMaterial",{transparent:!0,side:THREE.DoubleSide,alphaTest:t,alphaMap:u.texture,"alphaMap-wrapS":THREE.RepeatWrapping,"alphaMap-wrapT":THREE.RepeatWrapping,opacity:c?1:0},s)))}function SpotlightShadowWithoutShader({distance:e=.4,alphaTest:t=.5,map:r,width:o=512,height:a=512,scale:n,children:i,...s}){const p=React__namespace.useRef(null),d=s.spotlightRef,l=s.debug;return useCommon(d,p,o,a,e),React__namespace.createElement(React__namespace.Fragment,null,React__namespace.createElement("mesh",{ref:p,scale:n,castShadow:!0},React__namespace.createElement("planeGeometry",null),React__namespace.createElement("meshBasicMaterial",{transparent:!0,side:THREE.DoubleSide,alphaTest:t,alphaMap:r,"alphaMap-wrapS":THREE.RepeatWrapping,"alphaMap-wrapT":THREE.RepeatWrapping,opacity:l?1:0},i)))}function SpotLightShadow(e){return e.shader?React__namespace.createElement(SpotlightShadowWithShader,e):React__namespace.createElement(SpotlightShadowWithoutShader,e)}const SpotLight=React__namespace.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:o,color:a="white",distance:n=5,angle:i=.15,attenuation:s=5,anglePower:p=5,volumetric:d=!0,debug:l=!1,children:c,...u},g)=>{const m=React__namespace.useRef(null);return React__namespace.createElement("group",null,l&&m.current&&React__namespace.createElement("spotLightHelper",{args:[m.current]}),React__namespace.createElement("spotLight",_extends__default.default({ref:mergeRefs__default.default([g,m]),angle:i,color:a,distance:n,castShadow:!0},u),d&&React__namespace.createElement(VolumetricMesh,{debug:l,opacity:e,radiusTop:t,radiusBottom:r,depthBuffer:o,color:a,distance:n,angle:i,attenuation:s,anglePower:p})),c&&React__namespace.cloneElement(c,{spotlightRef:m,debug:l}))})),Lightformer=React__namespace.forwardRef((({args:e,map:t,toneMapped:r=!1,color:o="white",form:a="rect",intensity:n=1,scale:i=1,target:s,children:p,...d},l)=>{const c=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{p||d.material||(FIBER.applyProps(c.current.material,{color:o}),c.current.material.color.multiplyScalar(n))}),[o,n,p,d.material]),React__namespace.useLayoutEffect((()=>{s&&c.current.lookAt(Array.isArray(s)?new THREE__namespace.Vector3(...s):s)}),[s]),i=Array.isArray(i)&&2===i.length?[i[0],i[1],1]:i,React__namespace.createElement("mesh",_extends__default.default({ref:mergeRefs__default.default([c,l]),scale:i},d),"circle"===a?React__namespace.createElement("ringGeometry",{args:[0,1,64]}):"ring"===a?React__namespace.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===a?React__namespace.createElement("planeGeometry",null):React__namespace.createElement(a,{args:e}),p||(d.material?null:React__namespace.createElement("meshBasicMaterial",{toneMapped:r,map:t,side:THREE__namespace.DoubleSide})))}));function calcPosFromAngles(e,t,r=new THREE.Vector3){const o=Math.PI*(e-.5),a=2*Math.PI*(t-.5);return r.x=Math.cos(a),r.y=Math.sin(o),r.z=Math.sin(a),r}const Sky=React__namespace.forwardRef((({inclination:e=.6,azimuth:t=.1,distance:r=1e3,mieCoefficient:o=.005,mieDirectionalG:a=.8,rayleigh:n=.5,turbidity:i=10,sunPosition:s=calcPosFromAngles(e,t),...p},d)=>{const l=React__namespace.useMemo((()=>(new THREE.Vector3).setScalar(r)),[r]),[c]=React__namespace.useState((()=>new threeStdlib.Sky));return React__namespace.createElement("primitive",_extends__default.default({object:c,ref:d,"material-uniforms-mieCoefficient-value":o,"material-uniforms-mieDirectionalG-value":a,"material-uniforms-rayleigh-value":n,"material-uniforms-sunPosition-value":s,"material-uniforms-turbidity-value":i,scale:l},p))}));class StarfieldMaterial extends THREE.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <encodings_fragment>\n }"})}}const genStar=e=>(new THREE.Vector3).setFromSpherical(new THREE.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),Stars=React__namespace.forwardRef((({radius:e=100,depth:t=50,count:r=5e3,saturation:o=0,factor:a=4,fade:n=!1,speed:i=1},s)=>{const p=React__namespace.useRef(),[d,l,c]=React__namespace.useMemo((()=>{const n=[],i=[],s=Array.from({length:r},(()=>(.5+.5*Math.random())*a)),p=new THREE.Color;let d=e+t;const l=t/r;for(let e=0;e<r;e++)d-=l*Math.random(),n.push(...genStar(d).toArray()),p.setHSL(e/r,o,.9),i.push(p.r,p.g,p.b);return[new Float32Array(n),new Float32Array(i),new Float32Array(s)]}),[r,t,a,e,o]);FIBER.useFrame((e=>p.current&&(p.current.uniforms.time.value=e.clock.getElapsedTime()*i)));const[u]=React__namespace.useState((()=>new StarfieldMaterial));return React__namespace.createElement("points",{ref:s},React__namespace.createElement("bufferGeometry",null,React__namespace.createElement("bufferAttribute",{attach:"attributes-position",args:[d,3]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-color",args:[l,3]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-size",args:[c,1]})),React__namespace.createElement("primitive",{ref:p,object:u,attach:"material",blending:THREE.AdditiveBlending,"uniforms-fade-value":n,depthWrite:!1,transparent:!0,vertexColors:!0}))})),CLOUD_URL="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png";function Cloud({opacity:e=.5,speed:t=.4,width:r=10,depth:o=1.5,segments:a=20,texture:n=CLOUD_URL,color:i="#ffffff",depthTest:s=!0,...p}){const d=React__namespace.useRef(),l=useTexture(n),c=React__namespace.useMemo((()=>[...new Array(a)].map(((e,o)=>({x:r/2-Math.random()*r,y:r/2-Math.random()*r,scale:.4+Math.sin((o+1)/a*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[r,a,t]);return FIBER.useFrame((e=>{var t;return null==(t=d.current)?void 0:t.children.forEach(((t,r)=>{t.children[0].rotation.z+=c[r].rotation,t.children[0].scale.setScalar(c[r].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*r/10)}))})),React__namespace.createElement("group",p,React__namespace.createElement("group",{position:[0,0,a/2*o],ref:d},c.map((({x:t,y:r,scale:a,density:n},p)=>React__namespace.createElement(Billboard,{key:p,position:[t,r,-p*o]},React__namespace.createElement(Plane,{scale:a,rotation:[0,0,0]},React__namespace.createElement("meshStandardMaterial",{map:l,transparent:!0,opacity:a/6*n*e,depthTest:s,color:i})))))))}const SparklesImplMaterial=shaderMaterial({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }"," varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),isFloat32Array=e=>e&&e.constructor===Float32Array,expandColor=e=>[e.r,e.g,e.b],isVector=e=>e instanceof THREE__namespace.Vector2||e instanceof THREE__namespace.Vector3||e instanceof THREE__namespace.Vector4,normalizeVector=e=>Array.isArray(e)?e:isVector(e)?e.toArray():[e,e,e];function usePropAsIsOrAsAttribute(e,t,r){return React__namespace.useMemo((()=>{if(void 0!==t){if(isFloat32Array(t))return t;if(t instanceof THREE__namespace.Color){const r=Array.from({length:3*e},(()=>expandColor(t))).flat();return Float32Array.from(r)}if(isVector(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>normalizeVector(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const Sparkles=React__namespace.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:o=1,scale:a=1,size:n,color:i,children:s,...p},d)=>{React__namespace.useMemo((()=>FIBER.extend({SparklesImplMaterial:SparklesImplMaterial})),[]);const l=React__namespace.useRef(null),c=FIBER.useThree((e=>e.viewport.dpr)),u=React__namespace.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>normalizeVector(a).map(THREE__namespace.MathUtils.randFloatSpread))).flat())),[t,a]),g=usePropAsIsOrAsAttribute(t,n,Math.random),m=usePropAsIsOrAsAttribute(t,o),f=usePropAsIsOrAsAttribute(t,r),h=usePropAsIsOrAsAttribute(3*t,e),y=usePropAsIsOrAsAttribute(void 0===i?3*t:t,isFloat32Array(i)?i:new THREE__namespace.Color(i),(()=>1));return FIBER.useFrame((e=>{l.current&&l.current.material&&(l.current.material.time=e.clock.elapsedTime)})),React__namespace.useImperativeHandle(d,(()=>l.current),[]),React__namespace.createElement("points",_extends__default.default({key:`particle-${t}-${JSON.stringify(a)}`},p,{ref:l}),React__namespace.createElement("bufferGeometry",null,React__namespace.createElement("bufferAttribute",{attach:"attributes-position",args:[u,3]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-size",args:[g,1]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-opacity",args:[m,1]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-speed",args:[f,1]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-color",args:[y,3]}),React__namespace.createElement("bufferAttribute",{attach:"attributes-noise",args:[h,3]})),s||React__namespace.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:c,depthWrite:!1}))}));function getFormatString(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}const LIST_URL$1="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json",MATCAP_ROOT="https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d";function useMatcapTexture(e=0,t=1024,r){const o=suspendReact.suspend((()=>fetch(LIST_URL$1).then((e=>e.json()))),["matcapList"]),a=o[0],n=React__namespace.useMemo((()=>Object.keys(o).length),[]),i=`${React__namespace.useMemo((()=>"string"==typeof e?e:"number"==typeof e?o[e]:null),[e])||a}${getFormatString(t)}.png`,s=`${MATCAP_ROOT}/${t}/${i}`;return[useTexture(s,r),s,n]}const NORMAL_ROOT="https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb",LIST_URL="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json";function useNormalTexture(e=0,t={},r){const{repeat:o=[1,1],anisotropy:a=1,offset:n=[0,0]}=t,i=suspendReact.suspend((()=>fetch(LIST_URL).then((e=>e.json()))),["normalsList"]),s=React__namespace.useMemo((()=>Object.keys(i).length),[]),p=i[0],d=i[e]||p,l=`${NORMAL_ROOT}/normals/${d}`,c=useTexture(l,r);return React__namespace.useLayoutEffect((()=>{c&&(c.wrapS=c.wrapT=THREE.RepeatWrapping,c.repeat=new THREE.Vector2(o[0],o[1]),c.offset=new THREE.Vector2(n[0],n[1]),c.anisotropy=a)}),[c,a,o,n]),[c,l,s]}const WireframeMaterialShaders={uniforms:{strokeOpacity:1,fillOpacity:.25,fillMix:0,thickness:.05,colorBackfaces:!1,dashInvert:!0,dash:!1,dashRepeats:4,dashLength:.5,squeeze:!1,squeezeMin:.2,squeezeMax:1,stroke:new THREE__namespace.Color("#ff0000"),backfaceStroke:new THREE__namespace.Color("#0000ff"),fill:new THREE__namespace.Color("#00ff00")},vertex:"\n\t attribute vec3 barycentric;\n\t\n\t\tvarying vec3 v_edges_Barycentric;\n\t\tvarying vec3 v_edges_Position;\n\n\t\tvoid initWireframe() {\n\t\t\tv_edges_Barycentric = barycentric;\n\t\t\tv_edges_Position = position.xyz;\n\t\t}\n\t ",fragment:"\n\t\t#ifndef PI\n\t \t#define PI 3.1415926535897932384626433832795\n\t\t#endif\n \n\t varying vec3 v_edges_Barycentric;\n\t varying vec3 v_edges_Position;\n \n\t uniform float strokeOpacity;\n\t uniform float fillOpacity;\n\t uniform float fillMix;\n\t uniform float thickness;\n\t uniform bool colorBackfaces;\n \n\t // Dash\n\t uniform bool dashInvert;\n\t uniform bool dash;\n\t uniform bool dashOnly;\n\t uniform float dashRepeats;\n\t uniform float dashLength;\n \n\t // Squeeze\n\t uniform bool squeeze;\n\t uniform float squeezeMin;\n\t uniform float squeezeMax;\n \n\t // Colors\n\t uniform vec3 stroke;\n\t uniform vec3 backfaceStroke;\n\t uniform vec3 fill;\n \n\t // This is like\n\t float wireframe_aastep(float threshold, float dist) {\n\t\t float afwidth = fwidth(dist) * 0.5;\n\t\t return smoothstep(threshold - afwidth, threshold + afwidth, dist);\n\t }\n \n\t float wireframe_map(float value, float min1, float max1, float min2, float max2) {\n\t\t return min2 + (value - min1) * (max2 - min2) / (max1 - min1);\n\t }\n \n\t float getWireframe() {\n\t\t\tvec3 barycentric = v_edges_Barycentric;\n\t\t\n\t\t\t// Distance from center of each triangle to its edges.\n\t\t\tfloat d = min(min(barycentric.x, barycentric.y), barycentric.z);\n\n\t\t\t// for dashed rendering, we can use this to get the 0 .. 1 value of the line length\n\t\t\tfloat positionAlong = max(barycentric.x, barycentric.y);\n\t\t\tif (barycentric.y < barycentric.x && barycentric.y < barycentric.z) {\n\t\t\t\tpositionAlong = 1.0 - positionAlong;\n\t\t\t}\n\n\t\t\t// the thickness of the stroke\n\t\t\tfloat computedThickness = wireframe_map(thickness, 0.0, 1.0, 0.0, 0.34);\n\n\t\t\t// if we want to shrink the thickness toward the center of the line segment\n\t\t\tif (squeeze) {\n\t\t\t\tcomputedThickness *= mix(squeezeMin, squeezeMax, (1.0 - sin(positionAlong * PI)));\n\t\t\t}\n\n\t\t\t// Create dash pattern\n\t\t\tif (dash) {\n\t\t\t\t// here we offset the stroke position depending on whether it\n\t\t\t\t// should overlap or not\n\t\t\t\tfloat offset = 1.0 / dashRepeats * dashLength / 2.0;\n\t\t\t\tif (!dashInvert) {\n\t\t\t\t\toffset += 1.0 / dashRepeats / 2.0;\n\t\t\t\t}\n\n\t\t\t\t// if we should animate the dash or not\n\t\t\t\t// if (dashAnimate) {\n\t\t\t\t// \toffset += time * 0.22;\n\t\t\t\t// }\n\n\t\t\t\t// create the repeating dash pattern\n\t\t\t\tfloat pattern = fract((positionAlong + offset) * dashRepeats);\n\t\t\t\tcomputedThickness *= 1.0 - wireframe_aastep(dashLength, pattern);\n\t\t\t}\n\n\t\t\t// compute the anti-aliased stroke edge \n\t\t\tfloat edge = 1.0 - wireframe_aastep(computedThickness, d);\n\n\t\t\treturn edge;\n\t }\n\t "},WireframeMaterial=shaderMaterial(WireframeMaterialShaders.uniforms,WireframeMaterialShaders.vertex+"\n \tvoid main() {\n\t\tinitWireframe();\n\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n\t}\n ",WireframeMaterialShaders.fragment+"\n void main () {\n\t\t// Compute color\n\n\t\tfloat edge = getWireframe();\n\t\tvec4 colorStroke = vec4(stroke, edge);\n\n\t\t#ifdef FLIP_SIDED\n\t\t\tcolorStroke.rgb = backfaceStroke;\n\t\t#endif\n \n\t\tvec4 colorFill = vec4(fill, fillOpacity);\n\t\tvec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);\n\n\t\tgl_FragColor = outColor;\n\t}\n ");function setWireframeOverride(e,t){e.onBeforeCompile=e=>{e.uniforms={...e.uniforms,...t},e.vertexShader=e.vertexShader.replace("void main() {",`\n\t\t ${WireframeMaterialShaders.vertex}\n\t\t void main() {\n\t\t\tinitWireframe();\n\t\t`),e.fragmentShader=e.fragmentShader.replace("void main() {",`\n\t\t ${WireframeMaterialShaders.fragment}\n\t\t void main() {\n\t\t`),e.fragmentShader=e.fragmentShader.replace("#include <color_fragment>","\n\t\t #include <color_fragment>\n\t\t\t float edge = getWireframe();\n\t\t vec4 colorStroke = vec4(stroke, edge);\n\t\t #ifdef FLIP_SIDED\n\t\t\tcolorStroke.rgb = backfaceStroke;\n\t\t #endif\n\t\t vec4 colorFill = vec4(mix(diffuseColor.rgb, fill, fillMix), mix(diffuseColor.a, fillOpacity, fillMix));\n\t\t vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);\n\n\t\t diffuseColor.rgb = outColor.rgb;\n\t\t diffuseColor.a *= outColor.a;\n\t\t")},e.side=THREE__namespace.DoubleSide,e.transparent=!0}function useWireframeUniforms(e,t){React__namespace.useEffect((()=>{var r;e.fillOpacity.value=null!==(r=t.fillOpacity)&&void 0!==r?r:e.fillOpacity.value}),[t.fillOpacity]),React__namespace.useEffect((()=>{var r;e.fillMix.value=null!==(r=t.fillMix)&&void 0!==r?r:e.fillMix.value}),[t.fillMix]),React__namespace.useEffect((()=>{var r;e.strokeOpacity.value=null!==(r=t.strokeOpacity)&&void 0!==r?r:e.strokeOpacity.value}),[t.strokeOpacity]),React__namespace.useEffect((()=>{var r;e.thickness.value=null!==(r=t.thickness)&&void 0!==r?r:e.thickness.value}),[t.thickness]),React__namespace.useEffect((()=>{e.colorBackfaces.value=!!t.colorBackfaces}),[t.colorBackfaces]),React__namespace.useEffect((()=>{e.dash.value=!!t.dash}),[t.dash]),React__namespace.useEffect((()=>{e.dashInvert.value=!!t.dashInvert}),[t.dashInvert]),React__namespace.useEffect((()=>{var r;e.dashRepeats.value=null!==(r=t.dashRepeats)&&void 0!==r?r:e.dashRepeats.value}),[t.dashRepeats]),React__namespace.useEffect((()=>{var r;e.dashLength.value=null!==(r=t.dashLength)&&void 0!==r?r:e.dashLength.value}),[t.dashLength]),React__namespace.useEffect((()=>{e.squeeze.value=!!t.squeeze}),[t.squeeze]),React__namespace.useEffect((()=>{var r;e.squeezeMin.value=null!==(r=t.squeezeMin)&&void 0!==r?r:e.squeezeMin.value}),[t.squeezeMin]),React__namespace.useEffect((()=>{var r;e.squeezeMax.value=null!==(r=t.squeezeMax)&&void 0!==r?r:e.squeezeMax.value}),[t.squeezeMax]),React__namespace.useEffect((()=>{e.stroke.value=t.stroke?new THREE__namespace.Color(t.stroke):e.stroke.value}),[t.stroke]),React__namespace.useEffect((()=>{e.fill.value=t.fill?new THREE__namespace.Color(t.fill):e.fill.value}),[t.fill]),React__namespace.useEffect((()=>{e.backfaceStroke.value=t.backfaceStroke?new THREE__namespace.Color(t.backfaceStroke):e.backfaceStroke.value}),[t.backfaceStroke])}function isWithGeometry(e){return!(null==e||!e.geometry)}function isGeometry(e){return!(null==e||!e.isBufferGeometry)}function isRefObject(e){return!(null==e||!e.current)}function isRef(e){return void 0!==(null==e?void 0:e.current)}function isWireframeGeometry(e){return"WireframeGeometry"===e.type}function getUniforms(){const e={};for(const t in WireframeMaterialShaders.uniforms)e[t]={value:WireframeMaterialShaders.uniforms[t]};return e}function getBarycentricCoordinates(e,t){const r=e.getAttribute("position").count,o=[];for(let e=0;e<r;e++){const r=t?1:0;e%2==0?o.push(0,0,1,0,1,0,1,0,r):o.push(0,1,0,0,0,1,1,0,r)}return new THREE__namespace.BufferAttribute(Float32Array.from(o),3)}function getInputGeometry(e){const t=isRefObject(e)?e.current:e;if(isGeometry(t))return t;{if(isWireframeGeometry(t))throw new Error("Wireframe: WireframeGeometry is not supported.");const e=t.parent;if(isWithGeometry(e)){if(isWireframeGeometry(e.geometry))throw new Error("Wireframe: WireframeGeometry is not supported.");return e.geometry}}}function setBarycentricCoordinates(e,t){if(e.index){console.warn("Wireframe: Requires non-indexed geometry, converting to non-indexed geometry.");const t=e.toNonIndexed();e.copy(t),e.setIndex(null)}const r=getBarycentricCoordinates(e,t);e.setAttribute("barycentric",r)}function WireframeWithCustomGeo({geometry:e,simplify:t=!1,...r}){const[o,a]=React__namespace.useState(null);React__namespace.useLayoutEffect((()=>{const r=getInputGeometry(e);if(!r)throw new Error("Wireframe: geometry prop must be a BufferGeometry or a ref to a BufferGeometry.");setBarycentricCoordinates(r,t),isRef(e)&&a(r)}),[t,e]);const n=isRef(e)?o:e;return React__namespace.createElement(React__namespace.Fragment,null,n&&React__namespace.createElement("mesh",{geometry:n},React__namespace.createElement("meshWireframeMaterial",_extends__default.default({attach:"material",transparent:!0,side:THREE__namespace.DoubleSide,polygonOffset:!0,polygonOffsetFactor:-4},r,{extensions:{derivatives:!0,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1}}))))}function WireframeWithoutCustomGeo({simplify:e=!1,...t}){const r=React__namespace.useRef(null),o=React__namespace.useMemo((()=>getUniforms()),[WireframeMaterialShaders.uniforms]);return useWireframeUniforms(o,t),React__namespace.useLayoutEffect((()=>{const t=getInputGeometry(r);if(!t)throw new Error("Wireframe: Must be a child of a Mesh, Line or Points object or specify a geometry prop.");const o=t.clone();return setBarycentricCoordinates(t,e),()=>{t.copy(o),o.dispose()}}),[e]),React__namespace.useLayoutEffect((()=>{const e=r.current.parent,t=e.material.clone();return setWireframeOverride(e.material,o),()=>{e.material.dispose(),e.material=t}}),[]),React__namespace.createElement("object3D",{ref:r})}function Wireframe({geometry:e,...t}){return e?React__namespace.createElement(WireframeWithCustomGeo,_extends__default.default({geometry:e},t)):React__namespace.createElement(WireframeWithoutCustomGeo,t)}FIBER__namespace.extend({MeshWireframeMaterial:WireframeMaterial});const _inverseMatrix$1=new THREE__namespace.Matrix4,_ray$1=new THREE__namespace.Ray,_sphere$1=new THREE__namespace.Sphere,_position=new THREE__namespace.Vector3;class PositionPoint extends THREE__namespace.Group{constructor(){super(),this.size=0,this.color=new THREE__namespace.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){var r,o;const a=this.instance.current;if(!a||!a.geometry)return;const n=a.userData.instances.indexOf(this.instanceKey);if(-1===n||n>a.geometry.drawRange.count)return;const i=null!==(r=null==(o=e.params.Points)?void 0:o.threshold)&&void 0!==r?r:1;if(_sphere$1.set(this.getWorldPosition(_position),i),!1===e.ray.intersectsSphere(_sphere$1))return;_inverseMatrix$1.copy(a.matrixWorld).invert(),_ray$1.copy(e.ray).applyMatrix4(_inverseMatrix$1);const s=i/((this.scale.x+this.scale.y+this.scale.z)/3),p=s*s,d=_ray$1.distanceSqToPoint(this.position);if(d<p){const r=new THREE__namespace.Vector3;_ray$1.closestPointToPoint(this.position,r),r.applyMatrix4(this.matrixWorld);const o=e.ray.origin.distanceTo(r);if(o<e.near||o>e.far)return;t.push({distance:o,distanceToRay:Math.sqrt(d),point:r,index:n,face:null,object:this})}}}let i,positionRef;const context$3=React__namespace.createContext(null),parentMatrix$1=new THREE__namespace.Matrix4,position=new THREE__namespace.Vector3,PointsInstances=React__namespace.forwardRef((({children:e,range:t,limit:r=1e3,...o},a)=>{const n=React__namespace.useRef(null),[s,p]=React__namespace.useState([]),[[d,l,c]]=React__namespace.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));React__namespace.useEffect((()=>{n.current.geometry.attributes.position.needsUpdate=!0})),FIBER.useFrame((()=>{for(n.current.updateMatrix(),n.current.updateMatrixWorld(),parentMatrix$1.copy(n.current.matrixWorld).invert(),n.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,s.length),i=0;i<s.length;i++)positionRef=s[i].current,positionRef.getWorldPosition(position).applyMatrix4(parentMatrix$1),position.toArray(d,3*i),n.current.geometry.attributes.position.needsUpdate=!0,positionRef.matrixWorldNeedsUpdate=!0,positionRef.color.toArray(l,3*i),n.current.geometry.attributes.color.needsUpdate=!0,c.set([positionRef.size],i),n.current.geometry.attributes.size.needsUpdate=!0}));const u=React__namespace.useMemo((()=>({getParent:()=>n,subscribe:e=>(p((t=>[...t,e])),()=>p((t=>t.filter((t=>t.current!==e.current)))))})),[]);return React__namespace.createElement("points",_extends__default.default({userData:{instances:s},matrixAutoUpdate:!1,ref:mergeRefs__default.default([a,n]),raycast:()=>null},o),React__namespace.createElement("bufferGeometry",null,React__namespace.createElement("bufferAttribute",{attach:"attributes-position",count:d.length/3,array:d,itemSize:3,usage:THREE__namespace.DynamicDrawUsage}),React__namespace.createElement("bufferAttribute",{attach:"attributes-color",count:l.length/3,array:l,itemSize:3,usage:THREE__namespace.DynamicDrawUsage}),React__namespace.createElement("bufferAttribute",{attach:"attributes-size",count:c.length,array:c,itemSize:1,usage:THREE__namespace.DynamicDrawUsage})),React__namespace.createElement(context$3.Provider,{value:u},e))})),Point=React__namespace.forwardRef((({children:e,...t},r)=>{React__namespace.useMemo((()=>FIBER.extend({PositionPoint:PositionPoint})),[]);const o=React__namespace.useRef(),{subscribe:a,getParent:n}=React__namespace.useContext(context$3);return React__namespace.useLayoutEffect((()=>a(o)),[]),React__namespace.createElement("positionPoint",_extends__default.default({instance:n(),instanceKey:o,ref:mergeRefs__default.default([r,o])},t),e)})),PointsBuffer=React__namespace.forwardRef((({children:e,positions:t,colors:r,sizes:o,stride:a=3,...n},i)=>{const s=React__namespace.useRef(null);return FIBER.useFrame((()=>{const e=s.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),o&&(e.size.needsUpdate=!0)})),React__namespace.createElement("points",_extends__default.default({ref:mergeRefs__default.default([i,s])},n),React__namespace.createElement("bufferGeometry",null,React__namespace.createElement("bufferAttribute",{attach:"attributes-position",count:t.length/a,array:t,itemSize:a,usage:THREE__namespace.DynamicDrawUsage}),r&&React__namespace.createElement("bufferAttribute",{attach:"attributes-color",count:r.length/a,array:r,itemSize:3,usage:THREE__namespace.DynamicDrawUsage}),o&&React__namespace.createElement("bufferAttribute",{attach:"attributes-size",count:o.length/a,array:o,itemSize:1,usage:THREE__namespace.DynamicDrawUsage})),e)})),Points=React__namespace.forwardRef(((e,t)=>e.positions instanceof Float32Array?React__namespace.createElement(PointsBuffer,_extends__default.default({},e,{ref:t})):React__namespace.createElement(PointsInstances,_extends__default.default({},e,{ref:t})))),_instanceLocalMatrix=new THREE__namespace.Matrix4,_instanceWorldMatrix=new THREE__namespace.Matrix4,_instanceIntersects=[],_mesh=new THREE__namespace.Mesh;class PositionMesh extends THREE__namespace.Group{constructor(){super(),this.color=new THREE__namespace.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;_mesh.geometry=r.geometry;const o=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(o,_instanceLocalMatrix),_mesh.matrixWorld=_instanceWorldMatrix,r.material instanceof THREE__namespace.Material?_mesh.material.side=r.material.side:_mesh.material.side=r.material[0].side,_mesh.raycast(e,_instanceIntersects);for(let e=0,r=_instanceIntersects.length;e<r;e++){const r=_instanceIntersects[e];r.instanceId=a,r.object=this,t.push(r)}_instanceIntersects.length=0}}}const globalContext=React__namespace.createContext(null),parentMatrix=new THREE__namespace.Matrix4,instanceMatrix=new THREE__namespace.Matrix4,tempMatrix=new THREE__namespace.Matrix4,translation=new THREE__namespace.Vector3,rotation=new THREE__namespace.Quaternion,scale=new THREE__namespace.Vector3,Instance=React__namespace.forwardRef((({context:e,children:t,...r},o)=>{React__namespace.useMemo((()=>FIBER.extend({PositionMesh:PositionMesh})),[]);const a=React__namespace.useRef(),{subscribe:n,getParent:i}=React__namespace.useContext(e||globalContext);return React__namespace.useLayoutEffect((()=>n(a)),[]),React__namespace.createElement("positionMesh",_extends__default.default({instance:i(),instanceKey:a,ref:mergeRefs__default.default([o,a])},r),t)})),Instances=React__namespace.forwardRef((({children:e,range:t,limit:r=1e3,frames:o=1/0,...a},n)=>{const[{context:i,instance:s}]=React__namespace.useState((()=>{const e=React__namespace.createContext(null);return{context:e,instance:React__namespace.forwardRef(((t,r)=>React__namespace.createElement(Instance,_extends__default.default({context:e},t,{ref:r}))))}})),p=React__namespace.useRef(null),[d,l]=React__namespace.useState([]),[[c,u]]=React__namespace.useState((()=>{const e=new Float32Array(16*r);for(let t=0;t<r;t++)tempMatrix.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));React__namespace.useEffect((()=>{p.current.instanceMatrix.needsUpdate=!0}));let g=0,m=0;FIBER.useFrame((()=>{if(o===1/0||g<o){p.current.updateMatrix(),p.current.updateMatrixWorld(),parentMatrix.copy(p.current.matrixWorld).invert(),m=Math.min(r,void 0!==t?t:r,d.length),p.current.count=m,p.current.instanceMatrix.updateRange.count=16*m,p.current.instanceColor.updateRange.count=3*m;for(let e=0;e<d.length;e++){const t=d[e].current;t.matrixWorld.decompose(translation,rotation,scale),instanceMatrix.compose(translation,rotation,scale).premultiply(parentMatrix),instanceMatrix.toArray(c,16*e),p.current.instanceMatrix.needsUpdate=!0,t.color.toArray(u,3*e),p.current.instanceColor.needsUpdate=!0}g++}}));const f=React__namespace.useMemo((()=>({getParent:()=>p,subscribe:e=>(l((t=>[...t,e])),()=>l((t=>t.filter((t=>t.current!==e.current)))))})),[]);return React__namespace.createElement("instancedMesh",_extends__default.default({userData:{instances:d},matrixAutoUpdate:!1,ref:mergeRefs__default.default([n,p]),args:[null,null,0],raycast:()=>null},a),React__namespace.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:c.length/16,array:c,itemSize:16,usage:THREE__namespace.DynamicDrawUsage}),React__namespace.createElement("instancedBufferAttribute",{attach:"instanceColor",count:u.length/3,array:u,itemSize:3,usage:THREE__namespace.DynamicDrawUsage}),"function"==typeof e?React__namespace.createElement(i.Provider,{value:f},e(s)):React__namespace.createElement(globalContext.Provider,{value:f},e))})),Merged=React__namespace.forwardRef((function({meshes:e,children:t,...r},o){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return React__namespace.createElement("group",{ref:o},React__namespace.createElement(Composer__default.default,{components:(a?e:Object.values(e)).map((({geometry:e,material:t})=>React__namespace.createElement(Instances,_extends__default.default({key:e.uuid,geometry:e,material:t},r))))},(r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,o)=>({...e,[t]:r[o]})),{})))))})),context$2=React__namespace.createContext(null),Segments=React__namespace.forwardRef(((e,t)=>{React__namespace.useMemo((()=>FIBER.extend({SegmentObject:SegmentObject})),[]);const{limit:r=1e3,lineWidth:o=1,children:a,...n}=e,[i,s]=React__namespace.useState([]),[p]=React__namespace.useState((()=>new threeStdlib.Line2)),[d]=React__namespace.useState((()=>new threeStdlib.LineMaterial)),[l]=React__namespace.useState((()=>new threeStdlib.LineSegmentsGeometry)),[c]=React__namespace.useState((()=>new THREE__namespace.Vector2(512,512))),[u]=React__namespace.useState((()=>Array(6*r).fill(0))),[g]=React__namespace.useState((()=>Array(6*r).fill(0))),m=React__namespace.useMemo((()=>({subscribe:e=>(s((t=>[...t,e])),()=>s((t=>t.filter((t=>t.current!==e.current)))))})),[]);return FIBER.useFrame((()=>{for(let t=0;t<r;t++){var e;const r=null==(e=i[t])?void 0:e.current;r&&(u[6*t+0]=r.start.x,u[6*t+1]=r.start.y,u[6*t+2]=r.start.z,u[6*t+3]=r.end.x,u[6*t+4]=r.end.y,u[6*t+5]=r.end.z,g[6*t+0]=r.color.r,g[6*t+1]=r.color.g,g[6*t+2]=r.color.b,g[6*t+3]=r.color.r,g[6*t+4]=r.color.g,g[6*t+5]=r.color.b)}l.setColors(g),l.setPositions(u),p.computeLineDistances()})),React__namespace.createElement("primitive",{object:p,ref:t},React__namespace.createElement("primitive",{object:l,attach:"geometry"}),React__namespace.createElement("primitive",_extends__default.default({object:d,attach:"material",vertexColors:!0,resolution:c,linewidth:o},n)),React__namespace.createElement(context$2.Provider,{value:m},a))}));class SegmentObject{constructor(){this.color=new THREE__namespace.Color("white"),this.start=new THREE__namespace.Vector3(0,0,0),this.end=new THREE__namespace.Vector3(0,0,0)}}const normPos=e=>e instanceof THREE__namespace.Vector3?e:new THREE__namespace.Vector3(..."number"==typeof e?[e,e,e]:e),Segment=React__namespace.forwardRef((({color:e,start:t,end:r},o)=>{const a=React__namespace.useContext(context$2);if(!a)throw"Segment must used inside Segments component.";const n=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>a.subscribe(n)),[]),React__namespace.createElement("segmentObject",{ref:mergeRefs__default.default([n,o]),color:e,start:normPos(t),end:normPos(r)})})),Detailed=React__namespace.forwardRef((({children:e,hysteresis:t=0,distances:r,...o},a)=>{const n=React__namespace.useRef(null);return React__namespace.useLayoutEffect((()=>{const{current:e}=n;e.levels.length=0,e.children.forEach(((o,a)=>e.levels.push({object:o,hysteresis:t,distance:r[a]})))})),FIBER.useFrame((e=>{var t;return null==(t=n.current)?void 0:t.update(e.camera)})),React__namespace.createElement("lOD",_extends__default.default({ref:mergeRefs__default.default([n,a])},o),e)}));function Preload({all:e,scene:t,camera:r}){const o=FIBER.useThree((({gl:e})=>e)),a=FIBER.useThree((({camera:e})=>e)),n=FIBER.useThree((({scene:e})=>e));return React__namespace.useLayoutEffect((()=>{const i=[];e&&(t||n).traverse((e=>{!1===e.visible&&(i.push(e),e.visible=!0)})),o.compile(t||n,r||a);const s=new THREE.WebGLCubeRenderTarget(128);new THREE.CubeCamera(.01,1e5,s).update(o,t||n),s.dispose(),i.forEach((e=>e.visible=!1))}),[]),null}function BakeShadows(){const e=FIBER.useThree((e=>e.gl));return React.useEffect((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[e.shadowMap]),null}const _inverseMatrix=new THREE.Matrix4,_ray=new THREE.Ray,_sphere=new THREE.Sphere,_vA=new THREE.Vector3;function meshBounds(e,t){const r=this.geometry,o=this.material,a=this.matrixWorld;void 0!==o&&(null===r.boundingSphere&&r.computeBoundingSphere(),_sphere.copy(r.boundingSphere),_sphere.applyMatrix4(a),!1!==e.ray.intersectsSphere(_sphere)&&(_inverseMatrix.copy(a).invert(),_ray.copy(e.ray).applyMatrix4(_inverseMatrix),null!==r.boundingBox&&null===_ray.intersectBox(r.boundingBox,_vA)||t.push({distance:_vA.distanceTo(e.ray.origin),point:_vA.clone(),object:this})))}function AdaptiveDpr({pixelated:e}){const t=FIBER.useThree((e=>e.gl)),r=FIBER.useThree((e=>e.internal.active)),o=FIBER.useThree((e=>e.performance.current)),a=FIBER.useThree((e=>e.viewport.initialDpr)),n=FIBER.useThree((e=>e.setDpr));return React__namespace.useEffect((()=>{const o=t.domElement;return()=>{r&&n(a),e&&o&&(o.style.imageRendering="auto")}}),[]),React__namespace.useEffect((()=>{n(o*a),e&&t.domElement&&(t.domElement.style.imageRendering=1===o?"auto":"pixelated")}),[o]),null}function AdaptiveEvents(){const e=FIBER.useThree((e=>e.get)),t=FIBER.useThree((e=>e.setEvents)),r=FIBER.useThree((e=>e.performance.current));return React__namespace.useEffect((()=>{const r=e().events.enabled;return()=>t({enabled:r})}),[]),React__namespace.useEffect((()=>t({enabled:1===r})),[r]),null}const context$1=React.createContext(null);function PerformanceMonitor({iterations:e=10,ms:t=250,threshold:r=.75,step:o=.1,factor:a=.5,flipflops:n=1/0,bounds:i=(e=>e>100?[60,100]:[40,60]),onIncline:s,onDecline:p,onChange:d,onFallback:l,children:c}){const u=Math.pow(10,0),[g,m]=React.useState((()=>({fps:0,index:0,factor:a,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{const t=Symbol();return g.subscriptions.set(t,e.current),()=>{g.subscriptions.delete(t)}}})));let f=0;return FIBER.useFrame((()=>{const{frames:a,averages:c}=g;if(!g.fallback&&c.length<e){a.push(performance.now());const m=a[a.length-1]-a[0];if(m>=t){if(g.fps=Math.round(a.length/m*1e3*u)/u,g.refreshrate=Math.max(g.refreshrate,g.fps),c[g.index++%e]=g.fps,c.length===e){const[t,a]=i(g.refreshrate),u=c.filter((e=>e>=a)),m=c.filter((e=>e<t));u.length>e*r&&(g.factor=Math.min(1,g.factor+o),g.flipped++,s&&s(g),g.subscriptions.forEach((e=>e.onIncline&&e.onIncline(g)))),m.length>e*r&&(g.factor=Math.max(0,g.factor-o),g.flipped++,p&&p(g),g.subscriptions.forEach((e=>e.onDecline&&e.onDecline(g)))),f!==g.factor&&(f=g.factor,d&&d(g),g.subscriptions.forEach((e=>e.onChange&&e.onChange(g)))),g.flipped>n&&!g.fallback&&(g.fallback=!0,l&&l(g),g.subscriptions.forEach((e=>e.onFallback&&e.onFallback(g)))),g.averages=[]}g.frames=[]}}})),React__namespace.createElement(context$1.Provider,{value:g},c)}function usePerformanceMonitor({onIncline:e,onDecline:t,onChange:r,onFallback:o}){const a=React.useContext(context$1),n=React.useRef({onIncline:e,onDecline:t,onChange:r,onFallback:o});React.useLayoutEffect((()=>{n.current.onIncline=e,n.current.onDecline=t,n.current.onChange=r,n.current.onFallback=o}),[e,t,r,o]),React.useLayoutEffect((()=>a.subscribe(n)),[a])}const RenderTexture=React__namespace.forwardRef((({children:e,compute:t,width:r,height:o,samples:a=8,renderPriority:n=0,eventPriority:i=0,frames:s=1/0,stencilBuffer:p=!1,depthBuffer:d=!0,generateMipmaps:l=!1,...c},u)=>{const{size:g,viewport:m}=FIBER.useThree(),f=useFBO((r||g.width)*m.dpr,(o||g.height)*m.dpr,{samples:a,stencilBuffer:p,depthBuffer:d,generateMipmaps:l}),[h]=React__namespace.useState((()=>new THREE__namespace.Scene)),y=React__namespace.useCallback(((e,t,r)=>{var o,a;let n=null==(o=f.texture)?void 0:o.__r3f.parent;for(;n&&!(n instanceof THREE__namespace.Object3D);)n=n.__r3f.parent;if(!n)return!1;r.raycaster.camera||r.events.compute(e,r,null==(a=r.previousRoot)?void 0:a.getState());const[i]=r.raycaster.intersectObject(n);if(!i)return!1;const s=i.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(2*s.x-1,2*s.y-1),t.camera)}),[]);return React__namespace.useImperativeHandle(u,(()=>f.texture),[f]),React__namespace.createElement(React__namespace.Fragment,null,FIBER.createPortal(React__namespace.createElement(Container$1,{renderPriority:n,frames:s,fbo:f},e,React__namespace.createElement("group",{onPointerOver:()=>null})),h,{events:{compute:t||y,priority:i}}),React__namespace.createElement("primitive",_extends__default.default({object:f.texture},c)))}));function Container$1({frames:e,renderPriority:t,children:r,fbo:o}){let a,n=0;return FIBER.useFrame((t=>{(e===1/0||n<e)&&(a=t.gl.autoClear,t.gl.autoClear=!0,t.gl.setRenderTarget(o),t.gl.render(t.scene,t.camera),t.gl.setRenderTarget(null),t.gl.autoClear=a,n++)}),t),React__namespace.createElement(React__namespace.Fragment,null,r)}const Mask=React__namespace.forwardRef((({id:e=1,colorWrite:t=!1,depthWrite:r=!1,...o},a)=>{const n=React__namespace.useRef(null),i=React__namespace.useMemo((()=>({colorWrite:t,depthWrite:r,stencilWrite:!0,stencilRef:e,stencilFunc:THREE__namespace.AlwaysStencilFunc,stencilFail:THREE__namespace.ReplaceStencilOp,stencilZFail:THREE__namespace.ReplaceStencilOp,stencilZPass:THREE__namespace.ReplaceStencilOp})),[e,t,r]);return React__namespace.useLayoutEffect((()=>{Object.assign(n.current.material,i)})),React__namespace.useImperativeHandle(a,(()=>n.current),[]),React__namespace.createElement("mesh",_extends__default.default({ref:n,renderOrder:-e},o))}));function useMask(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?THREE__namespace.NotEqualStencilFunc:THREE__namespace.EqualStencilFunc,stencilFail:THREE__namespace.KeepStencilOp,stencilZFail:THREE__namespace.KeepStencilOp,stencilZPass:THREE__namespace.KeepStencilOp}}const PortalMaterialImpl=shaderMaterial({blur:0,map:null,sdf:null,size:0,resolution:new THREE__namespace.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }","uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),MeshPortalMaterial=React__namespace.forwardRef((({children:e,blur:t=0,eventPriority:r,renderPriority:o,worldUnits:a=!1,resolution:n=512,...i},s)=>{FIBER.extend({PortalMaterialImpl:PortalMaterialImpl});const p=React__namespace.useRef(null),{gl:d,size:l,events:c,viewport:u}=FIBER.useThree(),g=useFBO(n,n);return React__namespace.useLayoutEffect((()=>{var e;let r=null==(e=p.current)?void 0:e.__r3f.parent;if(r&&t&&null===p.current.sdf){const e=new THREE__namespace.Mesh(r.geometry,new THREE__namespace.MeshBasicMaterial),t=(new THREE__namespace.Box3).setFromBufferAttribute(e.geometry.attributes.position),o=new THREE__namespace.OrthographicCamera(t.min.x*(1+2/n),t.max.x*(1+2/n),t.max.y*(1+2/n),t.min.y*(1+2/n),.1,1e3);o.position.set(0,0,1),o.lookAt(0,0,0),d.setRenderTarget(g),d.render(e,o);const a=makeSDFGenerator(n,n,d)(g.texture),i=new Float32Array(n*n);d.readRenderTargetPixels(a,0,0,n,n,i);let s=1/0;for(let e=0;e<i.length;e++)i[e]<s&&(s=i[e]);s=-s,p.current.size=s,p.current.sdf=a.texture,d.setRenderTarget(null)}}),[n,t]),React__namespace.useImperativeHandle(s,(()=>p.current)),React__namespace.createElement("portalMaterialImpl",_extends__default.default({ref:p,blur:t,resolution:[l.width*u.dpr,l.height*u.dpr],toneMapped:!1,attach:"material"},i),React__namespace.createElement(RenderTexture,{attach:"map",eventPriority:r,renderPriority:o,compute:c.compute},e,React__namespace.createElement(CopyMatrix,{material:p,worldUnits:a})))}));function CopyMatrix({material:e,worldUnits:t}){const r=FIBER.useThree((e=>e.scene));return React__namespace.useLayoutEffect((()=>{r.matrixAutoUpdate=!1}),[]),FIBER.useFrame((()=>{var o;let a=null==e||null==(o=e.current)?void 0:o.__r3f.parent;a&&(t?r.matrixWorld.identity():r.matrixWorld.copy(a.matrixWorld))})),React__namespace.createElement(React__namespace.Fragment,null)}const makeSDFGenerator=(e,t,r)=>{let o=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.LinearMipmapLinearFilter,magFilter:THREE__namespace.LinearFilter,type:THREE__namespace.FloatType,format:THREE__namespace.RedFormat,generateMipmaps:!0}),a=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter}),n=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter}),i=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter}),s=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter}),p=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,type:THREE__namespace.FloatType,format:THREE__namespace.RedFormat}),d=new THREE__namespace.WebGLRenderTarget(e,t,{minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,type:THREE__namespace.FloatType,format:THREE__namespace.RedFormat});const l=new threeStdlib.FullScreenQuad(new THREE__namespace.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),c=new threeStdlib.FullScreenQuad(new THREE__namespace.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),u=new threeStdlib.FullScreenQuad(new THREE__namespace.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/t}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),g=new threeStdlib.FullScreenQuad(new THREE__namespace.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new THREE__namespace.Vector2(e,t)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),m=new threeStdlib.FullScreenQuad(new THREE__namespace.ShaderMaterial({uniforms:{inside:{value:d.texture},outside:{value:p.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return f=>{let h=o;f.minFilter=THREE__namespace.NearestFilter,f.magFilter=THREE__namespace.NearestFilter,l.material.uniforms.tex.value=f,r.setRenderTarget(a),l.render(r);const y=Math.ceil(Math.log(Math.max(e,t))/Math.log(2));let _=a,b=null;for(let e=0;e<y;e++){const t=Math.pow(2,y-e-1);b=_===a?i:a,u.material.uniforms.level.value=e,u.material.uniforms.maxSteps.value=y,u.material.uniforms.offset.value=t,u.material.uniforms.tex.value=_.texture,r.setRenderTarget(b),u.render(r),_=b}r.setRenderTarget(p),g.material.uniforms.tex.value=b.texture,g.render(r),c.material.uniforms.tex.value=f,r.setRenderTarget(n),c.render(r),_=n;for(let e=0;e<y;e++){const t=Math.pow(2,y-e-1);b=_===n?s:n,u.material.uniforms.level.value=e,u.material.uniforms.maxSteps.value=y,u.material.uniforms.offset.value=t,u.material.uniforms.tex.value=_.texture,r.setRenderTarget(b),u.render(r),_=b}return r.setRenderTarget(d),g.material.uniforms.tex.value=b.texture,g.render(r),r.setRenderTarget(h),m.material.uniforms.tex.value=f,m.render(r),r.setRenderTarget(null),h}},isOrthographicCamera=e=>e&&e.isOrthographicCamera,col=new THREE__namespace.Color;function isNonLegacyCanvasSize(e){return"top"in e}function computeContainerPosition(e,t){const{right:r,top:o,left:a,bottom:n,width:i,height:s}=t,p=t.bottom<0||o>e.height||r<0||t.left>e.width;if(isNonLegacyCanvasSize(e)){const t=e.top+e.height-n;return{position:{width:i,height:s,left:a-e.left,top:o,bottom:t,right:r},isOffscreen:p}}return{position:{width:i,height:s,top:o,left:a,bottom:e.height-n,right:r},isOffscreen:p}}function Container({canvasSize:e,scene:t,index:r,children:o,frames:a,rect:n,track:i}){const s=FIBER.useThree((e=>e.get)),p=FIBER.useThree((e=>e.camera)),d=FIBER.useThree((e=>e.scene)),l=FIBER.useThree((e=>e.setEvents));let c=0;return FIBER.useFrame((r=>{var s;(a===1/0||c<=a)&&(n.current=null==(s=i.current)?void 0:s.getBoundingClientRect(),c++);if(n.current){const{position:{left:a,bottom:i,width:s,height:l},isOffscreen:c}=computeContainerPosition(e,n.current),u=s/l;isOrthographicCamera(p)?p.left===s/-2&&p.right===s/2&&p.top===l/2&&p.bottom===l/-2||(Object.assign(p,{left:s/-2,right:s/2,top:l/2,bottom:l/-2}),p.updateProjectionMatrix()):p.aspect!==u&&(p.aspect=u,p.updateProjectionMatrix()),r.gl.setViewport(a,i,s,l),r.gl.setScissor(a,i,s,l),r.gl.setScissorTest(!0),c?(r.gl.getClearColor(col),r.gl.setClearColor(col,r.gl.getClearAlpha()),r.gl.clear(!0,!0)):r.gl.render(o?d:t,p),r.gl.setScissorTest(!0)}}),r),React__namespace.useEffect((()=>{const e=s().events.connected;return l({connected:i.current}),()=>l({connected:e})}),[]),React__namespace.useEffect((()=>{isNonLegacyCanvasSize(e)||console.warn("Detected @react-three/fiber canvas size does not include position information. <View /> may not work as expected. Upgrade to @react-three/fiber ^8.1.0 for support.\n See https://github.com/pmndrs/drei/issues/944")}),[]),React__namespace.createElement(React__namespace.Fragment,null,o)}const View=({track:e,index:t=1,frames:r=1/0,children:o})=>{var a,n;const i=React__namespace.useRef(null),{size:s,scene:p}=FIBER.useThree(),[d]=React__namespace.useState((()=>new THREE__namespace.Scene)),l=React__namespace.useCallback(((t,r)=>{if(i.current&&e.current&&t.target===e.current){const{width:e,height:o,left:a,top:n}=i.current,s=t.clientX-a,p=t.clientY-n;r.pointer.set(s/e*2-1,-p/o*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)}}),[i,e]),[c,u]=React__namespace.useReducer((()=>!0),!1);return React__namespace.useEffect((()=>{var t;i.current=null==(t=e.current)?void 0:t.getBoundingClientRect(),u()}),[e]),React__namespace.createElement(React__namespace.Fragment,null,c&&FIBER.createPortal(React__namespace.createElement(Container,{canvasSize:s,frames:r,scene:p,track:e,rect:i,index:t},o,React__namespace.createElement("group",{onPointerOver:()=>null})),d,{events:{compute:l,priority:t},size:{width:null==(a=i.current)?void 0:a.width,height:null==(n=i.current)?void 0:n.height}}))},context=React__namespace.createContext(null),vec1=new THREE__namespace.Vector3,vec2=new THREE__namespace.Vector3,calculateOffset=(e,t,r,o)=>{const a=t.dot(t),n=t.dot(e)-t.dot(r),i=t.dot(o);if(0===i)return-n/a;vec1.copy(o).multiplyScalar(a/i).sub(t),vec2.copy(o).multiplyScalar(n/i).add(r).sub(e);return-vec1.dot(vec2)/vec1.dot(vec1)},upV=new THREE__namespace.Vector3(0,1,0),offsetMatrix$1=new THREE__namespace.Matrix4,AxisArrow=({direction:e,axis:t})=>{const{translation:r,translationLimits:o,annotations:a,annotationsClass:n,depthTest:i,scale:s,lineWidth:p,fixed:d,axisColors:l,hoveredColor:c,opacity:u,onDragStart:g,onDrag:m,onDragEnd:f,userData:h}=React__namespace.useContext(context),y=FIBER.useThree((e=>e.controls)),_=React__namespace.useRef(null),b=React__namespace.useRef(null),R=React__namespace.useRef(null),v=React__namespace.useRef(0),[E,M]=React__namespace.useState(!1),O=React__namespace.useCallback((o=>{a&&(_.current.innerText=`${r.current[t].toFixed(2)}`,_.current.style.display="block"),o.stopPropagation();const n=(new THREE__namespace.Matrix4).extractRotation(b.current.matrixWorld),i=o.point.clone(),s=(new THREE__namespace.Vector3).setFromMatrixPosition(b.current.matrixWorld),p=e.clone().applyMatrix4(n).normalize();R.current={clickPoint:i,dir:p},v.current=r.current[t],g({component:"Arrow",axis:t,origin:s,directions:[p]}),y&&(y.enabled=!1),o.target.setPointerCapture(o.pointerId)}),[a,e,y,g,r,t]),F=React__namespace.useCallback((e=>{if(e.stopPropagation(),E||M(!0),R.current){const{clickPoint:n,dir:i}=R.current,[s,p]=(null==o?void 0:o[t])||[void 0,void 0];let d=calculateOffset(n,i,e.ray.origin,e.ray.direction);void 0!==s&&(d=Math.max(d,s-v.current)),void 0!==p&&(d=Math.min(d,p-v.current)),r.current[t]=v.current+d,a&&(_.current.innerText=`${r.current[t].toFixed(2)}`),offsetMatrix$1.makeTranslation(i.x*d,i.y*d,i.z*d),m(offsetMatrix$1)}}),[a,m,E,r,o,t]),x=React__namespace.useCallback((e=>{a&&(_.current.style.display="none"),e.stopPropagation(),R.current=null,f(),y&&(y.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[a,y,f]),T=React__namespace.useCallback((e=>{e.stopPropagation(),M(!1)}),[]),{cylinderLength:S,coneWidth:k,coneLength:C,matrixL:B}=React__namespace.useMemo((()=>{const t=d?p/s*1.6:s/20,r=d?.2:s/5,o=d?1-r:s-r,a=(new THREE__namespace.Quaternion).setFromUnitVectors(upV,e.clone().normalize());return{cylinderLength:o,coneWidth:t,coneLength:r,matrixL:(new THREE__namespace.Matrix4).makeRotationFromQuaternion(a)}}),[e,s,p,d]),w=E?c:l[t];return React__namespace.createElement("group",{ref:b},React__namespace.createElement("group",{matrix:B,matrixAutoUpdate:!1,onPointerDown:O,onPointerMove:F,onPointerUp:x,onPointerOut:T},a&&React__namespace.createElement(Html,{position:[0,-C,0]},React__namespace.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:n,ref:_})),React__namespace.createElement("mesh",{visible:!1,position:[0,(S+C)/2,0],userData:h},React__namespace.createElement("cylinderGeometry",{args:[1.4*k,1.4*k,S+C,8,1]})),React__namespace.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:i,points:[0,0,0,0,S,0],lineWidth:p,color:w,opacity:u,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),React__namespace.createElement("mesh",{raycast:()=>null,position:[0,S+C/2,0],renderOrder:500},React__namespace.createElement("coneGeometry",{args:[k,C,24,1]}),React__namespace.createElement("meshBasicMaterial",{transparent:!0,depthTest:i,color:w,opacity:u,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},decomposeIntoBasis=(e,t,r)=>{const o=Math.abs(e.x)>=Math.abs(e.y)&&Math.abs(e.x)>=Math.abs(e.z)?0:Math.abs(e.y)>=Math.abs(e.x)&&Math.abs(e.y)>=Math.abs(e.z)?1:2,a=[0,1,2].sort(((e,r)=>Math.abs(t.getComponent(r))-Math.abs(t.getComponent(e)))),n=o===a[0]?a[1]:a[0],i=e.getComponent(o),s=e.getComponent(n),p=t.getComponent(o),d=t.getComponent(n),l=r.getComponent(o),c=(r.getComponent(n)-l*(s/i))/(d-p*(s/i));return[(l-c*p)/i,c]},ray$1=new THREE__namespace.Ray,intersection$1=new THREE__namespace.Vector3,offsetMatrix=new THREE__namespace.Matrix4,PlaneSlider=({dir1:e,dir2:t,axis:r})=>{const{translation:o,translationLimits:a,annotations:n,annotationsClass:i,depthTest:s,scale:p,lineWidth:d,fixed:l,axisColors:c,hoveredColor:u,opacity:g,onDragStart:m,onDrag:f,onDragEnd:h,userData:y}=React__namespace.useContext(context),_=FIBER.useThree((e=>e.controls)),b=React__namespace.useRef(null),R=React__namespace.useRef(null),v=React__namespace.useRef(null),E=React__namespace.useRef(0),M=React__namespace.useRef(0),[O,F]=React__namespace.useState(!1),x=React__namespace.useCallback((e=>{n&&(b.current.innerText=`${o.current[(r+1)%3].toFixed(2)}, ${o.current[(r+2)%3].toFixed(2)}`,b.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),a=(new THREE__namespace.Vector3).setFromMatrixPosition(R.current.matrixWorld),i=(new THREE__namespace.Vector3).setFromMatrixColumn(R.current.matrixWorld,0).normalize(),s=(new THREE__namespace.Vector3).setFromMatrixColumn(R.current.matrixWorld,1).normalize(),p=(new THREE__namespace.Vector3).setFromMatrixColumn(R.current.matrixWorld,2).normalize(),d=(new THREE__namespace.Plane).setFromNormalAndCoplanarPoint(p,a);v.current={clickPoint:t,e1:i,e2:s,plane:d},E.current=o.current[(r+1)%3],M.current=o.current[(r+2)%3],m({component:"Slider",axis:r,origin:a,directions:[i,s,p]}),_&&(_.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[n,_,m,r]),T=React__namespace.useCallback((e=>{if(e.stopPropagation(),O||F(!0),v.current){const{clickPoint:t,e1:i,e2:s,plane:p}=v.current,[d,l]=(null==a?void 0:a[(r+1)%3])||[void 0,void 0],[c,u]=(null==a?void 0:a[(r+2)%3])||[void 0,void 0];ray$1.copy(e.ray),ray$1.intersectPlane(p,intersection$1),ray$1.direction.negate(),ray$1.intersectPlane(p,intersection$1),intersection$1.sub(t);let[g,m]=decomposeIntoBasis(i,s,intersection$1);void 0!==d&&(g=Math.max(g,d-E.current)),void 0!==l&&(g=Math.min(g,l-E.current)),void 0!==c&&(m=Math.max(m,c-M.current)),void 0!==u&&(m=Math.min(m,u-M.current)),o.current[(r+1)%3]=E.current+g,o.current[(r+2)%3]=M.current+m,n&&(b.current.innerText=`${o.current[(r+1)%3].toFixed(2)}, ${o.current[(r+2)%3].toFixed(2)}`),offsetMatrix.makeTranslation(g*i.x+m*s.x,g*i.y+m*s.y,g*i.z+m*s.z),f(offsetMatrix)}}),[n,f,O,o,a,r]),S=React__namespace.useCallback((e=>{n&&(b.current.style.display="none"),e.stopPropagation(),v.current=null,h(),_&&(_.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[n,_,h]),k=React__namespace.useCallback((e=>{e.stopPropagation(),F(!1)}),[]),C=React__namespace.useMemo((()=>{const r=e.clone().normalize(),o=t.clone().normalize();return(new THREE__namespace.Matrix4).makeBasis(r,o,r.clone().cross(o))}),[e,t]),B=l?1/7:p/7,w=l?.225:.225*p,L=O?u:c[r],A=React__namespace.useMemo((()=>[new THREE__namespace.Vector3(0,0,0),new THREE__namespace.Vector3(0,w,0),new THREE__namespace.Vector3(w,w,0),new THREE__namespace.Vector3(w,0,0),new THREE__namespace.Vector3(0,0,0)]),[w]);return React__namespace.createElement("group",{ref:R,matrix:C,matrixAutoUpdate:!1},n&&React__namespace.createElement(Html,{position:[0,0,0]},React__namespace.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:i,ref:b})),React__namespace.createElement("group",{position:[1.7*B,1.7*B,0]},React__namespace.createElement("mesh",{visible:!0,onPointerDown:x,onPointerMove:T,onPointerUp:S,onPointerOut:k,scale:w,userData:y},React__namespace.createElement("planeGeometry",null),React__namespace.createElement("meshBasicMaterial",{transparent:!0,depthTest:s,color:L,polygonOffset:!0,polygonOffsetFactor:-10,side:THREE__namespace.DoubleSide,fog:!1})),React__namespace.createElement(Line,{position:[-w/2,-w/2,0],transparent:!0,depthTest:s,points:A,lineWidth:d,color:L,opacity:g,polygonOffset:!0,polygonOffsetFactor:-10,userData:y,fog:!1})))},clickDir=new THREE__namespace.Vector3,intersectionDir=new THREE__namespace.Vector3,toDegrees=e=>180*e/Math.PI,toRadians=e=>e*Math.PI/180,calculateAngle=(e,t,r,o,a)=>{clickDir.copy(e).sub(r),intersectionDir.copy(t).sub(r);const n=o.dot(o),i=a.dot(a),s=clickDir.dot(o)/n,p=clickDir.dot(a)/i,d=intersectionDir.dot(o)/n,l=intersectionDir.dot(a)/i,c=Math.atan2(p,s);return Math.atan2(l,d)-c},fmod=(e,t)=>{let r=Math.floor(e/t);return r=r<0?r+1:r,e-r*t},minimizeAngle=e=>{let t=fmod(e,2*Math.PI);return Math.abs(t)<1e-6?0:(t<0&&(t+=2*Math.PI),t)},rotMatrix=new THREE__namespace.Matrix4,posNew=new THREE__namespace.Vector3,ray=new THREE__namespace.Ray,intersection=new THREE__namespace.Vector3,AxisRotator=({dir1:e,dir2:t,axis:r})=>{const{rotationLimits:o,annotations:a,annotationsClass:n,depthTest:i,scale:s,lineWidth:p,fixed:d,axisColors:l,hoveredColor:c,opacity:u,onDragStart:g,onDrag:m,onDragEnd:f,userData:h}=React__namespace.useContext(context),y=FIBER.useThree((e=>e.controls)),_=React__namespace.useRef(null),b=React__namespace.useRef(null),R=React__namespace.useRef(0),v=React__namespace.useRef(0),E=React__namespace.useRef(null),[M,O]=React__namespace.useState(!1),F=React__namespace.useCallback((e=>{a&&(_.current.innerText=`${toDegrees(v.current).toFixed(0)}º`,_.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),o=(new THREE__namespace.Vector3).setFromMatrixPosition(b.current.matrixWorld),n=(new THREE__namespace.Vector3).setFromMatrixColumn(b.current.matrixWorld,0).normalize(),i=(new THREE__namespace.Vector3).setFromMatrixColumn(b.current.matrixWorld,1).normalize(),s=(new THREE__namespace.Vector3).setFromMatrixColumn(b.current.matrixWorld,2).normalize(),p=(new THREE__namespace.Plane).setFromNormalAndCoplanarPoint(s,o);E.current={clickPoint:t,origin:o,e1:n,e2:i,normal:s,plane:p},g({component:"Rotator",axis:r,origin:o,directions:[n,i,s]}),y&&(y.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[a,y,g,r]),x=React__namespace.useCallback((e=>{if(e.stopPropagation(),M||O(!0),E.current){const{clickPoint:t,origin:n,e1:i,e2:s,normal:p,plane:d}=E.current,[l,c]=(null==o?void 0:o[r])||[void 0,void 0];ray.copy(e.ray),ray.intersectPlane(d,intersection),ray.direction.negate(),ray.intersectPlane(d,intersection);let u=calculateAngle(t,intersection,n,i,s),g=toDegrees(u);e.shiftKey&&(g=10*Math.round(g/10),u=toRadians(g)),void 0!==l&&void 0!==c&&c-l<2*Math.PI?(u=minimizeAngle(u),u=u>Math.PI?u-2*Math.PI:u,u=clamp__default.default(u,l-R.current,c-R.current),v.current=R.current+u):(v.current=minimizeAngle(R.current+u),v.current=v.current>Math.PI?v.current-2*Math.PI:v.current),a&&(g=toDegrees(v.current),_.current.innerText=`${g.toFixed(0)}º`),rotMatrix.makeRotationAxis(p,u),posNew.copy(n).applyMatrix4(rotMatrix).sub(n).negate(),rotMatrix.setPosition(posNew),m(rotMatrix)}}),[a,m,M,o,r]),T=React__namespace.useCallback((e=>{a&&(_.current.style.display="none"),e.stopPropagation(),R.current=v.current,E.current=null,f(),y&&(y.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[a,y,f]),S=React__namespace.useCallback((e=>{e.stopPropagation(),O(!1)}),[]),k=React__namespace.useMemo((()=>{const r=e.clone().normalize(),o=t.clone().normalize();return(new THREE__namespace.Matrix4).makeBasis(r,o,r.clone().cross(o))}),[e,t]),C=d?.65:.65*s,B=React__namespace.useMemo((()=>{const e=[];for(let t=0;t<=32;t++){const r=t*(Math.PI/2)/32;e.push(new THREE__namespace.Vector3(Math.cos(r)*C,Math.sin(r)*C,0))}return e}),[C]);return React__namespace.createElement("group",{ref:b,onPointerDown:F,onPointerMove:x,onPointerUp:T,onPointerOut:S,matrix:k,matrixAutoUpdate:!1},a&&React__namespace.createElement(Html,{position:[C,C,0]},React__namespace.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:n,ref:_})),React__namespace.createElement(Line,{points:B,lineWidth:4*p,visible:!1,userData:h}),React__namespace.createElement(Line,{transparent:!0,raycast:()=>null,depthTest:i,points:B,lineWidth:p,color:M?c:l[r],opacity:u,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},tV0=new THREE__namespace.Vector3,tV1=new THREE__namespace.Vector3,tV2=new THREE__namespace.Vector3,getPoint2=(e,t,r)=>{const o=r.width/2,a=r.height/2;t.updateMatrixWorld(!1);const n=e.project(t);return n.x=n.x*o+o,n.y=-n.y*a+a,n},getPoint3=(e,t,r,o=1)=>{const a=tV0.set(e.x/r.width*2-1,-e.y/r.height*2+1,o);return a.unproject(t),a},calculateScaleFactor=(e,t,r,o)=>{const a=getPoint2(tV2.copy(e),r,o);let n=0;for(let i=0;i<2;++i){const s=tV1.copy(a).setComponent(i,a.getComponent(i)+t),p=getPoint3(s,r,o,s.z);n=Math.max(n,e.distanceTo(p))}return n},mL0=new THREE__namespace.Matrix4,mW0=new THREE__namespace.Matrix4,mP=new THREE__namespace.Matrix4,mPInv=new THREE__namespace.Matrix4,mW=new THREE__namespace.Matrix4,mL=new THREE__namespace.Matrix4,mL0Inv=new THREE__namespace.Matrix4,mdL=new THREE__namespace.Matrix4,bb=new THREE__namespace.Box3,bbObj=new THREE__namespace.Box3,vCenter=new THREE__namespace.Vector3,vSize=new THREE__namespace.Vector3,vAnchorOffset=new THREE__namespace.Vector3,vPosition=new THREE__namespace.Vector3,xDir=new THREE__namespace.Vector3(1,0,0),yDir=new THREE__namespace.Vector3(0,1,0),zDir=new THREE__namespace.Vector3(0,0,1),PivotControls=React__namespace.forwardRef((({matrix:e,onDragStart:t,onDrag:r,onDragEnd:o,autoTransform:a=!0,anchor:n,disableAxes:i=!1,disableSliders:s=!1,disableRotations:p=!1,activeAxes:d=[!0,!0,!0],offset:l=[0,0,0],rotation:c=[0,0,0],scale:u=1,lineWidth:g=4,fixed:m=!1,translationLimits:f,rotationLimits:h,depthTest:y=!0,axisColors:_=["#ff2060","#20df80","#2080ff"],hoveredColor:b="#ffff40",annotations:R=!1,annotationsClass:v,opacity:E=1,visible:M=!0,userData:O,children:F,...x},T)=>{const S=FIBER.useThree((e=>e.invalidate)),k=React__namespace.useRef(null),C=React__namespace.useRef(null),B=React__namespace.useRef(null),w=React__namespace.useRef(null),L=React__namespace.useRef([0,0,0]);React__namespace.useLayoutEffect((()=>{n&&(w.current.updateWorldMatrix(!0,!0),mPInv.copy(w.current.matrixWorld).invert(),bb.makeEmpty(),w.current.traverse((e=>{e.geometry&&(e.geometry.boundingBox||e.geometry.computeBoundingBox(),mL.copy(e.matrixWorld).premultiply(mPInv),bbObj.copy(e.geometry.boundingBox),bbObj.applyMatrix4(mL),bb.union(bbObj))})),vCenter.copy(bb.max).add(bb.min).multiplyScalar(.5),vSize.copy(bb.max).sub(bb.min).multiplyScalar(.5),vAnchorOffset.copy(vSize).multiply(new THREE__namespace.Vector3(...n)).add(vCenter),vPosition.set(...l).add(vAnchorOffset),B.current.position.copy(vPosition),S())}));const A=React__namespace.useMemo((()=>({onDragStart:e=>{mL0.copy(C.current.matrix),mW0.copy(C.current.matrixWorld),t&&t(e),S()},onDrag:e=>{mP.copy(k.current.matrixWorld),mPInv.copy(mP).invert(),mW.copy(mW0).premultiply(e),mL.copy(mW).premultiply(mPInv),mL0Inv.copy(mL0).invert(),mdL.copy(mL).multiply(mL0Inv),a&&C.current.matrix.copy(mL),r&&r(mL,mdL,mW,e),S()},onDragEnd:()=>{o&&o(),S()},translation:L,translationLimits:f,rotationLimits:h,axisColors:_,hoveredColor:b,opacity:E,scale:u,lineWidth:g,fixed:m,depthTest:y,userData:O,annotations:R,annotationsClass:v})),[t,r,o,L,f,h,y,u,g,m,..._,b,E,O,a,R,v]),D=new THREE__namespace.Vector3;return FIBER.useFrame((e=>{if(m){const a=calculateScaleFactor(B.current.getWorldPosition(D),u,e.camera,e.size);var t,r,o;if(B.current)(null==(t=B.current)?void 0:t.scale.x)===a&&(null==(r=B.current)?void 0:r.scale.y)===a&&(null==(o=B.current)?void 0:o.scale.z)===a||(B.current.scale.setScalar(a),e.invalidate())}})),React__namespace.useImperativeHandle(T,(()=>C.current),[]),React__namespace.useLayoutEffect((()=>{e&&e instanceof THREE__namespace.Matrix4&&(C.current.matrix=e)}),[e]),React__namespace.createElement(context.Provider,{value:A},React__namespace.createElement("group",{ref:k},React__namespace.createElement("group",_extends__default.default({ref:C,matrix:e,matrixAutoUpdate:!1},x),React__namespace.createElement("group",{visible:M,ref:B,position:l,rotation:c},!i&&d[0]&&React__namespace.createElement(AxisArrow,{axis:0,direction:xDir}),!i&&d[1]&&React__namespace.createElement(AxisArrow,{axis:1,direction:yDir}),!i&&d[2]&&React__namespace.createElement(AxisArrow,{axis:2,direction:zDir}),!s&&d[0]&&d[1]&&React__namespace.createElement(PlaneSlider,{axis:2,dir1:xDir,dir2:yDir}),!s&&d[0]&&d[2]&&React__namespace.createElement(PlaneSlider,{axis:1,dir1:zDir,dir2:xDir}),!s&&d[2]&&d[1]&&React__namespace.createElement(PlaneSlider,{axis:0,dir1:yDir,dir2:zDir}),!p&&d[0]&&d[1]&&React__namespace.createElement(AxisRotator,{axis:2,dir1:xDir,dir2:yDir}),!p&&d[0]&&d[2]&&React__namespace.createElement(AxisRotator,{axis:1,dir1:zDir,dir2:xDir}),!p&&d[2]&&d[1]&&React__namespace.createElement(AxisRotator,{axis:0,dir1:yDir,dir2:zDir})),React__namespace.createElement("group",{ref:w},F))))}));exports.AccumulativeShadows=AccumulativeShadows,exports.AdaptiveDpr=AdaptiveDpr,exports.AdaptiveEvents=AdaptiveEvents,exports.ArcballControls=ArcballControls,exports.AsciiRenderer=AsciiRenderer,exports.BBAnchor=BBAnchor,exports.Backdrop=Backdrop,exports.BakeShadows=BakeShadows,exports.Billboard=Billboard,exports.Bounds=Bounds,exports.Box=Box,exports.Bvh=Bvh,exports.CameraControls=CameraControls,exports.CameraShake=CameraShake,exports.Capsule=Capsule,exports.CatmullRomLine=CatmullRomLine,exports.Caustics=Caustics,exports.Center=Center,exports.Circle=Circle,exports.Clone=Clone,exports.Cloud=Cloud,exports.ComputedAttribute=ComputedAttribute,exports.Cone=Cone,exports.ContactShadows=ContactShadows,exports.CubeCamera=CubeCamera,exports.CubicBezierLine=CubicBezierLine,exports.CurveModifier=CurveModifier,exports.CycleRaycast=CycleRaycast,exports.Cylinder=Cylinder,exports.Decal=Decal,exports.Detailed=Detailed,exports.DeviceOrientationControls=DeviceOrientationControls,exports.Dodecahedron=Dodecahedron,exports.Edges=Edges,exports.Effects=Effects,exports.Environment=Environment,exports.EnvironmentCube=EnvironmentCube,exports.EnvironmentMap=EnvironmentMap,exports.EnvironmentPortal=EnvironmentPortal,exports.Example=Example,exports.Extrude=Extrude,exports.FaceControls=FaceControls,exports.FaceLandmarker=FaceLandmarker,exports.FaceLandmarkerDefaults=FaceLandmarkerDefaults,exports.Facemesh=Facemesh,exports.FacemeshDatas=FacemeshDatas,exports.FacemeshEye=FacemeshEye,exports.FacemeshEyeDefaults=FacemeshEyeDefaults,exports.FirstPersonControls=FirstPersonControls,exports.Float=Float,exports.FlyControls=FlyControls,exports.GizmoHelper=GizmoHelper,exports.GizmoViewcube=GizmoViewcube,exports.GizmoViewport=GizmoViewport,exports.Gltf=Gltf,exports.GradientTexture=GradientTexture,exports.Grid=Grid,exports.Html=Html,exports.Hud=Hud,exports.Icosahedron=Icosahedron,exports.Image=Image,exports.Instance=Instance,exports.Instances=Instances,exports.IsObject=IsObject,exports.KeyboardControls=KeyboardControls,exports.Lathe=Lathe,exports.Lightformer=Lightformer,exports.Line=Line,exports.Loader=Loader,exports.MapControls=MapControls,exports.MarchingCube=MarchingCube,exports.MarchingCubes=MarchingCubes,exports.MarchingPlane=MarchingPlane,exports.Mask=Mask,exports.Merged=Merged,exports.MeshDiscardMaterial=MeshDiscardMaterial,exports.MeshDistortMaterial=MeshDistortMaterial,exports.MeshPortalMaterial=MeshPortalMaterial,exports.MeshReflectorMaterial=MeshReflectorMaterial,exports.MeshRefractionMaterial=MeshRefractionMaterial,exports.MeshTransmissionMaterial=MeshTransmissionMaterial,exports.MeshWobbleMaterial=MeshWobbleMaterial,exports.Octahedron=Octahedron,exports.OrbitControls=OrbitControls,exports.OrthographicCamera=OrthographicCamera,exports.PerformanceMonitor=PerformanceMonitor,exports.PerspectiveCamera=PerspectiveCamera,exports.PivotControls=PivotControls,exports.Plane=Plane,exports.Point=Point,exports.PointMaterial=PointMaterial,exports.PointMaterialImpl=PointMaterialImpl,exports.PointerLockControls=PointerLockControls,exports.Points=Points,exports.PointsBuffer=PointsBuffer,exports.Polyhedron=Polyhedron,exports.PositionPoint=PositionPoint,exports.PositionalAudio=PositionalAudio,exports.Preload=Preload,exports.PresentationControls=PresentationControls,exports.QuadraticBezierLine=QuadraticBezierLine,exports.RandomizedLight=RandomizedLight,exports.Reflector=Reflector,exports.RenderTexture=RenderTexture,exports.Resize=Resize,exports.Ring=Ring,exports.RoundedBox=RoundedBox,exports.Sampler=Sampler,exports.ScreenQuad=ScreenQuad,exports.ScreenSpace=ScreenSpace,exports.Scroll=Scroll,exports.ScrollControls=ScrollControls,exports.Segment=Segment,exports.SegmentObject=SegmentObject,exports.Segments=Segments,exports.Select=Select,exports.Shadow=Shadow,exports.Shape=Shape,exports.Sky=Sky,exports.SoftShadows=SoftShadows,exports.Sparkles=Sparkles,exports.Sphere=Sphere,exports.SpotLight=SpotLight,exports.SpotLightShadow=SpotLightShadow,exports.SpriteAnimator=SpriteAnimator,exports.Stage=Stage,exports.Stars=Stars,exports.Stats=Stats,exports.Svg=Svg,exports.Tetrahedron=Tetrahedron,exports.Text=Text,exports.Text3D=Text3D,exports.Torus=Torus,exports.TorusKnot=TorusKnot,exports.TrackballControls=TrackballControls,exports.Trail=Trail,exports.TransformControls=TransformControls,exports.Tube=Tube,exports.View=View,exports.Wireframe=Wireframe,exports.accumulativeContext=accumulativeContext,exports.calcPosFromAngles=calcPosFromAngles,exports.calculateScaleFactor=calculateScaleFactor,exports.isWebGL2Available=isWebGL2Available,exports.meshBounds=meshBounds,exports.shaderMaterial=shaderMaterial,exports.useAnimations=useAnimations,exports.useAspect=useAspect,exports.useBVH=useBVH,exports.useBounds=useBounds,exports.useBoxProjectedEnv=useBoxProjectedEnv,exports.useCamera=useCamera,exports.useContextBridge=useContextBridge,exports.useCubeCamera=useCubeCamera,exports.useCubeTexture=useCubeTexture,exports.useCursor=useCursor,exports.useDepthBuffer=useDepthBuffer,exports.useDetectGPU=useDetectGPU,exports.useEnvironment=useEnvironment,exports.useFBO=useFBO,exports.useFBX=useFBX,exports.useFaceControls=useFaceControls,exports.useFaceLandmarker=useFaceLandmarker,exports.useFont=useFont,exports.useGLTF=useGLTF,exports.useGizmoContext=useGizmoContext,exports.useHelper=useHelper,exports.useIntersect=useIntersect,exports.useKTX2=useKTX2,exports.useKeyboardControls=useKeyboardControls,exports.useMask=useMask,exports.useMatcapTexture=useMatcapTexture,exports.useNormalTexture=useNormalTexture,exports.usePerformanceMonitor=usePerformanceMonitor,exports.useProgress=useProgress,exports.useScroll=useScroll,exports.useSelect=useSelect,exports.useSurfaceSampler=useSurfaceSampler,exports.useTexture=useTexture,exports.useTrail=useTrail,exports.useTrailTexture=useTrailTexture,exports.useVideoTexture=useVideoTexture;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("react-dom/client"),n=require("three"),a=require("@react-three/fiber"),o=require("zustand"),i=require("react-merge-refs"),s=require("maath"),l=require("@react-spring/three"),c=require("@use-gesture/react"),u=require("zustand/middleware"),m=require("three-stdlib"),d=require("zustand/shallow"),f=require("troika-three-text"),p=require("suspend-react"),h=require("meshline"),x=require("lodash.pick"),y=require("lodash.omit"),v=require("camera-controls"),g=require("@mediapipe/tasks-vision"),z=require("stats.js"),w=require("detect-gpu"),b=require("three-mesh-bvh"),E=require("react-composer"),M=require("lodash.clamp");function S(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function T(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var C=S(e),P=T(t),R=T(r),D=T(n),F=T(a),k=S(o),_=S(i),L=S(d),A=S(x),B=S(y),O=S(v),U=S(z),N=S(E),I=S(M);const V=new n.Vector3,j=new n.Vector3,W=new n.Vector3;function G(e,t,r){const n=V.setFromMatrixPosition(e.matrixWorld);n.project(t);const a=r.width/2,o=r.height/2;return[n.x*a+a,-n.y*o+o]}const H=e=>Math.abs(e)<1e-10?0:e;function q(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=H(t[r]*e.elements[r])+(15!==r?",":")");return r+n}const $=(X=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>q(e,X));var X;const Y=(e,t)=>{return q(e,[1/(r=t),1/r,1/r,1,-1/r,-1/r,-1/r,-1,1/r,1/r,1/r,1,1,1,1,1],"translate(-50%,-50%)");var r};const K=P.forwardRef((({children:e,eps:t=.001,style:r,className:o,prepend:i,center:s,fullscreen:l,portal:c,distanceFactor:u,sprite:m=!1,transform:d=!1,occlude:f,onOcclude:p,castShadow:h,receiveShadow:x,material:y,geometry:v,zIndexRange:g=[16777271,0],calculatePosition:z=G,as:w="div",wrapperClass:b,pointerEvents:E="auto",...M},S)=>{const{gl:T,camera:D,scene:F,size:k,raycaster:_,events:L,viewport:A}=a.useThree(),[B]=P.useState((()=>document.createElement(w))),O=P.useRef(),U=P.useRef(null),N=P.useRef(0),I=P.useRef([0,0]),q=P.useRef(null),X=P.useRef(null),K=(null==c?void 0:c.current)||L.connected||T.domElement.parentNode,Z=P.useRef(null),Q=P.useRef(!1),J=P.useMemo((()=>f&&"blending"!==f||Array.isArray(f)&&f.length&&function(e){return e&&"object"==typeof e&&"current"in e}(f[0])),[f]);P.useLayoutEffect((()=>{const e=T.domElement;f&&"blending"===f?(e.style.zIndex=`${Math.floor(g[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)}),[f]),P.useLayoutEffect((()=>{if(U.current){const e=O.current=R.createRoot(B);if(F.updateMatrixWorld(),d)B.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=z(U.current,D,k);B.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return K&&(i?K.prepend(B):K.appendChild(B)),()=>{K&&K.removeChild(B),e.unmount()}}}),[K,d]),P.useLayoutEffect((()=>{b&&(B.className=b)}),[b]);const ee=P.useMemo((()=>d?{position:"absolute",top:0,left:0,width:k.width,height:k.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:s?"translate3d(-50%,-50%,0)":"none",...l&&{top:-k.height/2,left:-k.width/2,width:k.width,height:k.height},...r}),[r,s,l,k,d]),te=P.useMemo((()=>({position:"absolute",pointerEvents:E})),[E]);P.useLayoutEffect((()=>{var t,n;(Q.current=!1,d)?null==(t=O.current)||t.render(P.createElement("div",{ref:q,style:ee},P.createElement("div",{ref:X,style:te},P.createElement("div",{ref:S,className:o,style:r,children:e})))):null==(n=O.current)||n.render(P.createElement("div",{ref:S,style:ee,className:o,children:e}))}));const re=P.useRef(!0);a.useFrame((e=>{if(U.current){D.updateMatrixWorld(),U.current.updateWorldMatrix(!0,!1);const e=d?I.current:z(U.current,D,k);if(d||Math.abs(N.current-D.zoom)>t||Math.abs(I.current[0]-e[0])>t||Math.abs(I.current[1]-e[1])>t){const t=function(e,t){const r=V.setFromMatrixPosition(e.matrixWorld),n=j.setFromMatrixPosition(t.matrixWorld),a=r.sub(n),o=t.getWorldDirection(W);return a.angleTo(o)>Math.PI/2}(U.current,D);let r=!1;J&&("blending"!==f?r=[F]:Array.isArray(f)&&(r=f.map((e=>e.current))));const a=re.current;if(r){const e=function(e,t,r,n){const a=V.setFromMatrixPosition(e.matrixWorld),o=a.clone();o.project(t),r.setFromCamera(o,t);const i=r.intersectObjects(n,!0);if(i.length){const e=i[0].distance;return a.distanceTo(r.ray.origin)<e}return!0}(U.current,D,_,r);re.current=e&&!t}else re.current=!t;a!==re.current&&(p?p(!re.current):B.style.display=re.current?"block":"none");const o=Math.floor(g[0]/2),i=f?J?[g[0],o]:[o-1,0]:g;if(B.style.zIndex=`${function(e,t,r){if(t instanceof n.PerspectiveCamera||t instanceof n.OrthographicCamera){const n=V.setFromMatrixPosition(e.matrixWorld),a=j.setFromMatrixPosition(t.matrixWorld),o=n.distanceTo(a),i=(r[1]-r[0])/(t.far-t.near),s=r[1]-i*t.far;return Math.round(i*o+s)}}(U.current,D,i)}`,d){const[e,t]=[k.width/2,k.height/2],r=D.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:a,left:o,bottom:i,right:s}=D,l=$(D.matrixWorldInverse),c=n?`scale(${r})translate(${H(-(s+o)/2)}px,${H((a+i)/2)}px)`:`translateZ(${r}px)`;let d=U.current.matrixWorld;m&&(d=D.matrixWorldInverse.clone().transpose().copyPosition(d).scale(U.current.scale),d.elements[3]=d.elements[7]=d.elements[11]=0,d.elements[15]=1),B.style.width=k.width+"px",B.style.height=k.height+"px",B.style.perspective=n?"":`${r}px`,q.current&&X.current&&(q.current.style.transform=`${c}${l}translate(${e}px,${t}px)`,X.current.style.transform=Y(d,1/((u||10)/400)))}else{const t=void 0===u?1:function(e,t){if(t instanceof n.OrthographicCamera)return t.zoom;if(t instanceof n.PerspectiveCamera){const r=V.setFromMatrixPosition(e.matrixWorld),n=j.setFromMatrixPosition(t.matrixWorld),a=t.fov*Math.PI/180,o=r.distanceTo(n);return 1/(2*Math.tan(a/2)*o)}return 1}(U.current,D)*u;B.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}I.current=e,N.current=D.zoom}}if(!J&&Z.current&&!Q.current)if(d){if(q.current){const e=q.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){const{isOrthographicCamera:t}=D;if(t||v)M.scale&&(Array.isArray(M.scale)?M.scale instanceof n.Vector3?Z.current.scale.copy(M.scale.clone().divideScalar(1)):Z.current.scale.set(1/M.scale[0],1/M.scale[1],1/M.scale[2]):Z.current.scale.setScalar(1/M.scale));else{const t=(u||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;Z.current.scale.set(r,n,1)}Q.current=!0}}}else{const t=B.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){const e=1/A.factor,r=t.clientWidth*e,n=t.clientHeight*e;Z.current.scale.set(r,n,1),Q.current=!0}Z.current.lookAt(e.camera.position)}}));const ne=P.useMemo((()=>({vertexShader:d?void 0:'\n /*\n This shader is from the THREE\'s SpriteMaterial.\n We need to turn the backing plane into a Sprite\n (make it always face the camera) if "transfrom" \n is false. \n */\n #include <common>\n\n void main() {\n vec2 center = vec2(0., 1.);\n float rotation = 0.0;\n \n // This is somewhat arbitrary, but it seems to work well\n // Need to figure out how to derive this dynamically if it even matters\n float size = 0.03;\n\n vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n vec2 scale;\n scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n }\n ',fragmentShader:"\n void main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n "})),[d]);return P.createElement("group",C.default({},M,{ref:U}),f&&!J&&P.createElement("mesh",{castShadow:h,receiveShadow:x,ref:Z},v||P.createElement("planeGeometry",null),y||P.createElement("shaderMaterial",{side:n.DoubleSide,vertexShader:ne.vertexShader,fragmentShader:ne.fragmentShader})))}));let Z=0;const Q=k.default((e=>(n.DefaultLoadingManager.onStart=(t,r,n)=>{e({active:!0,item:t,loaded:r,total:n,progress:(r-Z)/(n-Z)*100})},n.DefaultLoadingManager.onLoad=()=>{e({active:!1})},n.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),n.DefaultLoadingManager.onProgress=(t,r,n)=>{r===n&&(Z=n),e({active:!0,item:t,loaded:r,total:n,progress:(r-Z)/(n-Z)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),J=e=>`Loading ${e.toFixed(2)}%`;const ee={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}},te=P.createContext(null);function re(){return P.useContext(te)}const ne=P.forwardRef((({children:e},t)=>{const r=P.useRef(null),n=re(),{width:o,height:i}=a.useThree((e=>e.viewport));return a.useFrame((()=>{r.current.position.x=n.horizontal?-o*(n.pages-1)*n.offset:0,r.current.position.y=n.horizontal?0:i*(n.pages-1)*n.offset})),P.createElement("group",{ref:_.default([t,r])},e)})),ae=P.forwardRef((({children:e,style:t,...r},n)=>{const o=re(),i=P.useRef(null),{width:s,height:l}=a.useThree((e=>e.size)),c=P.useContext(a.context),u=P.useMemo((()=>R.createRoot(o.fixed)),[o.fixed]);return a.useFrame((()=>{o.delta>o.eps&&(i.current.style.transform=`translate3d(${o.horizontal?-s*(o.pages-1)*o.offset:0}px,${o.horizontal?0:l*(o.pages-1)*-o.offset}px,0)`)})),u.render(P.createElement("div",C.default({ref:_.default([n,i]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),P.createElement(te.Provider,{value:o},P.createElement(a.context.Provider,{value:c},e)))),null})),oe=P.forwardRef((({html:e,...t},r)=>{const n=e?ae:ne;return P.createElement(n,C.default({ref:r},t))}));const ie=P.createContext(null);const se=P.createContext([]);const le=P.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:r=!1,lockZ:n=!1,...o},i){const s=P.useRef();return a.useFrame((({camera:a})=>{if(!e||!s.current)return;const o=s.current.rotation.clone();a.getWorldQuaternion(s.current.quaternion),t&&(s.current.rotation.x=o.x),r&&(s.current.rotation.y=o.y),n&&(s.current.rotation.z=o.z)})),P.createElement("group",C.default({ref:_.default([s,i])},o))})),ce=P.forwardRef((({children:e,depth:t=-1,...r},n)=>{const o=P.useRef(null);return a.useFrame((({camera:e})=>{o.current.quaternion.copy(e.quaternion),o.current.position.copy(e.position)})),P.createElement("group",C.default({ref:_.default([n,o])},r),P.createElement("group",{"position-z":-t},e))})),ue=P.forwardRef((function({points:e,color:t="black",vertexColors:r,linewidth:o,lineWidth:i,segments:s,dashed:l,...c},u){const d=a.useThree((e=>e.size)),f=P.useMemo((()=>s?new m.LineSegments2:new m.Line2),[s]),[p]=P.useState((()=>new m.LineMaterial)),h=P.useMemo((()=>{const t=s?new m.LineSegmentsGeometry:new m.LineGeometry,a=e.map((e=>{const t=Array.isArray(e);return e instanceof n.Vector3?[e.x,e.y,e.z]:e instanceof n.Vector2?[e.x,e.y,0]:t&&3===e.length?[e[0],e[1],e[2]]:t&&2===e.length?[e[0],e[1],0]:e}));if(t.setPositions(a.flat()),r){const e=r.map((e=>e instanceof n.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,s,r]);return P.useLayoutEffect((()=>{f.computeLineDistances()}),[e,f]),P.useLayoutEffect((()=>{l?p.defines.USE_DASH="":delete p.defines.USE_DASH,p.needsUpdate=!0}),[l,p]),P.useEffect((()=>()=>h.dispose()),[h]),P.createElement("primitive",C.default({object:f,ref:u},c),P.createElement("primitive",{object:h,attach:"geometry"}),P.createElement("primitive",C.default({object:p,attach:"material",color:t,vertexColors:Boolean(r),resolution:[d.width,d.height],linewidth:null!=o?o:i,dashed:l},c)))})),me=new n.Vector3,de=P.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:r,segments:a=20,...o},i){const s=P.useRef(null),[l]=P.useState((()=>new n.QuadraticBezierCurve3(void 0,void 0,void 0))),c=P.useCallback(((e,t,r,a=20)=>(e instanceof n.Vector3?l.v0.copy(e):l.v0.set(...e),t instanceof n.Vector3?l.v2.copy(t):l.v2.set(...t),r instanceof n.Vector3?l.v1.copy(r):Array.isArray(r)?l.v1.set(...r):l.v1.copy(l.v0.clone().add(l.v2.clone().sub(l.v0)).add(me.set(0,l.v0.y-l.v2.y,0))),l.getPoints(a))),[]);P.useLayoutEffect((()=>{s.current.setPoints=(e,t,r)=>{const n=c(e,t,r);s.current.geometry&&s.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const u=P.useMemo((()=>c(e,t,r,a)),[e,t,r,a]);return P.createElement(ue,C.default({ref:_.default([s,i]),points:u},o))})),fe=P.forwardRef((function({start:e,end:t,midA:r,midB:a,segments:o=20,...i},s){const l=P.useMemo((()=>{const i=e instanceof n.Vector3?e:new n.Vector3(...e),s=t instanceof n.Vector3?t:new n.Vector3(...t),l=r instanceof n.Vector3?r:new n.Vector3(...r),c=a instanceof n.Vector3?a:new n.Vector3(...a);return new n.CubicBezierCurve3(i,l,c,s).getPoints(o)}),[e,t,r,a,o]);return P.createElement(ue,C.default({ref:s,points:l},i))})),pe=P.forwardRef((function({points:e,closed:t=!1,curveType:r="centripetal",tension:a=.5,segments:o=20,vertexColors:i,...s},l){const c=P.useMemo((()=>{const o=e.map((e=>e instanceof n.Vector3?e:new n.Vector3(...e)));return new n.CatmullRomCurve3(o,t,r,a)}),[e,t,r,a]),u=P.useMemo((()=>c.getPoints(o)),[c,o]),m=P.useMemo((()=>{if(!i||i.length<2)return;if(i.length===o+1)return i;const e=i.map((e=>e instanceof n.Color?e:new n.Color(...e)));t&&e.push(e[0].clone());const r=[e[0]],a=o/(e.length-1);for(let t=1;t<o;t++){const n=t%a/a,o=Math.floor(t/a);r.push(e[o].clone().lerp(e[o+1],n))}return r.push(e[e.length-1]),r}),[i,o]);return P.createElement(ue,C.default({ref:l,points:u,vertexColors:m},s))})),he=P.forwardRef((({url:e,distance:t=1,loop:r=!0,autoplay:o,...i},s)=>{const l=P.useRef(),c=a.useThree((({camera:e})=>e)),[u]=P.useState((()=>new n.AudioListener)),m=a.useLoader(n.AudioLoader,e);return P.useEffect((()=>{const e=l.current;e&&(e.setBuffer(m),e.setRefDistance(t),e.setLoop(r),o&&!e.isPlaying&&e.play())}),[m,c,t,r]),P.useEffect((()=>{const e=l.current;return c.add(u),()=>{c.remove(u),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),P.createElement("positionalAudio",C.default({ref:_.default([l,s]),args:[u]},i))})),xe=P.forwardRef((({sdfGlyphSize:e=64,anchorX:t="center",anchorY:r="middle",font:n,fontSize:o=1,children:i,characters:s,onSync:l,...c},u)=>{const m=a.useThree((({invalidate:e})=>e)),[d]=P.useState((()=>new f.Text)),[h,x]=P.useMemo((()=>{const e=[];let t="";return P.Children.forEach(i,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[i]);return p.suspend((()=>new Promise((e=>f.preloadFont({font:n,characters:s},e)))),["troika-text",n,s]),P.useLayoutEffect((()=>{d.sync((()=>{m(),l&&l(d)}))})),P.useEffect((()=>()=>d.dispose()),[d]),P.createElement("primitive",C.default({object:d,ref:u,font:n,text:x,anchorX:t,anchorY:r,fontSize:o,sdfGlyphSize:e},c),h)}));let ye=null;async function ve(e){ye||(ye=new m.FontLoader);let t="string"==typeof e?await(await fetch(e)).json():e;return ye.parse(t)}function ge(e){return p.suspend(ve,[e])}ge.preload=e=>p.preload(ve,[e]),ge.clear=e=>p.clear([e]);const ze=["string","number"],we=P.forwardRef((({font:e,letterSpacing:r=0,lineHeight:n=1,size:o=1,height:i=.2,bevelThickness:s=.1,bevelSize:l=.01,bevelEnabled:c=!1,bevelOffset:u=0,bevelSegments:d=4,curveSegments:f=8,smooth:p,children:h,...x},y)=>{P.useMemo((()=>a.extend({RenamedTextGeometry:m.TextGeometry})),[]);const v=P.useRef(null),g=ge(e),z=t.useMemo((()=>({font:g,size:o,height:i,bevelThickness:s,bevelSize:l,bevelEnabled:c,bevelSegments:d,bevelOffset:u,curveSegments:f,letterSpacing:r,lineHeight:n})),[g,o,i,s,l,c,d,u,f,r,n]),[w,...b]=t.useMemo((()=>(e=>{let t="";const r=[];return P.Children.forEach(e,(e=>{ze.includes(typeof e)?t+=e+"":r.push(e)})),[t,...r]})(h)),[h]),E=P.useMemo((()=>[w,z]),[w,z]);return P.useLayoutEffect((()=>{p&&(v.current.geometry=m.mergeVertices(v.current.geometry,p),v.current.geometry.computeVertexNormals())}),[E,p]),P.useImperativeHandle(y,(()=>v.current),[]),P.createElement("mesh",C.default({},x,{ref:v}),P.createElement("renamedTextGeometry",{args:E}),b)})),be=P.forwardRef((({children:e,multisamping:t=8,renderIndex:r=1,disableRender:o,disableGamma:i,disableRenderPass:s,depthBuffer:l=!0,stencilBuffer:c=!1,anisotropy:u=1,encoding:d,type:f,...p},h)=>{P.useMemo((()=>a.extend({EffectComposer:m.EffectComposer,RenderPass:m.RenderPass,ShaderPass:m.ShaderPass})),[]);const x=P.useRef(),{scene:y,camera:v,gl:g,size:z,viewport:w}=a.useThree(),[b]=P.useState((()=>{const e=new n.WebGLRenderTarget(z.width,z.height,{type:f||n.HalfFloatType,format:n.RGBAFormat,depthBuffer:l,stencilBuffer:c,anisotropy:u});return f===n.UnsignedByteType&&null!=d&&("colorSpace"in e?e.texture.colorSpace=d:e.texture.encoding=d),e.samples=t,e}));P.useEffect((()=>{var e,t;null==(e=x.current)||e.setSize(z.width,z.height),null==(t=x.current)||t.setPixelRatio(w.dpr)}),[g,z,w.dpr]),a.useFrame((()=>{var e;o||null==(e=x.current)||e.render()}),r);const E=[];return s||E.push(P.createElement("renderPass",{key:"renderpass",attach:`passes-${E.length}`,args:[y,v]})),i||E.push(P.createElement("shaderPass",{attach:`passes-${E.length}`,key:"gammapass",args:[m.GammaCorrectionShader]})),P.Children.forEach(e,(e=>{e&&E.push(P.cloneElement(e,{key:E.length,attach:`passes-${E.length}`}))})),P.createElement("effectComposer",C.default({ref:_.default([h,x]),args:[g,b]},p),E)}));function Ee(e,t,r,n){const a=class extends D.ShaderMaterial{constructor(a={}){const o=Object.entries(e);super({uniforms:o.reduce(((e,[t,r])=>({...e,...D.UniformsUtils.clone({[t]:{value:r}})})),{}),vertexShader:t,fragmentShader:r}),this.key="",o.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),Object.assign(this,a),n&&n(this)}};return a.key=D.MathUtils.generateUUID(),a}const Me=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function Se(e,r){const o=a.useThree((e=>e.gl)),i=a.useLoader(n.TextureLoader,Me(e)?Object.values(e):e);if(t.useLayoutEffect((()=>{null==r||r(i)}),[r]),t.useEffect((()=>{(Array.isArray(i)?i:[i]).forEach(o.initTexture)}),[o,i]),Me(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:i[t.indexOf(e)]}))),r}return i}Se.preload=e=>a.useLoader.preload(n.TextureLoader,e),Se.clear=e=>a.useLoader.clear(n.TextureLoader,e);const Te=Ee({color:new D.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0,opacity:1},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n uniform float opacity;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity), grayscale);\n \n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }\n"),Ce=P.forwardRef((({children:e,color:t,segments:r=1,scale:n=1,zoom:o=1,grayscale:i=0,opacity:s=1,texture:l,toneMapped:c,transparent:u,...m},d)=>{a.extend({ImageMaterial:Te});const f=Array.isArray(n)?[n[0],n[1]]:[n,n],p=[l.image.width,l.image.height];return P.createElement("mesh",C.default({ref:d,scale:Array.isArray(n)?[...n,1]:n},m),P.createElement("planeGeometry",{args:[1,1,r,r]}),P.createElement("imageMaterial",{color:t,map:l,zoom:o,grayscale:i,opacity:s,scale:f,imageBounds:p,toneMapped:c,transparent:u}),e)})),Pe=P.forwardRef((({url:e,...t},r)=>{const n=Se(e);return P.createElement(Ce,C.default({},t,{texture:n,ref:r}))})),Re=P.forwardRef((({url:e,...t},r)=>P.createElement(Ce,C.default({},t,{ref:r})))),De=P.forwardRef(((e,t)=>{if(e.url)return P.createElement(Pe,C.default({},e,{ref:t}));if(e.texture)return P.createElement(Re,C.default({},e,{ref:t}));throw new Error("<Image /> requires a url or texture")})),Fe=P.forwardRef((({userData:e,children:t,geometry:r,threshold:n=15,color:a="black",...o},i)=>{const s=P.useRef(null);return P.useLayoutEffect((()=>{const e=s.current.parent;if(e){const t=r||e.geometry;t===s.current.userData.currentGeom&&n===s.current.userData.currentThreshold||(s.current.userData.currentGeom=t,s.current.userData.currentThreshold=n,s.current.geometry=new D.EdgesGeometry(t,n))}})),P.useImperativeHandle(i,(()=>s.current)),P.createElement("lineSegments",C.default({ref:s,raycast:()=>null},o),t||P.createElement("lineBasicMaterial",{color:a}))})),ke={width:.2,length:1,decay:1,local:!1,stride:0,interval:1},_e=(e,t=1)=>(e.set(e.subarray(t)),e.fill(-1/0,-t),e);function Le(e,t){const{length:r,local:o,decay:i,interval:s,stride:l}={...ke,...t},c=P.useRef(),[u]=P.useState((()=>new n.Vector3));P.useLayoutEffect((()=>{e&&(c.current=Float32Array.from({length:10*r*3},((t,r)=>e.position.getComponent(r%3))))}),[r,e]);const m=P.useRef(new n.Vector3),d=P.useRef(0);return a.useFrame((()=>{if(e&&c.current){if(0===d.current){let t;o?t=e.position:(e.getWorldPosition(u),t=u);const r=1*i;for(let e=0;e<r;e++)t.distanceTo(m.current)<l||(_e(c.current,3),c.current.set(t.toArray(),c.current.length-3));m.current.copy(t)}d.current++,d.current=d.current%s}})),c}const Ae=P.forwardRef(((e,t)=>{const{children:r}=e,{width:o,length:i,decay:s,local:l,stride:c,interval:u}={...ke,...e},{color:m="hotpink",attenuation:d,target:f}=e,p=a.useThree((e=>e.size)),x=a.useThree((e=>e.scene)),y=P.useRef(null),[v,g]=P.useState(null),z=Le(v,{length:i,decay:s,local:l,stride:c,interval:u});P.useEffect((()=>{const e=(null==f?void 0:f.current)||y.current.children.find((e=>e instanceof n.Object3D));e&&g(e)}),[z,f]);const w=P.useMemo((()=>new h.MeshLineGeometry),[]),b=P.useMemo((()=>{var e;const t=new h.MeshLineMaterial({lineWidth:.1*o,color:m,sizeAttenuation:1,resolution:new n.Vector2(p.width,p.height)});let a;if(r)if(Array.isArray(r))a=r.find((e=>{const t=e;return"string"==typeof t.type&&"meshLineMaterial"===t.type}));else{const e=r;"string"==typeof e.type&&"meshLineMaterial"===e.type&&(a=e)}return"object"==typeof(null==(e=a)?void 0:e.props)&&t.setValues(a.props),t}),[o,m,p,r]);return P.useEffect((()=>{b.uniforms.resolution.value.set(p.width,p.height)}),[p]),a.useFrame((()=>{z.current&&w.setPoints(z.current,d)})),P.createElement("group",null,a.createPortal(P.createElement("mesh",{ref:t,geometry:w,material:b}),x),P.createElement("group",{ref:y},r))}));function Be(e,t=16,r,a,o){const[i,s]=P.useState((()=>{const e=Array.from({length:t},(()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])).flat();return new n.InstancedBufferAttribute(Float32Array.from(e),16)}));return P.useLayoutEffect((()=>{if(void 0===e.current)return;const l=new m.MeshSurfaceSampler(e.current);a&&l.setWeightAttribute(a),l.build();const c=new n.Vector3,u=new n.Vector3,d=new n.Color,f=new n.Object3D;e.current.updateMatrixWorld(!0);for(let n=0;n<t;n++)l.sample(c,u,d),"function"==typeof r?r({dummy:f,sampledMesh:e.current,position:c,normal:u,color:d},n):f.position.copy(c),f.updateMatrix(),null!=o&&o.current&&o.current.setMatrixAt(n,f.matrix),f.matrix.toArray(i.array,16*n);null!=o&&o.current&&(o.current.instanceMatrix.needsUpdate=!0),i.needsUpdate=!0,s(i.clone())}),[e,o,a,t,r]),i}const Oe=P.forwardRef((({isChild:e=!1,object:t,children:r,deep:n,castShadow:a,receiveShadow:o,inject:i,keys:s,...l},c)=>{var u;const d={keys:s,deep:n,inject:i,castShadow:a,receiveShadow:o};if(t=P.useMemo((()=>{if(!1===e&&!Array.isArray(t)){let e=!1;if(t.traverse((t=>{t.isSkinnedMesh&&(e=!0)})),e)return m.SkeletonUtils.clone(t)}return t}),[t,e]),Array.isArray(t))return P.createElement("group",C.default({},l,{ref:c}),t.map((e=>P.createElement(Oe,C.default({key:e.uuid,object:e},d)))),r);const{children:f,...p}=function(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData","bindMode","bindMatrix","bindMatrixInverse","skeleton"],deep:r,inject:n,castShadow:a,receiveShadow:o}){let i=A.default(e,t);return r&&(i.geometry&&"materialsOnly"!==r&&(i.geometry=i.geometry.clone()),i.material&&"geometriesOnly"!==r&&(i.material=i.material.clone())),n&&(i="function"==typeof n?{...i,children:n(e)}:P.isValidElement(n)?{...i,children:n}:{...i,...n}),e instanceof D.Mesh&&(a&&(i.castShadow=!0),o&&(i.receiveShadow=!0)),i}(t,d),h=t.type[0].toLowerCase()+t.type.slice(1);return P.createElement(h,C.default({},p,l,{ref:c}),(null==(u=t)?void 0:u.children).map((e=>"Bone"===e.type?P.createElement("primitive",C.default({key:e.uuid,object:e},d)):P.createElement(Oe,C.default({key:e.uuid,object:e},d,{isChild:!0})))),r,f)})),Ue=P.createContext(null),Ne=P.forwardRef((({resolution:e=28,maxPolyCount:t=1e4,enableUvs:r=!1,enableColors:n=!1,children:o,...i},s)=>{const l=P.useRef(null),c=P.useMemo((()=>new m.MarchingCubes(e,null,r,n,t)),[e,t,r,n]),u=P.useMemo((()=>({getParent:()=>l})),[]);return a.useFrame((()=>{c.update(),c.reset()}),-1),P.createElement(P.Fragment,null,P.createElement("primitive",C.default({object:c,ref:_.default([l,s])},i),P.createElement(Ue.Provider,{value:u},o)))})),Ie=P.forwardRef((({strength:e=.5,subtract:t=12,color:r,...n},o)=>{const{getParent:i}=P.useContext(Ue),s=P.useMemo((()=>i()),[i]),l=P.useRef(),c=new D.Vector3;return a.useFrame((n=>{s.current&&l.current&&(l.current.getWorldPosition(c),s.current.addBall(.5+.5*c.x,.5+.5*c.y,.5+.5*c.z,e,t,r))})),P.createElement("group",C.default({ref:_.default([o,l])},n))})),Ve=P.forwardRef((({planeType:e="x",strength:t=.5,subtract:r=12,...n},o)=>{const{getParent:i}=P.useContext(Ue),s=P.useMemo((()=>i()),[i]),l=P.useRef(),c=P.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return a.useFrame((()=>{s.current&&l.current&&s.current[c](t,r)})),P.createElement("group",C.default({ref:_.default([o,l])},n))}));function je(e=[0,0,0]){return function(e){return Array.isArray(e)}(e)?e:e instanceof D.Vector3||e instanceof D.Euler?[e.x,e.y,e.z]:[e,e,e]}const We=P.forwardRef((function({debug:e,mesh:t,children:r,position:n,rotation:o,scale:i,...s},l){const c=P.useRef(null);P.useImperativeHandle(l,(()=>c.current));const u=P.useRef(null);return P.useLayoutEffect((()=>{const e=(null==t?void 0:t.current)||c.current.parent,r=c.current;if(!(e instanceof D.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');const s={position:new D.Vector3,rotation:new D.Euler,scale:new D.Vector3(1,1,1)};if(e){a.applyProps(s,{position:n,scale:i});const t=e.matrixWorld.clone();if(e.matrixWorld.identity(),o&&"number"!=typeof o)a.applyProps(s,{rotation:o});else{const t=new D.Object3D;t.position.copy(s.position),t.lookAt(e.position),"number"==typeof o&&t.rotateZ(o),a.applyProps(s,{rotation:t.rotation})}return r.geometry=new m.DecalGeometry(e,s.position,s.rotation,s.scale),u.current&&a.applyProps(u.current,s),e.matrixWorld=t,()=>{r.geometry.dispose()}}}),[t,...je(n),...je(i),...je(o)]),P.createElement("mesh",{ref:c},r||P.createElement("meshStandardMaterial",C.default({transparent:!0,polygonOffset:!0,polygonOffsetFactor:-10},s)),e&&P.createElement("mesh",{ref:u},P.createElement("boxGeometry",null),P.createElement("meshNormalMaterial",{wireframe:!0}),P.createElement("axesHelper",null)))})),Ge=t.forwardRef((function({src:e,skipFill:r,skipStrokes:o,fillMaterial:i,strokeMaterial:s,fillMeshProps:l,strokeMeshProps:c,...u},d){const f=a.useLoader(m.SVGLoader,e.startsWith("<svg")?`data:image/svg+xml;utf8,${e}`:e),p=t.useMemo((()=>o?[]:f.paths.map((e=>{var t;return void 0===(null==(t=e.userData)?void 0:t.style.stroke)||"none"===e.userData.style.stroke?null:e.subPaths.map((t=>m.SVGLoader.pointsToStroke(t.getPoints(),e.userData.style)))}))),[f,o]);return t.useEffect((()=>()=>p.forEach((e=>e&&e.map((e=>e.dispose()))))),[p]),P.createElement("object3D",C.default({ref:d},u),P.createElement("object3D",{scale:[1,-1,1]},f.paths.map(((e,a)=>{var u,d;return P.createElement(t.Fragment,{key:a},!r&&void 0!==(null==(u=e.userData)?void 0:u.style.fill)&&"none"!==e.userData.style.fill&&m.SVGLoader.createShapes(e).map(((t,r)=>P.createElement("mesh",C.default({key:r},l),P.createElement("shapeGeometry",{args:[t]}),P.createElement("meshBasicMaterial",C.default({color:e.userData.style.fill,opacity:e.userData.style.fillOpacity,transparent:!0,side:n.DoubleSide,depthWrite:!1},i))))),!o&&void 0!==(null==(d=e.userData)?void 0:d.style.stroke)&&"none"!==e.userData.style.stroke&&e.subPaths.map(((t,r)=>P.createElement("mesh",C.default({key:r,geometry:p[a][r]},c),P.createElement("meshBasicMaterial",C.default({color:e.userData.style.stroke,opacity:e.userData.style.strokeOpacity,transparent:!0,side:n.DoubleSide,depthWrite:!1},s))))))}))))}));let He=null;function qe(e,t,r){return n=>{r&&r(n),e&&(He||(He=new m.DRACOLoader),He.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.5.5/"),n.setDRACOLoader(He)),t&&n.setMeshoptDecoder("function"==typeof m.MeshoptDecoder?m.MeshoptDecoder():m.MeshoptDecoder)}}function $e(e,t=!0,r=!0,n){return a.useLoader(m.GLTFLoader,e,qe(t,r,n))}$e.preload=(e,t=!0,r=!0,n)=>a.useLoader.preload(m.GLTFLoader,e,qe(t,r,n)),$e.clear=e=>a.useLoader.clear(m.GLTFLoader,e);const Xe=P.forwardRef((({src:e,...t},r)=>{const{scene:n}=$e(e);return P.createElement(Oe,C.default({ref:r},t,{object:n}))}));function Ye(e,t,r){const n=a.useThree((e=>e.size)),o=a.useThree((e=>e.viewport)),i="number"==typeof e?e:n.width*o.dpr,s="number"==typeof t?t:n.height*o.dpr,l=("number"==typeof e?r:e)||{},{samples:c=0,depth:u,...m}=l,d=P.useMemo((()=>{const e=new D.WebGLRenderTarget(i,s,{minFilter:D.LinearFilter,magFilter:D.LinearFilter,type:D.HalfFloatType,...m});return u&&(e.depthTexture=new D.DepthTexture(i,s,D.FloatType)),e.samples=c,e}),[]);return P.useLayoutEffect((()=>{d.setSize(i,s),c&&(d.samples=c)}),[c,d,i,s]),P.useEffect((()=>()=>d.dispose()),[]),d}const Ke=P.forwardRef((({envMap:e,resolution:t=256,frames:r=1/0,children:n,makeDefault:o,...i},s)=>{const l=a.useThree((({set:e})=>e)),c=a.useThree((({camera:e})=>e)),u=a.useThree((({size:e})=>e)),m=P.useRef(null),d=P.useRef(null),f=Ye(t);P.useLayoutEffect((()=>{i.manual||m.current.updateProjectionMatrix()}),[u,i]),P.useLayoutEffect((()=>{m.current.updateProjectionMatrix()})),P.useLayoutEffect((()=>{if(o){const e=c;return l((()=>({camera:m.current}))),()=>l((()=>({camera:e})))}}),[m,o,l]);let p=0,h=null;const x="function"==typeof n;return a.useFrame((t=>{x&&(r===1/0||p<r)&&(d.current.visible=!1,t.gl.setRenderTarget(f),h=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,m.current),t.scene.background=h,t.gl.setRenderTarget(null),d.current.visible=!0,p++)})),P.createElement(P.Fragment,null,P.createElement("orthographicCamera",C.default({left:u.width/-2,right:u.width/2,top:u.height/2,bottom:u.height/-2,ref:_.default([m,s])},i),!x&&n),P.createElement("group",{ref:d},x&&n(f.texture)))})),Ze=P.forwardRef((({envMap:e,resolution:t=256,frames:r=1/0,makeDefault:n,children:o,...i},s)=>{const l=a.useThree((({set:e})=>e)),c=a.useThree((({camera:e})=>e)),u=a.useThree((({size:e})=>e)),m=P.useRef(null),d=P.useRef(null),f=Ye(t);P.useLayoutEffect((()=>{i.manual||(m.current.aspect=u.width/u.height)}),[u,i]),P.useLayoutEffect((()=>{m.current.updateProjectionMatrix()}));let p=0,h=null;const x="function"==typeof o;return a.useFrame((t=>{x&&(r===1/0||p<r)&&(d.current.visible=!1,t.gl.setRenderTarget(f),h=t.scene.background,e&&(t.scene.background=e),t.gl.render(t.scene,m.current),t.scene.background=h,t.gl.setRenderTarget(null),d.current.visible=!0,p++)})),P.useLayoutEffect((()=>{if(n){const e=c;return l((()=>({camera:m.current}))),()=>l((()=>({camera:e})))}}),[m,n,l]),P.createElement(P.Fragment,null,P.createElement("perspectiveCamera",C.default({ref:_.default([m,s])},i),!x&&o),P.createElement("group",{ref:d},x&&o(f.texture)))}));function Qe({resolution:e=256,near:r=.1,far:o=1e3,envMap:i,fog:s}={}){const l=a.useThree((({gl:e})=>e)),c=a.useThree((({scene:e})=>e)),u=t.useMemo((()=>{const t=new n.WebGLCubeRenderTarget(e);return t.texture.type=n.HalfFloatType,t}),[e]);t.useEffect((()=>()=>{u.dispose()}),[u]);const m=t.useMemo((()=>new D.CubeCamera(r,o,u)),[r,o,u]);let d,f;const p=P.useCallback((()=>{d=c.fog,f=c.background,c.background=i||f,c.fog=s||d,m.update(l,c),c.fog=d,c.background=f}),[l,c,m]);return{fbo:u,camera:m,update:p}}const Je=P.forwardRef(((e,t)=>{const{camera:r,onChange:n,makeDefault:o,...i}=e,s=a.useThree((e=>e.camera)),l=a.useThree((e=>e.invalidate)),c=a.useThree((e=>e.get)),u=a.useThree((e=>e.set)),d=r||s,[f]=P.useState((()=>new m.DeviceOrientationControls(d)));return P.useEffect((()=>{const e=e=>{l(),n&&n(e)};return null==f||null==f.addEventListener||f.addEventListener("change",e),()=>null==f||null==f.removeEventListener?void 0:f.removeEventListener("change",e)}),[n,f,l]),a.useFrame((()=>null==f?void 0:f.update()),-1),P.useEffect((()=>{const e=f;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[f]),P.useEffect((()=>{if(o){const e=c().controls;return u({controls:f}),()=>u({controls:e})}}),[o,f]),f?P.createElement("primitive",C.default({ref:t,object:f},i)):null})),et=P.forwardRef((({domElement:e,...t},r)=>{const{onChange:n,makeDefault:o,...i}=t,s=a.useThree((e=>e.invalidate)),l=a.useThree((e=>e.camera)),c=a.useThree((e=>e.gl)),u=a.useThree((e=>e.events)),d=a.useThree((e=>e.get)),f=a.useThree((e=>e.set)),p=e||u.connected||c.domElement,h=P.useMemo((()=>new m.FlyControls(l)),[l]);return P.useEffect((()=>(h.connect(p),()=>{h.dispose()})),[p,h,s]),P.useEffect((()=>{const e=e=>{s(),n&&n(e)};return null==h.addEventListener||h.addEventListener("change",e),()=>null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[n,s]),P.useEffect((()=>{if(o){const e=d().controls;return f({controls:h}),()=>f({controls:e})}}),[o,h]),a.useFrame(((e,t)=>h.update(t))),P.createElement("primitive",C.default({ref:r,object:h,args:[l,p]},i))})),tt=P.forwardRef(((e={enableDamping:!0},t)=>{const{domElement:r,camera:n,makeDefault:o,onChange:i,onStart:s,onEnd:l,...c}=e,u=a.useThree((e=>e.invalidate)),d=a.useThree((e=>e.camera)),f=a.useThree((e=>e.gl)),p=a.useThree((e=>e.events)),h=a.useThree((e=>e.set)),x=a.useThree((e=>e.get)),y=r||p.connected||f.domElement,v=n||d,g=P.useMemo((()=>new m.MapControls(v)),[v]);return P.useEffect((()=>{g.connect(y);const e=e=>{u(),i&&i(e)};return g.addEventListener("change",e),s&&g.addEventListener("start",s),l&&g.addEventListener("end",l),()=>{g.dispose(),g.removeEventListener("change",e),s&&g.removeEventListener("start",s),l&&g.removeEventListener("end",l)}}),[i,s,l,g,u,y]),P.useEffect((()=>{if(o){const e=x().controls;return h({controls:g}),()=>h({controls:e})}}),[o,g]),a.useFrame((()=>g.update()),-1),P.createElement("primitive",C.default({ref:t,object:g,enableDamping:!0},c))})),rt=P.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:n,enableDamping:o=!0,keyEvents:i=!1,onChange:s,onStart:l,onEnd:c,...u},d)=>{const f=a.useThree((e=>e.invalidate)),p=a.useThree((e=>e.camera)),h=a.useThree((e=>e.gl)),x=a.useThree((e=>e.events)),y=a.useThree((e=>e.setEvents)),v=a.useThree((e=>e.set)),g=a.useThree((e=>e.get)),z=a.useThree((e=>e.performance)),w=t||p,b=n||x.connected||h.domElement,E=P.useMemo((()=>new m.OrbitControls(w)),[w]);return a.useFrame((()=>{E.enabled&&E.update()}),-1),P.useEffect((()=>(i&&E.connect(!0===i?b:i),E.connect(b),()=>{E.dispose()})),[i,b,r,E,f]),P.useEffect((()=>{const e=e=>{f(),r&&z.regress(),s&&s(e)},t=e=>{l&&l(e)},n=e=>{c&&c(e)};return E.addEventListener("change",e),E.addEventListener("start",t),E.addEventListener("end",n),()=>{E.removeEventListener("start",t),E.removeEventListener("end",n),E.removeEventListener("change",e)}}),[s,l,c,E,f,y]),P.useEffect((()=>{if(e){const e=g().controls;return v({controls:E}),()=>v({controls:e})}}),[e,E]),P.createElement("primitive",C.default({ref:d,object:E,enableDamping:o},u))})),nt=P.forwardRef((({makeDefault:e,camera:t,domElement:r,regress:n,onChange:o,onStart:i,onEnd:s,...l},c)=>{const{invalidate:u,camera:d,gl:f,events:p,set:h,get:x,performance:y,viewport:v}=a.useThree(),g=t||d,z=r||p.connected||f.domElement,w=P.useMemo((()=>new m.TrackballControls(g)),[g]);return a.useFrame((()=>{w.enabled&&w.update()}),-1),P.useEffect((()=>(w.connect(z),()=>{w.dispose()})),[z,n,w,u]),P.useEffect((()=>{const e=e=>{u(),n&&y.regress(),o&&o(e)};return w.addEventListener("change",e),i&&w.addEventListener("start",i),s&&w.addEventListener("end",s),()=>{i&&w.removeEventListener("start",i),s&&w.removeEventListener("end",s),w.removeEventListener("change",e)}}),[o,i,s,w,u]),P.useEffect((()=>{w.handleResize()}),[v]),P.useEffect((()=>{if(e){const e=x().controls;return h({controls:w}),()=>h({controls:e})}}),[e,w]),P.createElement("primitive",C.default({ref:c,object:w},l))})),at=t.forwardRef((({camera:e,makeDefault:r,regress:n,domElement:o,onChange:i,onStart:s,onEnd:l,...c},u)=>{const d=a.useThree((e=>e.invalidate)),f=a.useThree((e=>e.camera)),p=a.useThree((e=>e.gl)),h=a.useThree((e=>e.events)),x=a.useThree((e=>e.set)),y=a.useThree((e=>e.get)),v=a.useThree((e=>e.performance)),g=e||f,z=o||h.connected||p.domElement,w=t.useMemo((()=>new m.ArcballControls(g)),[g]);return a.useFrame((()=>{w.enabled&&w.update()}),-1),t.useEffect((()=>(w.connect(z),()=>{w.dispose()})),[z,n,w,d]),t.useEffect((()=>{const e=e=>{d(),n&&v.regress(),i&&i(e)};return w.addEventListener("change",e),s&&w.addEventListener("start",s),l&&w.addEventListener("end",l),()=>{w.removeEventListener("change",e),s&&w.removeEventListener("start",s),l&&w.removeEventListener("end",l)}}),[i,s,l]),t.useEffect((()=>{if(r){const e=y().controls;return x({controls:w}),()=>x({controls:e})}}),[r,w]),P.createElement("primitive",C.default({ref:u,object:w},c))})),ot=P.forwardRef((({children:e,domElement:t,onChange:r,onMouseDown:n,onMouseUp:o,onObjectChange:i,object:s,makeDefault:l,...c},u)=>{const d=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:f,...p}=c,h=A.default(p,d),x=B.default(p,d),y=a.useThree((e=>e.controls)),v=a.useThree((e=>e.gl)),g=a.useThree((e=>e.events)),z=a.useThree((e=>e.camera)),w=a.useThree((e=>e.invalidate)),b=a.useThree((e=>e.get)),E=a.useThree((e=>e.set)),M=f||z,S=t||g.connected||v.domElement,T=P.useMemo((()=>new m.TransformControls(M,S)),[M,S]),R=P.useRef();P.useLayoutEffect((()=>(s?T.attach(s instanceof D.Object3D?s:s.current):R.current instanceof D.Object3D&&T.attach(R.current),()=>{T.detach()})),[s,e,T]),P.useEffect((()=>{if(y){const e=e=>y.enabled=!e.value;return T.addEventListener("dragging-changed",e),()=>T.removeEventListener("dragging-changed",e)}}),[T,y]);const F=P.useRef(),k=P.useRef(),_=P.useRef(),L=P.useRef();return P.useLayoutEffect((()=>{F.current=r}),[r]),P.useLayoutEffect((()=>{k.current=n}),[n]),P.useLayoutEffect((()=>{_.current=o}),[o]),P.useLayoutEffect((()=>{L.current=i}),[i]),P.useEffect((()=>{const e=e=>{w(),null==F.current||F.current(e)},t=e=>null==k.current?void 0:k.current(e),r=e=>null==_.current?void 0:_.current(e),n=e=>null==L.current?void 0:L.current(e);return T.addEventListener("change",e),T.addEventListener("mouseDown",t),T.addEventListener("mouseUp",r),T.addEventListener("objectChange",n),()=>{T.removeEventListener("change",e),T.removeEventListener("mouseDown",t),T.removeEventListener("mouseUp",r),T.removeEventListener("objectChange",n)}}),[w,T]),P.useEffect((()=>{if(l){const e=b().controls;return E({controls:T}),()=>E({controls:e})}}),[l,T]),T?P.createElement(P.Fragment,null,P.createElement("primitive",C.default({ref:u,object:T},h)),P.createElement("group",C.default({ref:R},x),e)):null})),it=P.forwardRef((({domElement:e,selector:t,onChange:r,onLock:n,onUnlock:o,enabled:i=!0,makeDefault:s,...l},c)=>{const{camera:u,...d}=l,f=a.useThree((e=>e.setEvents)),p=a.useThree((e=>e.gl)),h=a.useThree((e=>e.camera)),x=a.useThree((e=>e.invalidate)),y=a.useThree((e=>e.events)),v=a.useThree((e=>e.get)),g=a.useThree((e=>e.set)),z=u||h,w=e||y.connected||p.domElement,[b]=P.useState((()=>new m.PointerLockControls(z)));return P.useEffect((()=>{if(i){b.connect(w);const e=v().events.compute;return f({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{b.disconnect(),f({compute:e})}}}),[i,b]),P.useEffect((()=>{const e=e=>{x(),r&&r(e)};b.addEventListener("change",e),n&&b.addEventListener("lock",n),o&&b.addEventListener("unlock",o);const a=()=>b.lock(),i=t?Array.from(document.querySelectorAll(t)):[document];return i.forEach((e=>e&&e.addEventListener("click",a))),()=>{b.removeEventListener("change",e),n&&b.addEventListener("lock",n),o&&b.addEventListener("unlock",o),i.forEach((e=>e?e.removeEventListener("click",a):void 0))}}),[r,n,o,t,b,x]),P.useEffect((()=>{if(s){const e=v().controls;return g({controls:b}),()=>g({controls:e})}}),[s,b]),P.createElement("primitive",C.default({ref:c,object:b},d))})),st=P.forwardRef((({domElement:e,makeDefault:t,...r},n)=>{const o=a.useThree((e=>e.camera)),i=a.useThree((e=>e.gl)),s=a.useThree((e=>e.events)),l=a.useThree((e=>e.get)),c=a.useThree((e=>e.set)),u=e||s.connected||i.domElement,[d]=P.useState((()=>new m.FirstPersonControls(o,u)));return P.useEffect((()=>{if(t){const e=l().controls;return c({controls:d}),()=>c({controls:e})}}),[t,d]),a.useFrame(((e,t)=>{d.update(t)}),-1),d?P.createElement("primitive",C.default({ref:n,object:d},r)):null})),lt=t.forwardRef(((e,r)=>{t.useMemo((()=>{O.default.install({THREE:D}),a.extend({CameraControlsImpl:O.default})}),[]);const{camera:n,domElement:o,makeDefault:i,onStart:s,onEnd:l,onChange:c,regress:u,...m}=e,d=a.useThree((e=>e.camera)),f=a.useThree((e=>e.gl)),p=a.useThree((e=>e.invalidate)),h=a.useThree((e=>e.events)),x=a.useThree((e=>e.setEvents)),y=a.useThree((e=>e.set)),v=a.useThree((e=>e.get)),g=a.useThree((e=>e.performance)),z=n||d,w=o||h.connected||f.domElement,b=t.useMemo((()=>new O.default(z)),[z]);return a.useFrame(((e,t)=>{b.enabled&&b.update(t)}),-1),t.useEffect((()=>(b.connect(w),()=>{b.disconnect()})),[w,b]),P.useEffect((()=>{const e=e=>{p(),u&&g.regress(),c&&c(e)},t=e=>{s&&s(e)},r=e=>{l&&l(e)};return b.addEventListener("update",e),b.addEventListener("controlstart",t),b.addEventListener("controlend",r),b.addEventListener("control",e),b.addEventListener("transitionstart",e),b.addEventListener("wake",e),()=>{b.removeEventListener("update",e),b.removeEventListener("controlstart",t),b.removeEventListener("controlend",r),b.removeEventListener("control",e),b.removeEventListener("transitionstart",e),b.removeEventListener("wake",e)}}),[b,s,l,p,x,u,c]),t.useEffect((()=>{if(i){const e=v().controls;return y({controls:b}),()=>y({controls:e})}}),[i,b]),P.createElement("primitive",C.default({ref:r,object:b},m))}));function ct(e,r){const{unsuspend:n,start:o,crossOrigin:i,muted:s,loop:l,...c}={unsuspend:"loadedmetadata",crossOrigin:"Anonymous",muted:!0,loop:!0,start:!0,playsInline:!0,...r},u=a.useThree((e=>e.gl)),m=p.suspend((()=>new Promise(((t,r)=>{const a=Object.assign(document.createElement("video"),{src:"string"==typeof e&&e||void 0,srcObject:e instanceof MediaStream&&e||void 0,crossOrigin:i,loop:l,muted:s,...c}),o=new D.VideoTexture(a);"colorSpace"in o?o.colorSpace=u.outputColorSpace:o.encoding=u.outputEncoding,a.addEventListener(n,(()=>t(o)))}))),[e]);return t.useEffect((()=>{o&&m.image.play()}),[m,o]),m}const ut=new D.Vector3(0,0,-1),mt=function(){const e=new D.Vector3,t=new D.Vector3,r=new D.Vector3,n=new D.Vector3,a=new D.Vector3;return function(o,i,s,l){return e.copy(o),t.copy(i),r.copy(s),n.copy(t).sub(e),a.copy(r).sub(e),l.crossVectors(a,n).normalize()}}();const dt=P.forwardRef((({points:e=ht.SAMPLE_FACELANDMARKER_RESULT.faceLandmarks[0],face:t,facialTransformationMatrix:r,faceBlendshapes:n,offset:o,offsetScalar:i=80,width:s,height:l,depth:c=1,verticalTri:u=[159,386,152],origin:m,eyes:d=!0,eyesAsOrigin:f=!1,debug:p=!1,children:h,...x},y)=>{var v;t&&(e=t.keypoints,console.warn("Facemesh `face` prop is deprecated: use `points` instead"));const g=P.useRef(null),z=P.useRef(null),w=P.useRef(null),b=P.useRef(null),E=P.useRef(null),M=P.useRef(null),S=P.useRef(null),[T]=P.useState((()=>new D.Vector3)),[C]=P.useState((()=>new D.Object3D)),[R]=P.useState((()=>new D.Quaternion)),[F]=P.useState((()=>new D.Vector3)),{invalidate:k}=a.useThree();P.useEffect((()=>{var e;null==(e=E.current)||e.geometry.setIndex(ht.TRIANGULATION)}),[]);const[_]=P.useState((()=>new D.Vector3));P.useEffect((()=>{var t,a;const h=null==(t=E.current)?void 0:t.geometry;if(!h)return;var x,y;(h.setFromPoints(e),h.setDrawRange(0,ht.TRIANGULATION.length),r)?(C.matrix.fromArray(r.data),C.matrix.decompose(C.position,C.quaternion,C.scale),C.rotation.y*=-1,C.rotation.z*=-1,R.setFromEuler(C.rotation),o?(C.position.y*=-1,C.position.z*=-1,null==(x=g.current)||x.position.copy(C.position.divideScalar(i))):null==(y=g.current)||y.position.set(0,0,0)):(mt(e[u[0]],e[u[1]],e[u[2]],T),R.setFromUnitVectors(ut,T));const v=R.clone().invert();if(h.computeBoundingBox(),p&&k(),h.center(),h.applyQuaternion(v),null==(a=b.current)||a.setRotationFromQuaternion(R),d)if(n){if(M.current&&S.current&&w.current)if(f){const e=M.current._computeSphere(h),t=S.current._computeSphere(h),r=function(e,t){return e.clone().add(t).multiplyScalar(.5)}(e.center,t.center);m=r.negate(),M.current._update(h,n,e),S.current._update(h,n,t)}else M.current._update(h,n),S.current._update(h,n)}else console.warn("Facemesh `eyes` option only works if `faceBlendshapes` is provided: skipping.");if(w.current){if(void 0!==m)if("number"==typeof m){const e=h.getAttribute("position");F.set(-e.getX(m),-e.getY(m),-e.getZ(m))}else m.isVector3&&F.copy(m);else F.setScalar(0);w.current.position.copy(F)}if(z.current){let e=1;(s||l||c)&&(h.boundingBox.getSize(_),s&&(e=s/_.x),l&&(e=l/_.y),c&&(e=c/_.z)),z.current.scale.setScalar(1!==e?e:1)}h.computeVertexNormals(),h.attributes.position.needsUpdate=!0}),[e,r,n,C,o,i,s,l,c,u,m,d,p,k,T,R,_,F]);const L=P.useMemo((()=>({outerRef:b,meshRef:E,eyeRightRef:M,eyeLeftRef:S})),[]);P.useImperativeHandle(y,(()=>L),[L]);const[A]=P.useState((()=>new D.Vector3)),B=null==(v=E.current)?void 0:v.geometry.boundingBox,O=(null==B?void 0:B.getSize(A).z)||1;return P.createElement("group",x,P.createElement("group",{ref:g},P.createElement("group",{ref:b},P.createElement("group",{ref:z},p?P.createElement(P.Fragment,null,P.createElement("axesHelper",{args:[O]}),P.createElement(ue,{points:[[0,0,0],[0,0,-O]],color:65535})):null,P.createElement("group",{ref:w},d&&n&&P.createElement("group",{name:"eyes"},P.createElement(pt,{side:"left",ref:M,debug:p}),P.createElement(pt,{side:"right",ref:S,debug:p})),P.createElement("mesh",{ref:E,name:"face"},h,p?P.createElement(P.Fragment,null,B&&P.createElement("box3Helper",{args:[B]})):null))))))})),ft={contourLandmarks:{right:[33,133,159,145,153],left:[263,362,386,374,380]},blendshapes:{right:[14,16,18,12],left:[13,15,17,11]},color:{right:"red",left:"#00ff00"},fov:{horizontal:100,vertical:90}},pt=P.forwardRef((({side:e,debug:t=!0},r)=>{const n=P.useRef(null),a=P.useRef(null),[o]=P.useState((()=>new D.Sphere)),i=P.useCallback((t=>{const r=t.getAttribute("position"),n=ft.contourLandmarks[e].map((e=>new D.Vector3(r.getX(e),r.getY(e),r.getZ(e))));return o.center.set(0,0,0),n.forEach((e=>o.center.add(e))),o.center.divideScalar(n.length),o.radius=n[0].sub(n[1]).length()/2,o}),[o,e]),[s]=P.useState((()=>new D.Euler)),l=P.useCallback(((t,r,o)=>{var l;n.current&&(null!==(l=o)&&void 0!==l||(o=i(t)),n.current.position.copy(o.center),n.current.scale.setScalar(o.radius));if(r&&a.current){const t=ft.blendshapes[e],n=r.categories[t[0]].score,o=r.categories[t[1]].score,i=r.categories[t[2]].score,l=r.categories[t[3]].score,c=.5*(ft.fov.horizontal*D.MathUtils.DEG2RAD)*(l-i),u=.5*(ft.fov.vertical*D.MathUtils.DEG2RAD)*(n-o)*("left"===e?1:-1);s.set(c,u,0),a.current.setRotationFromEuler(s)}}),[i,e,s]),c=P.useMemo((()=>({eyeMeshRef:n,irisDirRef:a,_computeSphere:i,_update:l})),[i,l]);P.useImperativeHandle(r,(()=>c),[c]);const u=ft.color[e];return P.createElement("group",null,P.createElement("group",{ref:n},t&&P.createElement("axesHelper",null),P.createElement("group",{ref:a},P.createElement(P.Fragment,null,t&&P.createElement(ue,{points:[[0,0,0],[0,0,-2]],lineWidth:1,color:u})))))})),ht={TRIANGULATION:[127,34,139,11,0,37,232,231,120,72,37,39,128,121,47,232,121,128,104,69,67,175,171,148,157,154,155,118,50,101,73,39,40,9,151,108,48,115,131,194,204,211,74,40,185,80,42,183,40,92,186,230,229,118,202,212,214,83,18,17,76,61,146,160,29,30,56,157,173,106,204,194,135,214,192,203,165,98,21,71,68,51,45,4,144,24,23,77,146,91,205,50,187,201,200,18,91,106,182,90,91,181,85,84,17,206,203,36,148,171,140,92,40,39,193,189,244,159,158,28,247,246,161,236,3,196,54,68,104,193,168,8,117,228,31,189,193,55,98,97,99,126,47,100,166,79,218,155,154,26,209,49,131,135,136,150,47,126,217,223,52,53,45,51,134,211,170,140,67,69,108,43,106,91,230,119,120,226,130,247,63,53,52,238,20,242,46,70,156,78,62,96,46,53,63,143,34,227,173,155,133,123,117,111,44,125,19,236,134,51,216,206,205,154,153,22,39,37,167,200,201,208,36,142,100,57,212,202,20,60,99,28,158,157,35,226,113,160,159,27,204,202,210,113,225,46,43,202,204,62,76,77,137,123,116,41,38,72,203,129,142,64,98,240,49,102,64,41,73,74,212,216,207,42,74,184,169,170,211,170,149,176,105,66,69,122,6,168,123,147,187,96,77,90,65,55,107,89,90,180,101,100,120,63,105,104,93,137,227,15,86,85,129,102,49,14,87,86,55,8,9,100,47,121,145,23,22,88,89,179,6,122,196,88,95,96,138,172,136,215,58,172,115,48,219,42,80,81,195,3,51,43,146,61,171,175,199,81,82,38,53,46,225,144,163,110,246,33,7,52,65,66,229,228,117,34,127,234,107,108,69,109,108,151,48,64,235,62,78,191,129,209,126,111,35,143,163,161,246,117,123,50,222,65,52,19,125,141,221,55,65,3,195,197,25,7,33,220,237,44,70,71,139,122,193,245,247,130,33,71,21,162,153,158,159,170,169,150,188,174,196,216,186,92,144,160,161,2,97,167,141,125,241,164,167,37,72,38,12,145,159,160,38,82,13,63,68,71,226,35,111,158,153,154,101,50,205,206,92,165,209,198,217,165,167,97,220,115,218,133,112,243,239,238,241,214,135,169,190,173,133,171,208,32,125,44,237,86,87,178,85,86,179,84,85,180,83,84,181,201,83,182,137,93,132,76,62,183,61,76,184,57,61,185,212,57,186,214,207,187,34,143,156,79,239,237,123,137,177,44,1,4,201,194,32,64,102,129,213,215,138,59,166,219,242,99,97,2,94,141,75,59,235,24,110,228,25,130,226,23,24,229,22,23,230,26,22,231,112,26,232,189,190,243,221,56,190,28,56,221,27,28,222,29,27,223,30,29,224,247,30,225,238,79,20,166,59,75,60,75,240,147,177,215,20,79,166,187,147,213,112,233,244,233,128,245,128,114,188,114,217,174,131,115,220,217,198,236,198,131,134,177,132,58,143,35,124,110,163,7,228,110,25,356,389,368,11,302,267,452,350,349,302,303,269,357,343,277,452,453,357,333,332,297,175,152,377,384,398,382,347,348,330,303,304,270,9,336,337,278,279,360,418,262,431,304,408,409,310,415,407,270,409,410,450,348,347,422,430,434,313,314,17,306,307,375,387,388,260,286,414,398,335,406,418,364,367,416,423,358,327,251,284,298,281,5,4,373,374,253,307,320,321,425,427,411,421,313,18,321,405,406,320,404,405,315,16,17,426,425,266,377,400,369,322,391,269,417,465,464,386,257,258,466,260,388,456,399,419,284,332,333,417,285,8,346,340,261,413,441,285,327,460,328,355,371,329,392,439,438,382,341,256,429,420,360,364,394,379,277,343,437,443,444,283,275,440,363,431,262,369,297,338,337,273,375,321,450,451,349,446,342,467,293,334,282,458,461,462,276,353,383,308,324,325,276,300,293,372,345,447,382,398,362,352,345,340,274,1,19,456,248,281,436,427,425,381,256,252,269,391,393,200,199,428,266,330,329,287,273,422,250,462,328,258,286,384,265,353,342,387,259,257,424,431,430,342,353,276,273,335,424,292,325,307,366,447,345,271,303,302,423,266,371,294,455,460,279,278,294,271,272,304,432,434,427,272,407,408,394,430,431,395,369,400,334,333,299,351,417,168,352,280,411,325,319,320,295,296,336,319,403,404,330,348,349,293,298,333,323,454,447,15,16,315,358,429,279,14,15,316,285,336,9,329,349,350,374,380,252,318,402,403,6,197,419,318,319,325,367,364,365,435,367,397,344,438,439,272,271,311,195,5,281,273,287,291,396,428,199,311,271,268,283,444,445,373,254,339,263,466,249,282,334,296,449,347,346,264,447,454,336,296,299,338,10,151,278,439,455,292,407,415,358,371,355,340,345,372,390,249,466,346,347,280,442,443,282,19,94,370,441,442,295,248,419,197,263,255,359,440,275,274,300,383,368,351,412,465,263,467,466,301,368,389,380,374,386,395,378,379,412,351,419,436,426,322,373,390,388,2,164,393,370,462,461,164,0,267,302,11,12,374,373,387,268,12,13,293,300,301,446,261,340,385,384,381,330,266,425,426,423,391,429,355,437,391,327,326,440,457,438,341,382,362,459,457,461,434,430,394,414,463,362,396,369,262,354,461,457,316,403,402,315,404,403,314,405,404,313,406,405,421,418,406,366,401,361,306,408,407,291,409,408,287,410,409,432,436,410,434,416,411,264,368,383,309,438,457,352,376,401,274,275,4,421,428,262,294,327,358,433,416,367,289,455,439,462,370,326,2,326,370,305,460,455,254,449,448,255,261,446,253,450,449,252,451,450,256,452,451,341,453,452,413,464,463,441,413,414,258,442,441,257,443,442,259,444,443,260,445,444,467,342,445,459,458,250,289,392,290,290,328,460,376,433,435,250,290,392,411,416,433,341,463,464,453,464,465,357,465,412,343,412,399,360,363,440,437,399,456,420,456,363,401,435,288,372,383,353,339,255,249,448,261,255,133,243,190,133,155,112,33,246,247,33,130,25,398,384,286,362,398,414,362,463,341,263,359,467,263,249,255,466,467,260,75,60,166,238,239,79,162,127,139,72,11,37,121,232,120,73,72,39,114,128,47,233,232,128,103,104,67,152,175,148,173,157,155,119,118,101,74,73,40,107,9,108,49,48,131,32,194,211,184,74,185,191,80,183,185,40,186,119,230,118,210,202,214,84,83,17,77,76,146,161,160,30,190,56,173,182,106,194,138,135,192,129,203,98,54,21,68,5,51,4,145,144,23,90,77,91,207,205,187,83,201,18,181,91,182,180,90,181,16,85,17,205,206,36,176,148,140,165,92,39,245,193,244,27,159,28,30,247,161,174,236,196,103,54,104,55,193,8,111,117,31,221,189,55,240,98,99,142,126,100,219,166,218,112,155,26,198,209,131,169,135,150,114,47,217,224,223,53,220,45,134,32,211,140,109,67,108,146,43,91,231,230,120,113,226,247,105,63,52,241,238,242,124,46,156,95,78,96,70,46,63,116,143,227,116,123,111,1,44,19,3,236,51,207,216,205,26,154,22,165,39,167,199,200,208,101,36,100,43,57,202,242,20,99,56,28,157,124,35,113,29,160,27,211,204,210,124,113,46,106,43,204,96,62,77,227,137,116,73,41,72,36,203,142,235,64,240,48,49,64,42,41,74,214,212,207,183,42,184,210,169,211,140,170,176,104,105,69,193,122,168,50,123,187,89,96,90,66,65,107,179,89,180,119,101,120,68,63,104,234,93,227,16,15,85,209,129,49,15,14,86,107,55,9,120,100,121,153,145,22,178,88,179,197,6,196,89,88,96,135,138,136,138,215,172,218,115,219,41,42,81,5,195,51,57,43,61,208,171,199,41,81,38,224,53,225,24,144,110,105,52,66,118,229,117,227,34,234,66,107,69,10,109,151,219,48,235,183,62,191,142,129,126,116,111,143,7,163,246,118,117,50,223,222,52,94,19,141,222,221,65,196,3,197,45,220,44,156,70,139,188,122,245,139,71,162,145,153,159,149,170,150,122,188,196,206,216,92,163,144,161,164,2,167,242,141,241,0,164,37,11,72,12,144,145,160,12,38,13,70,63,71,31,226,111,157,158,154,36,101,205,203,206,165,126,209,217,98,165,97,237,220,218,237,239,241,210,214,169,140,171,32,241,125,237,179,86,178,180,85,179,181,84,180,182,83,181,194,201,182,177,137,132,184,76,183,185,61,184,186,57,185,216,212,186,192,214,187,139,34,156,218,79,237,147,123,177,45,44,4,208,201,32,98,64,129,192,213,138,235,59,219,141,242,97,97,2,141,240,75,235,229,24,228,31,25,226,230,23,229,231,22,230,232,26,231,233,112,232,244,189,243,189,221,190,222,28,221,223,27,222,224,29,223,225,30,224,113,247,225,99,60,240,213,147,215,60,20,166,192,187,213,243,112,244,244,233,245,245,128,188,188,114,174,134,131,220,174,217,236,236,198,134,215,177,58,156,143,124,25,110,7,31,228,25,264,356,368,0,11,267,451,452,349,267,302,269,350,357,277,350,452,357,299,333,297,396,175,377,381,384,382,280,347,330,269,303,270,151,9,337,344,278,360,424,418,431,270,304,409,272,310,407,322,270,410,449,450,347,432,422,434,18,313,17,291,306,375,259,387,260,424,335,418,434,364,416,391,423,327,301,251,298,275,281,4,254,373,253,375,307,321,280,425,411,200,421,18,335,321,406,321,320,405,314,315,17,423,426,266,396,377,369,270,322,269,413,417,464,385,386,258,248,456,419,298,284,333,168,417,8,448,346,261,417,413,285,326,327,328,277,355,329,309,392,438,381,382,256,279,429,360,365,364,379,355,277,437,282,443,283,281,275,363,395,431,369,299,297,337,335,273,321,348,450,349,359,446,467,283,293,282,250,458,462,300,276,383,292,308,325,283,276,293,264,372,447,346,352,340,354,274,19,363,456,281,426,436,425,380,381,252,267,269,393,421,200,428,371,266,329,432,287,422,290,250,328,385,258,384,446,265,342,386,387,257,422,424,430,445,342,276,422,273,424,306,292,307,352,366,345,268,271,302,358,423,371,327,294,460,331,279,294,303,271,304,436,432,427,304,272,408,395,394,431,378,395,400,296,334,299,6,351,168,376,352,411,307,325,320,285,295,336,320,319,404,329,330,349,334,293,333,366,323,447,316,15,315,331,358,279,317,14,316,8,285,9,277,329,350,253,374,252,319,318,403,351,6,419,324,318,325,397,367,365,288,435,397,278,344,439,310,272,311,248,195,281,375,273,291,175,396,199,312,311,268,276,283,445,390,373,339,295,282,296,448,449,346,356,264,454,337,336,299,337,338,151,294,278,455,308,292,415,429,358,355,265,340,372,388,390,466,352,346,280,295,442,282,354,19,370,285,441,295,195,248,197,457,440,274,301,300,368,417,351,465,251,301,389,385,380,386,394,395,379,399,412,419,410,436,322,387,373,388,326,2,393,354,370,461,393,164,267,268,302,12,386,374,387,312,268,13,298,293,301,265,446,340,380,385,381,280,330,425,322,426,391,420,429,437,393,391,326,344,440,438,458,459,461,364,434,394,428,396,262,274,354,457,317,316,402,316,315,403,315,314,404,314,313,405,313,421,406,323,366,361,292,306,407,306,291,408,291,287,409,287,432,410,427,434,411,372,264,383,459,309,457,366,352,401,1,274,4,418,421,262,331,294,358,435,433,367,392,289,439,328,462,326,94,2,370,289,305,455,339,254,448,359,255,446,254,253,449,253,252,450,252,256,451,256,341,452,414,413,463,286,441,414,286,258,441,258,257,442,257,259,443,259,260,444,260,467,445,309,459,250,305,289,290,305,290,460,401,376,435,309,250,392,376,411,433,453,341,464,357,453,465,343,357,412,437,343,399,344,360,440,420,437,456,360,420,363,361,401,288,265,372,353,390,339,249,339,448,255],SAMPLE_FACE:{keypoints:[{x:356.2804412841797,y:295.1960563659668,z:-23.786449432373047,name:"lips"},{x:354.8859405517578,y:264.69520568847656,z:-36.718435287475586},{x:355.2180862426758,y:275.3360366821289,z:-21.183712482452393},{x:347.349853515625,y:242.4400234222412,z:-25.093655586242676},{x:354.40135955810547,y:256.67933464050293,z:-38.23572635650635},{x:353.7689971923828,y:247.54886627197266,z:-34.5475435256958},{x:352.1288299560547,y:227.34312057495117,z:-13.095386028289795},{x:303.5013198852539,y:234.67002868652344,z:12.500141859054565,name:"rightEye"},{x:351.09378814697266,y:211.87547206878662,z:-6.413471698760986},{x:350.7115936279297,y:202.1251630783081,z:-6.413471698760986},{x:348.33667755126953,y:168.7741756439209,z:6.483500003814697,name:"faceOval"},{x:356.4806365966797,y:299.2995357513428,z:-23.144519329071045},{x:356.5511703491211,y:302.66146659851074,z:-21.020312309265137},{x:356.6239547729492,y:304.1536331176758,z:-18.137459754943848,name:"lips"},{x:356.5807342529297,y:305.1840591430664,z:-18.767719268798828,name:"lips"},{x:356.8241500854492,y:308.25711250305176,z:-20.16829490661621},{x:357.113037109375,y:312.26277351379395,z:-22.10575819015503},{x:357.34962463378906,y:317.1123218536377,z:-21.837315559387207,name:"lips"},{x:357.6658630371094,y:325.51036834716797,z:-16.27002477645874},{x:355.0201416015625,y:269.36279296875,z:-33.73054027557373},{x:348.5237503051758,y:270.33411026000977,z:-24.93025302886963},{x:279.97331619262695,y:213.24176788330078,z:47.759642601013184,name:"faceOval"},{x:322.66529083251953,y:238.5027265548706,z:5.535193085670471},{x:316.0983657836914,y:239.94489669799805,z:5.777376294136047},{x:309.9431610107422,y:240.24518966674805,z:7.510589361190796},{x:301.31994247436523,y:237.86138534545898,z:13.118728399276733},{x:328.14266204833984,y:235.80496788024902,z:6.646900177001953},{x:313.7326431274414,y:222.11161136627197,z:3.9887237548828125},{x:320.45196533203125,y:221.87729358673096,z:4.601476192474365},{x:307.35679626464844,y:223.63793849945068,z:5.932023525238037},{x:303.0031204223633,y:226.3743782043457,z:8.479321002960205},{x:296.80023193359375,y:242.94299125671387,z:15.931552648544312},{x:332.2352981567383,y:340.77341079711914,z:-10.165848731994629},{x:301.38587951660156,y:233.46447944641113,z:14.764405488967896,name:"rightEye"},{x:279.0147018432617,y:244.37155723571777,z:45.77549457550049},{x:289.60548400878906,y:239.1807460784912,z:23.191204071044922},{x:320.32257080078125,y:267.1292781829834,z:-4.954537749290466},{x:347.64583587646484,y:294.4955062866211,z:-23.062820434570312,name:"lips"},{x:349.28138732910156,y:303.1095886230469,z:-20.238323211669922},{x:338.9453125,y:298.19186210632324,z:-19.456336498260498,name:"lips"},{x:333.36788177490234,y:302.6706790924072,z:-14.776077270507812,name:"lips"},{x:342.89188385009766,y:304.3561363220215,z:-17.752301692962646},{x:337.7375030517578,y:306.0098361968994,z:-13.410515785217285},{x:325.6159210205078,y:316.22995376586914,z:-6.681914925575256},{x:349.0104675292969,y:264.9818515777588,z:-36.274919509887695},{x:347.7138900756836,y:257.5664806365967,z:-37.67549514770508},{x:291.79357528686523,y:218.88171672821045,z:11.578094959259033,name:"rightEyebrow"},{x:332.2689437866211,y:247.56946563720703,z:-3.3730539679527283},{x:332.0074462890625,y:267.1201229095459,z:-19.969879388809204},{x:331.27952575683594,y:263.6967658996582,z:-17.47218608856201},{x:301.04373931884766,y:269.56552505493164,z:3.61815482378006},{x:347.4863815307617,y:249.0706443786621,z:-32.633421421051025},{x:307.26118087768555,y:208.2646894454956,z:1.1591226607561111,name:"rightEyebrow"},{x:297.91919708251953,y:212.22604751586914,z:5.914516448974609,name:"rightEyebrow"},{x:285.1651382446289,y:197.98450469970703,z:36.391637325286865,name:"faceOval"},{x:337.04097747802734,y:211.25229835510254,z:-4.548954665660858},{x:326.5912628173828,y:223.16698551177979,z:6.670243740081787},{x:320.05664825439453,y:309.5834255218506,z:-4.055835008621216},{x:289.6866226196289,y:314.617395401001,z:53.875489234924316,name:"faceOval"},{x:337.4256896972656,y:270.8755302429199,z:-17.67060160636902},{x:343.69922637939453,y:273.0000400543213,z:-18.756048679351807},{x:327.4242401123047,y:309.22399520874023,z:-4.703601002693176,name:"lips"},{x:330.37220001220703,y:308.3323001861572,z:-6.442649960517883},{x:293.87027740478516,y:207.7961826324463,z:9.821539521217346,name:"rightEyebrow"},{x:332.11437225341797,y:271.22812271118164,z:-16.64351224899292},{x:320.1197814941406,y:207.40366458892822,z:-2.48164564371109,name:"rightEyebrow"},{x:318.59575271606445,y:201.07443809509277,z:-3.110446035861969,name:"rightEyebrow"},{x:310.72303771972656,y:175.75075149536133,z:13.328815698623657,name:"faceOval"},{x:289.67578887939453,y:202.29835510253906,z:21.370456218719482},{x:315.30879974365234,y:187.35260009765625,z:5.0304025411605835},{x:287.8936767578125,y:216.54793739318848,z:17.81065821647644,name:"rightEyebrow"},{x:283.9391899108887,y:215.01142501831055,z:32.04984903335571},{x:348.35330963134766,y:299.4155788421631,z:-22.47924566268921},{x:341.1790466308594,y:301.8221855163574,z:-18.977805376052856},{x:335.69713592529297,y:304.4266891479492,z:-14.682706594467163},{x:339.4615173339844,y:272.3654365539551,z:-16.38674020767212},{x:328.99600982666016,y:308.86685371398926,z:-5.616893768310547},{x:332.00313568115234,y:309.1875743865967,z:-10.335084199905396},{x:331.0068130493164,y:307.9274368286133,z:-6.681914925575256,name:"lips"},{x:341.13792419433594,y:266.4876937866211,z:-26.56425952911377},{x:339.02950286865234,y:305.6663703918457,z:-12.33674168586731,name:"lips"},{x:344.22935485839844,y:304.9452781677246,z:-15.161235332489014,name:"lips"},{x:350.1844024658203,y:304.374303817749,z:-17.5305438041687,name:"lips"},{x:348.52630615234375,y:325.9562301635742,z:-16.164982318878174},{x:348.6581802368164,y:317.1624183654785,z:-21.510512828826904,name:"lips"},{x:348.9766311645508,y:312.1923065185547,z:-21.708929538726807},{x:349.2427444458008,y:308.0660820007324,z:-19.643079042434692},{x:349.67491149902344,y:305.42747497558594,z:-18.16080331802368,name:"lips"},{x:337.95589447021484,y:306.6535949707031,z:-12.803598642349243,name:"lips"},{x:337.06878662109375,y:307.63169288635254,z:-14.274203777313232},{x:335.77449798583984,y:309.8449516296387,z:-15.698124170303345},{x:334.6099090576172,y:312.7997016906738,z:-14.764405488967896,name:"lips"},{x:327.2330856323242,y:293.80866050720215,z:-11.864047050476074},{x:280.97679138183594,y:279.79928970336914,z:68.90834331512451,name:"faceOval"},{x:355.13843536376953,y:271.7875671386719,z:-25.350427627563477},{x:334.7235870361328,y:307.4656391143799,z:-9.302158951759338,name:"lips"},{x:333.5293960571289,y:307.89782524108887,z:-10.200862884521484},{x:346.29688262939453,y:276.4256286621094,z:-19.748122692108154},{x:335.16246795654297,y:276.22097969055176,z:-12.313398122787476},{x:345.09132385253906,y:274.7082996368408,z:-19.304605722427368},{x:325.4267883300781,y:252.95130729675293,z:-1.6661019623279572},{x:315.347843170166,y:259.05200958251953,z:-.25604281574487686},{x:330.44933319091797,y:267.7570152282715,z:-14.017432928085327},{x:294.96768951416016,y:185.26001930236816,z:23.903164863586426,name:"faceOval"},{x:299.63531494140625,y:192.7913761138916,z:12.640198469161987},{x:304.5452117919922,y:202.4142837524414,z:3.244667649269104,name:"rightEyebrow"},{x:331.6915512084961,y:320.0467872619629,z:-10.632705688476562},{x:334.5911407470703,y:201.27566814422607,z:-6.133356094360352,name:"rightEyebrow"},{x:331.4815902709961,y:185.44180870056152,z:.6627205014228821},{x:328.05816650390625,y:170.8385467529297,z:7.358860373497009,name:"faceOval"},{x:304.49764251708984,y:239.76297855377197,z:10.387605428695679},{x:290.6382179260254,y:248.85257720947266,z:19.03616428375244},{x:331.5682601928711,y:233.20727348327637,z:7.837390303611755},{x:295.5115509033203,y:228.9834451675415,z:14.41426157951355},{x:336.94332122802734,y:241.8259334564209,z:-5.27842104434967},{x:336.2792205810547,y:262.7049922943115,z:-26.12074375152588},{x:284.4102478027344,y:255.3262710571289,z:25.467140674591064},{x:295.1420593261719,y:253.02655220031738,z:12.430112361907959},{x:303.5196113586426,y:254.20703887939453,z:6.139191389083862},{x:315.73450088500977,y:251.64799690246582,z:3.3788898587226868},{x:324.69661712646484,y:247.56494522094727,z:2.3328344523906708},{x:331.57970428466797,y:243.02241325378418,z:1.1423448473215103},{x:345.6210708618164,y:229.9976634979248,z:-10.825285911560059},{x:286.26644134521484,y:270.37991523742676,z:21.708929538726807},{x:290.2525520324707,y:228.4921360015869,z:17.71728754043579},{x:351.65367126464844,y:269.3400764465332,z:-33.450424671173096},{x:333.1378936767578,y:253.88388633728027,z:-7.230473756790161},{x:277.8318977355957,y:246.95331573486328,z:68.20805549621582,name:"faceOval"},{x:336.6680908203125,y:238.10003757476807,z:.7688578963279724},{x:329.95800018310547,y:269.18323516845703,z:-7.207130789756775},{x:299.17491912841797,y:234.13324356079102,z:15.95489501953125},{x:335.61729431152344,y:258.71752738952637,z:-23.016133308410645},{x:284.1079330444336,y:297.0343494415283,z:63.25934886932373,name:"faceOval"},{x:331.44542694091797,y:230.6892442703247,z:9.92658257484436,name:"rightEye"},{x:341.41536712646484,y:253.01264762878418,z:-29.038610458374023},{x:303.5472869873047,y:327.5896739959717,z:16.725212335586548},{x:304.7756576538086,y:337.4389457702637,z:27.38126277923584,name:"faceOval"},{x:280.80501556396484,y:275.32050132751465,z:45.0752067565918},{x:295.43582916259766,y:318.4501647949219,z:26.2608003616333},{x:281.4303207397461,y:228.7355661392212,z:40.94350814819336},{x:331.2549591064453,y:349.4216537475586,z:-7.376367449760437},{x:352.4247741699219,y:271.7330074310303,z:-24.953596591949463},{x:327.5672912597656,y:260.41900634765625,z:-5.456410646438599},{x:284.5432472229004,y:241.7647933959961,z:29.668869972229004},{x:310,y:235.66174507141113,z:8.502663969993591,name:"rightEye"},{x:315.7071113586426,y:235.7572603225708,z:6.938687562942505,name:"rightEye"},{x:330.41088104248047,y:311.04143142700195,z:-9.325502514839172,name:"lips"},{x:288.5377502441406,y:285.31983375549316,z:21.837315559387207},{x:344.55039978027344,y:359.4300842285156,z:-6.705257892608643,name:"faceOval"},{x:323.41880798339844,y:351.67362213134766,z:7.802375555038452,name:"faceOval"},{x:314.64088439941406,y:346.11894607543945,z:16.36339783668518,name:"faceOval"},{x:349.4945526123047,y:184.8434829711914,z:-.21847527474164963},{x:359.24694061279297,y:359.8348903656006,z:-8.403456211090088,name:"faceOval"},{x:321.26182556152344,y:234.64492321014404,z:6.90950870513916,name:"rightEye"},{x:326.318359375,y:232.90250301361084,z:8.029969334602356,name:"rightEye"},{x:329.6211624145508,y:231.6195774078369,z:9.722331762313843,name:"rightEye"},{x:285.9398078918457,y:228.2351303100586,z:24.650139808654785},{x:325.79288482666016,y:227.88007736206055,z:7.469738721847534,name:"rightEye"},{x:320.1699447631836,y:227.5934886932373,z:6.168370842933655,name:"rightEye"},{x:314.85408782958984,y:227.85282611846924,z:6.2675780057907104,name:"rightEye"},{x:309.3084907531738,y:229.1516876220703,z:7.7031683921813965,name:"rightEye"},{x:305.5621337890625,y:230.92366218566895,z:9.722331762313843,name:"rightEye"},{x:277.8681945800781,y:228.5354232788086,z:59.71122741699219,name:"faceOval"},{x:306.1444664001465,y:235.1954698562622,z:10.603528022766113,name:"rightEye"},{x:355.4478454589844,y:281.96210861206055,z:-20.565123558044434},{x:333.02661895751953,y:288.0105400085449,z:-14.72939133644104},{x:337.15728759765625,y:269.2059516906738,z:-19.8414945602417},{x:345.9898376464844,y:283.5453128814697,z:-20.4834246635437},{x:351.48963928222656,y:219.98916149139404,z:-7.0378947257995605},{x:312.39574432373047,y:336.50628089904785,z:8.671900033950806},{x:321.32152557373047,y:343.1755256652832,z:.9067271649837494},{x:343.78379821777344,y:353.2975959777832,z:-14.355905055999756},{x:296.8791389465332,y:327.91497230529785,z:41.01353645324707,name:"faceOval"},{x:329.6939468383789,y:229.27897453308105,z:8.934508562088013,name:"rightEye"},{x:341.6905212402344,y:241.4073657989502,z:-14.589333534240723},{x:359.03079986572266,y:353.48859786987305,z:-15.803166627883911},{x:333.1861877441406,y:356.43213272094727,z:-1.0234417766332626,name:"faceOval"},{x:283.97483825683594,y:291.4318656921387,z:41.94725513458252},{x:343.33770751953125,y:305.830135345459,z:-15.756480693817139,name:"lips"},{x:342.40283966064453,y:307.7453899383545,z:-17.4021577835083},{x:341.53621673583984,y:311.0595703125,z:-19.047834873199463},{x:340.9107208251953,y:315.4837703704834,z:-18.5576331615448,name:"lips"},{x:339.1478729248047,y:323.42233657836914,z:-14.367576837539673},{x:333.3201599121094,y:307.4406337738037,z:-9.617288708686829},{x:331.2411117553711,y:306.9811820983887,z:-9.669809937477112},{x:329.23255920410156,y:306.0508346557617,z:-9.582273960113525,name:"lips"},{x:322.4586486816406,y:301.33323669433594,z:-7.720675468444824},{x:297.1712112426758,y:286.9552803039551,z:8.240055441856384},{x:341.3060760498047,y:235.4432201385498,z:-7.504753470420837},{x:336.9318389892578,y:224.3451976776123,z:5.829898118972778},{x:332.65323638916016,y:226.70403957366943,z:8.105834126472473},{x:334.67357635498047,y:306.4397621154785,z:-8.981193900108337,name:"lips"},{x:297.4601936340332,y:306.29210472106934,z:15.476365089416504},{x:342.9119110107422,y:222.37077713012695,z:-2.754466235637665},{x:335.4629898071289,y:332.20250129699707,z:-11.823196411132812},{x:353.2412338256836,y:240.56339263916016,z:-27.147831916809082},{x:346.3080596923828,y:236.41446590423584,z:-18.452589511871338},{x:352.6475143432617,y:234.1420555114746,z:-19.748122692108154},{x:337.3209762573242,y:253.39937210083008,z:-16.024924516677856},{x:358.6122131347656,y:344.90861892700195,z:-18.592647314071655},{x:358.1117248535156,y:334.64990615844727,z:-17.49552845954895},{x:346.4450454711914,y:335.0321102142334,z:-16.32838249206543},{x:319.17640686035156,y:320.2833938598633,z:-3.276764452457428},{x:325.2540588378906,y:276.2369728088379,z:-6.460157036781311},{x:326.7214584350586,y:327.3939514160156,z:-7.417217493057251},{x:310.7190132141113,y:277.2265148162842,z:-3.5452082753181458},{x:319.78355407714844,y:284.8238182067871,z:-6.4543211460113525},{x:305.773983001709,y:290.83580017089844,z:.06907138042151928},{x:344.4001770019531,y:344.85408782958984,z:-16.946970224380493},{x:333.1879425048828,y:258.74256134033203,z:-11.90489649772644},{x:313.80598068237305,y:327.08919525146484,z:2.2277912497520447},{x:322.9637908935547,y:334.6819496154785,z:-3.3643004298210144},{x:313.4055519104004,y:311.2166690826416,z:-1.1175429821014404},{x:291.0865783691406,y:298.2831001281738,z:22.467575073242188},{x:305.6580924987793,y:313.3707904815674,z:5.561453700065613},{x:288.23760986328125,y:305.9941864013672,z:36.765122413635254},{x:315.10692596435547,y:296.26991271972656,z:-4.604393839836121},{x:337.50518798828125,y:247.5944423675537,z:-10.597691535949707},{x:338.8450622558594,y:265.47778129577637,z:-27.778091430664062},{x:334.25254821777344,y:269.0671920776367,z:-20.938611030578613},{x:341.64512634277344,y:259.6387195587158,z:-32.189905643463135},{x:331.44081115722656,y:219.0976095199585,z:4.207563698291779},{x:320.56339263916016,y:216.49658203125,z:2.930997312068939},{x:311.21912002563477,y:216.57853603363037,z:2.9674705862998962},{x:303.46256256103516,y:218.54614734649658,z:5.357203483581543},{x:297.99999237060547,y:222.505202293396,z:9.325502514839172},{x:294.93839263916016,y:236.39654159545898,z:18.534289598464966},{x:278.87489318847656,y:259.7095584869385,z:45.68212032318115},{x:300.3782653808594,y:245.38593292236328,z:12.278382778167725},{x:307.06348419189453,y:246.36857986450195,z:8.164191246032715},{x:315.5229187011719,y:245.3949737548828,z:5.503097176551819},{x:323.71395111083984,y:242.75178909301758,z:4.6335723996162415},{x:330.2785873413086,y:239.34658527374268,z:4.937030673027039},{x:334.6982192993164,y:236.0460376739502,z:4.823233783245087},{x:279.3412208557129,y:263.5196113586426,z:70.91583728790283,name:"faceOval"},{x:334.65972900390625,y:271.6648578643799,z:-17.775644063949585},{x:342.05677032470703,y:246.99846267700195,z:-20.84523916244507},{x:344.0357971191406,y:264.5701503753662,z:-32.936880588531494},{x:348.25531005859375,y:268.6645030975342,z:-30.695960521697998},{x:344.12227630615234,y:266.34212493896484,z:-29.808926582336426},{x:337.12318420410156,y:274.2556858062744,z:-15.768152475357056},{x:349.49047088623047,y:269.071683883667,z:-32.51670837402344},{x:350.1683044433594,y:271.4691352844238,z:-24.93025302886963},{x:333.9634704589844,y:230.56639194488525,z:8.89949381351471},{x:338.2147979736328,y:231.4807891845703,z:4.6715047955513},{x:340.4712677001953,y:231.74463272094727,z:-.34996166825294495},{x:303.28975677490234,y:232.24980354309082,z:11.916568279266357,name:"rightEye"},{x:299.4649124145508,y:229.53842639923096,z:12.325069904327393},{x:359.09618377685547,y:241.77349090576172,z:-24.650139808654785},{x:399.46216583251953,y:229.89503860473633,z:15.919880867004395,name:"leftEye"},{x:361.38919830322266,y:269.6129894256592,z:-24.510080814361572},{x:416.9973373413086,y:206.0895538330078,z:53.26857566833496,name:"faceOval"},{x:381.32179260253906,y:235.5476474761963,z:7.6214683055877686},{x:387.8068542480469,y:236.25958442687988,z:8.345099091529846},{x:393.95751953125,y:235.8660364151001,z:10.475142002105713},{x:401.84600830078125,y:232.77019500732422,z:16.760226488113403},{x:375.70568084716797,y:233.48456382751465,z:8.234220147132874},{x:388.17752838134766,y:218.94717693328857,z:6.810300946235657},{x:381.64928436279297,y:219.2656660079956,z:6.711093783378601},{x:394.4760513305664,y:219.66821193695068,z:9.173773527145386},{x:398.8843536376953,y:221.8837022781372,z:12.03328251838684},{x:406.5454864501953,y:237.12156772613525,z:19.7131085395813},{x:383.87447357177734,y:337.6932907104492,z:-8.631049990653992},{x:401.2682342529297,y:228.5916566848755,z:18.359217643737793,name:"leftEye"},{x:422.0449447631836,y:236.73934936523438,z:51.16771221160889},{x:412.69153594970703,y:232.80198097229004,z:27.52131938934326},{x:387.3497772216797,y:263.298397064209,z:-2.8609684109687805},{x:364.5124053955078,y:293.39221000671387,z:-22.397546768188477,name:"lips"},{x:363.62987518310547,y:302.1291446685791,z:-19.643079042434692},{x:373.2334518432617,y:295.8647060394287,z:-18.125789165496826,name:"lips"},{x:378.83365631103516,y:299.5177745819092,z:-13.153743743896484,name:"lips"},{x:369.91477966308594,y:302.5704002380371,z:-16.65518283843994},{x:374.9167251586914,y:303.5416603088379,z:-11.963253021240234},{x:387.58888244628906,y:312.2716999053955,z:-4.680258631706238},{x:360.6635284423828,y:264.31986808776855,z:-35.94811677932739},{x:361.04564666748047,y:256.8225860595703,z:-37.278664112091064},{x:408.3855438232422,y:213.52088928222656,z:15.756480693817139,name:"leftEyebrow"},{x:373.2946014404297,y:245.38101196289062,z:-1.9316278398036957},{x:376.83860778808594,y:264.3721103668213,z:-18.510947227478027},{x:376.9546127319336,y:261.0010528564453,z:-15.989909172058105},{x:406.1498260498047,y:263.5030174255371,z:7.072908878326416},{x:360.07205963134766,y:248.3631706237793,z:-32.16656446456909},{x:393.11119079589844,y:205.10473251342773,z:3.7786373496055603,name:"leftEyebrow"},{x:402.12791442871094,y:207.89000988006592,z:9.383859634399414,name:"leftEyebrow"},{x:410.8693313598633,y:191.6182279586792,z:41.27030849456787,name:"faceOval"},{x:364.9509811401367,y:210.40483474731445,z:-3.758212625980377},{x:375.94444274902344,y:221.1331844329834,z:8.368442058563232},{x:392.1904754638672,y:305.0360298156738,z:-1.752179116010666},{x:419.50225830078125,y:307.25592613220215,z:58.96425247192383,name:"faceOval"},{x:372.0027160644531,y:268.7212657928467,z:-16.631840467453003},{x:366.1614227294922,y:271.6237449645996,z:-18.219159841537476},{x:385.00938415527344,y:305.3863334655762,z:-2.567722797393799},{x:381.99771881103516,y:304.9723720550537,z:-4.575215280056},{x:405.078125,y:203.21216583251953,z:13.713973760604858,name:"leftEyebrow"},{x:377.13207244873047,y:268.4710121154785,z:-15.266278982162476},{x:380.9713363647461,y:205.36980628967285,z:-.7250899076461792,name:"leftEyebrow"},{x:381.7788314819336,y:198.9268398284912,z:-1.184653863310814,name:"leftEyebrow"},{x:385.5204772949219,y:172.1484375,z:16.04826807975769,name:"faceOval"},{x:407.94189453125,y:196.76236152648926,z:25.723915100097656},{x:383.03890228271484,y:184.5157527923584,z:7.393874526023865},{x:411.61781311035156,y:210.79241752624512,z:22.315845489501953,name:"leftEyebrow"},{x:414.30870056152344,y:208.4643030166626,z:37.021894454956055},{x:364.28722381591797,y:298.35777282714844,z:-21.86065673828125},{x:371.3682556152344,y:299.78848457336426,z:-17.834001779556274},{x:376.88201904296875,y:301.6696071624756,z:-13.153743743896484},{x:370.2193832397461,y:270.49095153808594,z:-15.569736957550049},{x:383.5081100463867,y:305.2726364135742,z:-3.673594295978546},{x:380.73760986328125,y:305.96869468688965,z:-8.660228252410889},{x:381.2334442138672,y:304.63574409484863,z:-4.820316135883331,name:"lips"},{x:368.1698989868164,y:264.8884963989258,z:-25.653886795043945},{x:373.5087203979492,y:303.4233856201172,z:-10.95950722694397,name:"lips"},{x:368.4544372558594,y:303.29601287841797,z:-14.169161319732666,name:"lips"},{x:362.76554107666016,y:303.5735607147217,z:-16.911956071853638,name:"lips"},{x:366.60980224609375,y:324.8870658874512,z:-15.616422891616821},{x:365.7067108154297,y:315.95678329467773,z:-20.903596878051758,name:"lips"},{x:365.0083923339844,y:311.2232208251953,z:-21.066999435424805},{x:364.1508102416992,y:307.0583438873291,z:-18.907777070999146},{x:363.37512969970703,y:304.5721435546875,z:-17.42550015449524,name:"lips"},{x:374.580078125,y:304.3059539794922,z:-11.40302300453186,name:"lips"},{x:375.55362701416016,y:305.0998020172119,z:-12.861957550048828},{x:377.2437286376953,y:307.1674346923828,z:-14.215847253799438},{x:378.68587493896484,y:309.9015712738037,z:-13.223772048950195,name:"lips"},{x:383.8992691040039,y:290.29629707336426,z:-9.97326910495758},{x:423.3871841430664,y:271.91688537597656,z:74.37058925628662,name:"faceOval"},{x:377.68043518066406,y:304.62209701538086,z:-7.603961229324341,name:"lips"},{x:379.00428771972656,y:304.9314594268799,z:-8.57852816581726},{x:364.00279998779297,y:275.2813911437988,z:-19.25792098045349},{x:374.68231201171875,y:273.82555961608887,z:-11.28047227859497},{x:365.0354766845703,y:273.4548568725586,z:-18.791062831878662},{x:380.61901092529297,y:249.8848056793213,z:.15501167625188828},{x:391.14158630371094,y:254.7934627532959,z:2.0906515419483185},{x:378.1761169433594,y:264.9612236022949,z:-12.605184316635132},{x:400.9540557861328,y:179.99592304229736,z:27.82477855682373,name:"faceOval"},{x:398.0038833618164,y:188.50656509399414,z:16.094952821731567},{x:394.8717498779297,y:199.0359592437744,z:6.226727366447449,name:"leftEyebrow"},{x:382.10926055908203,y:316.83926582336426,z:-8.946179747581482},{x:366.51588439941406,y:200.32583713531494,z:-5.24632453918457,name:"leftEyebrow"},{x:367.4893569946289,y:183.87210845947266,z:1.9039081037044525},{x:368.6243438720703,y:168.8127565383911,z:8.736093044281006,name:"faceOval"},{x:398.96175384521484,y:234.9675178527832,z:13.713973760604858},{x:412.9645538330078,y:242.23042488098145,z:23.272905349731445},{x:372.05257415771484,y:231.41919136047363,z:9.226294755935669},{x:406.0722351074219,y:223.58965873718262,z:18.370890617370605},{x:368.27442169189453,y:240.2039337158203,z:-4.166713654994965},{x:372.3575210571289,y:260.66442489624023,z:-24.976940155029297},{x:419.2244338989258,y:247.9079246520996,z:30.299127101898193},{x:409.43885803222656,y:246.60913467407227,z:16.398411989212036},{x:401.69139862060547,y:248.76328468322754,z:9.395531415939331},{x:389.7608184814453,y:247.56915092468262,z:5.841569304466248},{x:380.5461883544922,y:244.55984115600586,z:4.263003468513489},{x:373.25817108154297,y:240.80214500427246,z:2.5356262922286987},{x:358.77086639404297,y:229.35615062713623,z:-10.387605428695679},{x:419.5793914794922,y:262.8478717803955,z:26.5175724029541},{x:410.8808898925781,y:222.51372814178467,z:22.199130058288574},{x:358.45714569091797,y:268.91467094421387,z:-33.17030906677246},{x:373.4129333496094,y:251.6385841369629,z:-5.771540403366089},{x:422.5408172607422,y:239.23919677734375,z:74.04378890991211,name:"faceOval"},{x:367.8171920776367,y:236.58040523529053,z:1.820748895406723},{x:378.51959228515625,y:266.2532329559326,z:-5.74819803237915},{x:403.3472442626953,y:229.05112266540527,z:19.689764976501465},{x:372.34840393066406,y:256.6451168060303,z:-21.872329711914062},{x:422.54566192626953,y:289.1587829589844,z:68.67491245269775,name:"faceOval"},{x:371.9297409057617,y:228.90116214752197,z:11.432201862335205,name:"leftEye"},{x:366.21360778808594,y:251.6158962249756,z:-28.19826364517212},{x:409.1571807861328,y:321.3156223297119,z:20.2266526222229},{x:408.52943420410156,y:331.44238471984863,z:31.09278917312622,name:"faceOval"},{x:424.2788314819336,y:267.1992301940918,z:50.467424392700195},{x:415.60352325439453,y:311.6528606414795,z:30.579242706298828},{x:418.12793731689453,y:221.59927368164062,z:46.26569747924805},{x:385.68286895751953,y:346.0184955596924,z:-5.70151150226593},{x:357.82936096191406,y:271.3758373260498,z:-24.836881160736084},{x:379.588623046875,y:257.5071716308594,z:-3.755294680595398},{x:417.4592590332031,y:234.71948146820068,z:34.5475435256958},{x:393.4684371948242,y:231.58967971801758,z:11.408859491348267,name:"leftEye"},{x:387.8864288330078,y:232.14245796203613,z:9.51808214187622,name:"leftEye"},{x:382.4981689453125,y:307.5654888153076,z:-7.522260546684265,name:"lips"},{x:419.00169372558594,y:277.8332805633545,z:26.424202919006348},{x:373.62953186035156,y:357.6375102996826,z:-5.75986921787262,name:"faceOval"},{x:392.8708267211914,y:347.72446632385254,z:10.154176950454712,name:"faceOval"},{x:400.3953552246094,y:341.0005187988281,z:19.39797878265381,name:"faceOval"},{x:382.25440979003906,y:231.66935920715332,z:8.998700976371765,name:"leftEye"},{x:377.14550018310547,y:230.4228687286377,z:9.804032444953918,name:"leftEye"},{x:373.8358688354492,y:229.64950561523438,z:11.292144060134888,name:"leftEye"},{x:414.5794677734375,y:221.67891025543213,z:29.412097930908203},{x:377.00672149658203,y:225.66201210021973,z:9.360517263412476,name:"leftEye"},{x:382.29530334472656,y:224.8431158065796,z:8.32175612449646,name:"leftEye"},{x:387.5133514404297,y:224.49507236480713,z:8.917000889778137,name:"leftEye"},{x:393.15906524658203,y:225.24795055389404,z:10.737749338150024,name:"leftEye"},{x:397.05554962158203,y:226.55359268188477,z:13.002015352249146,name:"leftEye"},{x:420.5299377441406,y:221.014666557312,z:65.40690422058105,name:"faceOval"},{x:397.06920623779297,y:230.6661558151245,z:13.807345628738403,name:"leftEye"},{x:377.94647216796875,y:285.1647090911865,z:-13.305472135543823},{x:372.1118927001953,y:267.1267318725586,z:-18.83774757385254},{x:364.9968719482422,y:282.24411964416504,z:-19.818150997161865},{x:401.973876953125,y:331.20131492614746,z:11.566424369812012},{x:394.3083190917969,y:338.86693954467773,z:3.142542541027069},{x:373.9820861816406,y:351.4504623413086,z:-13.50388765335083},{x:414.3888854980469,y:321.24735832214355,z:45.51872253417969,name:"faceOval"},{x:373.44234466552734,y:227.33163356781006,z:10.626870393753052,name:"leftEye"},{x:364.0731430053711,y:240.31539916992188,z:-13.807345628738403},{x:384.2658233642578,y:353.3793067932129,z:.7385850697755814,name:"faceOval"},{x:423.20526123046875,y:283.5176181793213,z:47.152724266052246},{x:369.42798614501953,y:304.0898895263672,z:-14.647691249847412,name:"lips"},{x:370.63812255859375,y:305.90051651000977,z:-16.211668252944946},{x:371.91192626953125,y:309.0167713165283,z:-17.84567356109619},{x:373.0583953857422,y:313.3545398712158,z:-17.378815412521362,name:"lips"},{x:375.39905548095703,y:321.09289169311523,z:-13.118728399276733},{x:379.2567825317383,y:304.3582534790039,z:-7.924926280975342},{x:381.18797302246094,y:303.7031364440918,z:-7.843226194381714},{x:383.0918502807617,y:302.4884605407715,z:-7.6506465673446655,name:"lips"},{x:389.09461975097656,y:297.1475315093994,z:-5.5497825145721436},{x:411.6408920288086,y:280.24898529052734,z:12.02161192893982},{x:363.3110809326172,y:234.27620887756348,z:-6.775286793708801},{x:366.0474395751953,y:223.29872131347656,z:6.827808618545532},{x:370.34427642822266,y:225.1457118988037,z:9.558931589126587},{x:377.5371551513672,y:303.60079765319824,z:-7.358860373497009,name:"lips"},{x:412.9557800292969,y:299.53579902648926,z:19.39797878265381},{x:360.0810241699219,y:221.72012329101562,z:-2.153385728597641},{x:379.82784271240234,y:329.47723388671875,z:-10.48097848892212},{x:359.08477783203125,y:235.7911491394043,z:-18.079102039337158},{x:369.6688461303711,y:251.5407943725586,z:-14.962821006774902},{x:369.5555114746094,y:333.5307312011719,z:-15.67478060722351},{x:394.0193176269531,y:315.6973171234131,z:-.9920747578144073},{x:383.78997802734375,y:272.7268695831299,z:-4.689012169837952},{x:387.67765045166016,y:323.6722755432129,z:-5.640236139297485},{x:397.8769302368164,y:272.1331214904785,z:-.9395531564950943},{x:389.87476348876953,y:280.5630111694336,z:-4.29218202829361},{x:403.83888244628906,y:285.1167869567871,z:3.0229100584983826},{x:372.5467300415039,y:343.1070327758789,z:-16.153310537338257},{x:374.1112518310547,y:256.3721466064453,z:-10.574349164962769},{x:399.73785400390625,y:321.77515983581543,z:4.849494695663452},{x:392.03365325927734,y:330.56447982788086,z:-1.3407598435878754},{x:398.59134674072266,y:305.93902587890625,z:1.517290621995926},{x:417.95997619628906,y:290.9716987609863,z:26.89105987548828},{x:406.04541778564453,y:307.35154151916504,z:8.666064143180847},{x:420.75328826904297,y:298.40752601623535,z:41.78385257720947},{x:395.4522705078125,y:291.4153575897217,z:-2.1752697229385376},{x:368.6452102661133,y:245.8882999420166,z:-9.453888535499573},{x:370.34900665283203,y:263.56690406799316,z:-26.75100326538086},{x:374.98477935791016,y:266.6126346588135,z:-19.77146625518799},{x:366.99840545654297,y:258.12140464782715,z:-31.372904777526855},{x:371.00616455078125,y:217.63479709625244,z:5.60522198677063},{x:381.30577087402344,y:214.14087295532227,z:4.983716309070587},{x:390.1496124267578,y:213.38221549987793,z:5.593550801277161},{x:397.7696990966797,y:214.3659782409668,z:8.57852816581726},{x:403.1652069091797,y:217.65509605407715,z:13.013685941696167},{x:407.3551940917969,y:230.72525024414062,z:22.444231510162354},{x:424.0876770019531,y:251.7839241027832,z:51.16771221160889},{x:403.50196838378906,y:239.88757610321045,z:15.803166627883911},{x:397.31719970703125,y:241.49806022644043,z:11.233787536621094},{x:388.99425506591797,y:241.4366912841797,z:7.948269248008728},{x:380.7804489135742,y:239.78078842163086,z:6.600214838981628},{x:374.01336669921875,y:237.11946487426758,z:6.349278092384338},{x:369.39125061035156,y:234.35351371765137,z:5.987462401390076},{x:422.9730987548828,y:255.76455116271973,z:76.61150932312012,name:"faceOval"},{x:374.73915100097656,y:269.24214363098145,z:-16.608498096466064},{x:364.61681365966797,y:245.71088790893555,z:-20.02823829650879},{x:365.3834533691406,y:263.34174156188965,z:-32.32996463775635},{x:361.58252716064453,y:267.8273677825928,z:-30.345816612243652},{x:365.37208557128906,y:265.0249671936035,z:-29.178667068481445},{x:372.72605895996094,y:272.05135345458984,z:-14.834434986114502},{x:360.48614501953125,y:268.34827423095703,z:-32.189905643463135},{x:359.9516296386719,y:270.8049201965332,z:-24.650139808654785},{x:369.5049285888672,y:229.01945114135742,z:10.107489824295044},{x:365.5447769165039,y:230.24096488952637,z:5.593550801277161},{x:363.50669860839844,y:230.6208372116089,z:.43622106313705444},{x:399.3529510498047,y:227.65677452087402,z:15.35965085029602,name:"leftEye"},{x:402.5693130493164,y:224.60190296173096,z:15.931552648544312}],box:{xMin:277.8318977355957,yMin:168.7741756439209,xMax:424.2788314819336,yMax:359.8348903656006,width:146.4469337463379,height:191.0607147216797}},SAMPLE_FACELANDMARKER_RESULT:{faceLandmarks:[[{x:.5760777592658997,y:.8639070391654968,z:-.030997956171631813},{x:.572094738483429,y:.7886289358139038,z:-.07189624011516571},{x:.5723551511764526,y:.8075382709503174,z:-.03578168898820877},{x:.5548420548439026,y:.7188365459442139,z:-.057787876576185226},{x:.5706077814102173,y:.7674974799156189,z:-.07740399986505508},{x:.5681378245353699,y:.7387768030166626,z:-.07356284558773041},{x:.5621535181999207,y:.6681165099143982,z:-.04189874976873398},{x:.46613582968711853,y:.6679812073707581,z:.011289681307971478},{x:.5579932928085327,y:.6174106597900391,z:-.03502821549773216},{x:.5563451647758484,y:.5905600190162659,z:-.03928658738732338},{x:.5487832427024841,y:.4900572597980499,z:-.029898937791585922},{x:.5765544176101685,y:.8692144751548767,z:-.02831427752971649},{x:.5771114230155945,y:.873644232749939,z:-.02345779910683632},{x:.5771905779838562,y:.877016007900238,z:-.016658689826726913},{x:.5778058767318726,y:.8770116567611694,z:-.014505492523312569},{x:.5783766508102417,y:.8835000991821289,z:-.015996402129530907},{x:.5792440176010132,y:.8913810849189758,z:-.01924579218029976},{x:.5796768069267273,y:.8996334671974182,z:-.018261712044477463},{x:.5817288160324097,y:.9255813956260681,z:-.007126849144697189},{x:.5726592540740967,y:.7992473244667053,z:-.0643521398305893},{x:.5579419136047363,y:.7996989488601685,z:-.04566684365272522},{x:.4216199815273285,y:.5958762764930725,z:.06776496022939682},{x:.5052269697189331,y:.6796539425849915,z:-.0010737782577052712},{x:.49243026971817017,y:.6838865876197815,z:-.0005227324436418712},{x:.4796970784664154,y:.6856290102005005,z:.002684245817363262},{x:.4618356227874756,y:.6764569878578186,z:.013439622707664967},{x:.5160380601882935,y:.6737282276153564,z:-17607348127057776e-21},{x:.48070961236953735,y:.6255870461463928,z:-.008339674212038517},{x:.49719780683517456,y:.6256808042526245,z:-.008027955889701843},{x:.46674346923828125,y:.6317623853683472,z:-.004460199736058712},{x:.4582492709159851,y:.641118049621582,z:.0011905613355338573},{x:.45408669114112854,y:.6911458969116211,z:.020514748990535736},{x:.535312294960022,y:.9619986414909363,z:.012499462813138962},{x:.4608460068702698,y:.6628725528717041,z:.01517564244568348},{x:.4206731915473938,y:.6828458309173584,z:.07848648726940155},{x:.4390624463558197,y:.6796106696128845,z:.03283142298460007},{x:.5029968619346619,y:.7701570391654968,z:-.009734481573104858},{x:.5595027208328247,y:.8607323169708252,z:-.030043255537748337},{x:.5621269941329956,y:.8738374710083008,z:-.021709579974412918},{x:.5451499819755554,y:.865527331829071,z:-.022014077752828598},{x:.5351184010505676,y:.8705098032951355,z:-.011602800339460373},{x:.5495014190673828,y:.8744956254959106,z:-.016490943729877472},{x:.5395170450210571,y:.8759440779685974,z:-.007333362940698862},{x:.5183624029159546,y:.8959754705429077,z:.010520773939788342},{x:.5604349374771118,y:.7895449995994568,z:-.07082037627696991},{x:.557381272315979,y:.7687489986419678,z:-.07590588927268982},{x:.4432901442050934,y:.6308897733688354,z:.0027153254486620426},{x:.5258325338363647,y:.7151225805282593,z:-.014676518738269806},{x:.5271827578544617,y:.7833116054534912,z:-.037643320858478546},{x:.5257382988929749,y:.7717816233634949,z:-.03401920944452286},{x:.46516409516334534,y:.7705106735229492,z:.0065747760236263275},{x:.5558893084526062,y:.7420997619628906,z:-.0694495290517807},{x:.4720408320426941,y:.6066038608551025,z:-.021204356104135513},{x:.45432573556900024,y:.6158540844917297,z:-.011054684408009052},{x:.4305151402950287,y:.5608053803443909,z:.0396830290555954},{x:.5310865640640259,y:.6157484650611877,z:-.03081176057457924},{x:.5114666223526001,y:.6329749226570129,z:-.00335998204536736},{x:.506435751914978,y:.8786543607711792,z:.012980876490473747},{x:.4480472207069397,y:.8640613555908203,z:.12569651007652283},{x:.5372058153152466,y:.7942581176757812,z:-.03168361634016037},{x:.5488379597663879,y:.8001630306243896,z:-.03280917927622795},{x:.5213388204574585,y:.8794381618499756,z:.011892606504261494},{x:.5242055654525757,y:.8789222240447998,z:.008370225317776203},{x:.4477175176143646,y:.6039950251579285,z:-.0050799972377717495},{x:.526964008808136,y:.7916748523712158,z:-.02968614175915718},{x:.4971255660057068,y:.6050706505775452,z:-.028175678104162216},{x:.4938119053840637,y:.5882453918457031,z:-.03210941329598427},{x:.4757143557071686,y:.5094879865646362,z:-.01300730835646391},{x:.43947282433509827,y:.5816648006439209,z:.01415177434682846},{x:.485664039850235,y:.5477864146232605,z:-.023685332387685776},{x:.43635931611061096,y:.6226438283920288,z:.013606148771941662},{x:.42910251021385193,y:.6102726459503174,z:.03926564007997513},{x:.5605402588844299,y:.8680099248886108,z:-.027318159118294716},{x:.5474816560745239,y:.8702861070632935,z:-.019686367362737656},{x:.5373021364212036,y:.8728838562965393,z:-.010484928265213966},{x:.540735125541687,y:.7979167103767395,z:-.029073253273963928},{x:.5228585004806519,y:.87913578748703,z:.009915109723806381},{x:.530497670173645,y:.8815253973007202,z:.0020524784922599792},{x:.5259912610054016,y:.8790552616119385,z:.007895970717072487},{x:.5433906316757202,y:.7882310748100281,z:-.05121905356645584},{x:.541388213634491,y:.8777219653129578,z:-.00466804439201951},{x:.5515822172164917,y:.8767023086547852,z:-.010475946590304375},{x:.5637003779411316,y:.877059817314148,z:-.015273625031113625},{x:.5640299320220947,y:.9263423085212708,z:-.00658724969252944},{x:.5642300248146057,y:.8993074893951416,z:-.017653480172157288},{x:.5637336373329163,y:.8910360932350159,z:-.01852807030081749},{x:.5637134313583374,y:.8837276697158813,z:-.01482592523097992},{x:.564205527305603,y:.8768964409828186,z:-.01331155002117157},{x:.5419867634773254,y:.8778373599052429,z:-.0037720394320786},{x:.5404468774795532,y:.880696177482605,z:-.005610354244709015},{x:.5392338633537292,y:.8845721483230591,z:-.007352025713771582},{x:.538469672203064,y:.8891173601150513,z:-.005154991988092661},{x:.5189250111579895,y:.8452741503715515,z:-.009755070321261883},{x:.4258975088596344,y:.7662280797958374,z:.1387351155281067},{x:.5725725293159485,y:.8041572570800781,z:-.04583907872438431},{x:.5342061519622803,y:.8785833120346069,z:.002659974154084921},{x:.5324031114578247,y:.8804071545600891,z:.0017832003068178892},{x:.5538818836212158,y:.8078407645225525,z:-.03254539892077446},{x:.5325431823730469,y:.8026832938194275,z:-.019140373915433884},{x:.5514076948165894,y:.8043903112411499,z:-.03313535451889038},{x:.5131856203079224,y:.7284771800041199,z:-.009399853646755219},{x:.49331504106521606,y:.7443980574607849,z:-.005225230939686298},{x:.5239617824554443,y:.7807451486587524,z:-.025881027802824974},{x:.4473606050014496,y:.5315827131271362,z:.011164786294102669},{x:.45718759298324585,y:.5604941248893738,z:-.005943301599472761},{x:.4670005738735199,y:.5909327268600464,z:-.019681761041283607},{x:.5311570167541504,y:.9076261520385742,z:.00389476353302598},{x:.5249923467636108,y:.5893563628196716,z:-.037981919944286346},{x:.5166932344436646,y:.5429551005363464,z:-.03319704160094261},{x:.5085030198097229,y:.49676206707954407,z:-.02691275253891945},{x:.4687720239162445,y:.6834565997123718,z:.008113506250083447},{x:.4426414966583252,y:.7069531679153442,z:.028577271848917007},{x:.5230373740196228,y:.6675713658332825,z:.001773772411979735},{x:.4481240212917328,y:.6527872085571289,z:.012414850294589996},{x:.5339856743812561,y:.7012367844581604,z:-.020220188423991203},{x:.5347223281860352,y:.7761190533638,z:-.05141595005989075},{x:.4315067231655121,y:.7211957573890686,z:.04381405934691429},{x:.45203351974487305,y:.7206180095672607,z:.017288070172071457},{x:.46892452239990234,y:.7265436053276062,z:.005602988880127668},{x:.49314674735069275,y:.7202282547950745,z:-.0006408205372281373},{x:.5104925632476807,y:.7091827392578125,z:-.00362918758764863},{x:.5232142210006714,y:.698553740978241,z:-.00787867046892643},{x:.5497883558273315,y:.6743605136871338,z:-.036349106580019},{x:.43658503890037537,y:.7627100348472595,z:.042555369436740875},{x:.4397648870944977,y:.6528646349906921,z:.017956094816327095},{x:.5653332471847534,y:.7992802858352661,z:-.06365057826042175},{x:.5285563468933105,y:.736810564994812,z:-.018836988136172295},{x:.4180678725242615,y:.6792560815811157,z:.12284679710865021},{x:.5328429937362671,y:.6865872144699097,z:-.010484723374247551},{x:.5230283141136169,y:.7809416055679321,z:-.011922398582100868},{x:.4551771283149719,y:.6650775074958801,z:.01774493046104908},{x:.5337203741073608,y:.7618928551673889,z:-.04697106033563614},{x:.43463975191116333,y:.8133478164672852,z:.1354849934577942},{x:.5225707292556763,y:.6605283617973328,z:.004980515688657761},{x:.5441933870315552,y:.7497199773788452,z:-.06091512367129326},{x:.4774007797241211,y:.9159183502197266,z:.059622734785079956},{x:.48068761825561523,y:.9364941716194153,z:.08404944837093353},{x:.4268292486667633,y:.7657528519630432,z:.09051097184419632},{x:.46051913499832153,y:.8880485892295837,z:.0738474428653717},{x:.4243420660495758,y:.6434382200241089,z:.06230505183339119},{x:.5342157483100891,y:.9835634231567383,z:.021662971004843712},{x:.5668109655380249,y:.8042187094688416,z:-.044937074184417725},{x:.5176341533660889,y:.7530587315559387,z:-.012967454269528389},{x:.430206298828125,y:.6835605502128601,z:.04612284153699875},{x:.4794231951236725,y:.6732114553451538,z:.003970044665038586},{x:.49073347449302673,y:.6722435355186462,z:.0008692514384165406},{x:.5294116139411926,y:.884677529335022,z:.004413890186697245},{x:.4430122375488281,y:.80235356092453,z:.04987282305955887},{x:.5603825449943542,y:1.0092442035675049,z:.026417359709739685},{x:.5186598300933838,y:.9828659892082214,z:.0513598807156086},{x:.5010536909103394,y:.9640932679176331,z:.06591596454381943},{x:.5524769425392151,y:.539441704750061,z:-.035816047340631485},{x:.5879997611045837,y:1.0091472864151,z:.02285068854689598},{x:.5016193985939026,y:.6684437990188599,z:.00028415941051207483},{x:.511952817440033,y:.6642197370529175,z:.0021144719794392586},{x:.5194343328475952,y:.6623469591140747,z:.004674181342124939},{x:.4321230351924896,y:.6496355533599854,z:.03124697133898735},{x:.508686363697052,y:.6479565501213074,z:-.00044765998609364033},{x:.4963986277580261,y:.6431032419204712,z:-.0032507688738405704},{x:.4845542013645172,y:.6430778503417969,z:-.002903624437749386},{x:.4733612537384033,y:.647506833076477,z:.00023347247042693198},{x:.4668654501438141,y:.653346598148346,z:.004762572236359119},{x:.41815051436424255,y:.633708119392395,z:.09809435904026031},{x:.47159942984580994,y:.6711485385894775,z:.007849935442209244},{x:.5734396576881409,y:.8256140351295471,z:-.03155219927430153},{x:.5306524038314819,y:.8337990641593933,z:-.018351426348090172},{x:.5371729135513306,y:.7910830974578857,z:-.037286680191755295},{x:.5549534559249878,y:.8275275826454163,z:-.030664825811982155},{x:.5597432255744934,y:.6418541669845581,z:-.03318847343325615},{x:.4958484172821045,y:.9429569244384766,z:.048340678215026855},{x:.5140507817268372,y:.9634028077125549,z:.03589847311377525},{x:.5587693452835083,y:.9951097369194031,z:.00908728688955307},{x:.46411189436912537,y:.9051855206489563,z:.10601935535669327},{x:.5181609392166138,y:.6554316878318787,z:.002546071307733655},{x:.5436590909957886,y:.7085841298103333,z:-.03844436630606651},{x:.5872187614440918,y:.9960382580757141,z:.0063423276878893375},{x:.5379653573036194,y:.9989125728607178,z:.03636329993605614},{x:.4350326955318451,y:.8088565468788147,z:.09147704392671585},{x:.5523084998130798,y:.8773422837257385,z:-.009068487212061882},{x:.5510149598121643,y:.8816931843757629,z:-.011043853126466274},{x:.5503793954849243,y:.88776695728302,z:-.01348799467086792},{x:.5501549243927002,y:.8954370617866516,z:-.012142189778387547},{x:.546072781085968,y:.9192524552345276,z:-.003157563041895628},{x:.5314661860466003,y:.8771666884422302,z:.0005075141089037061},{x:.5293324589729309,y:.8762547969818115,z:.00039177737198770046},{x:.5275698900222778,y:.8750609755516052,z:47732755774632096e-21},{x:.5104271173477173,y:.8607332110404968,z:.0012934643309563398},{x:.45938700437545776,y:.8134918212890625,z:.023569690063595772},{x:.5418947339057922,y:.6864100694656372,z:-.027333909645676613},{x:.531914234161377,y:.6456130743026733,z:-.005434140563011169},{x:.523697018623352,y:.647885262966156,z:-.0002466466394253075},{x:.5338191390037537,y:.8783687353134155,z:.002268768846988678},{x:.46226605772972107,y:.8610277771949768,z:.04718952998518944},{x:.5434442758560181,y:.6456181406974792,z:-.02327350154519081},{x:.5399754643440247,y:.940219521522522,z:.005075343884527683},{x:.5661457777023315,y:.71457839012146,z:-.06242101639509201},{x:.5523148775100708,y:.6974870562553406,z:-.04863070324063301},{x:.5639959573745728,y:.6923378109931946,z:-.05180761218070984},{x:.5367592573165894,y:.7423217296600342,z:-.03623027727007866},{x:.5853689908981323,y:.9752064943313599,z:-.002361974213272333},{x:.5835235118865967,y:.9493685960769653,z:-.003941743168979883},{x:.5615018606185913,y:.949194610118866,z:-.0015953965485095978},{x:.5068561434745789,y:.9048219323158264,z:.01862684078514576},{x:.5134067535400391,y:.7971825003623962,z:-.008485661819577217},{x:.5223897099494934,y:.925589919090271,z:.01249657291918993},{x:.48500555753707886,y:.7959478497505188,z:-.0032065745908766985},{x:.5037734508514404,y:.8184596300125122,z:-.004932103678584099},{x:.4766361117362976,y:.828806459903717,z:.01027688942849636},{x:.5589827299118042,y:.974656343460083,z:.0009666886180639267},{x:.5294582843780518,y:.7541216611862183,z:-.025603046640753746},{x:.4973002076148987,y:.9208990931510925,z:.031931452453136444},{x:.5163551568984985,y:.9432790875434875,z:.024321340024471283},{x:.49399662017822266,y:.8814862370491028,z:.018687399104237556},{x:.44948166608810425,y:.836137592792511,z:.05702034756541252},{x:.47898444533348083,y:.8836610913276672,z:.03150695189833641},{x:.4454479217529297,y:.8499438166618347,z:.08868525922298431},{x:.49572959542274475,y:.8452823758125305,z:.0036111653316766024},{x:.5362502336502075,y:.7222585678100586,z:-.027912352234125137},{x:.5393770337104797,y:.7850722074508667,z:-.05415399745106697},{x:.531399667263031,y:.7898418307304382,z:-.03883346915245056},{x:.5451627373695374,y:.7717036604881287,z:-.06480253487825394},{x:.5206395983695984,y:.6287745833396912,z:-.010521138086915016},{x:.4974782466888428,y:.6191938519477844,z:-.014098240062594414},{x:.4774145185947418,y:.6193130612373352,z:-.013643337413668633},{x:.4616098403930664,y:.6259890198707581,z:-.008448202162981033},{x:.4516478478908539,y:.6368461847305298,z:9050309745362028e-20},{x:.4485096037387848,y:.6719120740890503,z:.022984720766544342},{x:.42177659273147583,y:.7240667343139648,z:.08511673659086227},{x:.4616215229034424,y:.6988231539726257,z:.014238474890589714},{x:.4755798876285553,y:.7034608721733093,z:.00625590980052948},{x:.4924992024898529,y:.7005885243415833,z:.0009391739731654525},{x:.5082254409790039,y:.693384051322937,z:-.0009464038303121924},{x:.5203112959861755,y:.6849707961082458,z:-.0022114769089967012},{x:.52867591381073,y:.6779075860977173,z:-.002962538506835699},{x:.4213953912258148,y:.7219811677932739,z:.1350894570350647},{x:.5320829749107361,y:.794858992099762,z:-.03181503340601921},{x:.5452795028686523,y:.7286570072174072,z:-.04771539941430092},{x:.5496407747268677,y:.7866933345794678,z:-.06452003121376038},{x:.557040274143219,y:.7962084412574768,z:-.05837344378232956},{x:.549176812171936,y:.7895247936248779,z:-.057761140167713165},{x:.5362890362739563,y:.8005836606025696,z:-.026903774589300156},{x:.560200035572052,y:.7983731031417847,z:-.06172555685043335},{x:.5616944432258606,y:.8022753596305847,z:-.045200999826192856},{x:.5273328423500061,y:.6611284017562866,z:.0029021520167589188},{x:.534850537776947,y:.6660012006759644,z:-.005215510260313749},{x:.5394860506057739,y:.6701375246047974,z:-.014931917190551758},{x:.4634307324886322,y:.658291757106781,z:.009295716881752014},{x:.4538393020629883,y:.6519932150840759,z:.00930330716073513},{x:.5776031613349915,y:.7159298658370972,z:-.057365912944078445},{x:.6504855155944824,y:.6461779475212097,z:.014184834435582161},{x:.5860154032707214,y:.7962266206741333,z:-.04522843658924103},{x:.6842049360275269,y:.5631637573242188,z:.07207967340946198},{x:.6152560710906982,y:.6674962639808655,z:.0007529259892180562},{x:.6280948519706726,y:.6684326529502869,z:.0016892586136236787},{x:.6408625245094299,y:.6663892269134521,z:.005331226624548435},{x:.6557814478874207,y:.6534678936004639,z:.01646413467824459},{x:.6035663485527039,y:.6639701724052429,z:.0013799630105495453},{x:.6329053044319153,y:.608010470867157,z:-.006195899099111557},{x:.6167260408401489,y:.6117533445358276,z:-.006319951266050339},{x:.6471013426780701,y:.6112449765205383,z:-.0017843559617176652},{x:.6560901999473572,y:.6185776591300964,z:.004047257360070944},{x:.6666946411132812,y:.6651176810264587,z:.023647578433156013},{x:.6311345100402832,y:.9495396018028259,z:.014004078693687916},{x:.6544655561447144,y:.6397901773452759,z:.01809609681367874},{x:.6965808868408203,y:.6482675075531006,z:.08304904401302338},{x:.679817259311676,y:.650188148021698,z:.03632688894867897},{x:.6336516737937927,y:.7541458010673523,z:-.007742783520370722},{x:.5921701192855835,y:.8567668199539185,z:-.029399123042821884},{x:.591663658618927,y:.870215654373169,z:-.02103729173541069},{x:.6068367958068848,y:.8584195375442505,z:-.020668085664510727},{x:.6176617741584778,y:.860965371131897,z:-.009790095500648022},{x:.6040634512901306,y:.8686612844467163,z:-.015289564616978168},{x:.6143736839294434,y:.8671170473098755,z:-.005712216719985008},{x:.6373105049133301,y:.8815656900405884,z:.012672550976276398},{x:.5832505822181702,y:.7866312861442566,z:-.07051534950733185},{x:.5836675763130188,y:.7658692598342896,z:-.07566110789775848},{x:.6709531545639038,y:.604898989200592,z:.005951565690338612},{x:.6029891967773438,y:.705652117729187,z:-.013388276100158691},{x:.6131622195243835,y:.7728396058082581,z:-.036248479038476944},{x:.6123163104057312,y:.7612020373344421,z:-.03264721855521202},{x:.6696187853813171,y:.744706928730011,z:.009673702530562878},{x:.5803102254867554,y:.7385968565940857,z:-.0689152330160141},{x:.6404349207878113,y:.5877999663352966,z:-.01929756999015808},{x:.6588467955589294,y:.5929454565048218,z:-.008487257175147533},{x:.6720337867736816,y:.530631422996521,z:.043437421321868896},{x:.584305465221405,y:.6099005341529846,z:-.030301367864012718},{x:.6034283638000488,y:.6217452883720398,z:-.001970183802768588},{x:.6460927724838257,y:.8608663082122803,z:.015541625209152699},{x:.6957815289497375,y:.8326103091239929,z:.13015234470367432},{x:.6043362617492676,y:.7861682772636414,z:-.030476901680231094},{x:.594293475151062,y:.7942103147506714,z:-.032218821346759796},{x:.6324057579040527,y:.8665139675140381,z:.014255806803703308},{x:.6296147704124451,y:.8667733669281006,z:.010388285852968693},{x:.663644552230835,y:.5798642635345459,z:-.0022301070857793093},{x:.6140630841255188,y:.7809288501739502,z:-.02835679054260254},{x:.615908145904541,y:.5921698212623596,z:-.026804860681295395},{x:.617181122303009,y:.5748661756515503,z:-.03060605563223362},{x:.6222207546234131,y:.49137672781944275,z:-.011151673272252083},{x:.6669357419013977,y:.5541607141494751,z:.017466170713305473},{x:.6182981729507446,y:.5320425629615784,z:-.021793590858578682},{x:.6760554313659668,y:.595052182674408,z:.017115700989961624},{x:.6801463961601257,y:.5800720453262329,z:.043127160519361496},{x:.5922210812568665,y:.8644017577171326,z:-.02662893570959568},{x:.6054555177688599,y:.8637874722480774,z:-.018363753333687782},{x:.6161889433860779,y:.8641164898872375,z:-.008808949030935764},{x:.6017249822616577,y:.7901403307914734,z:-.028126630932092667},{x:.631446123123169,y:.8664817810058594,z:.012112865224480629},{x:.6249198913574219,y:.8716511130332947,z:.003882825840264559},{x:.6281915903091431,y:.867301881313324,z:.009891441091895103},{x:.5986843109130859,y:.7813931703567505,z:-.050227612257003784},{x:.6126407384872437,y:.869275689125061,z:-.0031255714129656553},{x:.6027271151542664,y:.8711842894554138,z:-.009324162267148495},{x:.59088134765625,y:.8742044568061829,z:-.014608660712838173},{x:.5984604358673096,y:.9216185212135315,z:-.005981989670544863},{x:.5950398445129395,y:.8964707255363464,z:-.01703473925590515},{x:.5941568613052368,y:.8882410526275635,z:-.017784785479307175},{x:.5928806662559509,y:.8803883194923401,z:-.014153128489851952},{x:.5909661054611206,y:.8748103976249695,z:-.012609979137778282},{x:.6128016710281372,y:.8702545762062073,z:-.0022550546564161777},{x:.6150846481323242,y:.8726804256439209,z:-.00414019962772727},{x:.6173093914985657,y:.8770190477371216,z:-.005970994010567665},{x:.619335412979126,y:.8814800977706909,z:-.0036864024586975574},{x:.6292637586593628,y:.8314558267593384,z:-.007714875973761082},{x:.702275276184082,y:.7320667505264282,z:.1433621346950531},{x:.6204835176467896,y:.8689177632331848,z:.0044869170524179935},{x:.6223508715629578,y:.8704851269721985,z:.00352082890458405},{x:.590448260307312,y:.8029727935791016,z:-.03200828656554222},{x:.6097423434257507,y:.7933741211891174,z:-.018042555078864098},{x:.59229576587677,y:.7993767261505127,z:-.032564569264650345},{x:.6171364188194275,y:.7153720259666443,z:-.007672437466681004},{x:.6389747858047485,y:.726390540599823,z:-.002999067772179842},{x:.6151940226554871,y:.769412100315094,z:-.024427521973848343},{x:.6526776552200317,y:.505868136882782,z:.01412637997418642},{x:.6475822329521179,y:.5375454425811768,z:-.0033899128902703524},{x:.6433356404304504,y:.5714520215988159,z:-.017428796738386154},{x:.626949667930603,y:.8962116837501526,z:.005602736957371235},{x:.5868416428565979,y:.5829002261161804,z:-.03727729618549347},{x:.5877229571342468,y:.5345035791397095,z:-.032396964728832245},{x:.5887066125869751,y:.48655083775520325,z:-.025856535881757736},{x:.6507197618484497,y:.6612282991409302,z:.011114613153040409},{x:.6803066730499268,y:.677992045879364,z:.032125361263751984},{x:.5963194370269775,y:.6598632335662842,z:.002976928371936083},{x:.667536199092865,y:.6274255514144897,z:.015618261881172657},{x:.5930740833282471,y:.6940041780471802,z:-.019217798486351967},{x:.6053346395492554,y:.7676517963409424,z:-.050308309495449066},{x:.6934473514556885,y:.6884298920631409,z:.04794462397694588},{x:.6738007664680481,y:.6934011578559875,z:.020697161555290222},{x:.6588084697723389,y:.7033141851425171,z:.008462334051728249},{x:.6346072554588318,y:.7029502391815186,z:.001542167621664703},{x:.6157816648483276,y:.6966525912284851,z:-.002009218093007803},{x:.6015574336051941,y:.688928484916687,z:-.006588225718587637},{x:.5746836066246033,y:.6711069345474243,z:-.03597589209675789},{x:.6947521567344666,y:.7309479117393494,z:.046707939356565475},{x:.6759101152420044,y:.6249120831489563,z:.021654341369867325},{x:.5794773101806641,y:.7971615195274353,z:-.06339326500892639},{x:.6041849851608276,y:.727514922618866,z:-.017512541264295578},{x:.6968844532966614,y:.6440950036048889,z:.12727996706962585},{x:.5910853147506714,y:.679325520992279,z:-.009497715160250664},{x:.6157375574111938,y:.7695677280426025,z:-.010624290443956852},{x:.6606494784355164,y:.6410489678382874,z:.0208158977329731},{x:.6040687561035156,y:.7531470656394958,z:-.045887019485235214},{x:.7012156248092651,y:.780247151851654,z:.14028730988502502},{x:.595149576663971,y:.6527782678604126,z:.006308757700026035},{x:.5925500392913818,y:.7436665892601013,z:-.060151755809783936},{x:.6780198812484741,y:.8905693888664246,z:.0626060739159584},{x:.676746666431427,y:.9113880395889282,z:.08726003766059875},{x:.7030686140060425,y:.7312687635421753,z:.09529774636030197},{x:.688987135887146,y:.8588417172431946,z:.07752864807844162},{x:.6883691549301147,y:.6109960675239563,z:.06669612973928452},{x:.6358906030654907,y:.9702065587043762,z:.023120900616049767},{x:.5781539678573608,y:.8023634552955627,z:-.044763918966054916},{x:.6170316934585571,y:.7408350706100464,z:-.011375460773706436},{x:.688542366027832,y:.6516284346580505,z:.050206027925014496},{x:.6385149359703064,y:.6540714502334595,z:.006462941411882639},{x:.6279382109642029,y:.6563615798950195,z:.003062846139073372},{x:.6268895268440247,y:.8736732006072998,z:.00627936702221632},{x:.6944946050643921,y:.7709181308746338,z:.053824134171009064},{x:.614617109298706,y:1.0022112131118774,z:.02719894051551819},{x:.6493719220161438,y:.9665167927742004,z:.053563784807920456},{x:.6624587178230286,y:.943530797958374,z:.068605437874794},{x:.6162528991699219,y:.6558693051338196,z:.002187855076044798},{x:.6058168411254883,y:.654328465461731,z:.0036193584091961384},{x:.5987918972969055,y:.6536934971809387,z:.006134530063718557},{x:.6831037402153015,y:.6195642948150635,z:.03511790186166763},{x:.6062582731246948,y:.6356398463249207,z:.001280312892049551},{x:.6174948811531067,y:.62776118516922,z:-.0013642468256875873},{x:.6297246217727661,y:.6253792643547058,z:-.0007034156005829573},{x:.6407091617584229,y:.627578616142273,z:.0028144705574959517},{x:.6479622721672058,y:.6322650909423828,z:.00750273372977972},{x:.6915091276168823,y:.5990704298019409,z:.10270945727825165},{x:.6457163095474243,y:.6504453420639038,z:.010696077719330788},{x:.6164222955703735,y:.8231936097145081,z:-.016772059723734856},{x:.6042401194572449,y:.7830976843833923,z:-.03630910441279411},{x:.5922216773033142,y:.8228387236595154,z:-.029992375522851944},{x:.6646111011505127,y:.92097008228302,z:.050967294722795486},{x:.651232898235321,y:.9460107088088989,z:.038000158965587616},{x:.6140977144241333,y:.9882472157478333,z:.009882091544568539},{x:.6870781183242798,y:.8768675327301025,z:.10980932414531708},{x:.5986856818199158,y:.6456438899040222,z:.003999010659754276},{x:.585981547832489,y:.7034481763839722,z:-.0377722829580307},{x:.6342031359672546,y:.9867448806762695,z:.03786521404981613},{x:.7013950943946838,y:.776049017906189,z:.09598205983638763},{x:.6030206680297852,y:.8719133138656616,z:-.007931148633360863},{x:.6050592064857483,y:.8767156004905701,z:-.009791925549507141},{x:.6073468923568726,y:.8831382393836975,z:-.012361008673906326},{x:.6087977290153503,y:.890143632888794,z:-.01098148338496685},{x:.6147705316543579,y:.9110084772109985,z:-.0018823575228452682},{x:.622577965259552,y:.8670604825019836,z:.002609190298244357},{x:.6241236329078674,y:.8651344180107117,z:.0025534380692988634},{x:.6257084608078003,y:.8638408184051514,z:.0023300074972212315},{x:.639931321144104,y:.8449671268463135,z:.0038123116828501225},{x:.6810906529426575,y:.7856625318527222,z:.02717764675617218},{x:.583532452583313,y:.6811994910240173,z:-.026588857173919678},{x:.5855660438537598,y:.6393819451332092,z:-.004512844607234001},{x:.5932201743125916,y:.6398029327392578,z:.0008020466193556786},{x:.6200879812240601,y:.8683351874351501,z:.00417016725987196},{x:.6842559576034546,y:.8330534100532532,z:.050836317241191864},{x:.5754412412643433,y:.6418221592903137,z:-.022838059812784195},{x:.6232790350914001,y:.9295297265052795,z:.006339520215988159},{x:.5764067769050598,y:.694546639919281,z:-.04825803264975548},{x:.59778892993927,y:.7343927621841431,z:-.035004377365112305},{x:.6042810678482056,y:.9441440105438232,z:-.0010970570147037506},{x:.6496372222900391,y:.8869078159332275,z:.021036235615611076},{x:.6274012327194214,y:.7830310463905334,z:-.006658440921455622},{x:.637792706489563,y:.9104999899864197,z:.014290250837802887},{x:.6549934148788452,y:.7748609185218811,z:-.0006672973395325243},{x:.6404005289077759,y:.801220715045929,z:-.0026642554439604282},{x:.6671456694602966,y:.8045546412467957,z:.013180811889469624},{x:.6107483506202698,y:.9680658578872681,z:.001778992242179811},{x:.6060343980789185,y:.744587242603302,z:-.024382334202528},{x:.6602751612663269,y:.8998945355415344,z:.0344940721988678},{x:.6463775038719177,y:.9262562394142151,z:.02617623284459114},{x:.6579852104187012,y:.8602304458618164,z:.021586716175079346},{x:.6926165223121643,y:.8053340315818787,z:.061075080186128616},{x:.6724731922149658,y:.8594399690628052,z:.03457934781908989},{x:.6975721716880798,y:.8183245062828064,z:.09300774335861206},{x:.6512877941131592,y:.8258221745491028,z:.006324059329926968},{x:.594887375831604,y:.7148372530937195,z:-.026898479089140892},{x:.6017440557479858,y:.7773507833480835,z:-.05312420800328255},{x:.6096571683883667,y:.7806998491287231,z:-.037646256387233734},{x:.5952993035316467,y:.7654367685317993,z:-.06398405134677887},{x:.5950021147727966,y:.6201304793357849,z:-.009297547861933708},{x:.6165438890457153,y:.6052900552749634,z:-.012455573305487633},{x:.6362661719322205,y:.6015968918800354,z:-.011649220250546932},{x:.6522727608680725,y:.6046400666236877,z:-.005903332494199276},{x:.6625409722328186,y:.6128141283988953,z:.0030042496509850025},{x:.6688099503517151,y:.6457712054252625,z:.026322703808546066},{x:.7013440728187561,y:.6893666386604309,z:.08984331786632538},{x:.6608623266220093,y:.6749406456947327,z:.0172116681933403},{x:.6482325196266174,y:.6823726296424866,z:.008881398476660252},{x:.6313265562057495,y:.6842025518417358,z:.0031308617908507586},{x:.6147016286849976,y:.6809731721878052,z:.0007630771724507213},{x:.6018834114074707,y:.6755372285842896,z:-.0008834321051836014},{x:.5925027132034302,y:.670681357383728,z:-.001968748401850462},{x:.700127363204956,y:.6871103644371033,z:.13980500400066376},{x:.6095665693283081,y:.7853189706802368,z:-.03074747882783413},{x:.5880423784255981,y:.7229287028312683,z:-.04691500961780548},{x:.5930182337760925,y:.7811514139175415,z:-.06398335844278336},{x:.5867722034454346,y:.7922660112380981,z:-.05794971063733101},{x:.5933279991149902,y:.7842848896980286,z:-.05714067071676254},{x:.6063535809516907,y:.7920218706130981,z:-.02590685710310936},{x:.5839452743530273,y:.794978141784668,z:-.0615212507545948},{x:.5828126072883606,y:.8000800013542175,z:-.0449722595512867},{x:.5909603834152222,y:.6541213393211365,z:.003991890233010054},{x:.5852181911468506,y:.6602938771247864,z:-.004428438376635313},{x:.5825737714767456,y:.6651063561439514,z:-.014345290139317513},{x:.6517343521118164,y:.6362385153770447,z:.012151890434324741},{x:.6615052819252014,y:.6281577944755554,z:.0123682152479887},{x:.4856873154640198,y:.6568945646286011,z:.000720038078725338},{x:.49988406896591187,y:.6547410488128662,z:.0006949726957827806},{x:.48438939452171326,y:.6392973065376282,z:.000705525919329375},{x:.47143134474754333,y:.6589511632919312,z:.0006980331381782889},{x:.48704618215560913,y:.6752797961235046,z:.0006921177846379578},{x:.6243702173233032,y:.640461802482605,z:-6592126737814397e-20},{x:.6390967965126038,y:.6385173797607422,z:-.00016105435497593135},{x:.6230536699295044,y:.6224825382232666,z:-.00016136496560648084},{x:.6095397472381592,y:.641917884349823,z:-.0001803556369850412},{x:.6250996589660645,y:.6586247682571411,z:-.0001785515050869435}]],faceBlendshapes:[{categories:[{index:0,score:5187174338061595e-21,categoryName:"_neutral",displayName:""},{index:1,score:.24521504342556,categoryName:"browDownLeft",displayName:""},{index:2,score:.1987743377685547,categoryName:"browDownRight",displayName:""},{index:3,score:.013400448486208916,categoryName:"browInnerUp",displayName:""},{index:4,score:.012361560948193073,categoryName:"browOuterUpLeft",displayName:""},{index:5,score:.019305096939206123,categoryName:"browOuterUpRight",displayName:""},{index:6,score:28426356948330067e-21,categoryName:"cheekPuff",displayName:""},{index:7,score:3.4500112633395474e-7,categoryName:"cheekSquintLeft",displayName:""},{index:8,score:4.83789051486383e-7,categoryName:"cheekSquintRight",displayName:""},{index:9,score:.07650448381900787,categoryName:"eyeBlinkLeft",displayName:""},{index:10,score:.05070012807846069,categoryName:"eyeBlinkRight",displayName:""},{index:11,score:.13978900015354156,categoryName:"eyeLookDownLeft",displayName:""},{index:12,score:.14198613166809082,categoryName:"eyeLookDownRight",displayName:""},{index:13,score:.2177766114473343,categoryName:"eyeLookInLeft",displayName:""},{index:14,score:.014739357866346836,categoryName:"eyeLookInRight",displayName:""},{index:15,score:.02361512929201126,categoryName:"eyeLookOutLeft",displayName:""},{index:16,score:.19679604470729828,categoryName:"eyeLookOutRight",displayName:""},{index:17,score:.04874616861343384,categoryName:"eyeLookUpLeft",displayName:""},{index:18,score:.049392376095056534,categoryName:"eyeLookUpRight",displayName:""},{index:19,score:.34944331645965576,categoryName:"eyeSquintLeft",displayName:""},{index:20,score:.2939716875553131,categoryName:"eyeSquintRight",displayName:""},{index:21,score:.005955042317509651,categoryName:"eyeWideLeft",displayName:""},{index:22,score:.006776117719709873,categoryName:"eyeWideRight",displayName:""},{index:23,score:16942436559475027e-21,categoryName:"jawForward",displayName:""},{index:24,score:.0045165494084358215,categoryName:"jawLeft",displayName:""},{index:25,score:.07803940027952194,categoryName:"jawOpen",displayName:""},{index:26,score:2090057751047425e-20,categoryName:"jawRight",displayName:""},{index:27,score:.06032035872340202,categoryName:"mouthClose",displayName:""},{index:28,score:.00228882092051208,categoryName:"mouthDimpleLeft",displayName:""},{index:29,score:.00781762320548296,categoryName:"mouthDimpleRight",displayName:""},{index:30,score:.0017093931091949344,categoryName:"mouthFrownLeft",displayName:""},{index:31,score:.0019319106359034777,categoryName:"mouthFrownRight",displayName:""},{index:32,score:8485237776767462e-20,categoryName:"mouthFunnel",displayName:""},{index:33,score:.0009051355300471187,categoryName:"mouthLeft",displayName:""},{index:34,score:.0003630454302765429,categoryName:"mouthLowerDownLeft",displayName:""},{index:35,score:.00017601238505449146,categoryName:"mouthLowerDownRight",displayName:""},{index:36,score:.12865161895751953,categoryName:"mouthPressLeft",displayName:""},{index:37,score:.20137207210063934,categoryName:"mouthPressRight",displayName:""},{index:38,score:.0022203284315764904,categoryName:"mouthPucker",displayName:""},{index:39,score:.0009096377179957926,categoryName:"mouthRight",displayName:""},{index:40,score:.34189721941947937,categoryName:"mouthRollLower",displayName:""},{index:41,score:.11409689486026764,categoryName:"mouthRollUpper",displayName:""},{index:42,score:.17172536253929138,categoryName:"mouthShrugLower",displayName:""},{index:43,score:.004038424696773291,categoryName:"mouthShrugUpper",displayName:""},{index:44,score:.00023205230536404997,categoryName:"mouthSmileLeft",displayName:""},{index:45,score:.00019313619122840464,categoryName:"mouthSmileRight",displayName:""},{index:46,score:.0018571305554360151,categoryName:"mouthStretchLeft",displayName:""},{index:47,score:.0023813238367438316,categoryName:"mouthStretchRight",displayName:""},{index:48,score:24323100660694763e-21,categoryName:"mouthUpperUpLeft",displayName:""},{index:49,score:3161552012898028e-20,categoryName:"mouthUpperUpRight",displayName:""},{index:50,score:1.08198406678639e-7,categoryName:"noseSneerLeft",displayName:""},{index:51,score:12652527630052646e-22,categoryName:"noseSneerRight",displayName:""}],headIndex:-1,headName:""}],facialTransformationMatrixes:[{rows:4,columns:4,data:[.9947517514228821,.10230544209480286,.0013679931871592999,0,-.10230997204780579,.9947447776794434,.003816320328041911,0,-.000970348424743861,-.0039362297393381596,.9999914169311523,0,2.8888821601867676,-7.808934211730957,-30.52109146118164,1]}]}},xt=t.createContext({}),yt={basePath:"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.2-rc2/wasm",options:{baseOptions:{modelAssetPath:"https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task",delegate:"GPU"},runningMode:"VIDEO",outputFaceBlendshapes:!0,outputFacialTransformationMatrixes:!0}};function vt(){return t.useContext(xt)}function gt(e,t){return e.clone().add(t).multiplyScalar(.5)}function zt(e,t,r){const n=e.localToWorld(t);return r.worldToLocal(n)}const wt=t.createContext({}),bt=t.forwardRef((({camera:e,autostart:r=!0,webcam:n=!0,webcamVideoTextureSrc:o,manualUpdate:i=!1,manualDetect:l=!1,onVideoFrame:c,smoothTime:u=.25,offset:m=!0,offsetScalar:d=80,eyes:f=!1,eyesAsOrigin:p=!0,depth:h=.15,debug:x=!1,facemesh:y,makeDefault:v},g)=>{var z,w;const b=a.useThree((e=>e.scene)),E=a.useThree((e=>e.camera)),M=a.useThree((e=>e.set)),S=a.useThree((e=>e.get)),T=e||E,R=t.useRef(null),F=t.useRef(null),[k]=t.useState((()=>new D.Object3D)),[_]=t.useState((()=>new D.Vector3)),[L]=t.useState((()=>new D.Vector3)),[A]=t.useState((()=>new D.Vector3)),[B]=t.useState((()=>new D.Vector3)),O=t.useCallback((()=>{k.parent=T.parent;const e=F.current;if(e){const{outerRef:t,eyeRightRef:r,eyeLeftRef:n}=e;if(r.current&&n.current){const{irisDirRef:e}=r.current,{irisDirRef:a}=n.current;e.current&&a.current&&t.current&&(_.copy(zt(e.current,new D.Vector3(0,0,0),t.current)),L.copy(zt(a.current,new D.Vector3(0,0,0),t.current)),k.position.copy(zt(t.current,gt(_,L),T.parent||b)),A.copy(zt(e.current,new D.Vector3(0,0,1),t.current)),B.copy(zt(a.current,new D.Vector3(0,0,1),t.current)),k.lookAt(t.current.localToWorld(gt(A,B))))}else t.current&&(k.position.copy(zt(t.current,new D.Vector3(0,0,0),T.parent||b)),k.lookAt(t.current.localToWorld(new D.Vector3(0,0,1))))}return k}),[T,L,B,_,A,b,k]),[U]=t.useState((()=>new D.Object3D)),N=t.useCallback((function(e,t){if(T){var r;if(null!==(r=t)&&void 0!==r||(t=O()),u>0){const r=1e-9;s.easing.damp3(U.position,t.position,u,e,void 0,void 0,r),s.easing.dampE(U.rotation,t.rotation,u,e,void 0,void 0,r)}else U.position.copy(t.position),U.rotation.copy(t.rotation);T.position.copy(U.position),T.rotation.copy(U.rotation)}}),[T,O,u,U.position,U.rotation]),[I,V]=t.useState(),j=vt(),W=t.useCallback(((e,t)=>{const r=null==j?void 0:j.detectForVideo(e,t);V(r)}),[j]);a.useFrame(((e,t)=>{i||N(t)}));const G=t.useMemo((()=>Object.assign(Object.create(D.EventDispatcher.prototype),{detect:W,computeTarget:O,update:N,facemeshApiRef:F,webcamApiRef:R,play:()=>{var e,t;null==(e=R.current)||null==(t=e.videoTextureApiRef.current)||t.texture.source.data.play()},pause:()=>{var e,t;null==(e=R.current)||null==(t=e.videoTextureApiRef.current)||t.texture.source.data.pause()}})),[W,O,N]);t.useImperativeHandle(g,(()=>G),[G]),t.useEffect((()=>{const e=e=>{l||W(e.texture.source.data,e.time),c&&c(e)};return G.addEventListener("videoFrame",e),()=>{G.removeEventListener("videoFrame",e)}}),[G,W,j,l,c]),t.useEffect((()=>{if(v){const e=S().controls;return M({controls:G}),()=>M({controls:e})}}),[v,G,S,M]);const H=null==I?void 0:I.faceLandmarks[0],q=null==I||null==(z=I.facialTransformationMatrixes)?void 0:z[0],$=null==I||null==(w=I.faceBlendshapes)?void 0:w[0];return P.createElement(wt.Provider,{value:G},n&&P.createElement(t.Suspense,{fallback:null},P.createElement(Mt,{ref:R,autostart:r,videoTextureSrc:o})),P.createElement(dt,C.default({ref:F},y,{points:H,depth:h,facialTransformationMatrix:q,faceBlendshapes:$,eyes:f,eyesAsOrigin:p,offset:m,offsetScalar:d,debug:x,"rotation-z":Math.PI,visible:x}),P.createElement("meshBasicMaterial",{side:D.DoubleSide})))})),Et=()=>t.useContext(wt),Mt=t.forwardRef((({videoTextureSrc:e,autostart:r=!0},n)=>{const a=t.useRef(null),o=Et(),i=p.suspend((async()=>e?Promise.resolve(null):await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:"user"}})),[e]);t.useEffect((()=>(o.dispatchEvent({type:"stream",stream:i}),()=>{null==i||i.getTracks().forEach((e=>e.stop())),p.clear([e])})),[i,o,e]);const s=t.useMemo((()=>({videoTextureApiRef:a})),[]);return t.useImperativeHandle(n,(()=>s),[s]),P.createElement(t.Suspense,{fallback:null},P.createElement(St,{ref:a,src:e||i,start:r}))})),St=t.forwardRef((({src:e,start:r},n)=>{const a=ct(e,{start:r}),o=a.source.data,i=Et(),s=t.useCallback((e=>{i.dispatchEvent({type:"videoFrame",texture:a,time:e})}),[a,i]);Tt(o,s);const l=t.useMemo((()=>({texture:a})),[a]);return t.useImperativeHandle(n,(()=>l),[l]),P.createElement(P.Fragment,null)})),Tt=(e,r)=>{t.useEffect((()=>{if(!e||!e.requestVideoFrameCallback)return;let t;return e.requestVideoFrameCallback((function n(...a){r(...a),t=e.requestVideoFrameCallback(n)})),()=>e.cancelVideoFrameCallback(t)}),[e,r])};function Ct({defaultScene:e,defaultCamera:t,renderPriority:r=1}){const{gl:n,scene:o,camera:i}=a.useThree();let s;return a.useFrame((()=>{s=n.autoClear,1===r&&(n.autoClear=!0,n.render(e,t)),n.autoClear=!1,n.clearDepth(),n.render(o,i),n.autoClear=s}),r),P.createElement("group",{onPointerOver:()=>null})}function Pt({children:e,renderPriority:t=1}){const{scene:r,camera:n}=a.useThree(),[o]=P.useState((()=>new D.Scene));return P.createElement(P.Fragment,null,a.createPortal(P.createElement(P.Fragment,null,e,P.createElement(Ct,{defaultScene:r,defaultCamera:n,renderPriority:t})),o,{events:{priority:t+1}}))}const Rt=P.createContext({}),Dt=()=>P.useContext(Rt),Ft=2*Math.PI,kt=new n.Object3D,_t=new n.Matrix4,[Lt,At]=[new n.Quaternion,new n.Quaternion],Bt=new n.Vector3,Ot=new n.Vector3,Ut="#f0f0f0",Nt="#999",It="black",Vt="black",jt=["Right","Left","Top","Bottom","Front","Back"],Wt=e=>new n.Vector3(...e).multiplyScalar(.38),Gt=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(Wt),Ht=[.25,.25,.25],qt=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(Wt),$t=qt.map((e=>e.toArray().map((e=>0==e?.5:.25)))),Xt=({hover:e,index:t,font:r="20px Inter var, Arial, sans-serif",faces:o=jt,color:i=Ut,hoverColor:s=Nt,textColor:l=It,strokeColor:c=Vt,opacity:u=1})=>{const m=a.useThree((e=>e.gl)),d=P.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const a=e.getContext("2d");return a.fillStyle=i,a.fillRect(0,0,e.width,e.height),a.strokeStyle=c,a.strokeRect(0,0,e.width,e.height),a.font=r,a.textAlign="center",a.fillStyle=l,a.fillText(o[t].toUpperCase(),64,76),new n.CanvasTexture(e)}),[t,o,r,i,l,c]);return P.createElement("meshLambertMaterial",{map:d,"map-anisotropy":m.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?s:"white",transparent:!0,opacity:u})},Yt=e=>{const{tweenCamera:t}=Dt(),[r,n]=P.useState(null);return P.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),n(null)},onPointerMove:e=>{e.stopPropagation(),n(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,n)=>P.createElement(Xt,C.default({key:n,index:n,hover:r===n},e)))),P.createElement("boxGeometry",null))},Kt=({onClick:e,dimensions:t,position:r,hoverColor:n=Nt})=>{const{tweenCamera:a}=Dt(),[o,i]=P.useState(!1);return P.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),i(!0)},onPointerOut:e=>{e.stopPropagation(),i(!1)},onClick:e||(e=>{e.stopPropagation(),a(r)})},P.createElement("meshBasicMaterial",{color:o?n:"white",transparent:!0,opacity:.6,visible:o}),P.createElement("boxGeometry",{args:t}))};function Zt({scale:e=[.8,.05,.05],color:t,rotation:r}){return P.createElement("group",{rotation:r},P.createElement("mesh",{position:[.4,0,0]},P.createElement("boxGeometry",{args:e}),P.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function Qt({onClick:e,font:t,disabled:r,arcStyle:o,label:i,labelColor:s,axisHeadScale:l=1,...c}){const u=a.useThree((e=>e.gl)),m=P.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=o,r.fill(),i&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(i,32,41)),new n.CanvasTexture(e)}),[o,i,s,t]),[d,f]=P.useState(!1),p=(i?1:.75)*(d?1.2:1)*l;return P.createElement("sprite",C.default({scale:p,onPointerOver:r?void 0:e=>{e.stopPropagation(),f(!0)},onPointerOut:r?void 0:e||(e=>{e.stopPropagation(),f(!1)})},c),P.createElement("spriteMaterial",{map:m,"map-anisotropy":u.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:i?1:.75,toneMapped:!1}))}const Jt=Ee({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,cellThickness:.5,sectionThickness:1,cellColor:new D.Color,sectionColor:new D.Color,infiniteGrid:!1,followCamera:!1},"\n varying vec3 worldPosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n worldPosition = position.xzy;\n if (infiniteGrid) worldPosition *= 1.0 + fadeDistance;\n if (followCamera) worldPosition.xz +=cameraPosition.xz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4(worldPosition, 1.0);\n }\n ","\n varying vec3 worldPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = worldPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1. - thickness;\n return 1.0 - min(line, 1.);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n float d = 1.0 - min(distance(cameraPosition.xz, worldPosition.xz) / fadeDistance, 1.);\n vec3 color = mix(cellColor, sectionColor, min(1.,sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d,fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }\n "),er=P.forwardRef((({args:e,cellColor:t="#000000",sectionColor:r="#2080ff",cellSize:n=.5,sectionSize:o=1,followCamera:i=!1,infiniteGrid:s=!1,fadeDistance:l=100,fadeStrength:c=1,cellThickness:u=.5,sectionThickness:m=1,side:d=D.BackSide,...f},p)=>{a.extend({GridMaterial:Jt});const h={cellSize:n,sectionSize:o,cellColor:t,sectionColor:r,cellThickness:u,sectionThickness:m},x={fadeDistance:l,fadeStrength:c,infiniteGrid:s,followCamera:i};return P.createElement("mesh",C.default({ref:p,frustumCulled:!1},f),P.createElement("gridMaterial",C.default({transparent:!0,"extensions-derivatives":!0,side:d},h,x)),P.createElement("planeGeometry",{args:e}))}));function tr(e,{path:t}){const[r]=a.useLoader(n.CubeTextureLoader,[e],(e=>e.setPath(t)));return r}function rr(e){return a.useLoader(m.FBXLoader,e)}tr.preload=(e,{path:t})=>a.useLoader.preload(n.CubeTextureLoader,[e],(e=>e.setPath(t))),rr.preload=e=>a.useLoader.preload(m.FBXLoader,e),rr.clear=e=>a.useLoader.clear(m.FBXLoader,e);const nr="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master";function ar(e,r=`${nr}/basis/`){const n=a.useThree((e=>e.gl)),o=a.useLoader(m.KTX2Loader,Me(e)?Object.values(e):e,(e=>{e.detectSupport(n),e.setTranscoderPath(r)}));if(t.useEffect((()=>{(Array.isArray(o)?o:[o]).forEach(n.initTexture)}),[n,o]),Me(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:o[t.indexOf(e)]}))),r}return o}function or(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}ar.preload=(e,t=`${nr}/basis/`)=>a.useLoader.preload(m.KTX2Loader,e,(e=>{e.setTranscoderPath(t)})),ar.clear=e=>a.useLoader.clear(m.KTX2Loader,e);function ir(e,t,...r){const n=P.useRef(),o=a.useThree((e=>e.scene));return P.useLayoutEffect((()=>{let a;if(e&&null!=e&&e.current&&t&&(n.current=a=new t(e.current,...r)),a)return o.add(a),()=>{n.current=void 0,o.remove(a),null==a.dispose||a.dispose()}}),[o,t,e,...r]),a.useFrame((()=>{var e;null==(e=n.current)||null==e.update||e.update()})),n}const sr=e=>e.isMesh;const lr=P.forwardRef((({enabled:e=!0,firstHitOnly:t=!1,children:r,strategy:o=b.SAH,verbose:i=!1,setBoundingBox:s=!0,maxDepth:l=40,maxLeafTris:c=10,...u},m)=>{const d=P.useRef(null),f=a.useThree((e=>e.raycaster));return P.useImperativeHandle(m,(()=>d.current),[]),P.useEffect((()=>{if(e){const e={strategy:o,verbose:i,setBoundingBox:s,maxDepth:l,maxLeafTris:c},r=d.current;return f.firstHitOnly=t,r.traverse((t=>{sr(t)&&!t.geometry.boundsTree&&t.raycast===n.Mesh.prototype.raycast&&(t.raycast=b.acceleratedRaycast,t.geometry.computeBoundsTree=b.computeBoundsTree,t.geometry.disposeBoundsTree=b.disposeBoundsTree,t.geometry.computeBoundsTree(e))})),()=>{delete f.firstHitOnly,r.traverse((e=>{sr(e)&&e.geometry.boundsTree&&(e.geometry.disposeBoundsTree(),e.raycast=n.Mesh.prototype.raycast)}))}}})),P.createElement("group",C.default({ref:d},u),r)}));const cr=new D.Box3,ur=new D.Vector3;const mr=e=>Math.sqrt(1-Math.pow(e-1,2));class dr{constructor({size:e=256,maxAge:t=750,radius:r=.3,intensity:n=.2,interpolate:a=0,smoothing:o=0,minForce:i=.3,blend:s="screen",ease:l=mr}={}){this.size=e,this.maxAge=t,this.radius=r,this.intensity=n,this.ease=l,this.interpolate=a,this.smoothing=o,this.minForce=i,this.blend=s,this.trail=[],this.force=0,this.initTexture()}initTexture(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.texture=new n.Texture(this.canvas),this.canvas.id="touchTexture",this.canvas.style.width=this.canvas.style.height=`${this.canvas.width}px`}update(e){this.clear(),this.trail.forEach(((t,r)=>{t.age+=1e3*e,t.age>this.maxAge&&this.trail.splice(r,1)})),this.trail.length||(this.force=0),this.trail.forEach((e=>{this.drawTouch(e)})),this.texture.needsUpdate=!0}clear(){this.ctx.globalCompositeOperation="source-over",this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}addTouch(e){const t=this.trail[this.trail.length-1];if(t){const r=t.x-e.x,n=t.y-e.y,a=r*r+n*n,o=Math.max(this.minForce,Math.min(1e4*a,1));if(this.force=function(e,t,r=.9){return t*r+e*(1-r)}(o,this.force,this.smoothing),this.interpolate){const e=Math.ceil(a/Math.pow(.5*this.radius/this.interpolate,2));if(e>1)for(let a=1;a<e;a++)this.trail.push({x:t.x-r/e*a,y:t.y-n/e*a,age:0,force:o})}}this.trail.push({x:e.x,y:e.y,age:0,force:this.force})}drawTouch(e){const t={x:e.x*this.size,y:(1-e.y)*this.size};let r=1;r=e.age<.3*this.maxAge?this.ease(e.age/(.3*this.maxAge)):this.ease(1-(e.age-.3*this.maxAge)/(.7*this.maxAge)),r*=e.force,this.ctx.globalCompositeOperation=this.blend;const n=this.size*this.radius*r,a=this.ctx.createRadialGradient(t.x,t.y,Math.max(0,.25*n),t.x,t.y,Math.max(0,n));a.addColorStop(0,`rgba(255, 255, 255, ${this.intensity})`),a.addColorStop(1,"rgba(0, 0, 0, 0.0)"),this.ctx.beginPath(),this.ctx.fillStyle=a,this.ctx.arc(t.x,t.y,Math.max(0,n),0,2*Math.PI),this.ctx.fill()}}const fr=P.forwardRef((function({children:e,disable:t,disableX:r,disableY:a,disableZ:o,left:i,right:s,top:l,bottom:c,front:u,back:m,onCentered:d,precise:f=!0,cacheKey:p=0,...h},x){const y=P.useRef(null),v=P.useRef(null),g=P.useRef(null);return P.useLayoutEffect((()=>{v.current.matrixWorld.identity();const e=(new n.Box3).setFromObject(g.current,f),p=new n.Vector3,h=new n.Sphere,x=e.max.x-e.min.x,z=e.max.y-e.min.y,w=e.max.z-e.min.z;e.getCenter(p),e.getBoundingSphere(h);const b=l?z/2:c?-z/2:0,E=i?-x/2:s?x/2:0,M=u?w/2:m?-w/2:0;v.current.position.set(t||r?0:-p.x+E,t||a?0:-p.y+b,t||o?0:-p.z+M),void 0!==d&&d({parent:y.current.parent,container:y.current,width:x,height:z,depth:w,boundingBox:e,boundingSphere:h,center:p,verticalAlignment:b,horizontalAlignment:E,depthAlignment:M})}),[p,d,l,i,u,t,r,a,o,f,s,c,m]),P.useImperativeHandle(x,(()=>y.current),[]),P.createElement("group",C.default({ref:y},h),P.createElement("group",{ref:v},P.createElement("group",{ref:g},e)))})),pr=P.forwardRef((({font:e,color:t="#cbcbcb",bevelSize:r=.04,debug:n=!1,children:a,...o},i)=>{const[s,l]=P.useState(0),c=P.useCallback(((e=1)=>l(s+e)),[s]),u=P.useCallback(((e=1)=>l(s-e)),[s]),m=P.useMemo((()=>({incr:c,decr:u})),[c,u]);return P.useImperativeHandle(i,(()=>m),[m]),P.createElement("group",o,P.createElement(P.Suspense,{fallback:null},P.createElement(fr,{top:!0,cacheKey:JSON.stringify({counter:s,font:e})},P.createElement(we,{bevelEnabled:!0,bevelSize:r,font:e},n?P.createElement("meshNormalMaterial",{wireframe:!0}):P.createElement("meshStandardMaterial",{color:t}),s))),a)})),hr=P.forwardRef((({children:e,curve:t},r)=>{const[n]=P.useState((()=>new D.Scene)),[o,i]=P.useState(),s=P.useRef();return P.useEffect((()=>{s.current=new m.Flow(n.children[0]),i(s.current.object3D)}),[e]),P.useEffect((()=>{var e;t&&(null==(e=s.current)||e.updateCurve(0,t))}),[t]),P.useImperativeHandle(r,(()=>({moveAlongCurve:e=>{var t;null==(t=s.current)||t.moveAlongCurve(e)}}))),P.createElement(P.Fragment,null,a.createPortal(e,n),o&&P.createElement("primitive",{object:o}))}));class xr extends n.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const yr=P.forwardRef((({speed:e=1,...t},r)=>{const[n]=P.useState((()=>new xr));return a.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),P.createElement("primitive",C.default({object:n,ref:r,attach:"material"},t))}));class vr extends n.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include <begin_vertex>","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const gr=P.forwardRef((({speed:e=1,...t},r)=>{const[n]=P.useState((()=>new vr));return a.useFrame((t=>n&&(n.time=t.clock.getElapsedTime()*e))),P.createElement("primitive",C.default({object:n,ref:r,attach:"material"},t))}));class zr extends n.ShaderMaterial{constructor(e=new n.Vector2){super({uniforms:{inputBuffer:new n.Uniform(null),depthBuffer:new n.Uniform(null),resolution:new n.Uniform(new n.Vector2),texelSize:new n.Uniform(new n.Vector2),halfTexelSize:new n.Uniform(new n.Vector2),kernel:new n.Uniform(0),scale:new n.Uniform(1),cameraNear:new n.Uniform(0),cameraFar:new n.Uniform(1),minDepthThreshold:new n.Uniform(0),maxDepthThreshold:new n.Uniform(1),depthScale:new n.Uniform(0),depthToBlurRatioBias:new n.Uniform(.25)},fragmentShader:"#include <common>\n #include <dithering_pars_fragment> \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include <dithering_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:n.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(e.x,e.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t),this.uniforms.halfTexelSize.value.set(e,t).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}class wr{constructor({gl:e,resolution:t,width:r=500,height:a=500,minDepthThreshold:o=0,maxDepthThreshold:i=1,depthScale:s=0,depthToBlurRatioBias:l=.25}){this.renderToScreen=!1,this.renderTargetA=new n.WebGLRenderTarget(t,t,{minFilter:n.LinearFilter,magFilter:n.LinearFilter,stencilBuffer:!1,depthBuffer:!1,type:n.HalfFloatType}),this.renderTargetB=this.renderTargetA.clone(),this.convolutionMaterial=new zr,this.convolutionMaterial.setTexelSize(1/r,1/a),this.convolutionMaterial.setResolution(new n.Vector2(r,a)),this.scene=new n.Scene,this.camera=new n.Camera,this.convolutionMaterial.uniforms.minDepthThreshold.value=o,this.convolutionMaterial.uniforms.maxDepthThreshold.value=i,this.convolutionMaterial.uniforms.depthScale.value=s,this.convolutionMaterial.uniforms.depthToBlurRatioBias.value=l,this.convolutionMaterial.defines.USE_DEPTH=s>0;const c=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),u=new Float32Array([0,0,2,0,0,2]),m=new n.BufferGeometry;m.setAttribute("position",new n.BufferAttribute(c,3)),m.setAttribute("uv",new n.BufferAttribute(u,2)),this.screen=new n.Mesh(m,this.convolutionMaterial),this.screen.frustumCulled=!1,this.scene.add(this.screen)}render(e,t,r){const n=this.scene,a=this.camera,o=this.renderTargetA,i=this.renderTargetB;let s=this.convolutionMaterial,l=s.uniforms;l.depthBuffer.value=t.depthTexture;const c=s.kernel;let u,m,d,f=t;for(m=0,d=c.length-1;m<d;++m)u=0==(1&m)?o:i,l.kernel.value=c[m],l.inputBuffer.value=f.texture,e.setRenderTarget(u),e.render(n,a),f=u;l.kernel.value=c[m],l.inputBuffer.value=f.texture,e.setRenderTarget(this.renderToScreen?null:r),e.render(n,a)}}class br extends n.MeshStandardMaterial{constructor(e={}){super(e),this._tDepth={value:null},this._distortionMap={value:null},this._tDiffuse={value:null},this._tDiffuseBlur={value:null},this._textureMatrix={value:null},this._hasBlur={value:!1},this._mirror={value:0},this._mixBlur={value:0},this._blurStrength={value:.5},this._minDepthThreshold={value:.9},this._maxDepthThreshold={value:1},this._depthScale={value:0},this._depthToBlurRatioBias={value:.25},this._distortion={value:1},this._mixContrast={value:1},this.setValues(e)}onBeforeCompile(e){var t;null!=(t=e.defines)&&t.USE_UV||(e.defines.USE_UV=""),e.uniforms.hasBlur=this._hasBlur,e.uniforms.tDiffuse=this._tDiffuse,e.uniforms.tDepth=this._tDepth,e.uniforms.distortionMap=this._distortionMap,e.uniforms.tDiffuseBlur=this._tDiffuseBlur,e.uniforms.textureMatrix=this._textureMatrix,e.uniforms.mirror=this._mirror,e.uniforms.mixBlur=this._mixBlur,e.uniforms.mixStrength=this._blurStrength,e.uniforms.minDepthThreshold=this._minDepthThreshold,e.uniforms.maxDepthThreshold=this._maxDepthThreshold,e.uniforms.depthScale=this._depthScale,e.uniforms.depthToBlurRatioBias=this._depthToBlurRatioBias,e.uniforms.distortion=this._distortion,e.uniforms.mixContrast=this._mixContrast,e.vertexShader=`\n uniform mat4 textureMatrix;\n varying vec4 my_vUv;\n ${e.vertexShader}`,e.vertexShader=e.vertexShader.replace("#include <project_vertex>","#include <project_vertex>\n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv;\n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include <emissivemap_fragment>","#include <emissivemap_fragment>\n\n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n\n vec4 merge = base;\n\n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n\n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n\n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}a.extend({MeshReflectorMaterialImpl:br});const Er=P.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:r=256,blur:o=[0,0],minDepthThreshold:i=.9,maxDepthThreshold:s=1,depthScale:l=0,depthToBlurRatioBias:c=.25,mirror:u=0,distortion:m=1,mixContrast:d=1,distortionMap:f,reflectorOffset:p=0,...h},x)=>{const y=a.useThree((({gl:e})=>e)),v=a.useThree((({camera:e})=>e)),g=a.useThree((({scene:e})=>e)),z=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,w=P.useRef(null),[b]=P.useState((()=>new n.Plane)),[E]=P.useState((()=>new n.Vector3)),[M]=P.useState((()=>new n.Vector3)),[S]=P.useState((()=>new n.Vector3)),[T]=P.useState((()=>new n.Matrix4)),[R]=P.useState((()=>new n.Vector3(0,0,-1))),[D]=P.useState((()=>new n.Vector4)),[F]=P.useState((()=>new n.Vector3)),[k]=P.useState((()=>new n.Vector3)),[L]=P.useState((()=>new n.Vector4)),[A]=P.useState((()=>new n.Matrix4)),[B]=P.useState((()=>new n.PerspectiveCamera)),O=P.useCallback((()=>{var e;const t=w.current.parent||(null==(e=w.current)?void 0:e.__r3f.parent);if(!t)return;if(M.setFromMatrixPosition(t.matrixWorld),S.setFromMatrixPosition(v.matrixWorld),T.extractRotation(t.matrixWorld),E.set(0,0,1),E.applyMatrix4(T),M.addScaledVector(E,p),F.subVectors(M,S),F.dot(E)>0)return;F.reflect(E).negate(),F.add(M),T.extractRotation(v.matrixWorld),R.set(0,0,-1),R.applyMatrix4(T),R.add(S),k.subVectors(M,R),k.reflect(E).negate(),k.add(M),B.position.copy(F),B.up.set(0,1,0),B.up.applyMatrix4(T),B.up.reflect(E),B.lookAt(k),B.far=v.far,B.updateMatrixWorld(),B.projectionMatrix.copy(v.projectionMatrix),A.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),A.multiply(B.projectionMatrix),A.multiply(B.matrixWorldInverse),A.multiply(t.matrixWorld),b.setFromNormalAndCoplanarPoint(E,M),b.applyMatrix4(B.matrixWorldInverse),D.set(b.normal.x,b.normal.y,b.normal.z,b.constant);const r=B.projectionMatrix;L.x=(Math.sign(D.x)+r.elements[8])/r.elements[0],L.y=(Math.sign(D.y)+r.elements[9])/r.elements[5],L.z=-1,L.w=(1+r.elements[10])/r.elements[14],D.multiplyScalar(2/D.dot(L)),r.elements[2]=D.x,r.elements[6]=D.y,r.elements[10]=D.z+1,r.elements[14]=D.w}),[v,p]),[U,N,I,V]=P.useMemo((()=>{const a={minFilter:n.LinearFilter,magFilter:n.LinearFilter,type:n.HalfFloatType},p=new n.WebGLRenderTarget(r,r,a);p.depthBuffer=!0,p.depthTexture=new n.DepthTexture(r,r),p.depthTexture.format=n.DepthFormat,p.depthTexture.type=n.UnsignedShortType;const h=new n.WebGLRenderTarget(r,r,a);return[p,h,new wr({gl:y,resolution:r,width:o[0],height:o[1],minDepthThreshold:i,maxDepthThreshold:s,depthScale:l,depthToBlurRatioBias:c}),{mirror:u,textureMatrix:A,mixBlur:e,tDiffuse:p.texture,tDepth:p.depthTexture,tDiffuseBlur:h.texture,hasBlur:z,mixStrength:t,minDepthThreshold:i,maxDepthThreshold:s,depthScale:l,depthToBlurRatioBias:c,distortion:m,distortionMap:f,mixContrast:d,"defines-USE_BLUR":z?"":void 0,"defines-USE_DEPTH":l>0?"":void 0,"defines-USE_DISTORTION":f?"":void 0}]}),[y,o,A,r,u,z,e,t,i,s,l,c,m,f,d]);return a.useFrame((()=>{var e;const t=w.current.parent||(null==(e=w.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=y.xr.enabled,n=y.shadowMap.autoUpdate;O(),y.xr.enabled=!1,y.shadowMap.autoUpdate=!1,y.setRenderTarget(U),y.state.buffers.depth.setMask(!0),y.autoClear||y.clear(),y.render(g,B),z&&I.render(y,U,N),y.xr.enabled=r,y.shadowMap.autoUpdate=n,t.visible=!0,y.setRenderTarget(null)})),P.createElement("meshReflectorMaterialImpl",C.default({attach:"material",key:"key"+V["defines-USE_BLUR"]+V["defines-USE_DEPTH"]+V["defines-USE_DISTORTION"],ref:_.default([w,x])},V,h))})),Mr=Ee({envMap:null,bounces:3,ior:2.4,correctMips:!0,aberrationStrength:.01,fresnel:0,bvh:new b.MeshBVHUniformStruct,color:new D.Color("white"),resolution:new D.Vector2,viewMatrixInverse:new D.Matrix4,projectionMatrixInverse:new D.Matrix4},"\n uniform mat4 viewMatrixInverse;\n\n varying vec3 vWorldPosition; \n varying vec3 vNormal;\n varying mat4 vModelMatrixInverse;\n\n #ifdef USE_INSTANCING_COLOR\n varying vec3 vInstanceColor;\n #endif\n\n void main() { \n vec4 transformedNormal = vec4(normal, 0.0);\n vec4 transformedPosition = vec4(position, 1.0);\n #ifdef USE_INSTANCING\n transformedNormal = instanceMatrix * transformedNormal;\n transformedPosition = instanceMatrix * transformedPosition;\n #endif\n\n #ifdef USE_INSTANCING\n vModelMatrixInverse = inverse(modelMatrix * instanceMatrix);\n #else\n vModelMatrixInverse = inverse(modelMatrix);\n #endif\n\n #ifdef USE_INSTANCING_COLOR\n vInstanceColor = instanceColor.rgb;\n #endif\n\n vWorldPosition = (modelMatrix * transformedPosition).xyz;\n vNormal = normalize((viewMatrixInverse * vec4(normalMatrix * transformedNormal.xyz, 0.0)).xyz);\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * transformedPosition;\n }",`\n #define ENVMAP_TYPE_CUBE_UV\n precision highp isampler2D;\n precision highp usampler2D;\n varying vec3 vWorldPosition;\n varying vec3 vNormal;\n varying mat4 vModelMatrixInverse;\n\n #ifdef USE_INSTANCING_COLOR\n varying vec3 vInstanceColor;\n #endif\n \n #ifdef ENVMAP_TYPE_CUBEM\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n uniform float bounces;\n ${b.shaderStructs}\n ${b.shaderIntersectFunction}\n uniform BVH bvh;\n uniform float ior;\n uniform bool correctMips;\n uniform vec2 resolution;\n uniform float fresnel;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrixInverse;\n uniform mat4 viewMatrixInverse;\n uniform float aberrationStrength;\n uniform vec3 color;\n \n float fresnelFunc(vec3 viewDirection, vec3 worldNormal) {\n return pow( 1.0 + dot( viewDirection, worldNormal), 10.0 );\n }\n \n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 normal, float ior, mat4 modelMatrixInverse) {\n vec3 rayOrigin = ro;\n vec3 rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = vWorldPosition + rayDirection * 0.001;\n rayOrigin = (modelMatrixInverse * vec4(rayOrigin, 1.0)).xyz;\n rayDirection = normalize((modelMatrixInverse * vec4(rayDirection, 0.0)).xyz);\n for(float i = 0.0; i < bounces; i++) {\n uvec4 faceIndices = uvec4( 0u );\n vec3 faceNormal = vec3( 0.0, 0.0, 1.0 );\n vec3 barycoord = vec3( 0.0 );\n float side = 1.0;\n float dist = 0.0;\n bvhIntersectFirstHit( bvh, rayOrigin, rayDirection, faceIndices, faceNormal, barycoord, side, dist );\n vec3 hitPos = rayOrigin + rayDirection * max(dist - 0.001, 0.0); \n vec3 tempDir = refract(rayDirection, faceNormal, ior);\n if (length(tempDir) != 0.0) {\n rayDirection = tempDir;\n break;\n }\n rayDirection = reflect(rayDirection, faceNormal);\n rayOrigin = hitPos + rayDirection * 0.01;\n }\n rayDirection = normalize((modelMatrix * vec4(rayDirection, 0.0)).xyz);\n return rayDirection;\n }\n \n #include <common>\n #include <cube_uv_reflection_fragment>\n \n #ifdef ENVMAP_TYPE_CUBEM\n vec4 textureGradient(samplerCube envMap, vec3 rayDirection, vec3 directionCamPerfect) {\n return textureGrad(envMap, rayDirection, dFdx(correctMips ? directionCamPerfect: rayDirection), dFdy(correctMips ? directionCamPerfect: rayDirection));\n }\n #else\n vec4 textureGradient(sampler2D envMap, vec3 rayDirection, vec3 directionCamPerfect) {\n vec2 uvv = equirectUv( rayDirection );\n vec2 smoothUv = equirectUv( directionCamPerfect );\n return textureGrad(envMap, uvv, dFdx(correctMips ? smoothUv : uvv), dFdy(correctMips ? smoothUv : uvv));\n }\n #endif\n \n void main() {\n vec2 uv = gl_FragCoord.xy / resolution;\n vec3 directionCamPerfect = (projectionMatrixInverse * vec4(uv * 2.0 - 1.0, 0.0, 1.0)).xyz;\n directionCamPerfect = (viewMatrixInverse * vec4(directionCamPerfect, 0.0)).xyz;\n directionCamPerfect = normalize(directionCamPerfect);\n vec3 normal = vNormal;\n vec3 rayOrigin = cameraPosition;\n vec3 rayDirection = normalize(vWorldPosition - cameraPosition);\n vec3 finalColor;\n #ifdef CHROMATIC_ABERRATIONS\n vec3 rayDirectionG = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior, 1.0), vModelMatrixInverse);\n #ifdef FAST_CHROMA \n vec3 rayDirectionR = normalize(rayDirectionG + 1.0 * vec3(aberrationStrength / 2.0));\n vec3 rayDirectionB = normalize(rayDirectionG - 1.0 * vec3(aberrationStrength / 2.0));\n #else\n vec3 rayDirectionR = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior * (1.0 - aberrationStrength), 1.0), vModelMatrixInverse);\n vec3 rayDirectionB = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior * (1.0 + aberrationStrength), 1.0), vModelMatrixInverse);\n #endif\n float finalColorR = textureGradient(envMap, rayDirectionR, directionCamPerfect).r;\n float finalColorG = textureGradient(envMap, rayDirectionG, directionCamPerfect).g;\n float finalColorB = textureGradient(envMap, rayDirectionB, directionCamPerfect).b;\n finalColor = vec3(finalColorR, finalColorG, finalColorB);\n #else\n rayDirection = totalInternalReflection(rayOrigin, rayDirection, normal, max(ior, 1.0), vModelMatrixInverse);\n finalColor = textureGradient(envMap, rayDirection, directionCamPerfect).rgb; \n #endif\n\n finalColor *= color;\n #ifdef USE_INSTANCING_COLOR\n finalColor *= vInstanceColor;\n #endif\n\n vec3 viewDirection = normalize(vWorldPosition - cameraPosition);\n float nFresnel = fresnelFunc(viewDirection, normal) * fresnel;\n gl_FragColor = vec4(mix(finalColor, vec3(1.0), nFresnel), 1.0); \n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }`);const Sr=Ee({},"void main() { }","void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); discard; }");class Tr extends D.MeshPhysicalMaterial{constructor(e=6,t=!1){super(),this.uniforms={chromaticAberration:{value:.05},transmission:{value:0},_transmission:{value:1},transmissionMap:{value:null},roughness:{value:0},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:1/0},attenuationColor:{value:new D.Color("white")},anisotropicBlur:{value:.1},time:{value:0},distortion:{value:0},distortionScale:{value:.5},temporalDistortion:{value:0},buffer:{value:null}},this.onBeforeCompile=r=>{r.uniforms={...r.uniforms,...this.uniforms},t?r.defines.USE_SAMPLER="":r.defines.USE_TRANSMISSION="",r.fragmentShader="\n uniform float chromaticAberration; \n uniform float anisotropicBlur; \n uniform float time;\n uniform float distortion;\n uniform float distortionScale;\n uniform float temporalDistortion;\n uniform sampler2D buffer;\n\n vec3 random3(vec3 c) {\n float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\n vec3 r;\n r.z = fract(512.0*j);\n j *= .125;\n r.x = fract(512.0*j);\n j *= .125;\n r.y = fract(512.0*j);\n return r-0.5;\n }\n\n float seed = 0.0;\n uint hash( uint x ) {\n x += ( x << 10u );\n x ^= ( x >> 6u );\n x += ( x << 3u );\n x ^= ( x >> 11u );\n x += ( x << 15u );\n return x;\n }\n\n // Compound versions of the hashing algorithm I whipped together.\n uint hash( uvec2 v ) { return hash( v.x ^ hash(v.y) ); }\n uint hash( uvec3 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ); }\n uint hash( uvec4 v ) { return hash( v.x ^ hash(v.y) ^ hash(v.z) ^ hash(v.w) ); }\n\n // Construct a float with half-open range [0:1] using low 23 bits.\n // All zeroes yields 0.0, all ones yields the next smallest representable value below 1.0.\n float floatConstruct( uint m ) {\n const uint ieeeMantissa = 0x007FFFFFu; // binary32 mantissa bitmask\n const uint ieeeOne = 0x3F800000u; // 1.0 in IEEE binary32\n m &= ieeeMantissa; // Keep only mantissa bits (fractional part)\n m |= ieeeOne; // Add fractional part to 1.0\n float f = uintBitsToFloat( m ); // Range [1:2]\n return f - 1.0; // Range [0:1]\n }\n\n // Pseudo-random value in half-open range [0:1].\n float random( float x ) { return floatConstruct(hash(floatBitsToUint(x))); }\n float random( vec2 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec3 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n float random( vec4 v ) { return floatConstruct(hash(floatBitsToUint(v))); }\n\n float rand() {\n float result = random(vec3(gl_FragCoord.xy, seed));\n seed += 1.0;\n return result;\n }\n\n const float F3 = 0.3333333;\n const float G3 = 0.1666667;\n\n float snoise(vec3 p) {\n vec3 s = floor(p + dot(p, vec3(F3)));\n vec3 x = p - s + dot(s, vec3(G3));\n vec3 e = step(vec3(0.0), x - x.yzx);\n vec3 i1 = e*(1.0 - e.zxy);\n vec3 i2 = 1.0 - e.zxy*(1.0 - e);\n vec3 x1 = x - i1 + G3;\n vec3 x2 = x - i2 + 2.0*G3;\n vec3 x3 = x - 1.0 + 3.0*G3;\n vec4 w, d;\n w.x = dot(x, x);\n w.y = dot(x1, x1);\n w.z = dot(x2, x2);\n w.w = dot(x3, x3);\n w = max(0.6 - w, 0.0);\n d.x = dot(random3(s), x);\n d.y = dot(random3(s + i1), x1);\n d.z = dot(random3(s + i2), x2);\n d.w = dot(random3(s + 1.0), x3);\n w *= w;\n w *= w;\n d *= w;\n return dot(d, vec4(52.0));\n }\n\n float snoiseFractal(vec3 m) {\n return 0.5333333* snoise(m)\n +0.2666667* snoise(2.0*m)\n +0.1333333* snoise(4.0*m)\n +0.0666667* snoise(8.0*m);\n }\n"+r.fragmentShader,r.fragmentShader=r.fragmentShader.replace("#include <transmission_pars_fragment>","\n #ifdef USE_TRANSMISSION\n // Transmission code is based on glTF-Sampler-Viewer\n // https://github.com/KhronosGroup/glTF-Sample-Viewer\n uniform float _transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n // Direction of refracted light.\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n // Compute rotation-independant scaling of the model matrix.\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n // The thickness is specified in local space.\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and\n // an IOR of 1.5 results in the default amount of microfacet refraction.\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); \n #ifdef USE_SAMPLER\n #ifdef texture2DLodEXT\n return texture2DLodEXT(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #else\n return texture2D(transmissionSamplerMap, fragCoord.xy, framebufferLod);\n #endif\n #else\n return texture2D(buffer, fragCoord.xy);\n #endif\n }\n vec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n // Attenuation distance is +∞, i.e. the transmitted color is not attenuated at all.\n return radiance;\n } else {\n // Compute light attenuation using Beer's law.\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); // Beer's law\n return transmittance * radiance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n // Project refracted vector on the framebuffer, while mapping to normalized device coordinates.\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n // Sample framebuffer to get pixel the refracted ray hits.\n vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n vec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n // Get the specular component.\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n return vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n }\n #endif\n"),r.fragmentShader=r.fragmentShader.replace("#include <transmission_fragment>",` \n // Improve the refraction to use the world pos\n material.transmission = _transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vUv ).g;\n #endif\n \n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec3 transmission = vec3(0.0);\n float transmissionR, transmissionB, transmissionG;\n float randomCoords = rand();\n float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), anisotropicBlur);\n vec3 distortionNormal = vec3(0.0);\n vec3 temporalOffset = vec3(time, -time, -time) * temporalDistortion;\n if (distortion > 0.0) {\n distortionNormal = distortion * vec3(snoiseFractal(vec3((pos * distortionScale + temporalOffset))), snoiseFractal(vec3(pos.zxy * distortionScale - temporalOffset)), snoiseFractal(vec3(pos.yxz * distortionScale + temporalOffset)));\n }\n for (float i = 0.0; i < ${e}.0; i ++) {\n vec3 sampleNorm = normalize(n + roughnessFactor * roughnessFactor * 2.0 * normalize(vec3(rand() - 0.5, rand() - 0.5, rand() - 0.5)) * pow(rand(), 0.33) + distortionNormal);\n transmissionR = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).r;\n transmissionG = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + chromaticAberration * (i + randomCoords) / float(${e})) , material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).g;\n transmissionB = getIBLVolumeRefraction(\n sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + 2.0 * chromaticAberration * (i + randomCoords) / float(${e})), material.thickness + thickness_smear * (i + randomCoords) / float(${e}),\n material.attenuationColor, material.attenuationDistance\n ).b;\n transmission.r += transmissionR;\n transmission.g += transmissionG;\n transmission.b += transmissionB;\n }\n transmission /= ${e}.0;\n totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n`)},Object.keys(this.uniforms).forEach((e=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t})))}}const Cr=P.forwardRef((({buffer:e,transmissionSampler:t=!1,backside:r=!1,side:n=D.FrontSide,transmission:o=1,thickness:i=0,backsideThickness:s=0,samples:l=10,resolution:c,backsideResolution:u,background:m,anisotropy:d,anisotropicBlur:f,...p},h)=>{a.extend({MeshTransmissionMaterial:Tr});const x=P.useRef(null),[y]=P.useState((()=>new Sr)),v=Ye(u||c),g=Ye(c);let z,w,b;return a.useFrame((e=>{x.current.time=e.clock.getElapsedTime(),x.current.buffer!==g.texture||t||(b=x.current.__r3f.parent,b&&(w=e.gl.toneMapping,z=e.scene.background,e.gl.toneMapping=D.NoToneMapping,m&&(e.scene.background=m),b.material=y,r&&(e.gl.setRenderTarget(v),e.gl.render(e.scene,e.camera),b.material=x.current,b.material.buffer=v.texture,b.material.thickness=s,b.material.side=D.BackSide),e.gl.setRenderTarget(g),e.gl.render(e.scene,e.camera),b.material.thickness=i,b.material.side=n,b.material.buffer=g.texture,e.scene.background=z,e.gl.setRenderTarget(null),b.material=x.current,e.gl.toneMapping=w))})),P.useImperativeHandle(h,(()=>x.current),[]),P.createElement("meshTransmissionMaterial",C.default({args:[l,t],ref:x},p,{buffer:e||g.texture,_transmission:o,anisotropicBlur:null!=f?f:d,transmission:t?o:0,thickness:i,side:n}))})),Pr=P.forwardRef(((e,t)=>(a.extend({DiscardMaterialImpl:Sr}),P.createElement("discardMaterialImpl",C.default({ref:t},e)))));class Rr extends D.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=(e,t)=>{const{isWebGL2:r}=t.capabilities;e.fragmentShader=e.fragmentShader.replace("#include <output_fragment>",`\n ${r?"#include <output_fragment>":"#extension GL_OES_standard_derivatives : enable\n#include <output_fragment>"}\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n `)}}}const Dr=P.forwardRef(((e,t)=>{const[r]=P.useState((()=>new Rr(null)));return P.createElement("primitive",C.default({},e,{object:r,ref:t,attach:"material"}))}));function Fr(e,t,r){t.traverse((t=>{t.material&&(e.properties.remove(t.material),null==t.material.dispose||t.material.dispose())})),e.info.programs.length=0,e.compile(t,r)}function kr(e,t){const r=e+"Geometry";return P.forwardRef((({args:e,children:n,...a},o)=>{const i=P.useRef(null);return P.useImperativeHandle(o,(()=>i.current)),P.useLayoutEffect((()=>{null==t||t(i.current)})),P.createElement("mesh",C.default({ref:i},a),P.createElement(r,{attach:"geometry",args:e}),n)}))}const _r=kr("box"),Lr=kr("circle"),Ar=kr("cone"),Br=kr("cylinder"),Or=kr("sphere"),Ur=kr("plane"),Nr=kr("tube"),Ir=kr("torus"),Vr=kr("torusKnot"),jr=kr("tetrahedron"),Wr=kr("ring"),Gr=kr("polyhedron"),Hr=kr("icosahedron"),qr=kr("octahedron"),$r=kr("dodecahedron"),Xr=kr("extrude"),Yr=kr("lathe"),Kr=kr("capsule"),Zr=kr("shape",(({geometry:e})=>{const t=e.attributes.position,r=(new D.Box3).setFromBufferAttribute(t),n=new D.Vector3;r.getSize(n);const a=[];let o=0,i=0,s=0,l=0;for(let e=0;e<t.count;e++)o=t.getX(e),i=t.getY(e),s=(o-r.min.x)/n.x,l=(i-r.min.y)/n.y,a.push(s,l);e.setAttribute("uv",new D.Float32BufferAttribute(a,2))})),Qr=1e-5;const Jr=P.forwardRef((function({args:[e=1,t=1,r=1]=[],radius:a=.05,steps:o=1,smoothness:i=4,creaseAngle:s=.4,children:l,...c},u){const d=P.useMemo((()=>function(e,t,r){const a=new n.Shape,o=r-Qr;return a.absarc(Qr,Qr,Qr,-Math.PI/2,-Math.PI,!0),a.absarc(Qr,t-2*o,Qr,Math.PI,Math.PI/2,!0),a.absarc(e-2*o,t-2*o,Qr,Math.PI/2,0,!0),a.absarc(e-2*o,Qr,Qr,0,-Math.PI/2,!0),a}(e,t,a)),[e,t,a]),f=P.useMemo((()=>({depth:r-2*a,bevelEnabled:!0,bevelSegments:2*i,steps:o,bevelSize:a-Qr,bevelThickness:a,curveSegments:i})),[r,a,i]),p=P.useRef();return P.useLayoutEffect((()=>{p.current&&(p.current.center(),m.toCreasedNormals(p.current,s))}),[d,f]),P.createElement("mesh",C.default({ref:u},c),P.createElement("extrudeGeometry",{ref:p,args:[d,f]}),l)}));function en(){const e=new D.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new D.BufferAttribute(t,2)),e}const tn=P.forwardRef((function({children:e,...t},r){const n=P.useMemo(en,[]);return P.createElement("mesh",C.default({ref:r,geometry:n,frustumCulled:!1},t),e)})),rn=P.forwardRef((({children:e,width:t,height:r,depth:n,box3:a,precise:o=!0,...i},s)=>{const l=P.useRef(null),c=P.useRef(null),u=P.useRef(null);return P.useLayoutEffect((()=>{c.current.matrixWorld.identity();let e=a||(new D.Box3).setFromObject(u.current,o);const i=e.max.x-e.min.x,s=e.max.y-e.min.y,l=e.max.z-e.min.z;let m=Math.max(i,s,l);t&&(m=i),r&&(m=s),n&&(m=l),c.current.scale.setScalar(1/m)}),[t,r,n,a,o]),P.useImperativeHandle(s,(()=>l.current),[]),P.createElement("group",C.default({ref:l},i),P.createElement("group",{ref:c},P.createElement("group",{ref:u},e)))})),nn=e=>e&&e.isOrthographicCamera,an=P.createContext(null);function on({children:e,damping:t=6,fit:r,clip:n,observe:o,margin:i=1.2,eps:s=.01,onFit:l}){const c=P.useRef(null),{camera:u,invalidate:m,size:d,controls:f}=a.useThree(),p=f,h=P.useRef(l);function x(e,t){return Math.abs(e.x-t.x)<s&&Math.abs(e.y-t.y)<s&&Math.abs(e.z-t.z)<s}function y(e,t,r,n){e.x=D.MathUtils.damp(e.x,t.x,r,n),e.y=D.MathUtils.damp(e.y,t.y,r,n),e.z=D.MathUtils.damp(e.z,t.z,r,n)}h.current=l;const[v]=P.useState((()=>({animating:!1,focus:new D.Vector3,camera:new D.Vector3,zoom:1}))),[g]=P.useState((()=>({focus:new D.Vector3,camera:new D.Vector3,zoom:1}))),[z]=P.useState((()=>new D.Box3)),w=P.useMemo((()=>{function e(){const e=z.getSize(new D.Vector3),t=z.getCenter(new D.Vector3),r=Math.max(e.x,e.y,e.z),n=nn(u)?4*r:r/(2*Math.atan(Math.PI*u.fov/360)),a=nn(u)?4*r:n/u.aspect,o=i*Math.max(n,a);return{box:z,size:e,center:t,distance:o}}return{getSize:e,refresh(t){if((r=t)&&r.isBox3)z.copy(t);else{const e=t||c.current;e.updateWorldMatrix(!0,!0),z.setFromObject(e)}var r;if(z.isEmpty()){const e=u.position.length()||10;z.setFromCenterAndSize(new D.Vector3,new D.Vector3(e,e,e))}if("OrthographicTrackballControls"===(null==p?void 0:p.constructor.name)){const{distance:t}=e(),r=u.position.clone().sub(p.target).normalize().multiplyScalar(t),n=p.target.clone().add(r);u.position.copy(n)}return this},clip(){const{distance:t}=e();return p&&(p.maxDistance=10*t),u.near=t/100,u.far=100*t,u.updateProjectionMatrix(),p&&p.update(),m(),this},to({position:r,target:n}){v.camera.copy(u.position);const{center:a}=e();return g.camera.set(...r),n?g.focus.set(...n):g.focus.copy(a),t?v.animating=!0:u.position.set(...r),this},fit(){v.camera.copy(u.position),p&&v.focus.copy(p.target);const{center:r,distance:n}=e(),a=r.clone().sub(u.position).normalize().multiplyScalar(n);if(g.camera.copy(r).sub(a),g.focus.copy(r),nn(u)){v.zoom=u.zoom;let e=0,n=0;const a=[new D.Vector3(z.min.x,z.min.y,z.min.z),new D.Vector3(z.min.x,z.max.y,z.min.z),new D.Vector3(z.min.x,z.min.y,z.max.z),new D.Vector3(z.min.x,z.max.y,z.max.z),new D.Vector3(z.max.x,z.max.y,z.max.z),new D.Vector3(z.max.x,z.max.y,z.min.z),new D.Vector3(z.max.x,z.min.y,z.max.z),new D.Vector3(z.max.x,z.min.y,z.min.z)];r.applyMatrix4(u.matrixWorldInverse);for(const t of a)t.applyMatrix4(u.matrixWorldInverse),e=Math.max(e,Math.abs(t.y-r.y)),n=Math.max(n,Math.abs(t.x-r.x));e*=2,n*=2;const o=(u.top-u.bottom)/e,s=(u.right-u.left)/n;g.zoom=Math.min(o,s)/i,t||(u.zoom=g.zoom,u.updateProjectionMatrix())}return t?v.animating=!0:(u.position.copy(g.camera),u.lookAt(g.focus),p&&(p.target.copy(g.focus),p.update())),h.current&&h.current(this.getSize()),m(),this}}}),[z,u,p,i,t,m]);P.useLayoutEffect((()=>{if(p){const e=()=>v.animating=!1;return p.addEventListener("start",e),()=>p.removeEventListener("start",e)}}),[p]);const b=P.useRef(0);return P.useLayoutEffect((()=>{(o||0==b.current++)&&(w.refresh(),r&&w.fit(),n&&w.clip())}),[d,n,r,o,u,p]),a.useFrame(((e,r)=>{if(v.animating){if(y(v.focus,g.focus,t,r),y(v.camera,g.camera,t,r),v.zoom=D.MathUtils.damp(v.zoom,g.zoom,t,r),u.position.copy(v.camera),nn(u)&&(u.zoom=v.zoom,u.updateProjectionMatrix()),p?(p.target.copy(v.focus),p.update()):u.lookAt(v.focus),m(),nn(u)&&!(Math.abs(v.zoom-g.zoom)<s))return;if(!nn(u)&&!x(v.camera,g.camera))return;if(p&&!x(v.focus,g.focus))return;v.animating=!1}})),P.createElement("group",{ref:c},P.createElement(an.Provider,{value:w},e))}function sn(){return P.useContext(an)}const ln=P.forwardRef((({intensity:e=1,decay:t,decayRate:r=.65,maxYaw:n=.1,maxPitch:o=.1,maxRoll:i=.1,yawFrequency:s=.1,pitchFrequency:l=.1,rollFrequency:c=.1},u)=>{const d=a.useThree((e=>e.camera)),f=a.useThree((e=>e.controls)),p=P.useRef(e),h=P.useRef(d.rotation.clone()),[x]=P.useState((()=>new m.SimplexNoise)),[y]=P.useState((()=>new m.SimplexNoise)),[v]=P.useState((()=>new m.SimplexNoise)),g=()=>{(p.current<0||p.current>1)&&(p.current=p.current<0?0:1)};return P.useImperativeHandle(u,(()=>({getIntensity:()=>p.current,setIntensity:e=>{p.current=e,g()}})),[]),P.useEffect((()=>{if(f){const e=()=>{h.current=d.rotation.clone()};return f.addEventListener("change",e),e(),()=>{f.removeEventListener("change",e)}}}),[d,f]),a.useFrame(((e,a)=>{const u=Math.pow(p.current,2),m=n*u*x.noise(e.clock.elapsedTime*s,1),f=o*u*y.noise(e.clock.elapsedTime*l,1),z=i*u*v.noise(e.clock.elapsedTime*c,1);d.rotation.set(h.current.x+f,h.current.y+m,h.current.z+z),t&&p.current>0&&(p.current-=r*a,g())})),null})),cn=P.forwardRef((({children:e,enabled:t=!0,speed:r=1,rotationIntensity:n=1,floatIntensity:o=1,floatingRange:i=[-.1,.1],...s},l)=>{const c=P.useRef(null),u=P.useRef(1e4*Math.random());return a.useFrame((e=>{var a,s;if(!t||0===r)return;const l=u.current+e.clock.getElapsedTime();c.current.rotation.x=Math.cos(l/4*r)/8*n,c.current.rotation.y=Math.sin(l/4*r)/8*n,c.current.rotation.z=Math.sin(l/4*r)/20*n;let m=Math.sin(l/4*r)/10;m=D.MathUtils.mapLinear(m,-.1,.1,null!==(a=null==i?void 0:i[0])&&void 0!==a?a:-.1,null!==(s=null==i?void 0:i[1])&&void 0!==s?s:.1),c.current.position.y=m*o,c.current.updateMatrix()})),P.createElement("group",s,P.createElement("group",{ref:_.default([c,l]),matrixAutoUpdate:!1},e))})),un={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},mn=e=>Array.isArray(e);function dn({files:e=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:t="",preset:r,encoding:o,extensions:i}={}){var s;let l,c=null,u=!1;if(r){if(!(r in un))throw new Error("Preset must be one of: "+Object.keys(un).join(", "));e=un[r],t="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/"}if(u=mn(e),l=mn(e)?"cube":e.startsWith("data:application/exr")?"exr":e.startsWith("data:application/hdr")?"hdr":null==(s=e.split(".").pop())?void 0:s.toLowerCase(),c=u?n.CubeTextureLoader:"hdr"===l?m.RGBELoader:"exr"===l?m.EXRLoader:null,!c)throw new Error("useEnvironment: Unrecognized file extension: "+e);const d=a.useLoader(c,u?[e]:e,(e=>{null==e.setPath||e.setPath(t),i&&i(e)})),f=u?d[0]:d;f.mapping=u?n.CubeReflectionMapping:n.EquirectangularReflectionMapping;return"colorSpace"in f?f.colorSpace=(null!=o?o:u)?"srgb":"srgb-linear":f.encoding=(null!=o?o:u)?3001:3e3,f}function fn(e,t,r,n,a=0){const o=(e=>{return(t=e).current&&t.current.isScene?e.current:e;var t})(t||r),i=o.background,s=o.environment,l=o.backgroundBlurriness||0;return"only"!==e&&(o.environment=n),e&&(o.background=n),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=a),()=>{"only"!==e&&(o.environment=s),e&&(o.background=i),e&&void 0!==o.backgroundBlurriness&&(o.backgroundBlurriness=l)}}function pn({scene:e,background:t=!1,blur:r,map:n}){const o=a.useThree((e=>e.scene));return P.useLayoutEffect((()=>{if(n)return fn(t,e,o,n,r)}),[o,e,n,t,r]),null}function hn({background:e=!1,scene:t,blur:r,...n}){const o=dn(n),i=a.useThree((e=>e.scene));return P.useLayoutEffect((()=>fn(e,t,i,o,r)),[o,e,t,i,r]),null}function xn({children:e,near:t=1,far:r=1e3,resolution:o=256,frames:i=1,map:s,background:l=!1,blur:c,scene:u,files:m,path:d,preset:f,extensions:p}){const h=a.useThree((e=>e.gl)),x=a.useThree((e=>e.scene)),y=P.useRef(null),[v]=P.useState((()=>new n.Scene)),g=P.useMemo((()=>{const e=new n.WebGLCubeRenderTarget(o);return e.texture.type=n.HalfFloatType,e}),[o]);P.useLayoutEffect((()=>(1===i&&y.current.update(h,v),fn(l,u,x,g.texture,c))),[e,v,g.texture,u,x,l,i,h]);let z=1;return a.useFrame((()=>{(i===1/0||z<i)&&(y.current.update(h,v),z++)})),P.createElement(P.Fragment,null,a.createPortal(P.createElement(P.Fragment,null,e,P.createElement("cubeCamera",{ref:y,args:[t,r,g]}),m||f?P.createElement(hn,{background:!0,files:m,preset:f,path:d,extensions:p}):s?P.createElement(pn,{background:!0,map:s,extensions:p}):null),v))}function yn(e){var t,r,n,o;const i=dn(e),s=e.map||i;P.useMemo((()=>a.extend({GroundProjectedEnvImpl:m.GroundProjectedEnv})),[]);const l=P.useMemo((()=>[s]),[s]),c=null==(t=e.ground)?void 0:t.height,u=null==(r=e.ground)?void 0:r.radius,d=null!==(n=null==(o=e.ground)?void 0:o.scale)&&void 0!==n?n:1e3;return P.createElement(P.Fragment,null,P.createElement(pn,C.default({},e,{map:s})),P.createElement("groundProjectedEnvImpl",{args:l,scale:d,height:c,radius:u}))}function vn(e){return e.ground?P.createElement(yn,e):e.map?P.createElement(pn,e):e.children?P.createElement(xn,e):P.createElement(hn,e)}const gn=P.forwardRef((({scale:e=10,frames:t=1/0,opacity:r=1,width:n=1,height:o=1,blur:i=1,far:s=10,resolution:l=512,smooth:c=!0,color:u="#000000",depthWrite:d=!1,renderOrder:f,...p},h)=>{const x=P.useRef(null),y=a.useThree((e=>e.scene)),v=a.useThree((e=>e.gl)),g=P.useRef(null);n*=Array.isArray(e)?e[0]:e||1,o*=Array.isArray(e)?e[1]:e||1;const[z,w,b,E,M,S,T]=P.useMemo((()=>{const e=new D.WebGLRenderTarget(l,l),t=new D.WebGLRenderTarget(l,l);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const r=new D.PlaneGeometry(n,o).rotateX(Math.PI/2),a=new D.Mesh(r),i=new D.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new D.Color(u)}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor * fragCoordZ * 2.0, ( 1.0 - fragCoordZ ) * 1.0 );")};const s=new D.ShaderMaterial(m.HorizontalBlurShader),c=new D.ShaderMaterial(m.VerticalBlurShader);return c.depthTest=s.depthTest=!1,[e,r,i,a,s,c,t]}),[l,n,o,e,u]),R=e=>{E.visible=!0,E.material=M,M.uniforms.tDiffuse.value=z.texture,M.uniforms.h.value=1*e/256,v.setRenderTarget(T),v.render(E,g.current),E.material=S,S.uniforms.tDiffuse.value=T.texture,S.uniforms.v.value=1*e/256,v.setRenderTarget(z),v.render(E,g.current),E.visible=!1};let F,k,_=0;return a.useFrame((()=>{g.current&&(t===1/0||_<t)&&(_++,F=y.background,k=y.overrideMaterial,x.current.visible=!1,y.background=null,y.overrideMaterial=b,v.setRenderTarget(z),v.render(y,g.current),R(i),c&&R(.4*i),v.setRenderTarget(null),x.current.visible=!0,y.overrideMaterial=k,y.background=F)})),P.useImperativeHandle(h,(()=>x.current),[]),P.createElement("group",C.default({"rotation-x":Math.PI/2},p,{ref:x}),P.createElement("mesh",{renderOrder:f,geometry:w,scale:[1,-1,1],rotation:[-Math.PI/2,0,0]},P.createElement("meshBasicMaterial",{transparent:!0,map:z.texture,opacity:r,depthWrite:d})),P.createElement("orthographicCamera",{ref:g,args:[-n/2,n/2,o/2,-o/2,0,s]}))}));const zn=P.createContext(null),wn=Ee({color:new D.Color,blend:2,alphaTest:.75,opacity:0,map:null},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }","varying vec2 vUv;\n uniform sampler2D map;\n uniform vec3 color;\n uniform float opacity;\n uniform float alphaTest;\n uniform float blend;\n void main() {\n vec4 sampledDiffuseColor = texture2D(map, vUv);\n gl_FragColor = vec4(color * sampledDiffuseColor.r * blend, max(0.0, (1.0 - (sampledDiffuseColor.r + sampledDiffuseColor.g + sampledDiffuseColor.b) / alphaTest)) * opacity);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),bn=P.forwardRef((({children:e,temporal:t,frames:r=40,limit:n=1/0,blend:o=20,scale:i=10,opacity:s=1,alphaTest:l=.75,color:c="black",colorBlend:u=2,resolution:m=1024,toneMapped:d=!0,...f},p)=>{a.extend({SoftShadowMaterial:wn});const h=a.useThree((e=>e.gl)),x=a.useThree((e=>e.scene)),y=a.useThree((e=>e.camera)),v=a.useThree((e=>e.invalidate)),g=P.useRef(null),z=P.useRef(null),[w]=P.useState((()=>new Mn(h,x,m)));P.useLayoutEffect((()=>{w.configure(g.current)}),[]);const b=P.useMemo((()=>({lights:new Map,temporal:!!t,frames:Math.max(2,r),blend:Math.max(2,r===1/0?o:r),count:0,getMesh:()=>g.current,reset:()=>{w.clear();const e=g.current.material;e.opacity=0,e.alphaTest=0,b.count=0},update:(e=1)=>{const t=g.current.material;b.temporal?(t.opacity=Math.min(s,t.opacity+s/b.blend),t.alphaTest=Math.min(l,t.alphaTest+l/b.blend)):(t.opacity=s,t.alphaTest=l),z.current.visible=!0,w.prepare();for(let t=0;t<e;t++)b.lights.forEach((e=>e.update())),w.update(y,b.blend);z.current.visible=!1,w.finish()}})),[w,y,x,t,r,o,s,l]);return P.useLayoutEffect((()=>{b.reset(),b.temporal||b.frames===1/0||b.update(b.blend)})),P.useImperativeHandle(p,(()=>b),[b]),a.useFrame((()=>{(b.temporal||b.frames===1/0)&&b.count<b.frames&&b.count<n&&(v(),b.update(),b.count++)})),P.createElement("group",f,P.createElement("group",{traverse:()=>null,ref:z},P.createElement(zn.Provider,{value:b},e)),P.createElement("mesh",{receiveShadow:!0,ref:g,scale:i,rotation:[-Math.PI/2,0,0]},P.createElement("planeGeometry",null),P.createElement("softShadowMaterial",{transparent:!0,depthWrite:!1,toneMapped:d,color:c,blend:u,map:w.progressiveLightMap2.texture})))})),En=P.forwardRef((({castShadow:e=!0,bias:t=.001,mapSize:r=512,size:n=5,near:a=.5,far:o=500,frames:i=1,position:s=[0,0,0],radius:l=1,amount:c=8,intensity:u=1,ambient:m=.5,...d},f)=>{const p=P.useRef(null),h=new D.Vector3(...s).length(),x=P.useContext(zn),y=P.useCallback((()=>{let e;if(p.current)for(let t=0;t<p.current.children.length;t++)if(e=p.current.children[t],Math.random()>m)e.position.set(s[0]+D.MathUtils.randFloatSpread(l),s[1]+D.MathUtils.randFloatSpread(l),s[2]+D.MathUtils.randFloatSpread(l));else{let t=Math.acos(2*Math.random()-1)-Math.PI/2,r=2*Math.PI*Math.random();e.position.set(Math.cos(t)*Math.cos(r)*h,Math.abs(Math.cos(t)*Math.sin(r)*h),Math.sin(t)*h)}}),[l,m,h,...s]),v=P.useMemo((()=>({update:y})),[y]);return P.useImperativeHandle(f,(()=>v),[v]),P.useLayoutEffect((()=>{const e=p.current;return x&&x.lights.set(e.uuid,v),()=>{x.lights.delete(e.uuid)}}),[x,v]),P.createElement("group",C.default({ref:p},d),Array.from({length:c},((i,s)=>P.createElement("directionalLight",{key:s,castShadow:e,"shadow-bias":t,"shadow-mapSize":[r,r],intensity:u/c},P.createElement("orthographicCamera",{attach:"shadow-camera",args:[-n,n,n,-n,a,o]})))))}));class Mn{constructor(e,t,r=1024){this.renderer=e,this.res=r,this.scene=t,this.buffer1Active=!1,this.lights=[],this.meshes=[],this.object=null,this.clearColor=new D.Color,this.clearAlpha=0;const n=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?D.HalfFloatType:D.FloatType;this.progressiveLightMap1=new D.WebGLRenderTarget(this.res,this.res,{type:n}),this.progressiveLightMap2=new D.WebGLRenderTarget(this.res,this.res,{type:n}),this.discardMat=new Sr,this.targetMat=new D.MeshLambertMaterial({fog:!1}),this.previousShadowMap={value:this.progressiveLightMap1.texture},this.averagingWindow={value:100},this.targetMat.onBeforeCompile=e=>{e.vertexShader="varying vec2 vUv;\n"+e.vertexShader.slice(0,-1)+"vUv = uv; gl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv;\n"+e.fragmentShader.slice(0,t)+"uniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv).rgb;\n gl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/ averagingWindow);\n }",e.uniforms.previousShadowMap=this.previousShadowMap,e.uniforms.averagingWindow=this.averagingWindow}}clear(){this.renderer.getClearColor(this.clearColor),this.clearAlpha=this.renderer.getClearAlpha(),this.renderer.setClearColor("black",1),this.renderer.setRenderTarget(this.progressiveLightMap1),this.renderer.clear(),this.renderer.setRenderTarget(this.progressiveLightMap2),this.renderer.clear(),this.renderer.setRenderTarget(null),this.renderer.setClearColor(this.clearColor,this.clearAlpha),this.lights=[],this.meshes=[],this.scene.traverse((e=>{!function(e){return!!e.geometry}(e)?function(e){return e.isLight}(e)&&this.lights.push({object:e,intensity:e.intensity}):this.meshes.push({object:e,material:e.material})}))}prepare(){this.lights.forEach((e=>e.object.intensity=0)),this.meshes.forEach((e=>e.object.material=this.discardMat))}finish(){this.lights.forEach((e=>e.object.intensity=e.intensity)),this.meshes.forEach((e=>e.object.material=e.material))}configure(e){this.object=e}update(e,t=100){if(!this.object)return;this.averagingWindow.value=t,this.object.material=this.targetMat;const r=this.buffer1Active?this.progressiveLightMap1:this.progressiveLightMap2,n=this.buffer1Active?this.progressiveLightMap2:this.progressiveLightMap1,a=this.scene.background;this.scene.background=null,this.renderer.setRenderTarget(r),this.previousShadowMap.value=n.texture,this.buffer1Active=!this.buffer1Active,this.renderer.render(this.scene,e),this.renderer.setRenderTarget(null),this.scene.background=a}}const Sn={rembrandt:{main:[1,2,1],fill:[-2,-.5,-2]},portrait:{main:[-1,2,.5],fill:[-1,.5,-1.5]},upfront:{main:[0,2,1],fill:[-1,.5,-1.5]},soft:{main:[-2,4,4],fill:[-1,.5,-1.5]}};function Tn({radius:e,adjustCamera:t}){const r=sn();return P.useEffect((()=>{t&&r.refresh().clip().fit()}),[e,t]),null}const Cn=e=>0===e?0:Math.pow(2,10*e-10);const Pn=P.forwardRef((({fog:e=!1,renderOrder:t,depthWrite:r=!1,colorStop:a=0,color:o="black",opacity:i=.5,...s},l)=>{const c=P.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const t=e.getContext("2d"),r=t.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return r.addColorStop(a,new n.Color(o).getStyle()),r.addColorStop(1,"rgba(0,0,0,0)"),t.fillStyle=r,t.fillRect(0,0,e.width,e.height),e}),[o,a]);return P.createElement("mesh",C.default({renderOrder:t,ref:l,"rotation-x":-Math.PI/2},s),P.createElement("planeGeometry",null),P.createElement("meshBasicMaterial",{transparent:!0,opacity:i,fog:e,depthWrite:r,side:n.DoubleSide},P.createElement("canvasTexture",{attach:"map",args:[c]})))}));function Rn(e=D.FrontSide){const t={value:new D.Matrix4};return Object.assign(new D.MeshNormalMaterial({side:e}),{viewMatrix:t,onBeforeCompile:e=>{e.uniforms.viewMatrix=t,e.fragmentShader="vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n }\n"+e.fragmentShader.replace("#include <normal_fragment_maps>","#include <normal_fragment_maps>\n normal = inverseTransformDirection( normal, viewMatrix );\n")}})}const Dn=Ee({causticsTexture:null,causticsTextureB:null,color:new D.Color,lightProjMatrix:new D.Matrix4,lightViewMatrix:new D.Matrix4},"varying vec3 vWorldPosition; \n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vec4 worldPosition = modelMatrix * vec4(position, 1.);\n vWorldPosition = worldPosition.xyz;\n }","varying vec3 vWorldPosition;\n uniform vec3 color;\n uniform sampler2D causticsTexture; \n uniform sampler2D causticsTextureB; \n uniform mat4 lightProjMatrix;\n uniform mat4 lightViewMatrix;\n void main() {\n // Apply caustics \n vec4 lightSpacePos = lightProjMatrix * lightViewMatrix * vec4(vWorldPosition, 1.0);\n lightSpacePos.xyz /= lightSpacePos.w;\n lightSpacePos.xyz = lightSpacePos.xyz * 0.5 + 0.5; \n vec3 front = texture2D(causticsTexture, lightSpacePos.xy).rgb;\n vec3 back = texture2D(causticsTextureB, lightSpacePos.xy).rgb;\n gl_FragColor = vec4((front + back) * color, 1.0);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),Fn=Ee({cameraMatrixWorld:new D.Matrix4,cameraProjectionMatrixInv:new D.Matrix4,normalTexture:null,depthTexture:null,lightDir:new D.Vector3(0,1,0),lightPlaneNormal:new D.Vector3(0,1,0),lightPlaneConstant:0,near:.1,far:100,modelMatrix:new D.Matrix4,worldRadius:1/40,ior:1.1,bounces:0,resolution:1024,size:10,intensity:.5},"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }"," \n uniform mat4 cameraMatrixWorld;\n uniform mat4 cameraProjectionMatrixInv;\n uniform vec3 lightDir;\n uniform vec3 lightPlaneNormal;\n uniform float lightPlaneConstant;\n uniform float near;\n uniform float far;\n uniform float time;\n uniform float worldRadius;\n uniform float resolution;\n uniform float size;\n uniform float intensity;\n uniform float ior;\n precision highp isampler2D;\n precision highp usampler2D;\n uniform sampler2D normalTexture;\n uniform sampler2D depthTexture;\n uniform float bounces;\n varying vec2 vUv;\n vec3 WorldPosFromDepth(float depth, vec2 coord) {\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = cameraProjectionMatrixInv * clipSpacePosition;\n // Perspective division\n viewSpacePosition /= viewSpacePosition.w;\n vec4 worldSpacePosition = cameraMatrixWorld * viewSpacePosition;\n return worldSpacePosition.xyz;\n } \n float sdPlane( vec3 p, vec3 n, float h ) {\n // n must be normalized\n return dot(p,n) + h;\n }\n float planeIntersect( vec3 ro, vec3 rd, vec4 p ) {\n return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);\n }\n vec3 totalInternalReflection(vec3 ro, vec3 rd, vec3 pos, vec3 normal, float ior, out vec3 rayOrigin, out vec3 rayDirection) {\n rayOrigin = ro;\n rayDirection = rd;\n rayDirection = refract(rayDirection, normal, 1.0 / ior);\n rayOrigin = pos + rayDirection * 0.1;\n return rayDirection;\n }\n void main() {\n // Each sample consists of random offset in the x and y direction\n float caustic = 0.0;\n float causticTexelSize = (1.0 / resolution) * size * 2.0;\n float texelsNeeded = worldRadius / causticTexelSize;\n float sampleRadius = texelsNeeded / resolution;\n float sum = 0.0;\n if (texture2D(depthTexture, vUv).x == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec2 offset1 = vec2(-0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset2 = vec2(-0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset3 = vec2(0.5, 0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 offset4 = vec2(0.5, -0.5);//vec2(rand() - 0.5, rand() - 0.5);\n vec2 uv1 = vUv + offset1 * sampleRadius;\n vec2 uv2 = vUv + offset2 * sampleRadius;\n vec2 uv3 = vUv + offset3 * sampleRadius;\n vec2 uv4 = vUv + offset4 * sampleRadius;\n vec3 normal1 = texture2D(normalTexture, uv1, -10.0).rgb * 2.0 - 1.0;\n vec3 normal2 = texture2D(normalTexture, uv2, -10.0).rgb * 2.0 - 1.0;\n vec3 normal3 = texture2D(normalTexture, uv3, -10.0).rgb * 2.0 - 1.0;\n vec3 normal4 = texture2D(normalTexture, uv4, -10.0).rgb * 2.0 - 1.0;\n float depth1 = texture2D(depthTexture, uv1, -10.0).x;\n float depth2 = texture2D(depthTexture, uv2, -10.0).x;\n float depth3 = texture2D(depthTexture, uv3, -10.0).x;\n float depth4 = texture2D(depthTexture, uv4, -10.0).x;\n // Sanity check the depths\n if (depth1 == 1.0 || depth2 == 1.0 || depth3 == 1.0 || depth4 == 1.0) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n return;\n }\n vec3 pos1 = WorldPosFromDepth(depth1, uv1);\n vec3 pos2 = WorldPosFromDepth(depth2, uv2);\n vec3 pos3 = WorldPosFromDepth(depth3, uv3);\n vec3 pos4 = WorldPosFromDepth(depth4, uv4);\n vec3 originPos1 = WorldPosFromDepth(0.0, uv1);\n vec3 originPos2 = WorldPosFromDepth(0.0, uv2);\n vec3 originPos3 = WorldPosFromDepth(0.0, uv3);\n vec3 originPos4 = WorldPosFromDepth(0.0, uv4);\n vec3 endPos1, endPos2, endPos3, endPos4;\n vec3 endDir1, endDir2, endDir3, endDir4;\n totalInternalReflection(originPos1, lightDir, pos1, normal1, ior, endPos1, endDir1);\n totalInternalReflection(originPos2, lightDir, pos2, normal2, ior, endPos2, endDir2);\n totalInternalReflection(originPos3, lightDir, pos3, normal3, ior, endPos3, endDir3);\n totalInternalReflection(originPos4, lightDir, pos4, normal4, ior, endPos4, endDir4);\n float lightPosArea = length(cross(originPos2 - originPos1, originPos3 - originPos1)) + length(cross(originPos3 - originPos1, originPos4 - originPos1));\n float t1 = planeIntersect(endPos1, endDir1, vec4(lightPlaneNormal, lightPlaneConstant));\n float t2 = planeIntersect(endPos2, endDir2, vec4(lightPlaneNormal, lightPlaneConstant));\n float t3 = planeIntersect(endPos3, endDir3, vec4(lightPlaneNormal, lightPlaneConstant));\n float t4 = planeIntersect(endPos4, endDir4, vec4(lightPlaneNormal, lightPlaneConstant));\n vec3 finalPos1 = endPos1 + endDir1 * t1;\n vec3 finalPos2 = endPos2 + endDir2 * t2;\n vec3 finalPos3 = endPos3 + endDir3 * t3;\n vec3 finalPos4 = endPos4 + endDir4 * t4;\n float finalArea = length(cross(finalPos2 - finalPos1, finalPos3 - finalPos1)) + length(cross(finalPos3 - finalPos1, finalPos4 - finalPos1));\n caustic += intensity * (lightPosArea / finalArea);\n // Calculate the area of the triangle in light spaces\n gl_FragColor = vec4(vec3(max(caustic, 0.0)), 1.0);\n }"),kn={depth:!0,minFilter:D.LinearFilter,magFilter:D.LinearFilter,encoding:D.LinearEncoding,type:D.UnsignedByteType},_n={minFilter:D.LinearMipmapLinearFilter,magFilter:D.LinearFilter,encoding:D.LinearEncoding,format:D.RGBAFormat,type:D.FloatType,generateMipmaps:!0},Ln=P.forwardRef((({debug:e,children:t,frames:r=1,ior:n=1.1,color:o="white",causticsOnly:i=!1,backside:s=!1,backsideIOR:l=1.1,worldRadius:c=.3125,intensity:u=.05,resolution:d=2024,lightSource:f=[5,5,5],...p},h)=>{a.extend({CausticsProjectionMaterial:Dn});const x=P.useRef(null),y=P.useRef(null),v=P.useRef(null),g=P.useRef(null),z=a.useThree((e=>e.gl)),w=ir(e&&y,D.CameraHelper),b=Ye(d,d,kn),E=Ye(d,d,kn),M=Ye(d,d,_n),S=Ye(d,d,_n),[T]=P.useState((()=>Rn())),[R]=P.useState((()=>Rn(D.BackSide))),[F]=P.useState((()=>new Fn)),[k]=P.useState((()=>new m.FullScreenQuad(F)));P.useLayoutEffect((()=>{x.current.updateWorldMatrix(!1,!0)}));let _=0;const L=new D.Vector3,A=new D.Frustum,B=new D.Matrix4,O=new D.Plane,U=new D.Vector3,N=new D.Vector3,I=new D.Box3,V=new D.Vector3;return a.useFrame(((t,a)=>{if(r===1/0||_++<r){var o,m;Array.isArray(f)?U.fromArray(f).normalize():U.copy(x.current.worldToLocal(f.current.getWorldPosition(L)).normalize()),N.copy(U).multiplyScalar(-1);let t=[];null==(o=v.current.parent)||o.matrixWorld.identity(),I.setFromObject(v.current,!0),t.push(new D.Vector3(I.min.x,I.min.y,I.min.z)),t.push(new D.Vector3(I.min.x,I.min.y,I.max.z)),t.push(new D.Vector3(I.min.x,I.max.y,I.min.z)),t.push(new D.Vector3(I.min.x,I.max.y,I.max.z)),t.push(new D.Vector3(I.max.x,I.min.y,I.min.z)),t.push(new D.Vector3(I.max.x,I.min.y,I.max.z)),t.push(new D.Vector3(I.max.x,I.max.y,I.min.z)),t.push(new D.Vector3(I.max.x,I.max.y,I.max.z));const r=t.map((e=>e.clone()));I.getCenter(V),t=t.map((e=>e.clone().sub(V)));const a=O.set(N,0),p=t.map((e=>a.projectPoint(e,new D.Vector3))),h=p.reduce(((e,t)=>e.add(t)),L.set(0,0,0)).divideScalar(p.length),C=p.map((e=>e.distanceTo(h))).reduce(((e,t)=>Math.max(e,t))),P=t.map((e=>e.dot(U))).reduce(((e,t)=>Math.max(e,t)));y.current.position.copy(U.clone().multiplyScalar(P).add(V)),y.current.lookAt(v.current.localToWorld(V.clone()));const _=B.lookAt(y.current.position,V,L.set(0,1,0));y.current.left=-C,y.current.right=C,y.current.top=C,y.current.bottom=-C;const j=L.set(0,C,0).applyMatrix4(_),W=(y.current.position.y+j.y)/U.y;y.current.near=.1,y.current.far=W,y.current.updateProjectionMatrix(),y.current.updateMatrixWorld();const G=r.map((e=>e.add(U.clone().multiplyScalar(-e.y/U.y)))),H=G.reduce(((e,t)=>e.add(t)),L.set(0,0,0)).divideScalar(G.length),q=2*G.map((e=>Math.hypot(e.x-H.x,e.z-H.z))).reduce(((e,t)=>Math.max(e,t)));g.current.scale.setScalar(q),g.current.position.copy(H),e&&(null==(m=w.current)||m.update()),R.viewMatrix.value=T.viewMatrix.value=y.current.matrixWorldInverse;const $=A.setFromProjectionMatrix(B.multiplyMatrices(y.current.projectionMatrix,y.current.matrixWorldInverse)).planes[4];F.cameraMatrixWorld=y.current.matrixWorld,F.cameraProjectionMatrixInv=y.current.projectionMatrixInverse,F.lightDir=N,F.lightPlaneNormal=$.normal,F.lightPlaneConstant=$.constant,F.near=y.current.near,F.far=y.current.far,F.resolution=d,F.size=C,F.intensity=u,F.worldRadius=c,v.current.visible=!0,z.setRenderTarget(b),z.clear(),v.current.overrideMaterial=T,z.render(v.current,y.current),z.setRenderTarget(E),z.clear(),s&&(v.current.overrideMaterial=R,z.render(v.current,y.current)),v.current.overrideMaterial=null,F.ior=n,g.current.material.lightProjMatrix=y.current.projectionMatrix,g.current.material.lightViewMatrix=y.current.matrixWorldInverse,F.normalTexture=b.texture,F.depthTexture=b.depthTexture,z.setRenderTarget(M),z.clear(),k.render(z),F.ior=l,F.normalTexture=E.texture,F.depthTexture=E.depthTexture,z.setRenderTarget(S),z.clear(),s&&k.render(z),z.setRenderTarget(null),i&&(v.current.visible=!1)}})),P.useImperativeHandle(h,(()=>x.current),[]),P.createElement("group",C.default({ref:x},p),P.createElement("scene",{ref:v},P.createElement("orthographicCamera",{ref:y,up:[0,1,0]}),t),P.createElement("mesh",{renderOrder:2,ref:g,"rotation-x":-Math.PI/2},P.createElement("planeGeometry",null),P.createElement("causticsProjectionMaterial",{transparent:!0,color:o,causticsTexture:M.texture,causticsTextureB:S.texture,blending:D.CustomBlending,blendSrc:D.OneFactor,blendDst:D.SrcAlphaFactor,depthWrite:!1}),e&&P.createElement(Fe,null,P.createElement("lineBasicMaterial",{color:"#ffff00",toneMapped:!1}))))}));a.extend({MeshReflectorMaterial:br});const An=P.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:r=256,blur:o=[0,0],args:i=[1,1],minDepthThreshold:s=.9,maxDepthThreshold:l=1,depthScale:c=0,depthToBlurRatioBias:u=.25,mirror:m=0,children:d,debug:f=0,distortion:p=1,mixContrast:h=1,distortionMap:x,...y},v)=>{P.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with <MeshReflectorMaterial />!")}),[]);const g=a.useThree((({gl:e})=>e)),z=a.useThree((({camera:e})=>e)),w=a.useThree((({scene:e})=>e)),b=(o=Array.isArray(o)?o:[o,o])[0]+o[1]>0,E=P.useRef(null),[M]=P.useState((()=>new n.Plane)),[S]=P.useState((()=>new n.Vector3)),[T]=P.useState((()=>new n.Vector3)),[R]=P.useState((()=>new n.Vector3)),[D]=P.useState((()=>new n.Matrix4)),[F]=P.useState((()=>new n.Vector3(0,0,-1))),[k]=P.useState((()=>new n.Vector4)),[L]=P.useState((()=>new n.Vector3)),[A]=P.useState((()=>new n.Vector3)),[B]=P.useState((()=>new n.Vector4)),[O]=P.useState((()=>new n.Matrix4)),[U]=P.useState((()=>new n.PerspectiveCamera)),N=P.useCallback((()=>{if(T.setFromMatrixPosition(E.current.matrixWorld),R.setFromMatrixPosition(z.matrixWorld),D.extractRotation(E.current.matrixWorld),S.set(0,0,1),S.applyMatrix4(D),L.subVectors(T,R),L.dot(S)>0)return;L.reflect(S).negate(),L.add(T),D.extractRotation(z.matrixWorld),F.set(0,0,-1),F.applyMatrix4(D),F.add(R),A.subVectors(T,F),A.reflect(S).negate(),A.add(T),U.position.copy(L),U.up.set(0,1,0),U.up.applyMatrix4(D),U.up.reflect(S),U.lookAt(A),U.far=z.far,U.updateMatrixWorld(),U.projectionMatrix.copy(z.projectionMatrix),O.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),O.multiply(U.projectionMatrix),O.multiply(U.matrixWorldInverse),O.multiply(E.current.matrixWorld),M.setFromNormalAndCoplanarPoint(S,T),M.applyMatrix4(U.matrixWorldInverse),k.set(M.normal.x,M.normal.y,M.normal.z,M.constant);const e=U.projectionMatrix;B.x=(Math.sign(k.x)+e.elements[8])/e.elements[0],B.y=(Math.sign(k.y)+e.elements[9])/e.elements[5],B.z=-1,B.w=(1+e.elements[10])/e.elements[14],k.multiplyScalar(2/k.dot(B)),e.elements[2]=k.x,e.elements[6]=k.y,e.elements[10]=k.z+1,e.elements[14]=k.w}),[]),[I,V,j,W]=P.useMemo((()=>{const a={type:n.HalfFloatType,minFilter:n.LinearFilter,magFilter:n.LinearFilter},i=new n.WebGLRenderTarget(r,r,a);i.depthBuffer=!0,i.depthTexture=new n.DepthTexture(r,r),i.depthTexture.format=n.DepthFormat,i.depthTexture.type=n.UnsignedShortType;const d=new n.WebGLRenderTarget(r,r,a);return[i,d,new wr({gl:g,resolution:r,width:o[0],height:o[1],minDepthThreshold:s,maxDepthThreshold:l,depthScale:c,depthToBlurRatioBias:u}),{mirror:m,textureMatrix:O,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:d.texture,hasBlur:b,mixStrength:t,minDepthThreshold:s,maxDepthThreshold:l,depthScale:c,depthToBlurRatioBias:u,transparent:!0,debug:f,distortion:p,distortionMap:x,mixContrast:h,"defines-USE_BLUR":b?"":void 0,"defines-USE_DEPTH":c>0?"":void 0,"defines-USE_DISTORTION":x?"":void 0}]}),[g,o,O,r,m,b,e,t,s,l,c,u,f,p,x,h]);return a.useFrame((()=>{if(null==E||!E.current)return;E.current.visible=!1;const e=g.xr.enabled,t=g.shadowMap.autoUpdate;N(),g.xr.enabled=!1,g.shadowMap.autoUpdate=!1,g.setRenderTarget(I),g.state.buffers.depth.setMask(!0),g.autoClear||g.clear(),g.render(w,U),b&&j.render(g,I,V),g.xr.enabled=e,g.shadowMap.autoUpdate=t,E.current.visible=!0,g.setRenderTarget(null)})),P.createElement("mesh",C.default({ref:_.default([E,v])},y),P.createElement("planeGeometry",{args:i}),d?d("meshReflectorMaterial",W):P.createElement("meshReflectorMaterial",W))}));class Bn extends n.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new n.Vector3(0,0,0)},lightColor:{value:new n.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new n.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include <packing>\n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n\n #include <tonemapping_fragment>\n\t #include <encodings_fragment>\n }"})}}function On({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:o,color:i="white",distance:s=5,angle:l=.15,attenuation:c=5,anglePower:u=5}){const m=P.useRef(null),d=a.useThree((e=>e.size)),f=a.useThree((e=>e.camera)),p=a.useThree((e=>e.viewport.dpr)),[h]=P.useState((()=>new Bn)),[x]=P.useState((()=>new n.Vector3));t=void 0===t?.1:t,r=void 0===r?7*l:r,a.useFrame((()=>{h.uniforms.spotPosition.value.copy(m.current.getWorldPosition(x)),m.current.lookAt(m.current.parent.target.getWorldPosition(x))}));const y=P.useMemo((()=>{const e=new n.CylinderGeometry(t,r,s,128,64,!0);return e.applyMatrix4((new n.Matrix4).makeTranslation(0,-s/2,0)),e.applyMatrix4((new n.Matrix4).makeRotationX(-Math.PI/2)),e}),[s,t,r]);return P.createElement(P.Fragment,null,P.createElement("mesh",{ref:m,geometry:y,raycast:()=>null},P.createElement("primitive",{object:h,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":i,"uniforms-attenuation-value":c,"uniforms-anglePower-value":u,"uniforms-depth-value":o,"uniforms-cameraNear-value":f.near,"uniforms-cameraFar-value":f.far,"uniforms-resolution-value":o?[d.width*p,d.height*p]:[0,0]})))}function Un(e,t,r,o,i){const[[s,l]]=P.useState((()=>[new n.Vector3,new n.Vector3]));P.useLayoutEffect((()=>{if(!(null==(t=e.current)?void 0:t.isSpotLight))throw new Error("SpotlightShadow must be a child of a SpotLight");var t;e.current.shadow.mapSize.set(r,o),e.current.shadow.needsUpdate=!0}),[e,r,o]),a.useFrame((()=>{if(!e.current)return;const r=e.current.position,n=e.current.target.position;l.copy(n).sub(r);var a=l.length();l.normalize().multiplyScalar(a*i),s.copy(r).add(l),t.current.position.copy(s),t.current.lookAt(e.current.target.position)}))}function Nn({distance:e=.4,alphaTest:t=.5,map:r,shader:o="#define GLSLIFY 1\nvarying vec2 vUv;uniform sampler2D uShadowMap;uniform float uTime;void main(){vec3 color=texture2D(uShadowMap,vUv).xyz;gl_FragColor=vec4(color,1.);}",width:i=512,height:s=512,scale:l=1,children:c,...u}){const d=P.useRef(null),f=u.spotlightRef,p=u.debug;Un(f,d,i,s,e);const h=P.useMemo((()=>new n.WebGLRenderTarget(i,s,{format:n.RGBAFormat,encoding:n.LinearEncoding,stencilBuffer:!1})),[i,s]),x=P.useRef({uShadowMap:{value:r},uTime:{value:0}});P.useEffect((()=>{x.current.uShadowMap.value=r}),[r]);const y=P.useMemo((()=>new m.FullScreenQuad(new n.ShaderMaterial({uniforms:x.current,vertexShader:"\n varying vec2 vUv;\n\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",fragmentShader:o}))),[o]);return P.useEffect((()=>()=>{y.material.dispose(),y.dispose()}),[y]),P.useEffect((()=>()=>h.dispose()),[h]),a.useFrame((({gl:e},t)=>{x.current.uTime.value+=t,e.setRenderTarget(h),y.render(e),e.setRenderTarget(null)})),P.createElement(P.Fragment,null,P.createElement("mesh",{ref:d,scale:l,castShadow:!0},P.createElement("planeGeometry",null),P.createElement("meshBasicMaterial",{transparent:!0,side:n.DoubleSide,alphaTest:t,alphaMap:h.texture,"alphaMap-wrapS":n.RepeatWrapping,"alphaMap-wrapT":n.RepeatWrapping,opacity:p?1:0},c)))}function In({distance:e=.4,alphaTest:t=.5,map:r,width:a=512,height:o=512,scale:i,children:s,...l}){const c=P.useRef(null),u=l.spotlightRef,m=l.debug;return Un(u,c,a,o,e),P.createElement(P.Fragment,null,P.createElement("mesh",{ref:c,scale:i,castShadow:!0},P.createElement("planeGeometry",null),P.createElement("meshBasicMaterial",{transparent:!0,side:n.DoubleSide,alphaTest:t,alphaMap:r,"alphaMap-wrapS":n.RepeatWrapping,"alphaMap-wrapT":n.RepeatWrapping,opacity:m?1:0},s)))}const Vn=P.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:n,color:a="white",distance:o=5,angle:i=.15,attenuation:s=5,anglePower:l=5,volumetric:c=!0,debug:u=!1,children:m,...d},f)=>{const p=P.useRef(null);return P.createElement("group",null,u&&p.current&&P.createElement("spotLightHelper",{args:[p.current]}),P.createElement("spotLight",C.default({ref:_.default([f,p]),angle:i,color:a,distance:o,castShadow:!0},d),c&&P.createElement(On,{debug:u,opacity:e,radiusTop:t,radiusBottom:r,depthBuffer:n,color:a,distance:o,angle:i,attenuation:s,anglePower:l})),m&&P.cloneElement(m,{spotlightRef:p,debug:u}))})),jn=P.forwardRef((({args:e,map:t,toneMapped:r=!1,color:n="white",form:o="rect",intensity:i=1,scale:s=1,target:l,children:c,...u},m)=>{const d=P.useRef(null);return P.useLayoutEffect((()=>{c||u.material||(a.applyProps(d.current.material,{color:n}),d.current.material.color.multiplyScalar(i))}),[n,i,c,u.material]),P.useLayoutEffect((()=>{l&&d.current.lookAt(Array.isArray(l)?new D.Vector3(...l):l)}),[l]),s=Array.isArray(s)&&2===s.length?[s[0],s[1],1]:s,P.createElement("mesh",C.default({ref:_.default([d,m]),scale:s},u),"circle"===o?P.createElement("ringGeometry",{args:[0,1,64]}):"ring"===o?P.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===o?P.createElement("planeGeometry",null):P.createElement(o,{args:e}),c||(u.material?null:P.createElement("meshBasicMaterial",{toneMapped:r,map:t,side:D.DoubleSide})))}));function Wn(e,t,r=new n.Vector3){const a=Math.PI*(e-.5),o=2*Math.PI*(t-.5);return r.x=Math.cos(o),r.y=Math.sin(a),r.z=Math.sin(o),r}const Gn=P.forwardRef((({inclination:e=.6,azimuth:t=.1,distance:r=1e3,mieCoefficient:a=.005,mieDirectionalG:o=.8,rayleigh:i=.5,turbidity:s=10,sunPosition:l=Wn(e,t),...c},u)=>{const d=P.useMemo((()=>(new n.Vector3).setScalar(r)),[r]),[f]=P.useState((()=>new m.Sky));return P.createElement("primitive",C.default({object:f,ref:u,"material-uniforms-mieCoefficient-value":a,"material-uniforms-mieDirectionalG-value":o,"material-uniforms-rayleigh-value":i,"material-uniforms-sunPosition-value":l,"material-uniforms-turbidity-value":s,scale:d},c))}));class Hn extends n.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include <tonemapping_fragment>\n\t #include <encodings_fragment>\n }"})}}const qn=e=>(new n.Vector3).setFromSpherical(new n.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),$n=P.forwardRef((({radius:e=100,depth:t=50,count:r=5e3,saturation:o=0,factor:i=4,fade:s=!1,speed:l=1},c)=>{const u=P.useRef(),[m,d,f]=P.useMemo((()=>{const a=[],s=[],l=Array.from({length:r},(()=>(.5+.5*Math.random())*i)),c=new n.Color;let u=e+t;const m=t/r;for(let e=0;e<r;e++)u-=m*Math.random(),a.push(...qn(u).toArray()),c.setHSL(e/r,o,.9),s.push(c.r,c.g,c.b);return[new Float32Array(a),new Float32Array(s),new Float32Array(l)]}),[r,t,i,e,o]);a.useFrame((e=>u.current&&(u.current.uniforms.time.value=e.clock.getElapsedTime()*l)));const[p]=P.useState((()=>new Hn));return P.createElement("points",{ref:c},P.createElement("bufferGeometry",null,P.createElement("bufferAttribute",{attach:"attributes-position",args:[m,3]}),P.createElement("bufferAttribute",{attach:"attributes-color",args:[d,3]}),P.createElement("bufferAttribute",{attach:"attributes-size",args:[f,1]})),P.createElement("primitive",{ref:u,object:p,attach:"material",blending:n.AdditiveBlending,"uniforms-fade-value":s,depthWrite:!1,transparent:!0,vertexColors:!0}))}));const Xn=Ee({time:0,pixelRatio:1}," uniform float pixelRatio;\n uniform float time;\n attribute float size; \n attribute float speed; \n attribute float opacity;\n attribute vec3 noise;\n attribute vec3 color;\n varying vec3 vColor;\n varying float vOpacity;\n void main() {\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\n modelPosition.y += sin(time * speed + modelPosition.x * noise.x * 100.0) * 0.2;\n modelPosition.z += cos(time * speed + modelPosition.x * noise.y * 100.0) * 0.2;\n modelPosition.x += cos(time * speed + modelPosition.x * noise.z * 100.0) * 0.2;\n vec4 viewPosition = viewMatrix * modelPosition;\n vec4 projectionPostion = projectionMatrix * viewPosition;\n gl_Position = projectionPostion;\n gl_PointSize = size * 25. * pixelRatio;\n gl_PointSize *= (1.0 / - viewPosition.z);\n vColor = color;\n vOpacity = opacity;\n }"," varying vec3 vColor;\n varying float vOpacity;\n void main() {\n float distanceToCenter = distance(gl_PointCoord, vec2(0.5));\n float strength = 0.05 / distanceToCenter - 0.1;\n gl_FragColor = vec4(vColor, strength * vOpacity);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),Yn=e=>e&&e.constructor===Float32Array,Kn=e=>e instanceof D.Vector2||e instanceof D.Vector3||e instanceof D.Vector4,Zn=e=>Array.isArray(e)?e:Kn(e)?e.toArray():[e,e,e];function Qn(e,t,r){return P.useMemo((()=>{if(void 0!==t){if(Yn(t))return t;if(t instanceof D.Color){const r=Array.from({length:3*e},(()=>(e=>[e.r,e.g,e.b])(t))).flat();return Float32Array.from(r)}if(Kn(t)||Array.isArray(t)){const r=Array.from({length:3*e},(()=>Zn(t))).flat();return Float32Array.from(r)}return Float32Array.from({length:e},(()=>t))}return Float32Array.from({length:e},r)}),[t])}const Jn=P.forwardRef((({noise:e=1,count:t=100,speed:r=1,opacity:n=1,scale:o=1,size:i,color:s,children:l,...c},u)=>{P.useMemo((()=>a.extend({SparklesImplMaterial:Xn})),[]);const m=P.useRef(null),d=a.useThree((e=>e.viewport.dpr)),f=P.useMemo((()=>Float32Array.from(Array.from({length:t},(()=>Zn(o).map(D.MathUtils.randFloatSpread))).flat())),[t,o]),p=Qn(t,i,Math.random),h=Qn(t,n),x=Qn(t,r),y=Qn(3*t,e),v=Qn(void 0===s?3*t:t,Yn(s)?s:new D.Color(s),(()=>1));return a.useFrame((e=>{m.current&&m.current.material&&(m.current.material.time=e.clock.elapsedTime)})),P.useImperativeHandle(u,(()=>m.current),[]),P.createElement("points",C.default({key:`particle-${t}-${JSON.stringify(o)}`},c,{ref:m}),P.createElement("bufferGeometry",null,P.createElement("bufferAttribute",{attach:"attributes-position",args:[f,3]}),P.createElement("bufferAttribute",{attach:"attributes-size",args:[p,1]}),P.createElement("bufferAttribute",{attach:"attributes-opacity",args:[h,1]}),P.createElement("bufferAttribute",{attach:"attributes-speed",args:[x,1]}),P.createElement("bufferAttribute",{attach:"attributes-color",args:[v,3]}),P.createElement("bufferAttribute",{attach:"attributes-noise",args:[y,3]})),l||P.createElement("sparklesImplMaterial",{transparent:!0,pixelRatio:d,depthWrite:!1}))}));const ea={uniforms:{strokeOpacity:1,fillOpacity:.25,fillMix:0,thickness:.05,colorBackfaces:!1,dashInvert:!0,dash:!1,dashRepeats:4,dashLength:.5,squeeze:!1,squeezeMin:.2,squeezeMax:1,stroke:new D.Color("#ff0000"),backfaceStroke:new D.Color("#0000ff"),fill:new D.Color("#00ff00")},vertex:"\n\t attribute vec3 barycentric;\n\t\n\t\tvarying vec3 v_edges_Barycentric;\n\t\tvarying vec3 v_edges_Position;\n\n\t\tvoid initWireframe() {\n\t\t\tv_edges_Barycentric = barycentric;\n\t\t\tv_edges_Position = position.xyz;\n\t\t}\n\t ",fragment:"\n\t\t#ifndef PI\n\t \t#define PI 3.1415926535897932384626433832795\n\t\t#endif\n \n\t varying vec3 v_edges_Barycentric;\n\t varying vec3 v_edges_Position;\n \n\t uniform float strokeOpacity;\n\t uniform float fillOpacity;\n\t uniform float fillMix;\n\t uniform float thickness;\n\t uniform bool colorBackfaces;\n \n\t // Dash\n\t uniform bool dashInvert;\n\t uniform bool dash;\n\t uniform bool dashOnly;\n\t uniform float dashRepeats;\n\t uniform float dashLength;\n \n\t // Squeeze\n\t uniform bool squeeze;\n\t uniform float squeezeMin;\n\t uniform float squeezeMax;\n \n\t // Colors\n\t uniform vec3 stroke;\n\t uniform vec3 backfaceStroke;\n\t uniform vec3 fill;\n \n\t // This is like\n\t float wireframe_aastep(float threshold, float dist) {\n\t\t float afwidth = fwidth(dist) * 0.5;\n\t\t return smoothstep(threshold - afwidth, threshold + afwidth, dist);\n\t }\n \n\t float wireframe_map(float value, float min1, float max1, float min2, float max2) {\n\t\t return min2 + (value - min1) * (max2 - min2) / (max1 - min1);\n\t }\n \n\t float getWireframe() {\n\t\t\tvec3 barycentric = v_edges_Barycentric;\n\t\t\n\t\t\t// Distance from center of each triangle to its edges.\n\t\t\tfloat d = min(min(barycentric.x, barycentric.y), barycentric.z);\n\n\t\t\t// for dashed rendering, we can use this to get the 0 .. 1 value of the line length\n\t\t\tfloat positionAlong = max(barycentric.x, barycentric.y);\n\t\t\tif (barycentric.y < barycentric.x && barycentric.y < barycentric.z) {\n\t\t\t\tpositionAlong = 1.0 - positionAlong;\n\t\t\t}\n\n\t\t\t// the thickness of the stroke\n\t\t\tfloat computedThickness = wireframe_map(thickness, 0.0, 1.0, 0.0, 0.34);\n\n\t\t\t// if we want to shrink the thickness toward the center of the line segment\n\t\t\tif (squeeze) {\n\t\t\t\tcomputedThickness *= mix(squeezeMin, squeezeMax, (1.0 - sin(positionAlong * PI)));\n\t\t\t}\n\n\t\t\t// Create dash pattern\n\t\t\tif (dash) {\n\t\t\t\t// here we offset the stroke position depending on whether it\n\t\t\t\t// should overlap or not\n\t\t\t\tfloat offset = 1.0 / dashRepeats * dashLength / 2.0;\n\t\t\t\tif (!dashInvert) {\n\t\t\t\t\toffset += 1.0 / dashRepeats / 2.0;\n\t\t\t\t}\n\n\t\t\t\t// if we should animate the dash or not\n\t\t\t\t// if (dashAnimate) {\n\t\t\t\t// \toffset += time * 0.22;\n\t\t\t\t// }\n\n\t\t\t\t// create the repeating dash pattern\n\t\t\t\tfloat pattern = fract((positionAlong + offset) * dashRepeats);\n\t\t\t\tcomputedThickness *= 1.0 - wireframe_aastep(dashLength, pattern);\n\t\t\t}\n\n\t\t\t// compute the anti-aliased stroke edge \n\t\t\tfloat edge = 1.0 - wireframe_aastep(computedThickness, d);\n\n\t\t\treturn edge;\n\t }\n\t "},ta=Ee(ea.uniforms,ea.vertex+"\n \tvoid main() {\n\t\tinitWireframe();\n\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n\t}\n ",ea.fragment+"\n void main () {\n\t\t// Compute color\n\n\t\tfloat edge = getWireframe();\n\t\tvec4 colorStroke = vec4(stroke, edge);\n\n\t\t#ifdef FLIP_SIDED\n\t\t\tcolorStroke.rgb = backfaceStroke;\n\t\t#endif\n \n\t\tvec4 colorFill = vec4(fill, fillOpacity);\n\t\tvec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);\n\n\t\tgl_FragColor = outColor;\n\t}\n ");function ra(e){return void 0!==(null==e?void 0:e.current)}function na(e){return"WireframeGeometry"===e.type}function aa(e){const t=null!=(r=e)&&r.current?e.current:e;var r;if(function(e){return!(null==e||!e.isBufferGeometry)}(t))return t;{if(na(t))throw new Error("Wireframe: WireframeGeometry is not supported.");const e=t.parent;if(function(e){return!(null==e||!e.geometry)}(e)){if(na(e.geometry))throw new Error("Wireframe: WireframeGeometry is not supported.");return e.geometry}}}function oa(e,t){if(e.index){console.warn("Wireframe: Requires non-indexed geometry, converting to non-indexed geometry.");const t=e.toNonIndexed();e.copy(t),e.setIndex(null)}const r=function(e,t){const r=e.getAttribute("position").count,n=[];for(let e=0;e<r;e++){const r=t?1:0;e%2==0?n.push(0,0,1,0,1,0,1,0,r):n.push(0,1,0,0,0,1,1,0,r)}return new D.BufferAttribute(Float32Array.from(n),3)}(e,t);e.setAttribute("barycentric",r)}function ia({geometry:e,simplify:t=!1,...r}){const[n,a]=P.useState(null);P.useLayoutEffect((()=>{const r=aa(e);if(!r)throw new Error("Wireframe: geometry prop must be a BufferGeometry or a ref to a BufferGeometry.");oa(r,t),ra(e)&&a(r)}),[t,e]);const o=ra(e)?n:e;return P.createElement(P.Fragment,null,o&&P.createElement("mesh",{geometry:o},P.createElement("meshWireframeMaterial",C.default({attach:"material",transparent:!0,side:D.DoubleSide,polygonOffset:!0,polygonOffsetFactor:-4},r,{extensions:{derivatives:!0,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1}}))))}function sa({simplify:e=!1,...t}){const r=P.useRef(null),n=P.useMemo((()=>function(){const e={};for(const t in ea.uniforms)e[t]={value:ea.uniforms[t]};return e}()),[ea.uniforms]);return function(e,t){P.useEffect((()=>{var r;e.fillOpacity.value=null!==(r=t.fillOpacity)&&void 0!==r?r:e.fillOpacity.value}),[t.fillOpacity]),P.useEffect((()=>{var r;e.fillMix.value=null!==(r=t.fillMix)&&void 0!==r?r:e.fillMix.value}),[t.fillMix]),P.useEffect((()=>{var r;e.strokeOpacity.value=null!==(r=t.strokeOpacity)&&void 0!==r?r:e.strokeOpacity.value}),[t.strokeOpacity]),P.useEffect((()=>{var r;e.thickness.value=null!==(r=t.thickness)&&void 0!==r?r:e.thickness.value}),[t.thickness]),P.useEffect((()=>{e.colorBackfaces.value=!!t.colorBackfaces}),[t.colorBackfaces]),P.useEffect((()=>{e.dash.value=!!t.dash}),[t.dash]),P.useEffect((()=>{e.dashInvert.value=!!t.dashInvert}),[t.dashInvert]),P.useEffect((()=>{var r;e.dashRepeats.value=null!==(r=t.dashRepeats)&&void 0!==r?r:e.dashRepeats.value}),[t.dashRepeats]),P.useEffect((()=>{var r;e.dashLength.value=null!==(r=t.dashLength)&&void 0!==r?r:e.dashLength.value}),[t.dashLength]),P.useEffect((()=>{e.squeeze.value=!!t.squeeze}),[t.squeeze]),P.useEffect((()=>{var r;e.squeezeMin.value=null!==(r=t.squeezeMin)&&void 0!==r?r:e.squeezeMin.value}),[t.squeezeMin]),P.useEffect((()=>{var r;e.squeezeMax.value=null!==(r=t.squeezeMax)&&void 0!==r?r:e.squeezeMax.value}),[t.squeezeMax]),P.useEffect((()=>{e.stroke.value=t.stroke?new D.Color(t.stroke):e.stroke.value}),[t.stroke]),P.useEffect((()=>{e.fill.value=t.fill?new D.Color(t.fill):e.fill.value}),[t.fill]),P.useEffect((()=>{e.backfaceStroke.value=t.backfaceStroke?new D.Color(t.backfaceStroke):e.backfaceStroke.value}),[t.backfaceStroke])}(n,t),P.useLayoutEffect((()=>{const t=aa(r);if(!t)throw new Error("Wireframe: Must be a child of a Mesh, Line or Points object or specify a geometry prop.");const n=t.clone();return oa(t,e),()=>{t.copy(n),n.dispose()}}),[e]),P.useLayoutEffect((()=>{const e=r.current.parent,t=e.material.clone();return function(e,t){e.onBeforeCompile=e=>{e.uniforms={...e.uniforms,...t},e.vertexShader=e.vertexShader.replace("void main() {",`\n\t\t ${ea.vertex}\n\t\t void main() {\n\t\t\tinitWireframe();\n\t\t`),e.fragmentShader=e.fragmentShader.replace("void main() {",`\n\t\t ${ea.fragment}\n\t\t void main() {\n\t\t`),e.fragmentShader=e.fragmentShader.replace("#include <color_fragment>","\n\t\t #include <color_fragment>\n\t\t\t float edge = getWireframe();\n\t\t vec4 colorStroke = vec4(stroke, edge);\n\t\t #ifdef FLIP_SIDED\n\t\t\tcolorStroke.rgb = backfaceStroke;\n\t\t #endif\n\t\t vec4 colorFill = vec4(mix(diffuseColor.rgb, fill, fillMix), mix(diffuseColor.a, fillOpacity, fillMix));\n\t\t vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);\n\n\t\t diffuseColor.rgb = outColor.rgb;\n\t\t diffuseColor.a *= outColor.a;\n\t\t")},e.side=D.DoubleSide,e.transparent=!0}(e.material,n),()=>{e.material.dispose(),e.material=t}}),[]),P.createElement("object3D",{ref:r})}F.extend({MeshWireframeMaterial:ta});const la=new D.Matrix4,ca=new D.Ray,ua=new D.Sphere,ma=new D.Vector3;class da extends D.Group{constructor(){super(),this.size=0,this.color=new D.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){var r,n;const a=this.instance.current;if(!a||!a.geometry)return;const o=a.userData.instances.indexOf(this.instanceKey);if(-1===o||o>a.geometry.drawRange.count)return;const i=null!==(r=null==(n=e.params.Points)?void 0:n.threshold)&&void 0!==r?r:1;if(ua.set(this.getWorldPosition(ma),i),!1===e.ray.intersectsSphere(ua))return;la.copy(a.matrixWorld).invert(),ca.copy(e.ray).applyMatrix4(la);const s=i/((this.scale.x+this.scale.y+this.scale.z)/3),l=s*s,c=ca.distanceSqToPoint(this.position);if(c<l){const r=new D.Vector3;ca.closestPointToPoint(this.position,r),r.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(r);if(n<e.near||n>e.far)return;t.push({distance:n,distanceToRay:Math.sqrt(c),point:r,index:o,face:null,object:this})}}}let fa,pa;const ha=P.createContext(null),xa=new D.Matrix4,ya=new D.Vector3,va=P.forwardRef((({children:e,range:t,limit:r=1e3,...n},o)=>{const i=P.useRef(null),[s,l]=P.useState([]),[[c,u,m]]=P.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));P.useEffect((()=>{i.current.geometry.attributes.position.needsUpdate=!0})),a.useFrame((()=>{for(i.current.updateMatrix(),i.current.updateMatrixWorld(),xa.copy(i.current.matrixWorld).invert(),i.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,s.length),fa=0;fa<s.length;fa++)pa=s[fa].current,pa.getWorldPosition(ya).applyMatrix4(xa),ya.toArray(c,3*fa),i.current.geometry.attributes.position.needsUpdate=!0,pa.matrixWorldNeedsUpdate=!0,pa.color.toArray(u,3*fa),i.current.geometry.attributes.color.needsUpdate=!0,m.set([pa.size],fa),i.current.geometry.attributes.size.needsUpdate=!0}));const d=P.useMemo((()=>({getParent:()=>i,subscribe:e=>(l((t=>[...t,e])),()=>l((t=>t.filter((t=>t.current!==e.current)))))})),[]);return P.createElement("points",C.default({userData:{instances:s},matrixAutoUpdate:!1,ref:_.default([o,i]),raycast:()=>null},n),P.createElement("bufferGeometry",null,P.createElement("bufferAttribute",{attach:"attributes-position",count:c.length/3,array:c,itemSize:3,usage:D.DynamicDrawUsage}),P.createElement("bufferAttribute",{attach:"attributes-color",count:u.length/3,array:u,itemSize:3,usage:D.DynamicDrawUsage}),P.createElement("bufferAttribute",{attach:"attributes-size",count:m.length,array:m,itemSize:1,usage:D.DynamicDrawUsage})),P.createElement(ha.Provider,{value:d},e))})),ga=P.forwardRef((({children:e,...t},r)=>{P.useMemo((()=>a.extend({PositionPoint:da})),[]);const n=P.useRef(),{subscribe:o,getParent:i}=P.useContext(ha);return P.useLayoutEffect((()=>o(n)),[]),P.createElement("positionPoint",C.default({instance:i(),instanceKey:n,ref:_.default([r,n])},t),e)})),za=P.forwardRef((({children:e,positions:t,colors:r,sizes:n,stride:o=3,...i},s)=>{const l=P.useRef(null);return a.useFrame((()=>{const e=l.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),n&&(e.size.needsUpdate=!0)})),P.createElement("points",C.default({ref:_.default([s,l])},i),P.createElement("bufferGeometry",null,P.createElement("bufferAttribute",{attach:"attributes-position",count:t.length/o,array:t,itemSize:o,usage:D.DynamicDrawUsage}),r&&P.createElement("bufferAttribute",{attach:"attributes-color",count:r.length/o,array:r,itemSize:3,usage:D.DynamicDrawUsage}),n&&P.createElement("bufferAttribute",{attach:"attributes-size",count:n.length/o,array:n,itemSize:1,usage:D.DynamicDrawUsage})),e)})),wa=P.forwardRef(((e,t)=>e.positions instanceof Float32Array?P.createElement(za,C.default({},e,{ref:t})):P.createElement(va,C.default({},e,{ref:t})))),ba=new D.Matrix4,Ea=new D.Matrix4,Ma=[],Sa=new D.Mesh;class Ta extends D.Group{constructor(){super(),this.color=new D.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;Sa.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,ba),Ea.multiplyMatrices(n,ba),Sa.matrixWorld=Ea,r.material instanceof D.Material?Sa.material.side=r.material.side:Sa.material.side=r.material[0].side,Sa.raycast(e,Ma);for(let e=0,r=Ma.length;e<r;e++){const r=Ma[e];r.instanceId=a,r.object=this,t.push(r)}Ma.length=0}}}const Ca=P.createContext(null),Pa=new D.Matrix4,Ra=new D.Matrix4,Da=new D.Matrix4,Fa=new D.Vector3,ka=new D.Quaternion,_a=new D.Vector3,La=P.forwardRef((({context:e,children:t,...r},n)=>{P.useMemo((()=>a.extend({PositionMesh:Ta})),[]);const o=P.useRef(),{subscribe:i,getParent:s}=P.useContext(e||Ca);return P.useLayoutEffect((()=>i(o)),[]),P.createElement("positionMesh",C.default({instance:s(),instanceKey:o,ref:_.default([n,o])},r),t)})),Aa=P.forwardRef((({children:e,range:t,limit:r=1e3,frames:n=1/0,...o},i)=>{const[{context:s,instance:l}]=P.useState((()=>{const e=P.createContext(null);return{context:e,instance:P.forwardRef(((t,r)=>P.createElement(La,C.default({context:e},t,{ref:r}))))}})),c=P.useRef(null),[u,m]=P.useState([]),[[d,f]]=P.useState((()=>{const e=new Float32Array(16*r);for(let t=0;t<r;t++)Da.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*r)].map((()=>1)))]}));P.useEffect((()=>{c.current.instanceMatrix.needsUpdate=!0}));let p=0,h=0;a.useFrame((()=>{if(n===1/0||p<n){c.current.updateMatrix(),c.current.updateMatrixWorld(),Pa.copy(c.current.matrixWorld).invert(),h=Math.min(r,void 0!==t?t:r,u.length),c.current.count=h,c.current.instanceMatrix.updateRange.count=16*h,c.current.instanceColor.updateRange.count=3*h;for(let e=0;e<u.length;e++){const t=u[e].current;t.matrixWorld.decompose(Fa,ka,_a),Ra.compose(Fa,ka,_a).premultiply(Pa),Ra.toArray(d,16*e),c.current.instanceMatrix.needsUpdate=!0,t.color.toArray(f,3*e),c.current.instanceColor.needsUpdate=!0}p++}}));const x=P.useMemo((()=>({getParent:()=>c,subscribe:e=>(m((t=>[...t,e])),()=>m((t=>t.filter((t=>t.current!==e.current)))))})),[]);return P.createElement("instancedMesh",C.default({userData:{instances:u},matrixAutoUpdate:!1,ref:_.default([i,c]),args:[null,null,0],raycast:()=>null},o),P.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:d.length/16,array:d,itemSize:16,usage:D.DynamicDrawUsage}),P.createElement("instancedBufferAttribute",{attach:"instanceColor",count:f.length/3,array:f,itemSize:3,usage:D.DynamicDrawUsage}),"function"==typeof e?P.createElement(s.Provider,{value:x},e(l)):P.createElement(Ca.Provider,{value:x},e))})),Ba=P.forwardRef((function({meshes:e,children:t,...r},n){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];return P.createElement("group",{ref:n},P.createElement(N.default,{components:(a?e:Object.values(e)).map((({geometry:e,material:t})=>P.createElement(Aa,C.default({key:e.uuid,geometry:e,material:t},r))))},(r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{})))))})),Oa=P.createContext(null),Ua=P.forwardRef(((e,t)=>{P.useMemo((()=>a.extend({SegmentObject:Na})),[]);const{limit:r=1e3,lineWidth:n=1,children:o,...i}=e,[s,l]=P.useState([]),[c]=P.useState((()=>new m.Line2)),[u]=P.useState((()=>new m.LineMaterial)),[d]=P.useState((()=>new m.LineSegmentsGeometry)),[f]=P.useState((()=>new D.Vector2(512,512))),[p]=P.useState((()=>Array(6*r).fill(0))),[h]=P.useState((()=>Array(6*r).fill(0))),x=P.useMemo((()=>({subscribe:e=>(l((t=>[...t,e])),()=>l((t=>t.filter((t=>t.current!==e.current)))))})),[]);return a.useFrame((()=>{for(let t=0;t<r;t++){var e;const r=null==(e=s[t])?void 0:e.current;r&&(p[6*t+0]=r.start.x,p[6*t+1]=r.start.y,p[6*t+2]=r.start.z,p[6*t+3]=r.end.x,p[6*t+4]=r.end.y,p[6*t+5]=r.end.z,h[6*t+0]=r.color.r,h[6*t+1]=r.color.g,h[6*t+2]=r.color.b,h[6*t+3]=r.color.r,h[6*t+4]=r.color.g,h[6*t+5]=r.color.b)}d.setColors(h),d.setPositions(p),c.computeLineDistances()})),P.createElement("primitive",{object:c,ref:t},P.createElement("primitive",{object:d,attach:"geometry"}),P.createElement("primitive",C.default({object:u,attach:"material",vertexColors:!0,resolution:f,linewidth:n},i)),P.createElement(Oa.Provider,{value:x},o))}));class Na{constructor(){this.color=new D.Color("white"),this.start=new D.Vector3(0,0,0),this.end=new D.Vector3(0,0,0)}}const Ia=e=>e instanceof D.Vector3?e:new D.Vector3(..."number"==typeof e?[e,e,e]:e),Va=P.forwardRef((({color:e,start:t,end:r},n)=>{const a=P.useContext(Oa);if(!a)throw"Segment must used inside Segments component.";const o=P.useRef(null);return P.useLayoutEffect((()=>a.subscribe(o)),[]),P.createElement("segmentObject",{ref:_.default([o,n]),color:e,start:Ia(t),end:Ia(r)})})),ja=P.forwardRef((({children:e,hysteresis:t=0,distances:r,...n},o)=>{const i=P.useRef(null);return P.useLayoutEffect((()=>{const{current:e}=i;e.levels.length=0,e.children.forEach(((n,a)=>e.levels.push({object:n,hysteresis:t,distance:r[a]})))})),a.useFrame((e=>{var t;return null==(t=i.current)?void 0:t.update(e.camera)})),P.createElement("lOD",C.default({ref:_.default([i,o])},n),e)}));const Wa=new n.Matrix4,Ga=new n.Ray,Ha=new n.Sphere,qa=new n.Vector3;const $a=t.createContext(null);const Xa=P.forwardRef((({children:e,compute:t,width:r,height:n,samples:o=8,renderPriority:i=0,eventPriority:s=0,frames:l=1/0,stencilBuffer:c=!1,depthBuffer:u=!0,generateMipmaps:m=!1,...d},f)=>{const{size:p,viewport:h}=a.useThree(),x=Ye((r||p.width)*h.dpr,(n||p.height)*h.dpr,{samples:o,stencilBuffer:c,depthBuffer:u,generateMipmaps:m}),[y]=P.useState((()=>new D.Scene)),v=P.useCallback(((e,t,r)=>{var n,a;let o=null==(n=x.texture)?void 0:n.__r3f.parent;for(;o&&!(o instanceof D.Object3D);)o=o.__r3f.parent;if(!o)return!1;r.raycaster.camera||r.events.compute(e,r,null==(a=r.previousRoot)?void 0:a.getState());const[i]=r.raycaster.intersectObject(o);if(!i)return!1;const s=i.uv;if(!s)return!1;t.raycaster.setFromCamera(t.pointer.set(2*s.x-1,2*s.y-1),t.camera)}),[]);return P.useImperativeHandle(f,(()=>x.texture),[x]),P.createElement(P.Fragment,null,a.createPortal(P.createElement(Ya,{renderPriority:i,frames:l,fbo:x},e,P.createElement("group",{onPointerOver:()=>null})),y,{events:{compute:t||v,priority:s}}),P.createElement("primitive",C.default({object:x.texture},d)))}));function Ya({frames:e,renderPriority:t,children:r,fbo:n}){let o,i=0;return a.useFrame((t=>{(e===1/0||i<e)&&(o=t.gl.autoClear,t.gl.autoClear=!0,t.gl.setRenderTarget(n),t.gl.render(t.scene,t.camera),t.gl.setRenderTarget(null),t.gl.autoClear=o,i++)}),t),P.createElement(P.Fragment,null,r)}const Ka=P.forwardRef((({id:e=1,colorWrite:t=!1,depthWrite:r=!1,...n},a)=>{const o=P.useRef(null),i=P.useMemo((()=>({colorWrite:t,depthWrite:r,stencilWrite:!0,stencilRef:e,stencilFunc:D.AlwaysStencilFunc,stencilFail:D.ReplaceStencilOp,stencilZFail:D.ReplaceStencilOp,stencilZPass:D.ReplaceStencilOp})),[e,t,r]);return P.useLayoutEffect((()=>{Object.assign(o.current.material,i)})),P.useImperativeHandle(a,(()=>o.current),[]),P.createElement("mesh",C.default({ref:o,renderOrder:-e},n))}));const Za=Ee({blur:0,map:null,sdf:null,size:0,resolution:new D.Vector2},"varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vUv = uv;\n }","uniform sampler2D sdf;\n uniform sampler2D map;\n uniform float blur;\n uniform float size;\n uniform float time;\n uniform vec2 resolution;\n varying vec2 vUv;\n #include <packing>\n void main() {\n vec2 uv = gl_FragCoord.xy / resolution.xy;\n vec4 t = texture2D(map, uv);\n float k = blur;\n float d = texture2D(sdf, vUv).r/size;\n float alpha = 1.0 - smoothstep(0.0, 1.0, clamp(d/k + 1.0, 0.0, 1.0));\n gl_FragColor = vec4(t.rgb, blur == 0.0 ? t.a : t.a * alpha);\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n }"),Qa=P.forwardRef((({children:e,blur:t=0,eventPriority:r,renderPriority:n,worldUnits:o=!1,resolution:i=512,...s},l)=>{a.extend({PortalMaterialImpl:Za});const c=P.useRef(null),{gl:u,size:m,events:d,viewport:f}=a.useThree(),p=Ye(i,i);return P.useLayoutEffect((()=>{var e;let r=null==(e=c.current)?void 0:e.__r3f.parent;if(r&&t&&null===c.current.sdf){const e=new D.Mesh(r.geometry,new D.MeshBasicMaterial),t=(new D.Box3).setFromBufferAttribute(e.geometry.attributes.position),n=new D.OrthographicCamera(t.min.x*(1+2/i),t.max.x*(1+2/i),t.max.y*(1+2/i),t.min.y*(1+2/i),.1,1e3);n.position.set(0,0,1),n.lookAt(0,0,0),u.setRenderTarget(p),u.render(e,n);const a=eo(i,i,u)(p.texture),o=new Float32Array(i*i);u.readRenderTargetPixels(a,0,0,i,i,o);let s=1/0;for(let e=0;e<o.length;e++)o[e]<s&&(s=o[e]);s=-s,c.current.size=s,c.current.sdf=a.texture,u.setRenderTarget(null)}}),[i,t]),P.useImperativeHandle(l,(()=>c.current)),P.createElement("portalMaterialImpl",C.default({ref:c,blur:t,resolution:[m.width*f.dpr,m.height*f.dpr],toneMapped:!1,attach:"material"},s),P.createElement(Xa,{attach:"map",eventPriority:r,renderPriority:n,compute:d.compute},e,P.createElement(Ja,{material:c,worldUnits:o})))}));function Ja({material:e,worldUnits:t}){const r=a.useThree((e=>e.scene));return P.useLayoutEffect((()=>{r.matrixAutoUpdate=!1}),[]),a.useFrame((()=>{var n;let a=null==e||null==(n=e.current)?void 0:n.__r3f.parent;a&&(t?r.matrixWorld.identity():r.matrixWorld.copy(a.matrixWorld))})),P.createElement(P.Fragment,null)}const eo=(e,t,r)=>{let n=new D.WebGLRenderTarget(e,t,{minFilter:D.LinearMipmapLinearFilter,magFilter:D.LinearFilter,type:D.FloatType,format:D.RedFormat,generateMipmaps:!0}),a=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter}),o=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter}),i=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter}),s=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter}),l=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter,type:D.FloatType,format:D.RedFormat}),c=new D.WebGLRenderTarget(e,t,{minFilter:D.NearestFilter,magFilter:D.NearestFilter,type:D.FloatType,format:D.RedFormat});const u=new m.FullScreenQuad(new D.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (round(texture2D(tex, vUv).x)));\n }"})),d=new m.FullScreenQuad(new D.ShaderMaterial({uniforms:{tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform sampler2D tex;\n varying vec2 vUv;\n #include <packing>\n void main() {\n gl_FragColor = pack2HalfToRGBA(vUv * (1.0 - round(texture2D(tex, vUv).x)));\n }"})),f=new m.FullScreenQuad(new D.ShaderMaterial({uniforms:{tex:{value:null},offset:{value:0},level:{value:0},maxSteps:{value:0}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:`\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform float offset;\n uniform float level;\n uniform float maxSteps;\n #include <packing>\n void main() {\n float closestDist = 9999999.9;\n vec2 closestPos = vec2(0.0);\n for (float x = -1.0; x <= 1.0; x += 1.0) {\n for (float y = -1.0; y <= 1.0; y += 1.0) {\n vec2 voffset = vUv;\n voffset += vec2(x, y) * vec2(${1/e}, ${1/t}) * offset;\n vec2 pos = unpackRGBATo2Half(texture2D(tex, voffset));\n float dist = distance(pos.xy, vUv);\n if(pos.x != 0.0 && pos.y != 0.0 && dist < closestDist) {\n closestDist = dist;\n closestPos = pos;\n }\n }\n }\n gl_FragColor = pack2HalfToRGBA(closestPos);\n }`})),p=new m.FullScreenQuad(new D.ShaderMaterial({uniforms:{tex:{value:null},size:{value:new D.Vector2(e,t)}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D tex;\n uniform vec2 size;\n #include <packing>\n void main() {\n gl_FragColor = vec4(distance(size * unpackRGBATo2Half(texture2D(tex, vUv)), size * vUv), 0.0, 0.0, 0.0);\n }"})),h=new m.FullScreenQuad(new D.ShaderMaterial({uniforms:{inside:{value:c.texture},outside:{value:l.texture},tex:{value:null}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n varying vec2 vUv;\n uniform sampler2D inside;\n uniform sampler2D outside;\n uniform sampler2D tex;\n #include <packing>\n void main() {\n float i = texture2D(inside, vUv).x;\n float o =texture2D(outside, vUv).x;\n if (texture2D(tex, vUv).x == 0.0) {\n gl_FragColor = vec4(o, 0.0, 0.0, 0.0);\n } else {\n gl_FragColor = vec4(-i, 0.0, 0.0, 0.0);\n }\n }"}));return m=>{let x=n;m.minFilter=D.NearestFilter,m.magFilter=D.NearestFilter,u.material.uniforms.tex.value=m,r.setRenderTarget(a),u.render(r);const y=Math.ceil(Math.log(Math.max(e,t))/Math.log(2));let v=a,g=null;for(let e=0;e<y;e++){const t=Math.pow(2,y-e-1);g=v===a?i:a,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=y,f.material.uniforms.offset.value=t,f.material.uniforms.tex.value=v.texture,r.setRenderTarget(g),f.render(r),v=g}r.setRenderTarget(l),p.material.uniforms.tex.value=g.texture,p.render(r),d.material.uniforms.tex.value=m,r.setRenderTarget(o),d.render(r),v=o;for(let e=0;e<y;e++){const t=Math.pow(2,y-e-1);g=v===o?s:o,f.material.uniforms.level.value=e,f.material.uniforms.maxSteps.value=y,f.material.uniforms.offset.value=t,f.material.uniforms.tex.value=v.texture,r.setRenderTarget(g),f.render(r),v=g}return r.setRenderTarget(c),p.material.uniforms.tex.value=g.texture,p.render(r),r.setRenderTarget(x),h.material.uniforms.tex.value=m,h.render(r),r.setRenderTarget(null),x}},to=new D.Color;function ro(e){return"top"in e}function no({canvasSize:e,scene:t,index:r,children:n,frames:o,rect:i,track:s}){const l=a.useThree((e=>e.get)),c=a.useThree((e=>e.camera)),u=a.useThree((e=>e.scene)),m=a.useThree((e=>e.setEvents));let d=0;return a.useFrame((r=>{var a,l;(o===1/0||d<=o)&&(i.current=null==(a=s.current)?void 0:a.getBoundingClientRect(),d++);if(i.current){const{position:{left:a,bottom:o,width:s,height:m},isOffscreen:d}=function(e,t){const{right:r,top:n,left:a,bottom:o,width:i,height:s}=t,l=t.bottom<0||n>e.height||r<0||t.left>e.width;if(ro(e)){const t=e.top+e.height-o;return{position:{width:i,height:s,left:a-e.left,top:n,bottom:t,right:r},isOffscreen:l}}return{position:{width:i,height:s,top:n,left:a,bottom:e.height-o,right:r},isOffscreen:l}}(e,i.current),f=s/m;(l=c)&&l.isOrthographicCamera?c.left===s/-2&&c.right===s/2&&c.top===m/2&&c.bottom===m/-2||(Object.assign(c,{left:s/-2,right:s/2,top:m/2,bottom:m/-2}),c.updateProjectionMatrix()):c.aspect!==f&&(c.aspect=f,c.updateProjectionMatrix()),r.gl.setViewport(a,o,s,m),r.gl.setScissor(a,o,s,m),r.gl.setScissorTest(!0),d?(r.gl.getClearColor(to),r.gl.setClearColor(to,r.gl.getClearAlpha()),r.gl.clear(!0,!0)):r.gl.render(n?u:t,c),r.gl.setScissorTest(!0)}}),r),P.useEffect((()=>{const e=l().events.connected;return m({connected:s.current}),()=>m({connected:e})}),[]),P.useEffect((()=>{ro(e)||console.warn("Detected @react-three/fiber canvas size does not include position information. <View /> may not work as expected. Upgrade to @react-three/fiber ^8.1.0 for support.\n See https://github.com/pmndrs/drei/issues/944")}),[]),P.createElement(P.Fragment,null,n)}const ao=P.createContext(null),oo=new D.Vector3,io=new D.Vector3,so=new D.Vector3(0,1,0),lo=new D.Matrix4,co=({direction:e,axis:t})=>{const{translation:r,translationLimits:n,annotations:o,annotationsClass:i,depthTest:s,scale:l,lineWidth:c,fixed:u,axisColors:m,hoveredColor:d,opacity:f,onDragStart:p,onDrag:h,onDragEnd:x,userData:y}=P.useContext(ao),v=a.useThree((e=>e.controls)),g=P.useRef(null),z=P.useRef(null),w=P.useRef(null),b=P.useRef(0),[E,M]=P.useState(!1),S=P.useCallback((n=>{o&&(g.current.innerText=`${r.current[t].toFixed(2)}`,g.current.style.display="block"),n.stopPropagation();const a=(new D.Matrix4).extractRotation(z.current.matrixWorld),i=n.point.clone(),s=(new D.Vector3).setFromMatrixPosition(z.current.matrixWorld),l=e.clone().applyMatrix4(a).normalize();w.current={clickPoint:i,dir:l},b.current=r.current[t],p({component:"Arrow",axis:t,origin:s,directions:[l]}),v&&(v.enabled=!1),n.target.setPointerCapture(n.pointerId)}),[o,e,v,p,r,t]),T=P.useCallback((e=>{if(e.stopPropagation(),E||M(!0),w.current){const{clickPoint:a,dir:i}=w.current,[s,l]=(null==n?void 0:n[t])||[void 0,void 0];let c=((e,t,r,n)=>{const a=t.dot(t),o=t.dot(e)-t.dot(r),i=t.dot(n);return 0===i?-o/a:(oo.copy(n).multiplyScalar(a/i).sub(t),io.copy(n).multiplyScalar(o/i).add(r).sub(e),-oo.dot(io)/oo.dot(oo))})(a,i,e.ray.origin,e.ray.direction);void 0!==s&&(c=Math.max(c,s-b.current)),void 0!==l&&(c=Math.min(c,l-b.current)),r.current[t]=b.current+c,o&&(g.current.innerText=`${r.current[t].toFixed(2)}`),lo.makeTranslation(i.x*c,i.y*c,i.z*c),h(lo)}}),[o,h,E,r,n,t]),C=P.useCallback((e=>{o&&(g.current.style.display="none"),e.stopPropagation(),w.current=null,x(),v&&(v.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[o,v,x]),R=P.useCallback((e=>{e.stopPropagation(),M(!1)}),[]),{cylinderLength:F,coneWidth:k,coneLength:_,matrixL:L}=P.useMemo((()=>{const t=u?c/l*1.6:l/20,r=u?.2:l/5,n=u?1-r:l-r,a=(new D.Quaternion).setFromUnitVectors(so,e.clone().normalize());return{cylinderLength:n,coneWidth:t,coneLength:r,matrixL:(new D.Matrix4).makeRotationFromQuaternion(a)}}),[e,l,c,u]),A=E?d:m[t];return P.createElement("group",{ref:z},P.createElement("group",{matrix:L,matrixAutoUpdate:!1,onPointerDown:S,onPointerMove:T,onPointerUp:C,onPointerOut:R},o&&P.createElement(K,{position:[0,-_,0]},P.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:i,ref:g})),P.createElement("mesh",{visible:!1,position:[0,(F+_)/2,0],userData:y},P.createElement("cylinderGeometry",{args:[1.4*k,1.4*k,F+_,8,1]})),P.createElement(ue,{transparent:!0,raycast:()=>null,depthTest:s,points:[0,0,0,0,F,0],lineWidth:c,color:A,opacity:f,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),P.createElement("mesh",{raycast:()=>null,position:[0,F+_/2,0],renderOrder:500},P.createElement("coneGeometry",{args:[k,_,24,1]}),P.createElement("meshBasicMaterial",{transparent:!0,depthTest:s,color:A,opacity:f,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},uo=new D.Ray,mo=new D.Vector3,fo=new D.Matrix4,po=({dir1:e,dir2:t,axis:r})=>{const{translation:n,translationLimits:o,annotations:i,annotationsClass:s,depthTest:l,scale:c,lineWidth:u,fixed:m,axisColors:d,hoveredColor:f,opacity:p,onDragStart:h,onDrag:x,onDragEnd:y,userData:v}=P.useContext(ao),g=a.useThree((e=>e.controls)),z=P.useRef(null),w=P.useRef(null),b=P.useRef(null),E=P.useRef(0),M=P.useRef(0),[S,T]=P.useState(!1),C=P.useCallback((e=>{i&&(z.current.innerText=`${n.current[(r+1)%3].toFixed(2)}, ${n.current[(r+2)%3].toFixed(2)}`,z.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),a=(new D.Vector3).setFromMatrixPosition(w.current.matrixWorld),o=(new D.Vector3).setFromMatrixColumn(w.current.matrixWorld,0).normalize(),s=(new D.Vector3).setFromMatrixColumn(w.current.matrixWorld,1).normalize(),l=(new D.Vector3).setFromMatrixColumn(w.current.matrixWorld,2).normalize(),c=(new D.Plane).setFromNormalAndCoplanarPoint(l,a);b.current={clickPoint:t,e1:o,e2:s,plane:c},E.current=n.current[(r+1)%3],M.current=n.current[(r+2)%3],h({component:"Slider",axis:r,origin:a,directions:[o,s,l]}),g&&(g.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[i,g,h,r]),R=P.useCallback((e=>{if(e.stopPropagation(),S||T(!0),b.current){const{clickPoint:t,e1:a,e2:s,plane:l}=b.current,[c,u]=(null==o?void 0:o[(r+1)%3])||[void 0,void 0],[m,d]=(null==o?void 0:o[(r+2)%3])||[void 0,void 0];uo.copy(e.ray),uo.intersectPlane(l,mo),uo.direction.negate(),uo.intersectPlane(l,mo),mo.sub(t);let[f,p]=((e,t,r)=>{const n=Math.abs(e.x)>=Math.abs(e.y)&&Math.abs(e.x)>=Math.abs(e.z)?0:Math.abs(e.y)>=Math.abs(e.x)&&Math.abs(e.y)>=Math.abs(e.z)?1:2,a=[0,1,2].sort(((e,r)=>Math.abs(t.getComponent(r))-Math.abs(t.getComponent(e)))),o=n===a[0]?a[1]:a[0],i=e.getComponent(n),s=e.getComponent(o),l=t.getComponent(n),c=t.getComponent(o),u=r.getComponent(n),m=(r.getComponent(o)-u*(s/i))/(c-l*(s/i));return[(u-m*l)/i,m]})(a,s,mo);void 0!==c&&(f=Math.max(f,c-E.current)),void 0!==u&&(f=Math.min(f,u-E.current)),void 0!==m&&(p=Math.max(p,m-M.current)),void 0!==d&&(p=Math.min(p,d-M.current)),n.current[(r+1)%3]=E.current+f,n.current[(r+2)%3]=M.current+p,i&&(z.current.innerText=`${n.current[(r+1)%3].toFixed(2)}, ${n.current[(r+2)%3].toFixed(2)}`),fo.makeTranslation(f*a.x+p*s.x,f*a.y+p*s.y,f*a.z+p*s.z),x(fo)}}),[i,x,S,n,o,r]),F=P.useCallback((e=>{i&&(z.current.style.display="none"),e.stopPropagation(),b.current=null,y(),g&&(g.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[i,g,y]),k=P.useCallback((e=>{e.stopPropagation(),T(!1)}),[]),_=P.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new D.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),L=m?1/7:c/7,A=m?.225:.225*c,B=S?f:d[r],O=P.useMemo((()=>[new D.Vector3(0,0,0),new D.Vector3(0,A,0),new D.Vector3(A,A,0),new D.Vector3(A,0,0),new D.Vector3(0,0,0)]),[A]);return P.createElement("group",{ref:w,matrix:_,matrixAutoUpdate:!1},i&&P.createElement(K,{position:[0,0,0]},P.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:s,ref:z})),P.createElement("group",{position:[1.7*L,1.7*L,0]},P.createElement("mesh",{visible:!0,onPointerDown:C,onPointerMove:R,onPointerUp:F,onPointerOut:k,scale:A,userData:v},P.createElement("planeGeometry",null),P.createElement("meshBasicMaterial",{transparent:!0,depthTest:l,color:B,polygonOffset:!0,polygonOffsetFactor:-10,side:D.DoubleSide,fog:!1})),P.createElement(ue,{position:[-A/2,-A/2,0],transparent:!0,depthTest:l,points:O,lineWidth:u,color:B,opacity:p,polygonOffset:!0,polygonOffsetFactor:-10,userData:v,fog:!1})))},ho=new D.Vector3,xo=new D.Vector3,yo=e=>180*e/Math.PI,vo=e=>{let t=((e,t)=>{let r=Math.floor(e/t);return r=r<0?r+1:r,e-r*t})(e,2*Math.PI);return Math.abs(t)<1e-6?0:(t<0&&(t+=2*Math.PI),t)},go=new D.Matrix4,zo=new D.Vector3,wo=new D.Ray,bo=new D.Vector3,Eo=({dir1:e,dir2:t,axis:r})=>{const{rotationLimits:n,annotations:o,annotationsClass:i,depthTest:s,scale:l,lineWidth:c,fixed:u,axisColors:m,hoveredColor:d,opacity:f,onDragStart:p,onDrag:h,onDragEnd:x,userData:y}=P.useContext(ao),v=a.useThree((e=>e.controls)),g=P.useRef(null),z=P.useRef(null),w=P.useRef(0),b=P.useRef(0),E=P.useRef(null),[M,S]=P.useState(!1),T=P.useCallback((e=>{o&&(g.current.innerText=`${yo(b.current).toFixed(0)}º`,g.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),n=(new D.Vector3).setFromMatrixPosition(z.current.matrixWorld),a=(new D.Vector3).setFromMatrixColumn(z.current.matrixWorld,0).normalize(),i=(new D.Vector3).setFromMatrixColumn(z.current.matrixWorld,1).normalize(),s=(new D.Vector3).setFromMatrixColumn(z.current.matrixWorld,2).normalize(),l=(new D.Plane).setFromNormalAndCoplanarPoint(s,n);E.current={clickPoint:t,origin:n,e1:a,e2:i,normal:s,plane:l},p({component:"Rotator",axis:r,origin:n,directions:[a,i,s]}),v&&(v.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[o,v,p,r]),C=P.useCallback((e=>{if(e.stopPropagation(),M||S(!0),E.current){const{clickPoint:t,origin:a,e1:i,e2:s,normal:l,plane:c}=E.current,[u,m]=(null==n?void 0:n[r])||[void 0,void 0];wo.copy(e.ray),wo.intersectPlane(c,bo),wo.direction.negate(),wo.intersectPlane(c,bo);let d=((e,t,r,n,a)=>{ho.copy(e).sub(r),xo.copy(t).sub(r);const o=n.dot(n),i=a.dot(a),s=ho.dot(n)/o,l=ho.dot(a)/i,c=xo.dot(n)/o,u=xo.dot(a)/i,m=Math.atan2(l,s);return Math.atan2(u,c)-m})(t,bo,a,i,s),f=yo(d);e.shiftKey&&(f=10*Math.round(f/10),d=(e=>e*Math.PI/180)(f)),void 0!==u&&void 0!==m&&m-u<2*Math.PI?(d=vo(d),d=d>Math.PI?d-2*Math.PI:d,d=I.default(d,u-w.current,m-w.current),b.current=w.current+d):(b.current=vo(w.current+d),b.current=b.current>Math.PI?b.current-2*Math.PI:b.current),o&&(f=yo(b.current),g.current.innerText=`${f.toFixed(0)}º`),go.makeRotationAxis(l,d),zo.copy(a).applyMatrix4(go).sub(a).negate(),go.setPosition(zo),h(go)}}),[o,h,M,n,r]),R=P.useCallback((e=>{o&&(g.current.style.display="none"),e.stopPropagation(),w.current=b.current,E.current=null,x(),v&&(v.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[o,v,x]),F=P.useCallback((e=>{e.stopPropagation(),S(!1)}),[]),k=P.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new D.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),_=u?.65:.65*l,L=P.useMemo((()=>{const e=[];for(let t=0;t<=32;t++){const r=t*(Math.PI/2)/32;e.push(new D.Vector3(Math.cos(r)*_,Math.sin(r)*_,0))}return e}),[_]);return P.createElement("group",{ref:z,onPointerDown:T,onPointerMove:C,onPointerUp:R,onPointerOut:F,matrix:k,matrixAutoUpdate:!1},o&&P.createElement(K,{position:[_,_,0]},P.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:i,ref:g})),P.createElement(ue,{points:L,lineWidth:4*c,visible:!1,userData:y}),P.createElement(ue,{transparent:!0,raycast:()=>null,depthTest:s,points:L,lineWidth:c,color:M?d:m[r],opacity:f,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))},Mo=new D.Vector3,So=new D.Vector3,To=new D.Vector3,Co=(e,t,r,n=1)=>{const a=Mo.set(e.x/r.width*2-1,-e.y/r.height*2+1,n);return a.unproject(t),a},Po=(e,t,r,n)=>{const a=((e,t,r)=>{const n=r.width/2,a=r.height/2;t.updateMatrixWorld(!1);const o=e.project(t);return o.x=o.x*n+n,o.y=-o.y*a+a,o})(To.copy(e),r,n);let o=0;for(let i=0;i<2;++i){const s=So.copy(a).setComponent(i,a.getComponent(i)+t),l=Co(s,r,n,s.z);o=Math.max(o,e.distanceTo(l))}return o},Ro=new D.Matrix4,Do=new D.Matrix4,Fo=new D.Matrix4,ko=new D.Matrix4,_o=new D.Matrix4,Lo=new D.Matrix4,Ao=new D.Matrix4,Bo=new D.Matrix4,Oo=new D.Box3,Uo=new D.Box3,No=new D.Vector3,Io=new D.Vector3,Vo=new D.Vector3,jo=new D.Vector3,Wo=new D.Vector3(1,0,0),Go=new D.Vector3(0,1,0),Ho=new D.Vector3(0,0,1),qo=P.forwardRef((({matrix:e,onDragStart:t,onDrag:r,onDragEnd:n,autoTransform:o=!0,anchor:i,disableAxes:s=!1,disableSliders:l=!1,disableRotations:c=!1,activeAxes:u=[!0,!0,!0],offset:m=[0,0,0],rotation:d=[0,0,0],scale:f=1,lineWidth:p=4,fixed:h=!1,translationLimits:x,rotationLimits:y,depthTest:v=!0,axisColors:g=["#ff2060","#20df80","#2080ff"],hoveredColor:z="#ffff40",annotations:w=!1,annotationsClass:b,opacity:E=1,visible:M=!0,userData:S,children:T,...R},F)=>{const k=a.useThree((e=>e.invalidate)),_=P.useRef(null),L=P.useRef(null),A=P.useRef(null),B=P.useRef(null),O=P.useRef([0,0,0]);P.useLayoutEffect((()=>{i&&(B.current.updateWorldMatrix(!0,!0),ko.copy(B.current.matrixWorld).invert(),Oo.makeEmpty(),B.current.traverse((e=>{e.geometry&&(e.geometry.boundingBox||e.geometry.computeBoundingBox(),Lo.copy(e.matrixWorld).premultiply(ko),Uo.copy(e.geometry.boundingBox),Uo.applyMatrix4(Lo),Oo.union(Uo))})),No.copy(Oo.max).add(Oo.min).multiplyScalar(.5),Io.copy(Oo.max).sub(Oo.min).multiplyScalar(.5),Vo.copy(Io).multiply(new D.Vector3(...i)).add(No),jo.set(...m).add(Vo),A.current.position.copy(jo),k())}));const U=P.useMemo((()=>({onDragStart:e=>{Ro.copy(L.current.matrix),Do.copy(L.current.matrixWorld),t&&t(e),k()},onDrag:e=>{Fo.copy(_.current.matrixWorld),ko.copy(Fo).invert(),_o.copy(Do).premultiply(e),Lo.copy(_o).premultiply(ko),Ao.copy(Ro).invert(),Bo.copy(Lo).multiply(Ao),o&&L.current.matrix.copy(Lo),r&&r(Lo,Bo,_o,e),k()},onDragEnd:()=>{n&&n(),k()},translation:O,translationLimits:x,rotationLimits:y,axisColors:g,hoveredColor:z,opacity:E,scale:f,lineWidth:p,fixed:h,depthTest:v,userData:S,annotations:w,annotationsClass:b})),[t,r,n,O,x,y,v,f,p,h,...g,z,E,S,o,w,b]),N=new D.Vector3;return a.useFrame((e=>{if(h){const a=Po(A.current.getWorldPosition(N),f,e.camera,e.size);var t,r,n;if(A.current)(null==(t=A.current)?void 0:t.scale.x)===a&&(null==(r=A.current)?void 0:r.scale.y)===a&&(null==(n=A.current)?void 0:n.scale.z)===a||(A.current.scale.setScalar(a),e.invalidate())}})),P.useImperativeHandle(F,(()=>L.current),[]),P.useLayoutEffect((()=>{e&&e instanceof D.Matrix4&&(L.current.matrix=e)}),[e]),P.createElement(ao.Provider,{value:U},P.createElement("group",{ref:_},P.createElement("group",C.default({ref:L,matrix:e,matrixAutoUpdate:!1},R),P.createElement("group",{visible:M,ref:A,position:m,rotation:d},!s&&u[0]&&P.createElement(co,{axis:0,direction:Wo}),!s&&u[1]&&P.createElement(co,{axis:1,direction:Go}),!s&&u[2]&&P.createElement(co,{axis:2,direction:Ho}),!l&&u[0]&&u[1]&&P.createElement(po,{axis:2,dir1:Wo,dir2:Go}),!l&&u[0]&&u[2]&&P.createElement(po,{axis:1,dir1:Ho,dir2:Wo}),!l&&u[2]&&u[1]&&P.createElement(po,{axis:0,dir1:Go,dir2:Ho}),!c&&u[0]&&u[1]&&P.createElement(Eo,{axis:2,dir1:Wo,dir2:Go}),!c&&u[0]&&u[2]&&P.createElement(Eo,{axis:1,dir1:Ho,dir2:Wo}),!c&&u[2]&&u[1]&&P.createElement(Eo,{axis:0,dir1:Go,dir2:Ho})),P.createElement("group",{ref:B},T))))}));exports.AccumulativeShadows=bn,exports.AdaptiveDpr=function({pixelated:e}){const t=a.useThree((e=>e.gl)),r=a.useThree((e=>e.internal.active)),n=a.useThree((e=>e.performance.current)),o=a.useThree((e=>e.viewport.initialDpr)),i=a.useThree((e=>e.setDpr));return P.useEffect((()=>{const n=t.domElement;return()=>{r&&i(o),e&&n&&(n.style.imageRendering="auto")}}),[]),P.useEffect((()=>{i(n*o),e&&t.domElement&&(t.domElement.style.imageRendering=1===n?"auto":"pixelated")}),[n]),null},exports.AdaptiveEvents=function(){const e=a.useThree((e=>e.get)),t=a.useThree((e=>e.setEvents)),r=a.useThree((e=>e.performance.current));return P.useEffect((()=>{const r=e().events.enabled;return()=>t({enabled:r})}),[]),P.useEffect((()=>t({enabled:1===r})),[r]),null},exports.ArcballControls=at,exports.AsciiRenderer=function({renderIndex:e=1,bgColor:t="black",fgColor:r="white",characters:n=" .:-+*=%@#",invert:o=!0,color:i=!1,resolution:s=.15}){const{size:l,gl:c,scene:u,camera:d}=a.useThree(),f=P.useMemo((()=>{const e=new m.AsciiEffect(c,n,{invert:o,color:i,resolution:s});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[n,o,i,s]);return P.useLayoutEffect((()=>{f.domElement.style.color=r,f.domElement.style.backgroundColor=t}),[r,t]),P.useEffect((()=>(c.domElement.style.opacity="0",c.domElement.parentNode.appendChild(f.domElement),()=>{c.domElement.style.opacity="1",c.domElement.parentNode.removeChild(f.domElement)})),[f]),P.useEffect((()=>{f.setSize(l.width,l.height)}),[f,l]),a.useFrame((e=>{f.render(u,d)}),e),P.createElement(P.Fragment,null)},exports.BBAnchor=({anchor:e,...t})=>{const r=P.useRef(null),n=P.useRef(null);return P.useEffect((()=>{var e,t;null!=(e=r.current)&&null!=(t=e.parent)&&t.parent&&(n.current=r.current.parent,r.current.parent.parent.add(r.current))}),[]),a.useFrame((()=>{n.current&&(cr.setFromObject(n.current),cr.getSize(ur),r.current.position.set(n.current.position.x+ur.x*e[0]/2,n.current.position.y+ur.y*e[1]/2,n.current.position.z+ur.z*e[2]/2))})),P.createElement("group",C.default({ref:r},t))},exports.Backdrop=function({children:e,floor:t=.25,segments:r=20,receiveShadow:n,...a}){const o=P.useRef(null);return P.useLayoutEffect((()=>{let e=0;const n=r/r/2,a=o.current.attributes.position;for(let o=0;o<r+1;o++)for(let i=0;i<r+1;i++)a.setXYZ(e++,o/r-n+(0===o?-t:0),i/r-n,Cn(o/r));a.needsUpdate=!0,o.current.computeVertexNormals()}),[r,t]),P.createElement("group",a,P.createElement("mesh",{receiveShadow:n,rotation:[-Math.PI/2,0,Math.PI/2]},P.createElement("planeGeometry",{ref:o,args:[1,1,r,r]}),e))},exports.BakeShadows=function(){const e=a.useThree((e=>e.gl));return t.useEffect((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[e.shadowMap]),null},exports.Billboard=le,exports.Bounds=on,exports.Box=_r,exports.Bvh=lr,exports.CameraControls=lt,exports.CameraShake=ln,exports.Capsule=Kr,exports.CatmullRomLine=pe,exports.Caustics=Ln,exports.Center=fr,exports.Circle=Lr,exports.Clone=Oe,exports.Cloud=function({opacity:e=.5,speed:t=.4,width:r=10,depth:n=1.5,segments:o=20,texture:i="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png",color:s="#ffffff",depthTest:l=!0,...c}){const u=P.useRef(),m=Se(i),d=P.useMemo((()=>[...new Array(o)].map(((e,n)=>({x:r/2-Math.random()*r,y:r/2-Math.random()*r,scale:.4+Math.sin((n+1)/o*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[r,o,t]);return a.useFrame((e=>{var t;return null==(t=u.current)?void 0:t.children.forEach(((t,r)=>{t.children[0].rotation.z+=d[r].rotation,t.children[0].scale.setScalar(d[r].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*r/10)}))})),P.createElement("group",c,P.createElement("group",{position:[0,0,o/2*n],ref:u},d.map((({x:t,y:r,scale:a,density:o},i)=>P.createElement(le,{key:i,position:[t,r,-i*n]},P.createElement(Ur,{scale:a,rotation:[0,0,0]},P.createElement("meshStandardMaterial",{map:m,transparent:!0,opacity:a/6*o*e,depthTest:l,color:s})))))))},exports.ComputedAttribute=({compute:e,name:t,...r})=>{const[a]=P.useState((()=>new n.BufferAttribute(new Float32Array(0),1))),o=P.useRef(null);return P.useLayoutEffect((()=>{if(o.current){var t;const r=null!==(t=o.current.parent)&&void 0!==t?t:o.current.__r3f.parent,n=e(r);o.current.copy(n)}}),[e]),P.createElement("primitive",C.default({ref:o,object:a,attach:`attributes-${t}`},r))},exports.Cone=Ar,exports.ContactShadows=gn,exports.CubeCamera=function({children:e,frames:t=1/0,resolution:r,near:n,far:o,envMap:i,fog:s,...l}){const c=P.useRef(),{fbo:u,camera:m,update:d}=Qe({resolution:r,near:n,far:o,envMap:i,fog:s});let f=0;return a.useFrame((()=>{c.current&&(t===1/0||f<t)&&(c.current.visible=!1,d(),c.current.visible=!0,f++)})),P.createElement("group",l,P.createElement("primitive",{object:m}),P.createElement("group",{ref:c},e(u.texture)))},exports.CubicBezierLine=fe,exports.CurveModifier=hr,exports.CycleRaycast=function({onChanged:e,portal:t,preventDefault:r=!0,scroll:n=!0,keyCode:o=9}){const i=P.useRef(0),s=a.useThree((e=>e.setEvents)),l=a.useThree((e=>e.get)),c=a.useThree((e=>e.gl));return P.useEffect((()=>{var a;let u,m=[];const d=l().events.filter,f=null!==(a=null==t?void 0:t.current)&&void 0!==a?a:c.domElement.parentNode,p=()=>f&&e&&e(m,Math.round(i.current)%m.length);s({filter:(e,t)=>{let r=[...e];r.length===m.length&&m.every((e=>r.map((e=>e.object.uuid)).includes(e.object.uuid)))||(i.current=0,m=r,p()),d&&(r=d(r,t));for(let e=0;e<Math.round(i.current)%r.length;e++){const e=r.shift();r=[...r,e]}return r}});const h=e=>{var t,r;i.current=e(i.current),null==(t=l().events.handlers)||t.onPointerCancel(void 0),null==(r=l().events.handlers)||r.onPointerMove(u),p()},x=e=>{(e.keyCode||e.which===o)&&(r&&e.preventDefault(),m.length>1&&h((e=>e+1)))},y=e=>{r&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),m.length>1&&h((e=>Math.abs(e-t)))},v=e=>u=e;return document.addEventListener("pointermove",v,{passive:!0}),n&&document.addEventListener("wheel",y),void 0!==o&&document.addEventListener("keydown",x),()=>{s({filter:d}),void 0!==o&&document.removeEventListener("keydown",x),n&&document.removeEventListener("wheel",y),document.removeEventListener("pointermove",v)}}),[c,l,s,r,n,o]),null},exports.Cylinder=Br,exports.Decal=We,exports.Detailed=ja,exports.DeviceOrientationControls=Je,exports.Dodecahedron=$r,exports.Edges=Fe,exports.Effects=be,exports.Environment=vn,exports.EnvironmentCube=hn,exports.EnvironmentMap=pn,exports.EnvironmentPortal=xn,exports.Example=pr,exports.Extrude=Xr,exports.FaceControls=bt,exports.FaceLandmarker=function({basePath:e=yt.basePath,options:r=yt.options,children:n}){const a=JSON.stringify(r),o=p.suspend((async()=>await g.FilesetResolver.forVisionTasks(e).then((e=>g.FaceLandmarker.createFromOptions(e,r)))),[e,a]);return t.useEffect((()=>()=>{null==o||o.close(),p.clear([e,a])}),[o,e,a]),P.createElement(xt.Provider,{value:o},n)},exports.FaceLandmarkerDefaults=yt,exports.Facemesh=dt,exports.FacemeshDatas=ht,exports.FacemeshEye=pt,exports.FacemeshEyeDefaults=ft,exports.FirstPersonControls=st,exports.Float=cn,exports.FlyControls=et,exports.GizmoHelper=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:r=1,onUpdate:o,onTarget:i,children:s})=>{const l=a.useThree((e=>e.size)),c=a.useThree((e=>e.camera)),u=a.useThree((e=>e.controls)),m=a.useThree((e=>e.invalidate)),d=P.useRef(),f=P.useRef(null),p=P.useRef(!1),h=P.useRef(0),x=P.useRef(new n.Vector3(0,0,0)),y=P.useRef(new n.Vector3(0,0,0));P.useEffect((()=>{y.current.copy(c.up)}),[c]);const v=P.useCallback((e=>{p.current=!0,(u||i)&&(x.current=(null==u?void 0:u.target)||(null==i?void 0:i())),h.current=c.position.distanceTo(Bt),Lt.copy(c.quaternion),Ot.copy(e).multiplyScalar(h.current).add(Bt),kt.lookAt(Ot),kt.up.copy(c.up),At.copy(kt.quaternion),m()}),[u,c,i,m]);a.useFrame(((e,t)=>{if(f.current&&d.current){var r;if(p.current)if(Lt.angleTo(At)<.01)p.current=!1,"minPolarAngle"in u&&c.up.copy(y.current);else{const e=t*Ft;Lt.rotateTowards(At,e),c.position.set(0,0,1).applyQuaternion(Lt).multiplyScalar(h.current).add(x.current),c.up.set(0,1,0).applyQuaternion(Lt).normalize(),c.quaternion.copy(Lt),o?o():u&&u.update(),m()}_t.copy(c.matrix).invert(),null==(r=d.current)||r.quaternion.setFromRotationMatrix(_t)}}));const g=P.useMemo((()=>({tweenCamera:v})),[v]),[z,w]=t,b=e.endsWith("-center")?0:e.endsWith("-left")?-l.width/2+z:l.width/2-z,E=e.startsWith("center-")?0:e.startsWith("top-")?l.height/2-w:-l.height/2+w;return P.createElement(Pt,{renderPriority:r},P.createElement(Rt.Provider,{value:g},P.createElement(Ke,{makeDefault:!0,ref:f,position:[0,0,200]}),P.createElement("group",{ref:d,position:[b,E,0]},s)))},exports.GizmoViewcube=e=>P.createElement("group",{scale:[60,60,60]},P.createElement(Yt,e),qt.map(((t,r)=>P.createElement(Kt,C.default({key:r,position:t,dimensions:$t[r]},e)))),Gt.map(((t,r)=>P.createElement(Kt,C.default({key:r,position:t,dimensions:Ht},e)))),P.createElement("ambientLight",{intensity:.5}),P.createElement("pointLight",{position:[10,10,10],intensity:.5})),exports.GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:n="18px Inter var, Arial, sans-serif",axisColors:a=["#ff2060","#20df80","#2080ff"],axisHeadScale:o=1,axisScale:i,labels:s=["X","Y","Z"],labelColor:l="#000",onClick:c,...u})=>{const[m,d,f]=a,{tweenCamera:p}=Dt(),h={font:n,disabled:r,labelColor:l,onClick:c,axisHeadScale:o,onPointerDown:r?void 0:e=>{p(e.object.position),e.stopPropagation()}};return P.createElement("group",C.default({scale:40},u),P.createElement(Zt,{color:m,rotation:[0,0,0],scale:i}),P.createElement(Zt,{color:d,rotation:[0,0,Math.PI/2],scale:i}),P.createElement(Zt,{color:f,rotation:[0,-Math.PI/2,0],scale:i}),!t&&P.createElement(P.Fragment,null,P.createElement(Qt,C.default({arcStyle:m,position:[1,0,0],label:s[0]},h)),P.createElement(Qt,C.default({arcStyle:d,position:[0,1,0],label:s[1]},h)),P.createElement(Qt,C.default({arcStyle:f,position:[0,0,1],label:s[2]},h)),!e&&P.createElement(P.Fragment,null,P.createElement(Qt,C.default({arcStyle:m,position:[-1,0,0]},h)),P.createElement(Qt,C.default({arcStyle:d,position:[0,-1,0]},h)),P.createElement(Qt,C.default({arcStyle:f,position:[0,0,-1]},h)))),P.createElement("ambientLight",{intensity:.5}),P.createElement("pointLight",{position:[10,10,10],intensity:.5}))},exports.Gltf=Xe,exports.GradientTexture=function({stops:e,colors:t,size:r=1024,...n}){const a=P.useMemo((()=>{const n=document.createElement("canvas"),a=n.getContext("2d");n.width=16,n.height=r;const o=a.createLinearGradient(0,0,0,r);let i=e.length;for(;i--;)o.addColorStop(e[i],t[i]);return a.fillStyle=o,a.fillRect(0,0,16,r),n}),[e]);return P.createElement("canvasTexture",C.default({args:[a],attach:"map"},n))},exports.Grid=er,exports.Html=K,exports.Hud=Pt,exports.Icosahedron=Hr,exports.Image=De,exports.Instance=La,exports.Instances=Aa,exports.IsObject=Me,exports.KeyboardControls=function({map:e,children:t,onChange:r,domElement:n}){const a=e.map((e=>e.name+e.keys)).join("-"),o=P.useMemo((()=>k.default(u.subscribeWithSelector((()=>e.reduce(((e,t)=>({...e,[t.name]:!1})),{}))))),[a]),i=P.useMemo((()=>[o.subscribe,o.getState,o]),[a]),s=o.setState;return P.useEffect((()=>{const t=e.map((({name:e,keys:t,up:n})=>({keys:t,up:n,fn:t=>{s({[e]:t}),r&&r(e,t,i[1]())}}))).reduce(((e,{keys:t,fn:r,up:n=!0})=>(t.forEach((t=>e[t]={fn:r,pressed:!1,up:n})),e)),{}),a=({key:e,code:r})=>{const n=t[e]||t[r];if(!n)return;const{fn:a,pressed:o,up:i}=n;n.pressed=!0,!i&&o||a(!0)},o=({key:e,code:r})=>{const n=t[e]||t[r];if(!n)return;const{fn:a,up:o}=n;n.pressed=!1,o&&a(!1)},l=n||window;return l.addEventListener("keydown",a,{passive:!0}),l.addEventListener("keyup",o,{passive:!0}),()=>{l.removeEventListener("keydown",a),l.removeEventListener("keyup",o)}}),[n,a]),P.createElement(ie.Provider,{value:i,children:t})},exports.Lathe=Yr,exports.Lightformer=jn,exports.Line=ue,exports.Loader=function({containerStyles:e,innerStyles:t,barStyles:r,dataStyles:n,dataInterpolation:a=J,initialState:o=(e=>e)}){const{active:i,progress:s}=Q(),l=P.useRef(0),c=P.useRef(0),u=P.useRef(null),[m,d]=P.useState(o(i));P.useEffect((()=>{let e;return i!==m&&(e=setTimeout((()=>d(i)),300)),()=>clearTimeout(e)}),[m,i]);const f=P.useCallback((()=>{u.current&&(l.current+=(s-l.current)/2,(l.current>.95*s||100===s)&&(l.current=s),u.current.innerText=a(l.current),l.current<s&&(c.current=requestAnimationFrame(f)))}),[a,s]);return P.useEffect((()=>(f(),()=>cancelAnimationFrame(c.current))),[f]),m?P.createElement("div",{style:{...ee.container,opacity:i?1:0,...e}},P.createElement("div",null,P.createElement("div",{style:{...ee.inner,...t}},P.createElement("div",{style:{...ee.bar,transform:`scaleX(${s/100})`,...r}}),P.createElement("span",{ref:u,style:{...ee.data,...n}})))):null},exports.MapControls=tt,exports.MarchingCube=Ie,exports.MarchingCubes=Ne,exports.MarchingPlane=Ve,exports.Mask=Ka,exports.Merged=Ba,exports.MeshDiscardMaterial=Pr,exports.MeshDistortMaterial=yr,exports.MeshPortalMaterial=Qa,exports.MeshReflectorMaterial=Er,exports.MeshRefractionMaterial=function({aberrationStrength:e=0,fastChroma:r=!0,envMap:n,...o}){a.extend({MeshRefractionMaterial:Mr});const i=t.useRef(),{size:s}=a.useThree(),l=t.useMemo((()=>{var t,a;const o={},i=(s=n)&&s.isCubeTexture;var s;const l=(null!==(t=i?null==(a=n.image[0])?void 0:a.width:n.image.width)&&void 0!==t?t:1024)/4,c=Math.floor(Math.log2(l)),u=Math.pow(2,c),m=3*Math.max(u,112),d=4*u;return i&&(o.ENVMAP_TYPE_CUBEM=""),o.CUBEUV_TEXEL_WIDTH=""+1/m,o.CUBEUV_TEXEL_HEIGHT=""+1/d,o.CUBEUV_MAX_MIP=`${c}.0`,e>0&&(o.CHROMATIC_ABERRATIONS=""),r&&(o.FAST_CHROMA=""),o}),[e,r]);return t.useLayoutEffect((()=>{var e,t,r;const n=null==(e=i.current)||null==(t=e.__r3f)||null==(r=t.parent)?void 0:r.geometry;n&&(i.current.bvh=new b.MeshBVHUniformStruct,i.current.bvh.updateFrom(new b.MeshBVH(n.clone().toNonIndexed(),{lazyGeneration:!1,strategy:b.SAH})))}),[]),a.useFrame((({camera:e})=>{i.current.viewMatrixInverse=e.matrixWorld,i.current.projectionMatrixInverse=e.projectionMatrixInverse})),P.createElement("meshRefractionMaterial",C.default({key:JSON.stringify(l),defines:l,ref:i,resolution:[s.width,s.height],aberrationStrength:e,envMap:n},o))},exports.MeshTransmissionMaterial=Cr,exports.MeshWobbleMaterial=gr,exports.Octahedron=qr,exports.OrbitControls=rt,exports.OrthographicCamera=Ke,exports.PerformanceMonitor=function({iterations:e=10,ms:r=250,threshold:n=.75,step:o=.1,factor:i=.5,flipflops:s=1/0,bounds:l=(e=>e>100?[60,100]:[40,60]),onIncline:c,onDecline:u,onChange:m,onFallback:d,children:f}){const p=Math.pow(10,0),[h,x]=t.useState((()=>({fps:0,index:0,factor:i,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{const t=Symbol();return h.subscriptions.set(t,e.current),()=>{h.subscriptions.delete(t)}}})));let y=0;return a.useFrame((()=>{const{frames:t,averages:a}=h;if(!h.fallback&&a.length<e){t.push(performance.now());const i=t[t.length-1]-t[0];if(i>=r){if(h.fps=Math.round(t.length/i*1e3*p)/p,h.refreshrate=Math.max(h.refreshrate,h.fps),a[h.index++%e]=h.fps,a.length===e){const[t,r]=l(h.refreshrate),i=a.filter((e=>e>=r)),f=a.filter((e=>e<t));i.length>e*n&&(h.factor=Math.min(1,h.factor+o),h.flipped++,c&&c(h),h.subscriptions.forEach((e=>e.onIncline&&e.onIncline(h)))),f.length>e*n&&(h.factor=Math.max(0,h.factor-o),h.flipped++,u&&u(h),h.subscriptions.forEach((e=>e.onDecline&&e.onDecline(h)))),y!==h.factor&&(y=h.factor,m&&m(h),h.subscriptions.forEach((e=>e.onChange&&e.onChange(h)))),h.flipped>s&&!h.fallback&&(h.fallback=!0,d&&d(h),h.subscriptions.forEach((e=>e.onFallback&&e.onFallback(h)))),h.averages=[]}h.frames=[]}}})),P.createElement($a.Provider,{value:h},f)},exports.PerspectiveCamera=Ze,exports.PivotControls=qo,exports.Plane=Ur,exports.Point=ga,exports.PointMaterial=Dr,exports.PointMaterialImpl=Rr,exports.PointerLockControls=it,exports.Points=wa,exports.PointsBuffer=za,exports.Polyhedron=Gr,exports.PositionPoint=da,exports.PositionalAudio=he,exports.Preload=function({all:e,scene:t,camera:r}){const o=a.useThree((({gl:e})=>e)),i=a.useThree((({camera:e})=>e)),s=a.useThree((({scene:e})=>e));return P.useLayoutEffect((()=>{const a=[];e&&(t||s).traverse((e=>{!1===e.visible&&(a.push(e),e.visible=!0)})),o.compile(t||s,r||i);const l=new n.WebGLCubeRenderTarget(128);new n.CubeCamera(.01,1e5,l).update(o,t||s),l.dispose(),a.forEach((e=>e.visible=!1))}),[]),null},exports.PresentationControls=function({enabled:e=!0,snap:t,global:r,domElement:o,cursor:i=!0,children:s,speed:u=1,rotation:m=[0,0,0],zoom:d=1,polar:f=[0,Math.PI/2],azimuth:p=[-1/0,1/0],config:h={mass:1,tension:170,friction:26}}){const x=a.useThree((e=>e.events)),y=a.useThree((e=>e.gl)),v=o||x.connected||y.domElement,{size:g}=a.useThree(),z=P.useMemo((()=>[m[0]+f[0],m[0]+f[1]]),[m[0],f[0],f[1]]),w=P.useMemo((()=>[m[1]+p[0],m[1]+p[1]]),[m[1],p[0],p[1]]),b=P.useMemo((()=>[n.MathUtils.clamp(m[0],...z),n.MathUtils.clamp(m[1],...w),m[2]]),[m[0],m[1],m[2],z,w]),[E,M]=l.useSpring((()=>({scale:1,rotation:b,config:h})));P.useEffect((()=>{M.start({scale:1,rotation:b,config:h})}),[b]),P.useEffect((()=>{if(r&&i&&e)return v.style.cursor="grab",y.domElement.style.cursor="",()=>{v.style.cursor="default",y.domElement.style.cursor="default"}}),[r,i,v,e]);const S=c.useGesture({onHover:({last:t})=>{i&&!r&&e&&(v.style.cursor=t?"auto":"grab")},onDrag:({down:r,delta:[a,o],memo:[s,l]=E.rotation.animation.to||b})=>{if(!e)return[o,a];i&&(v.style.cursor=r?"grabbing":"grab"),a=n.MathUtils.clamp(l+a/g.width*Math.PI*u,...w),o=n.MathUtils.clamp(s+o/g.height*Math.PI*u,...z);const c=t&&!r&&"boolean"!=typeof t?t:h;return M.start({scale:r&&o>z[1]/2?d:1,rotation:t&&!r?b:[o,a,0],config:e=>"scale"===e?{...c,friction:3*c.friction}:c}),[o,a]}},{target:r?v:void 0});return P.createElement(l.a.group,C.default({},null==S?void 0:S(),E),s)},exports.QuadraticBezierLine=de,exports.RandomizedLight=En,exports.Reflector=An,exports.RenderTexture=Xa,exports.Resize=rn,exports.Ring=Wr,exports.RoundedBox=Jr,exports.Sampler=function({children:e,weight:t,transform:r,instances:n,mesh:a,count:o=16,...i}){const s=P.useRef(null),l=P.useRef(null),c=P.useRef(null);return P.useLayoutEffect((()=>{var e,t;l.current=null!==(e=null==n?void 0:n.current)&&void 0!==e?e:s.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),c.current=null!==(t=null==a?void 0:a.current)&&void 0!==t?t:s.current.children.find((e=>"Mesh"===e.type))}),[e,null==a?void 0:a.current,null==n?void 0:n.current]),Be(c,o,r,t,l),P.createElement("group",C.default({ref:s},i),e)},exports.ScreenQuad=tn,exports.ScreenSpace=ce,exports.Scroll=oe,exports.ScrollControls=function({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:n,pages:o=1,distance:i=1,damping:l=.25,maxSpeed:c=1/0,style:u={},children:m}){const{get:d,setEvents:f,gl:p,size:h,invalidate:x,events:y}=a.useThree(),[v]=P.useState((()=>document.createElement("div"))),[g]=P.useState((()=>document.createElement("div"))),[z]=P.useState((()=>document.createElement("div"))),w=p.domElement.parentNode,b=P.useRef(0),E=P.useMemo((()=>{const t={el:v,eps:e,fill:g,fixed:z,horizontal:n,damping:l,offset:0,delta:0,scroll:b,pages:o,range(e,t,r=0){const n=e-r,a=n+t+2*r;return this.offset<n?0:this.offset>a?1:(this.offset-n)/(a-n)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const n=e-r,a=n+t+2*r;return this.offset>=n&&this.offset<=a}};return t}),[e,l,n,o]);P.useEffect((()=>{v.style.position="absolute",v.style.width="100%",v.style.height="100%",v.style[n?"overflowX":"overflowY"]="auto",v.style[n?"overflowY":"overflowX"]="hidden",v.style.top="0px",v.style.left="0px";for(const e in u)v.style[e]=u[e];z.style.position="sticky",z.style.top="0px",z.style.left="0px",z.style.width="100%",z.style.height="100%",z.style.overflow="hidden",v.appendChild(z),g.style.height=n?"100%":o*i*100+"%",g.style.width=n?o*i*100+"%":"100%",g.style.pointerEvents="none",v.appendChild(g),w.appendChild(v),v[n?"scrollLeft":"scrollTop"]=1;const e=y.connected||p.domElement;requestAnimationFrame((()=>null==y.connect?void 0:y.connect(v)));const t=d().events.compute;return f({compute(e,t){const{left:r,top:n}=w.getBoundingClientRect(),a=e.clientX-r,o=e.clientY-n;t.pointer.set(a/t.size.width*2-1,-o/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{w.removeChild(v),f({compute:t}),null==y.connect||y.connect(e)}}),[o,i,n,v,g,z,w]),P.useEffect((()=>{if(y.connected===v){const e=h[n?"width":"height"],a=v[n?"scrollWidth":"scrollHeight"],o=a-e;let i=0,s=!0,l=!0;const c=()=>{if(t&&!l&&(x(),i=v[n?"scrollLeft":"scrollTop"],b.current=i/o,r)){if(!s)if(i>=o){const e=1-E.offset;v[n?"scrollLeft":"scrollTop"]=1,b.current=E.offset=-e,s=!0}else if(i<=0){const e=1+E.offset;v[n?"scrollLeft":"scrollTop"]=a,b.current=E.offset=e,s=!0}s&&setTimeout((()=>s=!1),40)}};v.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>l=!1));const u=e=>v.scrollLeft+=e.deltaY/2;return n&&v.addEventListener("wheel",u,{passive:!0}),()=>{v.removeEventListener("scroll",c),n&&v.removeEventListener("wheel",u)}}}),[v,y,h,r,E,x,n,t]);let M=0;return a.useFrame(((t,r)=>{M=E.offset,s.easing.damp(E,"offset",b.current,l,r,c,void 0,e),s.easing.damp(E,"delta",Math.abs(M-E.offset),l,r,c,void 0,e),E.delta>e&&x()})),P.createElement(te.Provider,{value:E},m)},exports.Segment=Va,exports.SegmentObject=Na,exports.Segments=Ua,exports.Select=function({box:e,multiple:t,children:r,onChange:n,onChangePointerUp:o,border:i="1px solid #55aaff",backgroundColor:s="rgba(75, 160, 255, 0.1)",filter:l=(e=>e),...c}){const[u,d]=P.useState(!1),{setEvents:f,camera:p,raycaster:h,gl:x,controls:y,size:v,get:g}=a.useThree(),[z,w]=P.useState(!1),[b,E]=P.useReducer(((e,{object:t,shift:r})=>void 0===t?[]:Array.isArray(t)?t:r?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);P.useEffect((()=>{u?null==n||n(b):null==o||o(b)}),[b,u]);const M=P.useCallback((e=>{e.stopPropagation(),E({object:l([e.object])[0],shift:t&&e.shiftKey})}),[]),S=P.useCallback((e=>!z&&E({})),[z]),T=P.useRef(null);return P.useEffect((()=>{if(!e||!t)return;const r=new m.SelectionBox(p,T.current),n=document.createElement("div");n.style.pointerEvents="none",n.style.border=i,n.style.backgroundColor=s,n.style.position="fixed";const a=new D.Vector2,o=new D.Vector2,c=new D.Vector2,u=g().events.enabled,h=null==y?void 0:y.enabled;let z=!1;function w(e,t){const{offsetX:r,offsetY:n}=e,{width:a,height:o}=v;t.set(r/a*2-1,-n/o*2+1)}function b(e){e.shiftKey&&(!function(e){var t;y&&(y.enabled=!1),f({enabled:!1}),d(z=!0),null==(t=x.domElement.parentElement)||t.appendChild(n),n.style.left=`${e.clientX}px`,n.style.top=`${e.clientY}px`,n.style.width="0px",n.style.height="0px",a.x=e.clientX,a.y=e.clientY}(e),w(e,r.startPoint))}let M=[];function S(e){if(z){!function(e){c.x=Math.max(a.x,e.clientX),c.y=Math.max(a.y,e.clientY),o.x=Math.min(a.x,e.clientX),o.y=Math.min(a.y,e.clientY),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=c.x-o.x+"px",n.style.height=c.y-o.y+"px"}(e),w(e,r.endPoint);const t=r.select().sort((e=>e.uuid)).filter((e=>e.isMesh));L.default(t,M)||(M=t,E({object:l(t)}))}}function C(e){var t;z&&z&&(y&&(y.enabled=h),f({enabled:u}),d(z=!1),null==(t=n.parentElement)||t.removeChild(n))}return document.addEventListener("pointerdown",b,{passive:!0}),document.addEventListener("pointermove",S,{passive:!0,capture:!0}),document.addEventListener("pointerup",C,{passive:!0}),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("pointermove",S),document.removeEventListener("pointerup",C)}}),[v.width,v.height,h,p,y,x]),P.createElement("group",C.default({ref:T,onClick:M,onPointerOver:()=>w(!0),onPointerOut:()=>w(!1),onPointerMissed:S},c),P.createElement(se.Provider,{value:b},r))},exports.Shadow=Pn,exports.Shape=Zr,exports.Sky=Gn,exports.SoftShadows=function({focus:e=0,samples:t=10,size:r=25}){const n=a.useThree((e=>e.gl)),o=a.useThree((e=>e.scene)),i=a.useThree((e=>e.camera));return P.useEffect((()=>{const a=D.ShaderChunk.shadowmap_pars_fragment;return D.ShaderChunk.shadowmap_pars_fragment=D.ShaderChunk.shadowmap_pars_fragment.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({focus:e=0,size:t=25,samples:r=10}={})=>`\n#define PENUMBRA_FILTER_SIZE float(${t})\n#define RGB_NOISE_FUNCTION(uv) (randRGB(uv))\nvec3 randRGB(vec2 uv) {\n return vec3(\n fract(sin(dot(uv, vec2(12.75613, 38.12123))) * 13234.76575),\n fract(sin(dot(uv, vec2(19.45531, 58.46547))) * 43678.23431),\n fract(sin(dot(uv, vec2(23.67817, 78.23121))) * 93567.23423)\n );\n}\n\nvec3 lowPassRandRGB(vec2 uv) {\n // 3x3 convolution (average)\n // can be implemented as separable with an extra buffer for a total of 6 samples instead of 9\n vec3 result = vec3(0);\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(-1.0, +1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2( 0.0, +1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, -1.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, 0.0));\n result += RGB_NOISE_FUNCTION(uv + vec2(+1.0, +1.0));\n result *= 0.111111111; // 1.0 / 9.0\n return result;\n}\nvec3 highPassRandRGB(vec2 uv) {\n // by subtracting the low-pass signal from the original signal, we're being left with the high-pass signal\n // hp(x) = x - lp(x)\n return RGB_NOISE_FUNCTION(uv) - lowPassRandRGB(uv) + 0.5;\n}\n\n\nvec2 vogelDiskSample(int sampleIndex, int sampleCount, float angle) {\n const float goldenAngle = 2.399963f; // radians\n float r = sqrt(float(sampleIndex) + 0.5f) / sqrt(float(sampleCount));\n float theta = float(sampleIndex) * goldenAngle + angle;\n float sine = sin(theta);\n float cosine = cos(theta);\n return vec2(cosine, sine) * r;\n}\nfloat penumbraSize( const in float zReceiver, const in float zBlocker ) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\nfloat findBlocker(sampler2D shadowMap, vec2 uv, float compare, float angle) {\n float texelSize = 1.0 / float(textureSize(shadowMap, 0).x);\n float blockerDepthSum = float(${e});\n float blockers = 0.0;\n\n int j = 0;\n vec2 offset = vec2(0.);\n float depth = 0.;\n\n #pragma unroll_loop_start\n for(int i = 0; i < ${r}; i ++) {\n offset = (vogelDiskSample(j, ${r}, angle) * texelSize) * 2.0 * PENUMBRA_FILTER_SIZE;\n depth = unpackRGBAToDepth( texture2D( shadowMap, uv + offset));\n if (depth < compare) {\n blockerDepthSum += depth;\n blockers++;\n }\n j++;\n }\n #pragma unroll_loop_end\n\n if (blockers > 0.0) {\n return blockerDepthSum / blockers;\n }\n return -1.0;\n}\n\n \nfloat vogelFilter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius, float angle) {\n float texelSize = 1.0 / float(textureSize(shadowMap, 0).x);\n float shadow = 0.0f;\n int j = 0;\n vec2 vogelSample = vec2(0.0);\n vec2 offset = vec2(0.0);\n #pragma unroll_loop_start\n for (int i = 0; i < ${r}; i++) {\n vogelSample = vogelDiskSample(j, ${r}, angle) * texelSize;\n offset = vogelSample * (1.0 + filterRadius * float(${t}));\n shadow += step( zReceiver, unpackRGBAToDepth( texture2D( shadowMap, uv + offset ) ) );\n j++;\n }\n #pragma unroll_loop_end\n return shadow * 1.0 / ${r}.0;\n}\n\nfloat PCSS (sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n float angle = highPassRandRGB(gl_FragCoord.xy).r * PI2;\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver, angle);\n if (avgBlockerDepth == -1.0) {\n return 1.0;\n }\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle);\n}`)({size:r,samples:t,focus:e})).replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),Fr(n,o,i),()=>{D.ShaderChunk.shadowmap_pars_fragment=a,Fr(n,o,i)}}),[e,r,t]),null},exports.Sparkles=Jn,exports.Sphere=Or,exports.SpotLight=Vn,exports.SpotLightShadow=function(e){return e.shader?P.createElement(Nn,e):P.createElement(In,e)},exports.SpriteAnimator=({startFrame:e,endFrame:t,fps:r,frameName:n,textureDataURL:o,textureImageURL:i,loop:s,numberOfFrames:l,autoPlay:c,animationNames:u,onStart:m,onEnd:d,onLoopEnd:f,onFrame:p,play:h,pause:x,flipX:y,alphaTest:v,children:g,...z},w)=>{a.useThree((e=>e.viewport));const b=P.useRef(null),[E,M]=P.useState(!1),S=P.useRef(),T=P.useRef(),C=P.useRef(window.performance.now()),R=P.useRef(),F=P.useRef(e||0),k=P.useRef(n||""),_=1e3/(r||30),[L,A]=P.useState(new D.Texture),B=P.useRef(0),[O,U]=P.useState([1,1,1]),N=y?-1:1;const I=(e,t)=>{const r=t/e;return T.current.scale.set(1,r,1),[1,r,1]};P.useEffect((()=>{if(o&&i)!function(e,t,r){const n=new D.TextureLoader,a=fetch(e).then((e=>e.json())),o=new Promise((e=>{n.load(t,e)}));Promise.all([a,o]).then((e=>{r(e[0],e[1])}))}(o,i,V);else if(i){const e=new D.TextureLoader;new Promise((t=>{e.load(i,t)})).then((e=>{V(null,e)}))}}),[]),P.useLayoutEffect((()=>{W()}),[L]),P.useEffect((()=>{}),[x]),P.useEffect((()=>{k.current!==n&&n&&(F.current=0,k.current=n)}),[n]);const V=(e,t)=>{if(null===e){if(t&&l){const e=t.image.width,r=t.image.height,n=e/l,a=r;if(R.current=t,B.current=l,b.current={frames:[],meta:{version:"1.0",size:{w:e,h:r},scale:"1"}},parseInt(n.toString(),10)===n)for(let e=0;e<l;e++)b.current.frames.push({frame:{x:e*n,y:0,w:n,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:n,h:a},sourceSize:{w:n,h:r}})}}else if(t){b.current=e,b.current.frames=Array.isArray(e.frames)?e.frames:j(),B.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,R.current=t;const{w:r,h:n}=G(e.frames).sourceSize,a=I(r,n);U(a),S.current&&(S.current.map=t)}t.premultiplyAlpha=!1,A(t)},j=()=>{const e={},t=b.current,r=u;if(r)for(let n=0;n<r.length;n++){e[r[n]]=[];for(let a in t.frames){const o=t.frames[a],i=o.frame,s=i.x,l=i.y,c=i.w,u=i.h,m=o.sourceSize.w,d=o.sourceSize.h;"string"==typeof a&&-1!==a.toLowerCase().indexOf(r[n].toLowerCase())&&e[r[n]].push({x:s,y:l,w:c,h:u,frame:i,sourceSize:{w:m,h:d}})}}return e},W=()=>{if(!b.current)return;const{meta:{size:e},frames:t}=b.current,{w:r,h:a}=Array.isArray(t)?t[0].sourceSize:n&&t[n]?t[n][0].sourceSize:{w:0,h:0};S.current.map.wrapS=S.current.map.wrapT=D.RepeatWrapping,S.current.map.center.set(0,0),S.current.map.repeat.set(1*N/(e.w/r),1/(e.h/a));const o=1/((e.h-1)/a);S.current.map.offset.x=0,S.current.map.offset.y=1-o,M(!0),m&&m({currentFrameName:n,currentFrame:F.current})};a.useFrame(((r,a)=>{var o,i;null!=(o=b.current)&&o.frames&&null!=(i=S.current)&&i.map&&(x||(c||h)&&((()=>{const r=window.performance.now(),a=r-C.current,{meta:{size:o},frames:i}=b.current,{w:l,h:c}=G(i).sourceSize,u=Array.isArray(i)?i:n?i[n]:[];let m=0,p=0;const h=t||u.length-1;if(F.current>h&&(F.current=s&&null!=e?e:0,s?null==f||f({currentFrameName:n,currentFrame:F.current}):null==d||d({currentFrameName:n,currentFrame:F.current}),!s))return;if(a<=_)return;C.current=r-a%_,I(l,c);const x=(o.w-1)/l,y=(o.h-1)/c,{frame:{x:v,y:g},sourceSize:{w:z,h:w}}=u[F.current],E=1/x,M=1/y;m=N>0?E*(v/z):E*(v/z)-S.current.map.repeat.x,p=Math.abs(1-M)-M*(g/w),S.current.map.offset.x=m,S.current.map.offset.y=p,F.current+=1})(),p&&p({currentFrameName:k.current,currentFrame:F.current})))}));const G=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){return e[Object.keys(e)[0]][0]}return{w:0,h:0}};return P.createElement("group",z,P.createElement(P.Suspense,{fallback:null},P.createElement("sprite",{ref:T,scale:O},P.createElement("spriteMaterial",{toneMapped:!1,ref:S,map:L,transparent:!0,alphaTest:null!=v?v:0}))),g)},exports.Stage=function({children:e,center:t,adjustCamera:r=!0,intensity:n=.5,shadows:a="contact",environment:o="city",preset:i="rembrandt",...s}){var l,c,u,m,d,f,p,h;const x="string"==typeof i?Sn[i]:i,[{radius:y,height:v},g]=P.useState({radius:0,width:0,height:0,depth:0}),z=null!==(l=null==a?void 0:a.bias)&&void 0!==l?l:-1e-4,w=null!==(c=null==a?void 0:a.normalBias)&&void 0!==c?c:0,b=null!==(u=null==a?void 0:a.size)&&void 0!==u?u:1024,E=null!==(m=null==a?void 0:a.offset)&&void 0!==m?m:0,M="contact"===a||"contact"===(null==a?void 0:a.type),S="accumulative"===a||"accumulative"===(null==a?void 0:a.type),T={..."object"==typeof a?a:{}},R=o?"string"==typeof o?{preset:o}:o:null,D=P.useCallback((e=>{const{width:r,height:n,depth:a,boundingSphere:o}=e;g({radius:o.radius,width:r,height:n,depth:a}),null!=t&&t.onCentered&&t.onCentered(e)}),[]);return P.createElement(P.Fragment,null,P.createElement("ambientLight",{intensity:n/3}),P.createElement("spotLight",{penumbra:1,position:[x.main[0]*y,x.main[1]*y,x.main[2]*y],intensity:2*n,castShadow:!!a,"shadow-bias":z,"shadow-normalBias":w,"shadow-mapSize":b}),P.createElement("pointLight",{position:[x.fill[0]*y,x.fill[1]*y,x.fill[2]*y],intensity:n}),P.createElement(on,C.default({fit:!!r,clip:!!r,margin:Number(r),observe:!0},s),P.createElement(Tn,{radius:y,adjustCamera:r}),P.createElement(fr,C.default({},t,{position:[0,E/2,0],onCentered:D}),e)),P.createElement("group",{position:[0,-v/2-E/2,0]},M&&P.createElement(gn,C.default({scale:4*y,far:y,blur:2},T)),S&&P.createElement(bn,C.default({temporal:!0,frames:100,alphaTest:.9,toneMapped:!0,scale:4*y},T),P.createElement(En,{amount:null!==(d=T.amount)&&void 0!==d?d:8,radius:null!==(f=T.radius)&&void 0!==f?f:y,ambient:null!==(p=T.ambient)&&void 0!==p?p:.5,intensity:null!==(h=T.intensity)&&void 0!==h?h:1,position:[x.main[0]*y,x.main[1]*y,x.main[2]*y],size:4*y,bias:-z,mapSize:b}))),o&&P.createElement(vn,R))},exports.Stars=$n,exports.Stats=function({showPanel:e=0,className:t,parent:r}){const n=function(e,t=[],r){const[n,a]=P.useState();return P.useLayoutEffect((()=>{const t=e();return a(t),or(r,t),()=>or(r,null)}),t),n}((()=>new U.default),[]);return P.useEffect((()=>{if(n){const o=r&&r.current||document.body;n.showPanel(e),null==o||o.appendChild(n.dom),t&&n.dom.classList.add(...t.split(" ").filter((e=>e)));const i=a.addEffect((()=>n.begin())),s=a.addAfterEffect((()=>n.end()));return()=>{null==o||o.removeChild(n.dom),i(),s()}}}),[r,n,t,e]),null},exports.Svg=Ge,exports.Tetrahedron=jr,exports.Text=xe,exports.Text3D=we,exports.Torus=Ir,exports.TorusKnot=Vr,exports.TrackballControls=nt,exports.Trail=Ae,exports.TransformControls=ot,exports.Tube=Nr,exports.View=({track:e,index:t=1,frames:r=1/0,children:n})=>{var o,i;const s=P.useRef(null),{size:l,scene:c}=a.useThree(),[u]=P.useState((()=>new D.Scene)),m=P.useCallback(((t,r)=>{if(s.current&&e.current&&t.target===e.current){const{width:e,height:n,left:a,top:o}=s.current,i=t.clientX-a,l=t.clientY-o;r.pointer.set(i/e*2-1,-l/n*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)}}),[s,e]),[d,f]=P.useReducer((()=>!0),!1);return P.useEffect((()=>{var t;s.current=null==(t=e.current)?void 0:t.getBoundingClientRect(),f()}),[e]),P.createElement(P.Fragment,null,d&&a.createPortal(P.createElement(no,{canvasSize:l,frames:r,scene:c,track:e,rect:s,index:t},n,P.createElement("group",{onPointerOver:()=>null})),u,{events:{compute:m,priority:t},size:{width:null==(o=s.current)?void 0:o.width,height:null==(i=s.current)?void 0:i.height}}))},exports.Wireframe=function({geometry:e,...t}){return e?P.createElement(ia,C.default({geometry:e},t)):P.createElement(sa,t)},exports.accumulativeContext=zn,exports.calcPosFromAngles=Wn,exports.calculateScaleFactor=Po,exports.isWebGL2Available=()=>{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},exports.meshBounds=function(e,t){const r=this.geometry,n=this.material,a=this.matrixWorld;void 0!==n&&(null===r.boundingSphere&&r.computeBoundingSphere(),Ha.copy(r.boundingSphere),Ha.applyMatrix4(a),!1!==e.ray.intersectsSphere(Ha)&&(Wa.copy(a).invert(),Ga.copy(e.ray).applyMatrix4(Wa),null!==r.boundingBox&&null===Ga.intersectBox(r.boundingBox,qa)||t.push({distance:qa.distanceTo(e.ray.origin),point:qa.clone(),object:this})))},exports.shaderMaterial=Ee,exports.useAnimations=function(e,t){const r=P.useRef(),[o]=P.useState((()=>t?t instanceof n.Object3D?{current:t}:t:r)),[i]=P.useState((()=>new n.AnimationMixer(void 0)));P.useLayoutEffect((()=>{i._root=o.current}),[i,t]);const s=P.useRef({}),[l]=P.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(o.current)return s.current[e.name]||(s.current[e.name]=i.clipAction(e,o.current))},configurable:!0}))),{ref:o,clips:e,actions:t,names:e.map((e=>e.name)),mixer:i}}));return a.useFrame(((e,t)=>i.update(t))),P.useEffect((()=>{const e=o.current;return()=>{s.current={},Object.values(l.actions).forEach((t=>{e&&i.uncacheAction(t,e)}))}}),[e]),P.useEffect((()=>()=>{i.stopAllAction()}),[i]),l},exports.useAspect=function(e,t,r=1){const n=a.useThree((e=>e.viewport)),o=t*(n.aspect>e/t?n.width/e:n.height/t);return[e*(n.aspect>e/t?n.width/e:n.height/t)*r,o*r,1]},exports.useBVH=function(e,t){t={strategy:b.SAH,verbose:!1,setBoundingBox:!0,maxDepth:40,maxLeafTris:10,...t},P.useEffect((()=>{if(e.current){e.current.raycast=b.acceleratedRaycast;const r=e.current.geometry;return r.computeBoundsTree=b.computeBoundsTree,r.disposeBoundsTree=b.disposeBoundsTree,r.computeBoundsTree(t),()=>{r.boundsTree&&r.disposeBoundsTree()}}}),[e,JSON.stringify(t)])},exports.useBounds=sn,exports.useBoxProjectedEnv=function(e=new D.Vector3,t=new D.Vector3){const[r]=P.useState((()=>({position:new D.Vector3,size:new D.Vector3})));a.applyProps(r,{position:e,size:t});const n=P.useRef(null),o=P.useMemo((()=>({ref:n,onBeforeCompile:e=>function(e,t,r){e.defines.BOX_PROJECTED_ENV_MAP=!0,e.uniforms.envMapPosition={value:t},e.uniforms.envMapSize={value:r},e.vertexShader=`\n varying vec3 vWorldPosition;\n ${e.vertexShader.replace("#include <worldpos_vertex>","\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n #ifdef BOX_PROJECTED_ENV_MAP\n vWorldPosition = worldPosition.xyz;\n #endif\n#endif\n")}`,e.fragmentShader=`\n \n#ifdef BOX_PROJECTED_ENV_MAP\n uniform vec3 envMapSize;\n uniform vec3 envMapPosition;\n varying vec3 vWorldPosition;\n \n vec3 parallaxCorrectNormal( vec3 v, vec3 cubeSize, vec3 cubePos ) {\n vec3 nDir = normalize( v );\n vec3 rbmax = ( .5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbmin = ( -.5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbminmax;\n rbminmax.x = ( nDir.x > 0. ) ? rbmax.x : rbmin.x;\n rbminmax.y = ( nDir.y > 0. ) ? rbmax.y : rbmin.y;\n rbminmax.z = ( nDir.z > 0. ) ? rbmax.z : rbmin.z;\n float correction = min( min( rbminmax.x, rbminmax.y ), rbminmax.z );\n vec3 boxIntersection = vWorldPosition + nDir * correction; \n return boxIntersection - cubePos;\n }\n#endif\n\n ${e.fragmentShader.replace("#include <envmap_physical_pars_fragment>",D.ShaderChunk.envmap_physical_pars_fragment).replace("vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );","vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n \n#ifdef BOX_PROJECTED_ENV_MAP\n worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition );\n#endif\n\n ").replace("reflectVec = inverseTransformDirection( reflectVec, viewMatrix );","reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n \n#ifdef BOX_PROJECTED_ENV_MAP\n reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition );\n#endif\n\n ")}`}(e,r.position,r.size),customProgramCacheKey:()=>JSON.stringify(r.position.toArray())+JSON.stringify(r.size.toArray())})),[...r.position.toArray(),...r.size.toArray()]);return P.useLayoutEffect((()=>{n.current.needsUpdate=!0}),[r]),o},exports.useCamera=function(e,t){const r=a.useThree((e=>e.pointer)),[o]=P.useState((()=>{const o=new n.Raycaster;return t&&a.applyProps(o,t,{}),function(t,a){o.setFromCamera(r,e instanceof n.Camera?e:e.current);const i=this.constructor.prototype.raycast.bind(this);i&&i(o,a)}}));return o},exports.useContextBridge=function(...e){const t=P.useRef([]);return t.current=e.map((e=>P.useContext(e))),P.useMemo((()=>({children:r})=>e.reduceRight(((e,r,n)=>P.createElement(r.Provider,{value:t.current[n],children:e})),r)),[])},exports.useCubeCamera=Qe,exports.useCubeTexture=tr,exports.useCursor=function(e,t="pointer",r="auto"){P.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=r}}),[e])},exports.useDepthBuffer=function({size:e=256,frames:t=1/0}={}){const r=a.useThree((e=>e.viewport.dpr)),{width:o,height:i}=a.useThree((e=>e.size)),s=e||o*r,l=e||i*r,c=P.useMemo((()=>{const e=new n.DepthTexture(s,l);return e.format=n.DepthFormat,e.type=n.UnsignedShortType,{depthTexture:e}}),[s,l]);let u=0;const m=Ye(s,l,c);return a.useFrame((e=>{(t===1/0||u<t)&&(e.gl.setRenderTarget(m),e.gl.render(e.scene,e.camera),e.gl.setRenderTarget(null),u++)})),m.depthTexture},exports.useDetectGPU=e=>p.suspend((()=>w.getGPUTier(e)),["useDetectGPU"]),exports.useEnvironment=dn,exports.useFBO=Ye,exports.useFBX=rr,exports.useFaceControls=Et,exports.useFaceLandmarker=vt,exports.useFont=ge,exports.useGLTF=$e,exports.useGizmoContext=Dt,exports.useHelper=ir,exports.useIntersect=function(e){const t=P.useRef(null),r=P.useRef(!1),n=P.useRef(!1),o=P.useRef(e);return P.useLayoutEffect((()=>{o.current=e}),[e]),P.useEffect((()=>{const e=t.current;if(e){const t=a.addEffect((()=>(r.current=!1,!0))),i=e.onBeforeRender;e.onBeforeRender=()=>r.current=!0;const s=a.addAfterEffect((()=>(r.current!==n.current&&(null==o.current||o.current(n.current=r.current)),!0)));return()=>{e.onBeforeRender=i,t(),s()}}}),[]),t},exports.useKTX2=ar,exports.useKeyboardControls=function(e){const[t,r,n]=P.useContext(ie);return e?n(e):[t,r]},exports.useMask=function(e,t=!1){return{stencilWrite:!0,stencilRef:e,stencilFunc:t?D.NotEqualStencilFunc:D.EqualStencilFunc,stencilFail:D.KeepStencilOp,stencilZFail:D.KeepStencilOp,stencilZPass:D.KeepStencilOp}},exports.useMatcapTexture=function(e=0,t=1024,r){const n=p.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json").then((e=>e.json()))),["matcapList"]),a=n[0],o=P.useMemo((()=>Object.keys(n).length),[]),i=`${P.useMemo((()=>"string"==typeof e?e:"number"==typeof e?n[e]:null),[e])||a}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(t)}.png`,s=`https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d/${t}/${i}`;return[Se(s,r),s,o]},exports.useNormalTexture=function(e=0,t={},r){const{repeat:a=[1,1],anisotropy:o=1,offset:i=[0,0]}=t,s=p.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json").then((e=>e.json()))),["normalsList"]),l=P.useMemo((()=>Object.keys(s).length),[]),c=s[0],u=`https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb/normals/${s[e]||c}`,m=Se(u,r);return P.useLayoutEffect((()=>{m&&(m.wrapS=m.wrapT=n.RepeatWrapping,m.repeat=new n.Vector2(a[0],a[1]),m.offset=new n.Vector2(i[0],i[1]),m.anisotropy=o)}),[m,o,a,i]),[m,u,l]},exports.usePerformanceMonitor=function({onIncline:e,onDecline:r,onChange:n,onFallback:a}){const o=t.useContext($a),i=t.useRef({onIncline:e,onDecline:r,onChange:n,onFallback:a});t.useLayoutEffect((()=>{i.current.onIncline=e,i.current.onDecline=r,i.current.onChange=n,i.current.onFallback=a}),[e,r,n,a]),t.useLayoutEffect((()=>o.subscribe(i)),[o])},exports.useProgress=Q,exports.useScroll=re,exports.useSelect=function(){return P.useContext(se)},exports.useSurfaceSampler=Be,exports.useTexture=Se,exports.useTrail=Le,exports.useTrailTexture=function(e={}){const{size:r,maxAge:n,radius:o,intensity:i,interpolate:s,smoothing:l,minForce:c,blend:u,ease:m}=e,d=t.useMemo((()=>new dr(e)),[r,n,o,i,s,l,c,u,m]);a.useFrame(((e,t)=>{d.update(t)}));const f=t.useCallback((e=>d.addTouch(e.uv)),[d]);return[d.texture,f]},exports.useVideoTexture=ct;